How we can run Linux command from qt code?
-
@Wasee said in How we can run Linux command from qt code?:
but still not changing TX_LO_frequency value. why?
Did you even at least check the return result of the
open()
for yourself? For all I know you do not have permission to write to that file. This is part of what doing development involves....Also I would not write a string but a number:
That's fine, but it's not what the OP's
echo 24250000 > out_altvoltage1_TX_LO_frequency
would do (treat anything as a number), which I was trying to copy. In fact I think Linuxecho
will append a newline, so the OP may need to do that too. -
@Wasee said in How we can run Linux command from qt code?:
change the value on device
Without sudo?
Please add error handling to your code: print error message if f.open(...) fails.
-
@JonB said in How we can run Linux command from qt code?:
QFile f("/sys/bus/iio/devices/iio:device1/out_altvoltage1_TX_LO_frequency");
if (f.open(QIODevice::WriteOnly))
{
qint64 count = f.write("24250000");
Q_ASSERT(count > 0);
f.close();
}how I can pass variable instead of 24250000.
-
@JonB Thanks for your appreciated help!
Your suggestion of QFile is working fine now.QFile f("/sys/bus/iio/devices/iio:device1/out_altvoltage1_TX_LO_frequency"); if (f.open(QIODevice::WriteOnly)) { qint64 count = f.write("2425000000"); Q_ASSERT(count > 0); f.close(); }
The value 2425000000 is coming from a variable which can be change any time. I need to pass this value as a variable instead of constant 2425000000.
thanks -
@Wasee said in How we can run Linux command from qt code?:
The value 2425000000 is coming from a variable which can be change any time. I need to pass this value as a variable instead of constant 2425000000.
thanksAre you joking???
Do you really don't have any idea how to do this simple stuff?
It is so complicated to create a string and write it to a file?
What did you try to do? -
@Wasee
You must convert your (integer) variable to a string.QIODevice::write()
accepts either aconst char *
or aconst QByteArray &
for the string to write. You can use eitherQString::number()
orQByteArray::number()
to convert a number to a string/byte array to pass towrite()
, as you please.