mirror of
https://github.com/emqx/neuron.git
synced 2026-10-26 03:40:01 +08:00
use one thread to upload data, and another thread to trigger the driver to read and write data and process msg.
170 lines
6.5 KiB
Plaintext
170 lines
6.5 KiB
Plaintext
*** Settings ***
|
|
Library OperatingSystem
|
|
|
|
Library Keyword.Neuron.GrpConfig
|
|
Library Keyword.Neuron.Neuron
|
|
Library Keyword.Neuron.Node
|
|
Library Keyword.Neuron.Subscribe
|
|
Library Keyword.Neuron.Read
|
|
Library Keyword.Neuron.Tag
|
|
Library Keyword.Neuron.Tool
|
|
|
|
Resource error.resource
|
|
Resource simulator.resource
|
|
|
|
*** Variables ***
|
|
${test_data_dir} ft/data
|
|
|
|
${NODE_UNKNOWN} 0
|
|
${NODE_DRIVER} 1
|
|
${NODE_WEB} 2
|
|
${NODE_MQTT} 3
|
|
${NODE_DRIVERX} 4
|
|
${NODE_APP} 5
|
|
|
|
${NODE_CTL_START} 0
|
|
${NODE_CTL_STOP} 1
|
|
|
|
${NODE_STATE_IDLE} 0
|
|
${NODE_STATE_INIT} 1
|
|
${NODE_STATE_READY} 2
|
|
${NODE_STATE_RUNNING} 3
|
|
${NODE_STATE_STOP} 4
|
|
|
|
${NODE_LINK_STATE_DISCONNECTED} 0
|
|
${NODE_LINK_STATE_CONNECTING} 1
|
|
${NODE_LINK_STATE_CONNECTED} 2
|
|
|
|
${TAG_ATTRIBUTE_READ} 1
|
|
${TAG_ATTRIBUTE_WRITE} 2
|
|
${TAG_ATTRIBUTE_SUBSCRIBE} 4
|
|
${TAG_ATTRIBUTE_RW} 3
|
|
|
|
${TAG_DATA_TYPE_BYTE} 2
|
|
${TAG_DATA_TYPE_INT8} 3
|
|
${TAG_DATA_TYPE_INT16} 4
|
|
${TAG_DATA_TYPE_INT32} 5
|
|
${TAG_DATA_TYPE_INT64} 6
|
|
${TAG_DATA_TYPE_UINT8} 7
|
|
${TAG_DATA_TYPE_UINT16} 8
|
|
${TAG_DATA_TYPE_UINT32} 9
|
|
${TAG_DATA_TYPE_UINT64} 10
|
|
${TAG_DATA_TYPE_FLOAT} 11
|
|
${TAG_DATA_TYPE_DOUBLE} 12
|
|
${TAG_DATA_TYPE_BOOL} 13
|
|
${TAG_DATA_TYPE_BIT} 14
|
|
${TAG_DATA_TYPE_STRING} 15
|
|
|
|
${PLUGIN_MODBUS_TCP} modbus-tcp
|
|
${PLUGIN_MQTT} mqtt
|
|
|
|
${MQTT_CMD_GET} get
|
|
${MQTT_CMD_SET} set
|
|
${MQTT_CMD_ADD} add
|
|
${MQTT_CMD_UPDATE} update
|
|
${MQTT_CMD_DELETE} delete
|
|
${MQTT_CMD_NONE}
|
|
|
|
${MQTT_CLIENTID} 123456
|
|
${TOPIC_PING_REQ} neuron/${MQTT_CLIENTID}/ping
|
|
${TOPIC_NODE_REQ} neuron/${MQTT_CLIENTID}/node/req
|
|
${TOPIC_GCONFIG_REQ} neuron/${MQTT_CLIENTID}/gconfig/req
|
|
${TOPIC_TAGS_REQ} neuron/${MQTT_CLIENTID}/tags/req
|
|
${TOPIC_PLUGIN_REQ} neuron/${MQTT_CLIENTID}/plugin/req
|
|
${TOPIC_SUBSCRIBE_REQ} neuron/${MQTT_CLIENTID}/subscribe/req
|
|
${TOPIC_READ_REQ} neuron/${MQTT_CLIENTID}/read/req
|
|
${TOPIC_WRITE_REQ} neuron/${MQTT_CLIENTID}/write/req
|
|
${TOPIC_TTYS_REQ} neuron/${MQTT_CLIENTID}/ttys/req
|
|
${TOPIC_SCHEMA_REQ} neuron/${MQTT_CLIENTID}/schema/plugin/req
|
|
${TOPIC_SETTING_REQ} neuron/${MQTT_CLIENTID}/node/setting/req
|
|
${TOPIC_CTR_REQ} neuron/${MQTT_CLIENTID}/node/ctl/req
|
|
${TOPIC_STATE_REQ} neuron/${MQTT_CLIENTID}/node/state/req
|
|
|
|
${TOPIC_STATUS_RES} neuron/${MQTT_CLIENTID}/status
|
|
${TOPIC_NODE_RES} neuron/${MQTT_CLIENTID}/node/resp
|
|
${TOPIC_GCONFIG_RES} neuron/${MQTT_CLIENTID}/gconfig/resp
|
|
${TOPIC_TAGS_RES} neuron/${MQTT_CLIENTID}/tags/resp
|
|
${TOPIC_PLUGIN_RES} neuron/${MQTT_CLIENTID}/plugin/resp
|
|
${TOPIC_SUBSCRIBE_RES} neuron/${MQTT_CLIENTID}/subscribe/resp
|
|
${TOPIC_READ_RES} neuron/${MQTT_CLIENTID}/read/resp
|
|
${TOPIC_WRITE_RES} neuron/${MQTT_CLIENTID}/write/resp
|
|
${TOPIC_TTYS_RES} neuron/${MQTT_CLIENTID}/ttys/resp
|
|
${TOPIC_SCHEMA_RES} neuron/${MQTT_CLIENTID}/schema/plugin/resp
|
|
${TOPIC_SETTING_RES} neuron/${MQTT_CLIENTID}/node/setting/resp
|
|
${TOPIC_CTR_RES} neuron/${MQTT_CLIENTID}/node/ctl/resp
|
|
${TOPIC_STATE_RES} neuron/${MQTT_CLIENTID}/node/state/resp
|
|
|
|
${MQTT_UUID} 123456-789abc-123456-aabbcc
|
|
${MQTT_CONFIG_HOST} 127.0.0.1
|
|
${MQTT_CONFIG_PORT} ${1883}
|
|
${MQTT_CONFIG} {"client-id": "${MQTT_CLIENTID}",
|
|
... "ssl": false, "host": "${MQTT_CONFIG_HOST}", "port": ${MQTT_CONFIG_PORT},
|
|
... "username": "", "password": "", "ca":"", "cert":"", "key":""}
|
|
|
|
${MODBUS_TCP_CONFIG} {"host": "127.0.0.1", "port": 60502, "connection_mode": 0}
|
|
|
|
*** Keywords ***
|
|
To Array
|
|
[Arguments] ${str_array}
|
|
${tmp} Array ${str_array}
|
|
[RETURN] ${tmp}[0]
|
|
|
|
Neuron Ready
|
|
Start Neuron
|
|
Sleep 3
|
|
|
|
Compare Tag Value As Bool
|
|
[Arguments] ${tags} ${name} ${value}
|
|
|
|
${ret} = Compare Tag Value Bool ${tags} ${name} ${value}
|
|
|
|
Should Be Equal As Integers ${ret} 0
|
|
|
|
Compare Tag Value As Int
|
|
[Arguments] ${tags} ${name} ${value}
|
|
|
|
${ret} = Compare Tag Value Int ${tags} ${name} ${value}
|
|
|
|
Should Be Equal As Integers ${ret} 0
|
|
|
|
Compare Tag Value As Float
|
|
[Arguments] ${tags} ${name} ${value}
|
|
|
|
${ret} = Compare Tag Value Float ${tags} ${name} ${value}
|
|
|
|
Should Be Equal As Integers ${ret} 0
|
|
|
|
Compare Tag Value As String
|
|
[Arguments] ${tags} ${name} ${value}
|
|
|
|
${ret} = Compare Tag Value String ${tags} ${name} ${value}
|
|
|
|
Should Be Equal As Integers ${ret} 0
|
|
|
|
Import Neuron API Resource
|
|
${api} = Get Variable Value ${NEURON_API} http
|
|
IF $api.lower() not in ["mqtt", "http"]
|
|
Fatal Error Neuron API should be `http` or `mqtt`, `${NEURON_API}` unsupported
|
|
END
|
|
|
|
Set Global Variable ${NEURON_API} ${api}
|
|
Set Global Variable ${NEURON_API_RESOURCE} api_${api}.resource
|
|
Log To Console Neuron API is `${NEURON_API}`, load resource `${NEURON_API_RESOURCE}`
|
|
Import Resource ${NEURON_API_RESOURCE}
|
|
|
|
Skip If Not Http API
|
|
Skip If $NEURON_API != "http" Current API is not `http`, just skip
|
|
|
|
Skip If Not MQTT API
|
|
Skip If $NEURON_API != "mqtt" Current API is not `mqtt`, just skip
|
|
|
|
Copy Persistence Test Data
|
|
${data_set} = Get Variable Value ${DATASET} total-10k
|
|
${data_dir} = Set Variable ${test_data_dir}/persistence/${data_set}
|
|
Directory Should Exist ${data_dir}
|
|
|
|
Directory Should Exist build
|
|
Directory Should Not Exist build/persistence
|
|
${rc} = Run And Return Rc cp -r ${data_dir} build/persistence
|
|
Should Be Equal As Integers ${rc} 0
|