mirror of
https://github.com/emqx/neuron.git
synced 2026-10-18 05:36:19 +08:00
80 lines
4.4 KiB
Plaintext
80 lines
4.4 KiB
Plaintext
*** Settings ***
|
|
Library Collections
|
|
Library Keyword.MQTT.Client reconnect_retries=5 reconnect_delay=0
|
|
Library REST http://127.0.0.1:7000
|
|
Resource common.resource
|
|
|
|
*** Keywords ***
|
|
Recv Message
|
|
[Arguments] ${topic_res}
|
|
${msg} = Listen ${topic_res} timeout=10
|
|
Should Not Be True $msg == None
|
|
${res} = evaluate json.loads('''${msg}''') json
|
|
|
|
[RETURN] ${res}
|
|
|
|
Pub And Recv
|
|
[Arguments] ${cmd} ${payload} ${topic_req} ${topic_res}
|
|
${payload} = evaluate json.loads('''${payload}''') json
|
|
Set To Dictionary ${payload} uuid ${MQTT_UUID} command ${cmd}
|
|
${payload} = evaluate json.dumps(${payload}) json
|
|
|
|
Publish ${topic_req} ${payload} qos=0
|
|
|
|
# try to receive a message with a matching UUID
|
|
${res} = Wait Until Keyword Succeeds 10s 0s Recv Message ${topic_res}
|
|
Should Be Equal As Strings ${res}[uuid] ${MQTT_UUID}
|
|
|
|
# strip the `function` and `uuid` field
|
|
Remove From Dictionary ${res} uuid command
|
|
|
|
[RETURN] ${res}
|
|
|
|
#Check Error Code
|
|
#[Arguments] ${result} ${errcode}
|
|
#Should Be Equal As Integers ${result}[error] ${errcode}
|
|
|
|
#Check Response Status
|
|
#[Arguments] ${result} ${status}
|
|
#Log To Console MQTT API does not need to check status
|
|
|
|
#_Http Check Response Status
|
|
#[Arguments] ${result} ${status}
|
|
#Integer response status ${status}
|
|
|
|
#LOGIN
|
|
#${token} = _Http LOGIN
|
|
#Add MQTT Node
|
|
#${mqtt_node} = _Http Get Node ID ${NODE_APP} mqtt-adapter
|
|
#_Http Node Setting ${mqtt_node} ${MQTT_CONFIG}
|
|
#_Http Node Ctl ${mqtt_node} ${NODE_CTL_START}
|
|
#Sleep 1s
|
|
|
|
#Connect ${MQTT_CONFIG_HOST} ${MQTT_CONFIG_PORT} client_id=neuron-ft clean_session=${true}
|
|
|
|
#Subscribe ${TOPIC_STATUS_RES} qos=0 timeout=5
|
|
#Subscribe ${TOPIC_READ_RES} qos=0 timeout=5
|
|
#Subscribe ${TOPIC_WRITE_RES} qos=0 timeout=5
|
|
|
|
#LOGOUT
|
|
#_Http LOGOUT
|
|
#Unsubscribe All And Clear Messages
|
|
#Disconnect
|
|
|
|
#Ping
|
|
#${res} = Pub And Recv ${MQTT_CMD_NONE} {} ${TOPIC_PING_REQ} ${TOPIC_STATUS_RES}
|
|
|
|
#[Return] ${res}
|
|
|
|
Read Tags
|
|
[Arguments] ${node_name} ${group}
|
|
${res} = Pub And Recv ${MQTT_CMD_NONE} {"node_name": "${node_name}", "group_name": "${group}"} ${TOPIC_READ_REQ} ${TOPIC_READ_RES}
|
|
|
|
[Return] ${res}
|
|
|
|
Write Tags
|
|
[Arguments] ${node_name} ${group} ${tag_name} ${value}
|
|
${res} = Pub And Recv ${MQTT_CMD_NONE} {"node_name": "${node_name}", "group_name": "${group}", "tag_name": "${tag_name}", "value": ${value}} ${TOPIC_WRITE_REQ} ${TOPIC_WRITE_RES}
|
|
|
|
[Return] ${res}
|