Files
neuron/ft/resource/api_mqtt.resource
2022-11-03 08:13:52 +00:00

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}