I want to publish a table using JSON format,the table is defined as below,
COLS_READINGS = `time`device_id`battery_level`battery_status`battery_temperature`bssid`cpu_avg_1min`cpu_avg_5min`cpu_avg_15min`mem_free`mem_used`rssi`ssid
TYPES_READINGS = `DATETIME`SYMBOL`INT`SYMBOL`DOUBLE`SYMBOL`DOUBLE`DOUBLE`DOUBLE`LONG`LONG`SHORT`SYMBOL
schema_readings = table(COLS_READINGS, TYPES_READINGS)
Then what should I do? Does dolphindb support mqtt publish,Or can I write a plugin myself with mosquitto?
DolphinDB has a mqtt client plugin that can be downloaded from https://github.com/dolphindb/DolphinDBPlugin/tree/master/mqtt.
loadPlugin("PluginMQTTClient.txt");
use mqtt;
//***************************publish a table****************************************//
MyFormat = take("", 5)
MyFormat[2] = "0.000"
f = createCsvFormatter(MyFormat, ',', ';')
//create a record for every device
def writeData(hardwareVector){
hardwareNumber = size(hardwareVector)
return table(take(hardwareVector,hardwareNumber) as hardwareId ,take(now(),
hardwareNumber) as ts,rand(20..41,hardwareNumber) as temperature,
rand(50,hardwareNumber) as humidity,rand(500..1000,
hardwareNumber) as voltage)
}
def publishTableData(server,topic,iterations,hardwareVector,interval,f){
conn=connect(server,1883,0,f,100)
for(i in 0:iterations){
t=writeData(hardwareVector)
publish(conn,topic,t)
sleep(interval)
}
close(conn)
}
host="192.168.1.201"
submitJob("submit_pub1", "submit_p1",
publishTableData{host,"sensor/s001",10,100..149,100,f})
publishTableData(host,"sensor/s001",100,0..99,100,f)
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments