How to write code that enters lines in the Command Arguments Section
-
Hello everybody,
I want my code to be able to make a connection with Arduino simply by running it.
com : Com5 and baud : 9600
It is in a text file as first lines
I would like to know if there is a code that can actually take those lines and put them inside "command line arguments" in the Run section?
Thanks for your help guys
-
Hi
Do you mean something in creator that would take a text file and put first line here
I have never seen that.
Also normally the app itself could read the text file for default
parameters.
-
-
@lolilol78
hi
Not really. its stored in the project.pro.user file so while its possible to
change it from outside, but Creator will ignore it if already open.Why dont u just make app use those as default ?
so if no parameters use, the defaults.
or make it read the text file.Im not sure i understand why u simply cant just put in Creator directly then ?
-
That would take 2 lines of my text file , and insert them one by one there
-
I will check but that is my tutor who told me to do something like this..
-
@lolilol78
but are u sure he didnt mean that APP should read text file ?
and not Creator ?
-
@mrjj
I created a code in exe that reads the text file and sort itbut then how can i do the connection com5 and baudrate 9600 if not typed manually inside the edit tab
-
@lolilol78
hi
well
int main(int argc, char *argv[])
argc is tells the number of parameters to exe
so u can check that if any is given.
-
@mrjj not sure i understood really well, do you have any example please ?
-
@lolilol78
hi
there is not much to it.
int argc tells the number of arguments.
often there is one. which is the path to exe.
so if argc is > 1 then there is (extra) parameters which are in the list
argv
argv is a char * array.#include <QDebug> int main(int argc, char* argv[]) { qDebug() << argv[0]; if (argc == 1 ) { qDebug() << "no params given"; } QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }
-
@mrjj ok thanks for your time ,
i will try to test something.
-
@lolilol78
hi
i would tryfor (int pcount = 0; pcount < argc; ++pcount) { qDebug() << argv[pcount]; }
with and without parameters in "run"/Creator
else just ask.
-
@mrjj thanks for the line but i didnt really understand what that means ? it is gonna print something ?
-
@lolilol78
yes, it will show all parameters u give in creator / on command line when run
it was just for u to get a feeling on how it works.
-
@mrjj oh okay i understand thank you,
but actually the parameters are stock in my text file and i need some code to go get them parameters and make the serial connection between the console and the arduino.
then i dont know if it is possible..
-
well if if app sees that it got no parameter it could open the text file if u place it next to exe
yes it very possible.
You can use QFileQFile file("comm.txt"); if(!file.open(QIODevice::ReadOnly)) { QMessageBox::information(0, "error", file.errorString()); } QTextStream in(&file); while(!in.atEnd()) { QString line = in.readLine(); // read first line qDebug() << line; // here u should set com port/ baud instead. } file.close();
-
@mrjj Thank you mrjj
-
@lolilol78
so tutor said ok to read from file?
Note that sample read one line at a time
-
@mrjj yes the fils has already been read with another function, but now :
how to actually send those lines one by one to Arduino via Serial Com?
-
Hi @lolilol78
You are searching for QSerialPort
-
@aha_1980 hello aha,
i am really having troubles searching through the site of qt, i am a novice and i cant really manage to code properly every time i try.
after having my text file read and every line read as QString, i want to send each line to Arduino via Serial. how can I do it ?
-
No no, it's not working that way - I'm not going to do your homework. I gave you two links and there are several examples.
The minimum you can do now is to have a look at the examples. Hint: this one looks close to your task :)
-
@lolilol78
You will use http://doc.qt.io/qt-5/qserialport.html#open to open your serial device for write and something like http://doc.qt.io/qt-5/qserialport.html#writeData or http://doc.qt.io/qt-5/qiodevice.html#write-2 to send the strings down the line.
-
@aha_1980 Actually there are not several examples as I am searching for days on the internet how to simply send a string line from a text file through Serial, but thank you for your help.
-
@lolilol78 said in How to write code that enters lines in the Command Arguments Section:
Actually there are not several examples
Did you actually check the links @aha_1980 gave you?
There ARE examples, 9 to be precise.
You should study documentation and try. If you then still have problems or questions then ask.
-
@jsulm yes I checked, I would like to know the difference between Asynchronized and Synchronized?
-
I could not explain better than this Stackoverflow answer:
When you execute something synchronously, you wait for it to finish before moving on to another task. When you execute something asynchronously, you can move on to another task before it finishes.
Edit: the post contained an even better comment:
In simpler terms:
SYNCHRONOUS
You are in a queue to get a movie ticket. You cannot get one until everybody in front of you gets one, and the same applies to the people queued behind you.
ASYNCHRONOUS
You are in a restaurant with many other people. You order your food. Other people can also order their food, they don't have to wait for your food to be cooked and served to you before they can order. In the kitchen restaurant workers are continuously cooking, serving, and taking orders. People will get their food served as soon as it is cooked.