Hi,
I'm extending an old daemon so it writes the data to MQTT, using mosquitto_pub. To have a correct message (-m ...) I need to include double-quotes. But it seems ExecuteProcess(exec,cmdline) splits the cmdline according some rules if it's a single string.
When I tried to do it in a single string :
-h 127.0.0.1 -t solartopic -u user -P secret -i clientid -m "{\"Pac\": 458.00}"
I got :
Error: Unknown option 'Pac\":'.
So I need to make cmdline an array. How I do that ?
I tried :
 MQTTStr : array [0..5] of ansistring;
...
 MQTTStr[0]:='-h '+MQTTBroker;
 MQTTStr[1]:='-t '+MQTTTopic;
 MQTTStr[2]:='-u '+MQTTUser;
 MQTTStr[3]:='-P '+MQTTPassw;
 MQTTStr[4]:='-i '+MQTTClientID;
 MQTTStr[5]:='-m "{\"'+ChanName+'\": '+TextValue+'}"';
 ExecuteProcess(MQTTExec,MQTTStr));
But then :
Error: Unknown option '-h 127.0.0.1'.
Use 'mosquitto_pub --help' to see usage.

Thanks in advance

Koenraad
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to