API 功能服务

Neuron将为IIoT平台提供一系列的API服务,以查询基本信息,控制网关行为或设置轮询配置。IIoT平台必须通过发送请求消息的方式发给Neuron。通过返回,Neuron将返回所需的信息或执行相应的动作。如果有错,就会返回一个错误代码来说明失败的原因。

Neuron平台的MQTT主题

订阅(Subscribe): Neuron/Request/%UUID%

发布(Publish): Neuro/Response/%UUID%

IIoT平台的MQTT主题

订阅(Subscribe): Neuron/Response/%UUID%

发布(Publish): Neuron/Request/%UUID%

MQTT主题字符串列表

Neuron/Broadcast

Neuron/Heartbeat/%UUID%

Neuron/Telemetry/%UUID%

Neuron/Request/%UUID%

Neuron/Response/%UUID%

其中%UUID%是Neuron的36个字符的UUID字符串。

Neuron网关订阅主题

Neuron/Broadcast

Neuron/Request/%UUID%

Neuron网关发布主题

Neuron/Broadcast

Neuron/Heartbeat/%UUID%

Neuron/Telemetry/%UUID%

Neuron/Request/%UUID%

Neuron/Response/%UUID%

IIoT平台订阅主题

Neuron/Broadcast

Neuron/Heartbeat/%UUID%

Neuron/Telemetry/%UUID%

Neuron/Response/%UUID%

IIoT平台发布主题

Neuron/Request/%UUID%

api-services-on-mqtt

api-services-on-websockets

Function 10 登录

HTTP API Header

(GET)

Resource Path: /api/v1/funcno10

Content-Type: application/json

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 10,
  3. "wtrm": "DEMO-Neuron-1001_1532421778824_1",
  4. "name": "admin",
  5. "pass": "0000"
  6. }

响应body的句式

  1. {
  2. "func": 10,
  3. "wtrm": "DEMO-Neuron-1001_1532421778824_1",
  4. "errc": 0,
  5. "tout": 15,
  6. "defl": -1,
  7. "nalw": 3,
  8. "alwl": [
  9. {
  10. "atxt": "VIEW",
  11. "anum": 0
  12. },
  13. {
  14. "atxt": "MANAGER",
  15. "anum": 1
  16. },
  17. {
  18. "atxt": "ALL",
  19. "anum": -1
  20. }
  21. ]
  22. }
请求 字段说明
func 功能代码 10
wtrm 复制到响应信息的水印信息
name 用户名
pass 用户密码
响应 字段说明
func 功能代码 10
wtrm 从请求信息中复制的水印
errc 编译器错误代码
tout 超时时间(分钟)
defl 默认登录级别
nalw 允许的级别数
alwl 允许的等级
atxt 允许的文本
ALL(-1)
VIEW(0)
OPERATOR(1)
FOREMAN(2)
MAINTENANCE(3)
SUPERVISOR(4)
ENGINEER(5)
DESIGNER(6)
MANAGER(7)
anum 允许序号
-1
0
1
2
3
4
5
6
7
功能 允许的等级
退出 4,5,7
重启/重新启动/关机 2,3,4,5,6,7
登录/注销 0,1,2,3,4,5,6,7
新密码 0,1,2,3,4,5,6,7
用户管理 4,5,7
浏览系统ID 4,5,7
状态控制 2,3,4,5,7
向对象写入值 4,5,7
读取实例列表 4,5,7
设置配置 4,5,7
读取配置 4,5,7
读取全局变量 4,5,7
列出所有子程序 4,5,7
读取一个子程序 4,5,7
创建一个子程序 4,5,7
删除一个子程序 4,5,7
编译一个子程序 4,5,7
在子程序中搜索字符串 4,5,7
检查报警状态 1,2,3,4,5,7
报警确认 2,3,4,5,7
改变报警模式 2,3,4,5,7
报警日志报告 4,5,7
读取趋势数据 2,3,4,5,7
读取对象屏幕 2,3,4,5,7
读取许可证信息 4,5,7

Function 11 注销

HTTP API Header

(GET)

Resource Path: /api/v1/funcno11

Content-Type: application/json

Authorization: Bearer \

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 11,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "name": "admin"
  5. }

响应body的句式

  1. {
  2. "func": 11,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 11
wtrm 复制到响应信息的水印信息
name 用户名
响应 字段说明
func 功能代码 11
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 12 新密码

HTTP API Header

(POST)

Resource Path: /api/v1/funcno12

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 12,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "name": "admin",
  5. "pass": "0000",
  6. "npwd": "1234"
  7. }

响应body的句式

  1. {
  2. "func": 12,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 12
wtrm 复制到响应信息的水印信息
name 用户名
pass 用户密码
npwd 新密码
响应 字段说明
func 功能代码 12
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 13 读用户列表

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno13

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 13,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240"
  4. }

响应body的句式

  1. {
  2. "func": 13,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "errc": 0,
  5. "nusr": 3,
  6. "user": [
  7. "joey",
  8. "peter",
  9. "ruby"
  10. ]
  11. }
请求 字段说明
func 功能代码 13
wtrm 复制到响应信息的水印信息
响应 字段说明
func 功能代码 13
wtrm 从请求信息中复制的水印
errc 编译器错误代码
nusr 用户数
user 用户名称列表

Function 14 读用户信息

HTTP API header

(PUT)

Resource Path: /api/v1/funcno14

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 14,
  3. "wtrm": "DEMO-Neuron-1001_1532421778824_1",
  4. "name": "joey"
  5. }

响应body的句式

  1. {
  2. "func": 14,
  3. "wtrm": "DEMO-Neuron-1001_1532421778824_1",
  4. "errc": 0,
  5. "usrn": "joey",
  6. "tout": 15,
  7. "defl": -1,
  8. "nalw": 3,
  9. "alwl": [
  10. {
  11. "atxt": "VIEW",
  12. "anum": 0
  13. },
  14. {
  15. "atxt": "MANAGER",
  16. "anum": 1
  17. },
  18. {
  19. "atxt": "ALL",
  20. "anum": -1
  21. }
  22. ]
  23. }
请求 字段说明
func 功能代码 14
wtrm 复制到响应信息的水印信息
name 用户名
响应 字段说明
func 功能代码 14
wtrm 从请求信息中复制的水印
errc 编译器错误代码
usrn 用户名
tout 超时时间(分钟)
defl 默认登录级别
nalw 允许的级别数
alwl 允许的等级
atxt 允许的文本
ALL(-1)
VIEW(0)
OPERATOR(1)
FOREMAN(2)
MAINTENANCE(3)
SUPERVISOR(4)
ENGINEER(5)
DESIGNER(6)
MANAGER(7)
anum 允许序号
-1
0
1
2
3
4
5
6
7

Function 15 保存用户信息

HTTP API Header

(POST)

Resource Path: /api/v1/funcno15

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 15,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "cusr": 1,
  5. "name": "joey",
  6. "pass": "0000",
  7. "tout": 15,
  8. "defl": 7,
  9. "nalw": 3,
  10. "alwl": [
  11. 0,
  12. 6,
  13. 7
  14. ]
  15. }

响应body的句式

  1. {
  2. "func": 15,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 15
wtrm 复制到响应信息的水印信息
cusr 检查用户是否已经存在,如果存在,返回错误
name 用户名 User name
pass 新密码 New password
tout 超时时间 (0-999(分钟),0表示永不超时
defl 默认登录级别
nalw 允许等级数
alwl 允许等级的序号
响应 字段说明
func 功能代码 15
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 16 移除用户

HTTP API Header

(DELETE)

Resource Path: /api/v1/funcno16

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 16,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "name": "user"
  5. }

响应body的句式

  1. {
  2. "func": 16,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 16
wtrm 复制到响应信息的水印信息
name 用户名
响应 字段说明
func 功能代码 16
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 21 配置

HTTP API Header

(POST)

Resource Path: /api/v1/funcno21

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func":21,
  3. "wtrm":"neuron",
  4. "chnl":[
  5. {
  6. "chdv":"mbstcp",
  7. "tcph":"192.168.50.177",
  8. "tcpp":502,
  9. "ttyc":"",
  10. "ttyb":0,
  11. "ttyd":0,
  12. "ttys":"",
  13. "ttyp":"N",
  14. "parm":[
  15. {
  16. "vars":"TCPSERVER",
  17. "pars":"0"
  18. },
  19. {
  20. "vars":"BYTEORDER",
  21. "pars":"1"
  22. },
  23. {
  24. "vars":"DLYCRESOCKAFTCLOSE",
  25. "pars":"50"
  26. },
  27. {
  28. "vars":"TORECEIVETCP",
  29. "pars":"1000"
  30. },
  31. {
  32. "vars":"NAPTIMEREAD",
  33. "pars":"10"
  34. },
  35. {
  36. "vars":"NAPTIMEWRITE",
  37. "pars":"10"
  38. }
  39. ]
  40. },
  41. {
  42. "chdv":"pahomq",
  43. "tcph":"broker.emqx.io",
  44. "tcpp":1883,
  45. "ttyc":"",
  46. "ttyb":0,
  47. "ttyd":0,
  48. "ttys":"",
  49. "ttyp":"N",
  50. "parm":[
  51. {
  52. "vars":"TOPICHEADER",
  53. "pars":"Neuron"
  54. },
  55. {
  56. "vars":"USERNAME",
  57. "pars":""
  58. },
  59. {
  60. "vars":"PASSWORD",
  61. "pars":""
  62. },
  63. {
  64. "vars":"CLIENTID",
  65. "pars":""
  66. },
  67. {
  68. "vars":"TOPIC",
  69. "pars":""
  70. },
  71. {
  72. "vars":"CERTIFICATE",
  73. "pars":""
  74. },
  75. {
  76. "vars":"KEYFILE",
  77. "pars":""
  78. }
  79. ]
  80. }
  81. ],
  82. "objd":[
  83. {
  84. "objn":"test",
  85. "obsz":1,
  86. "updt":10,
  87. "logt":1,
  88. "disp":1,
  89. "logs":1,
  90. "tstd":1,
  91. "oatt":[
  92. {
  93. "attn":"t",
  94. "attt":"word",
  95. "deci":3,
  96. "attr":"R",
  97. "rtim":10,
  98. "achg":1,
  99. "adis":1,
  100. "aadd":[
  101. {
  102. "obix":0,
  103. "pref":"",
  104. "suff":"",
  105. "addr":"1!400001"
  106. }
  107. ]
  108. },
  109. {
  110. "attn":"t2",
  111. "attt":"word",
  112. "deci":0,
  113. "attr":"R",
  114. "rtim":10,
  115. "achg":1,
  116. "adis":1,
  117. "aadd":[
  118. {
  119. "obix":0,
  120. "pref":"",
  121. "suff":"",
  122. "addr":"1!400005"
  123. }
  124. ]
  125. }
  126. ]
  127. },
  128. {
  129. "objn":"my",
  130. "obsz":1,
  131. "updt":10,
  132. "logt":1,
  133. "disp":1,
  134. "logs":1,
  135. "tstd":1,
  136. "oatt":[
  137. {
  138. "attn":"m",
  139. "attt":"word",
  140. "deci":0,
  141. "attr":"R",
  142. "rtim":10,
  143. "achg":1,
  144. "adis":1,
  145. "aadd":[
  146. {
  147. "obix":0,
  148. "pref":"",
  149. "suff":"",
  150. "addr":"1!400010"
  151. }
  152. ]
  153. }
  154. ]
  155. }
  156. ],
  157. "msgd":[
  158. {
  159. "subr":0,
  160. "sobj":"test",
  161. "satt":"t",
  162. "msgt":">",
  163. "cobj":"test",
  164. "catt":"t2",
  165. "acat":"alarm"
  166. }
  167. ]
  168. }

响应body的句式

  1. {
  2. "func": 21,
  3. "wtrm": "neuron",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 21
wtrm 复制到响应信息的水印信息
chnl 通道信息
chdv 通道驱动程序名称
tcph PLC/硬件设备的主机名或IP地址
tcpp 设备端口号
ttyc Linux设备文件名(ttyS0, ttyS1)
ttyb 波特率
4800
9600
19200
38400
57600
115200
ttyd 数据位
5
6
7
8
ttys 停止位(string)
1
1.5
2
ttyp 奇偶校验位(char)
E - Even
O - Odd
N - None
parm 参数列表详细信息
vars 变量名称
pars 参数值
objd 一个对象的详情
objn 对象名称
obsz 相同对象的数量
updt 数据传输到云平台的时间间隔
logt 数据被记录到文件的时间
disp 是否需要显示所有对象属性
0 (不显示)
1 (显示)
logs 是否需要记录一次连续下降的情况
0 (不需要)
1 (需要)
tstd 是否需要显示时间戳
0 (不显示)
1 (显示))
oatt 对象属性列表详情
attn 属性名称
attt 属性值的类型:
word
uword
dword
udword
float
double
bit
deci 小数点位数
attr 属性读/写标志
R
W
R/W
S
SW
rtim 读的时间间隔 (只针对读属性)
achg 属性是否可以被改变
0 (不允许)
1 (允许)
adis 属性是否需要被传到平台
0 (不需要)
1 (需要)
aadd 属性地址详情
obix 从0开始的索引号
pref 对象名称前缀
suff 对象名称后缀
addr 标签地址 (设备地址)
注意:对于内部寄存器tagaddr和tagattr都用”-“
msgd 报警信息详情
subr 子程序编号 (1-999)
sobj 源对象名称
satt 源属性名称
msgt 信息比较类型
<
<=
>
>=
==
!=
&
\^
\
cobj 被比较对象的名称
catt 被比较属性名称
acat 报警类型
critical
alarm
warning
event
view
响应 字段说明
func 功能代码 21
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 22 读配置

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno22

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 22,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240"
  4. }

响应body的句式

  1. {
  2. "func": 22,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "errc": 0
  5. // The structure is same as Function 21 request message
  6. // Not repeat here
  7. }

Function 23 读驱动程序

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno23

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 23,
  3. "wtrm": "DEMO-Neuron-1001_1532421778824_1",
  4. "type": 1
  5. }

响应body的句式

  1. {
  2. "func": 23,
  3. "wtrm": "DEMO-Neuron-1001_1532421778824_1",
  4. "errc": 0,
  5. "nrow": 3,
  6. "rows": [
  7. {
  8. "name": "mbsrtu",
  9. "desc": "Modbus RTU",
  10. "type": "tty",
  11. "attr": [
  12. "R",
  13. "W",
  14. "RW"
  15. ]
  16. },
  17. {
  18. "name": "mbstcp",
  19. "desc": "Modbus TCP",
  20. "type": "tcp",
  21. "attr": [
  22. "R",
  23. "W",
  24. "RW"
  25. ]
  26. },
  27. {
  28. "name": "mbsrot",
  29. "desc": "Modbus RTU over TCP",
  30. "type": "tcp",
  31. "attr": [
  32. "R",
  33. "W",
  34. "RW"
  35. ]
  36. },
  37. {
  38. "name": "opcua",
  39. "desc": "OPC UA",
  40. "type": "tcp",
  41. "attr": [
  42. "R",
  43. "W",
  44. "RW"
  45. "S",
  46. "SW"
  47. ]
  48. }
  49. ]
  50. }
请求 字段说明
func 功能代码 23
wtrm 复制到响应信息的水印信息
type 1: 驱动程序通道
2: 服务器通道
响应 字段说明
func 功能代码 23
wtrm 从请求信息中复制的水印
errc 编译器错误代码
nrow 行数
name 驱动程序的缩写
desc 驱动程序的完整描述
type 驱动程序的类型
tty表示串行驱动
tcp表示网络驱动
attr 属性读/写指示器
R
W
RW
S
SW

Function 24 读驱动程序参数

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno24

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 24,
  3. "wtrm": "DEMO-Neuron-1001_1532421778824_1",
  4. "drvn": "i61850"
  5. }

响应body的句式

  1. {
  2. "func": 24,
  3. "wtrm": "DEMO-Neuron-1001_1532421778824_1",
  4. "errc": 0,
  5. "drvn": "i61850",
  6. "parm": [
  7. {
  8. "vars": "DLYCRESOCKAFTCLOSE",
  9. "pars": "300"
  10. },
  11. {
  12. "vars": "TORECEIVETCP",
  13. "pars": "300"
  14. },
  15. {
  16. "vars": "NAPTIMEREAD",
  17. "pars": "40"
  18. },
  19. {
  20. "vars": "NAPTIMEWRITE",
  21. "pars": "20"
  22. },
  23. {
  24. "vars": "USERNAME",
  25. "pars": ""
  26. },
  27. {
  28. "vars": "PASSWORD",
  29. "pars": ""
  30. },
  31. {
  32. "vars": "CERTIFICATE",
  33. "pars": ""
  34. },
  35. {
  36. "vars": "KEYFILE",
  37. "pars": ""
  38. },
  39. {
  40. "vars": "ADDRSUFFIX",
  41. "pars": ""
  42. }
  43. ]
  44. }
请求 字段说明
func 功能代码 24
wtrm 从请求信息中复制的水印
drvn 驱动器名称
响应 字段说明
func 功能代码 24
wtrm 从请求信息中复制的水印
errc 编译器错误代码
drvn 驱动器名称
parm 参数数组
vars 变量名称
pars 参数值

Function 25 检查PLC地址

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno25

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 25,
  3. "wtrm": "d0fdb943-cff1-44bc-887d-0a3b3ba856b0",
  4. "chdv": "mbtcp",
  5. "attt": "word",
  6. "deci": 0,
  7. "attr": "R",
  8. "addr": "1!400002"
  9. }

响应body的句式

  1. {
  2. "func": 25,
  3. "wtrm": "d0fdb943-cff1-44bc-887d-0a3b3ba856b0",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 25
wtrm 从请求信息中复制的水印
chdv 通道驱动器名称 Channel driver name
attt 属性值的数据类型,允许的数据类型:
word
uword
dword
udword
float
double
bit
deci 小数位数
attr 属性读/写指示器,允许的标志:
R
W
R/W
addr 标签地址(设备地址)
注:对于内部寄存器,tagaddr和tagattr都用”-“
响应 字段说明
func 功能代码 25
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 26 读设备列表

HTTP API Header

(GET)

Resource Path: /api/v1/funcno25

Content-Type: application/json

Authorization: Bearer \

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 26,
  3. "wtrm": "d0fdb943-cff1-44bc-887d-0a3b3ba856b0"
  4. }

响应body的句式

  1. {
  2. "func": 26,
  3. "wtrm": "d0fdb943-cff1-44bc-887d-0a3b3ba856b0",
  4. "rows": [
  5. {
  6. "name": "/dev/tty",
  7. "fdrw": 0
  8. },
  9. {
  10. "name": "/dev/ttyS0",
  11. "fdrw": 0
  12. },
  13. {
  14. "name": "/dev/ttyS1",
  15. "fdrw": -1
  16. },
  17. {
  18. "name": "/dev/ttyUSB0",
  19. "fdrw": -1
  20. }
  21. ],
  22. "errc": 0
  23. }
请求 字段说明
func 功能代码 26
wtrm 从请求信息中复制的水印
响应 字段说明
func 功能代码 26
wtrm 从请求信息中复制的水印
rows 设备列表
name 设备名称
fdrw 文件描述符的读写权限
0: 获得许可,
-1: 没有许可
errc 编译器错误代码

Function 30 读全局变量

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno30

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 30,
  3. "wtrm": "DEMO-Neuron-1001_1532421778824_1"
  4. }

响应body的句式

  1. {
  2. "func": 30,
  3. "wtrm": "DEMO-Neuron-1001_1532421778824_1",
  4. "errc": 0,
  5. "nrow": 7,
  6. "rows": [
  7. {
  8. "glov": "time",
  9. "leng": 1,
  10. "comt": "unix timestamp"
  11. },
  12. {
  13. "glov": "year",
  14. "leng": 1,
  15. "comt": "current year"
  16. },
  17. {
  18. "glov": "month",
  19. "leng": 1,
  20. "comt": "current month"
  21. },
  22. {
  23. "glov": "day",
  24. "leng": 1,
  25. "comt": "day of the month"
  26. },
  27. {
  28. "glov": "hour",
  29. "leng": 1,
  30. "comt": "hour of the day"
  31. },
  32. {
  33. "glov": "min",
  34. "leng": 1,
  35. "comt": "minute of the hour"
  36. },
  37. {
  38. "glov": "dayofweek",
  39. "leng": 1,
  40. "comt": "day of the week"
  41. }
  42. ]
  43. }
请求 字段说明
func 功能代码 30
wtrm 复制到响应信息的水印信息
响应 字段说明
func 功能代码 30
wtrm 从请求信息中复制的水印
errc 编译器错误代码
nrow 行数
rows 行数组
glov 全局变量名称
leng 变量大小
comt 注释

Function 31 保存全局变量

HTTP API Header

(POST)

Resource Path: /api/v1/funcno31

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 31,
  3. "wtrm": "DEMO-Neuron-1001_1532421778824_1",
  4. "nrow": 7,
  5. "rows": [
  6. {
  7. "glov": "time",
  8. "leng": 1,
  9. "comt": "unix timestamp"
  10. },
  11. {
  12. "glov": "year",
  13. "leng": 1,
  14. "comt": "current year"
  15. },
  16. {
  17. "glov": "month",
  18. "leng": 1,
  19. "comt": "current month"
  20. },
  21. {
  22. "glov": "day",
  23. "leng": 1,
  24. "comt": "day of the month"
  25. },
  26. {
  27. "glov": "hour",
  28. "leng": 1,
  29. "comt": "hour of the day"
  30. },
  31. {
  32. "glov": "min",
  33. "leng": 1,
  34. "comt": "minute of the hour"
  35. },
  36. {
  37. "glov": "dayofweek",
  38. "leng": 1,
  39. "comt": "day of the week"
  40. }
  41. ]
  42. }

响应body的句式

  1. {
  2. "func": 31,
  3. "wtrm": "DEMO-Neuron-1001_1532421778824_1",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 31
wtrm 复制到响应信息的水印信息
nrow 行数
glov 全局变量名称
leng 变量大小
comt 注释
响应 字段说明
func 功能代码 31
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 32 读子程序列表

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno32

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 32,
  3. "wtrm": "DEMO-Neuron-1001_1532421778823_1"
  4. }

响应body的句式

  1. {
  2. "func": 32,
  3. "wtrm": "DEMO-Neuron-1001_1532421778823_1",
  4. "errc": 0,
  5. "nsub": 3,
  6. "msub": 999,
  7. "rows": [
  8. {
  9. "subr": 200,
  10. "name": "SR200 TEMPERATURE ALARM HANDLER"
  11. },
  12. {
  13. "subr": 201,
  14. "name": "SR201 TEMPERATURE ALARM HANDLER"
  15. },
  16. {
  17. "subr": 202,
  18. "name": "SR202 TEMPERATURE ALARM HANDLER"
  19. }
  20. ]
  21. }
请求 字段说明
func 功能代码 32
wtrm 复制到响应信息的水印信息
响应 字段说明
func 功能代码 32
wtrm 从请求信息中复制的水印
errc 编译器错误代码
nsub 子程序的数量
msub 子程序数最大值
subr 子程序编号
name 子程序名称

Function 33 读子程序

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno33

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 33,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "subr": 200
  5. }

响应body的句式

  1. {
  2. "func": 33,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "errc": 0,
  5. "subr": 200,
  6. "name": "SR200 TEMPERATURE ALARM TIRGGER HANDLER",
  7. "nrow": 5,
  8. "rows": [
  9. {
  10. "stmt": "COMMENT",
  11. "expr": "TEMPERATURE HANDLER"
  12. },
  13. {
  14. "stmt": "",
  15. "expr": ""
  16. },
  17. {
  18. "stmt": "IF",
  19. "expr": "Tank[0].buzzer == 0"
  20. },
  21. {
  22. "stmt": "THEN",
  23. "expr": "Tank[0].buzzer = 1;"
  24. },
  25. {
  26. "stmt": "",
  27. "expr": ""
  28. }
  29. ]
  30. }
请求 字段说明
func 功能代码 33
wtrm 复制到响应信息的水印信息
subr 子程序编号
响应 字段说明
func 功能代码 33
wtrm 从请求信息中复制的水印
errc 编译器错误代码
subr 子程序编号
MAIN是-10
MANUAL是-20
AUTO是-22
name 子程序名称
nrow 行数
stmt 语句
expr 表达式

Function 34 保存子程序

HTTP API Header

(POST)

Resource Path: /api/v1/funcno34

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 34,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "csub": 0,
  5. "subr": 200,
  6. "name": "SR200 TEMPERATURE ALARM TIRGGER HANDLER",
  7. "nrow": 5,
  8. "rows": [
  9. {
  10. "stmt": "COMMENT",
  11. "expr": "TEMPERATURE HANDLER"
  12. },
  13. {
  14. "stmt": "",
  15. "expr": ""
  16. },
  17. {
  18. "stmt": "IF",
  19. "expr": "Tank[0].buzzer == 0"
  20. },
  21. {
  22. "stmt": "THEN",
  23. "expr": "Tank[0].buzzer = 1;"
  24. },
  25. {
  26. "stmt": "",
  27. "expr": ""
  28. }
  29. ]
  30. }

响应body的句式

  1. {
  2. "func": 34,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 34
wtrm 复制到响应信息的水印信息
csub 保存前检查子程序是否存在 (0:不检查,1:检查)
subr 子程序编号
MAIN是-10
MANUAL是-20
AUTO是-22
或者是任何数字(1-999)的子程序编号
name 子程序名称
nrow 行数
stmt 语句
expr 表达式
响应 字段说明
func 功能代码 34
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 35 移除子程序

HTTP API Header

(DELETE)

Resource Path: /api/v1/funcno35

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 35,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "subr": 200
  5. }

响应body的句式

  1. {
  2. "func": 35,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 35
wtrm 复制到响应信息的水印信息
subr 子程序编号
响应 字段说明
func 功能代码 35
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 36 测试子程序

HTTP API Header

(POST)

Resource Path: /api/v1/funcno36

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 36,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "nrow": 5,
  5. "rows": [
  6. {
  7. "stmt": "COMMENT",
  8. "expr": "TEMPERATURE HANDLER"
  9. },
  10. {
  11. "stmt": "",
  12. "expr": ""
  13. },
  14. {
  15. "stmt": "IF",
  16. "expr": "Tank[0].buzzer == 0"
  17. },
  18. {
  19. "stmt": "THEN",
  20. "expr": "Tank[0].buzzer = 1;"
  21. },
  22. {
  23. "stmt": "",
  24. "expr": ""
  25. }
  26. ]
  27. }

响应body的句式

  1. {
  2. "func": 36,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 36
wtrm 复制到响应信息的水印信息
nrow 行数
stmt 语句
expr 表达式
响应 字段说明
func 功能代码 36
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 37 在子程序中搜索

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno37

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 37,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "srhm": "main",
  5. "upca": 0,
  6. "wwrd": 0,
  7. "srhs": "temperature"
  8. }

响应body的句式

  1. {
  2. "func": 37,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "errc": 0,
  5. "rows": [
  6. {
  7. "modu": "main",
  8. "line": 1,
  9. "chnu": 8,
  10. "desc": "COMMENT MAIN - TEMPERATURE CONTROL"
  11. },
  12. {
  13. "modu": "main",
  14. "line": 7,
  15. "chnu": 9,
  16. "desc": "IF Tank[i].temperature > Temp[0].high && Tank[i].switch == 1"
  17. },
  18. {
  19. "modu": "main",
  20. "line": 9,
  21. "chnu": 9,
  22. "desc": "ELSE IF Tank[i].temperature < Temp[0].low && Tank[i].switch == 0"
  23. }
  24. ]
  25. }
请求 字段说明
func 功能代码 37
wtrm 复制到响应信息的水印信息
srhm 以全局变量模式搜索子程序
main
man
auto
upca 是否需要匹配大小写 (1:匹配, 0:不匹配)
wwrd 是否需要匹配整个单词(1:匹配整体, 0:匹配部分)
srhs 搜索字符串
响应 字段说明
func 功能代码 37
wtrm 从请求信息中复制的水印
errc 编译器错误代码
rows 行号索引
modu 全局变量子程序模块
main
man
auto
subr 子程序编号
line 行号
chnu 字符开始位置
desc 描述

Function 38 执行脚本

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno38

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 38,
  3. "wtrm": "d0fdb943-cff1-44bc-887d-0a3b3ba856b0",
  4. "subr": 200
  5. }

响应body的句式

  1. {
  2. "func": 38,
  3. "wtrm": "d0fdb943-cff1-44bc-887d-0a3b3ba856b0",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 38
wtrm 从请求信息中复制的水印
subr 子程序编号 (1-999)
响应 字段说明
func 功能代码 38
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 50 读寄存器

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno50

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 50,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "srcn": "test"
  5. }

响应body的句式

  1. {
  2. "func": 50,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "erroc": 0,
  5. "tele": [
  6. {
  7. "objn": "test",
  8. "tstp": 1643180286,
  9. "data1": 123,
  10. "data2": 789,
  11. "data3": 3,
  12. "data4": 4,
  13. "data5": 5,
  14. "data6": 6,
  15. "data7": 7,
  16. "data8": 8,
  17. "data9": 9,
  18. "data10": 10
  19. }
  20. ]
  21. }
请求 字段说呢
func 功能代码 50
wtrm 复制到响应信息的水印信息
srcn 带有前缀和后缀的对象名称
响应 字段说明
func 功能代码 50
wtrm 从请求信息中复制的水印
errc 错误编码
tele 遥测阵列
objn 对象名称
tstp 时间戳

Function 51 写寄存器

HTTP API Header

(POST)

Resource Path: /api/v1/funcno51

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 51,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "srcn": "Temp",
  5. "attn": "high",
  6. "valn": 860
  7. }

响应body的句式

  1. {
  2. "func": 51,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 51
wtrm 复制到响应信息的水印信息
srcn 带有前缀和后缀的对象名称
attn 属性名称
valn
响应 字段说明
func 功能代码 51
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 60 对象列表

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno60

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 60,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1"
  4. }

响应body的句式

  1. {
  2. "func": 60,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "errc": 0,
  5. "tele": [
  6. {
  7. "objn": "Tank_1",
  8. "logs": 0,
  9. "temperature": 0,
  10. "energy": 0,
  11. "switch": 1,
  12. "buzzer": 1
  13. },
  14. {
  15. "objn": "Tank_2",
  16. "logs": 0,
  17. "temperature": 0,
  18. "energy": 0,
  19. "switch": 1,
  20. "buzzer": 1
  21. },
  22. {
  23. "objn": "Tank_3",
  24. "logs": 0,
  25. "temperature": 0,
  26. "energy": 0,
  27. "switch": 1,
  28. "buzzer": 1
  29. },
  30. {
  31. "objn": "Temp",
  32. "logs": 1,
  33. "high": 1,
  34. "temp1": 0,
  35. "temp2": 0,
  36. "temp3": 0,
  37. "low": 1
  38. },
  39. {
  40. "objn": "Energy",
  41. "logs": 1,
  42. "energy1": 0,
  43. "energy2": 0,
  44. "energy3": 0
  45. }
  46. ]
  47. }
请求 字段说明
func 功能代码 60
wtrm 复制到响应信息的水印信息
响应 字段说明
func 功能代码 60
wtrm 从请求信息中复制的水印
errc 错误编码
tele 遥测对象屏幕描述
objn 对象名称
logs 是否记录 (Y/N)

Function 61 系统状态

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno61

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 61,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "actn": "act_en"
  5. }

响应body的句式

  1. {
  2. "func": 61,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "errc": 0,
  5. "tstp": 1581515618,
  6. "comm": "UP",
  7. "mach": "MANU",
  8. "mode": "ACTIVE",
  9. "mqcn": "MQCONNECT",
  10. "dalm": "NON-EXIST",
  11. "galm": "UNACKNOWLEDGE",
  12. "ngal": 4,
  13. "grow": [
  14. {
  15. "acat": "alarm",
  16. "astt": "OFF",
  17. "amod": "UNACKALARM",
  18. "atim": 1581513580,
  19. "alid": 1,
  20. "comt": "temp1@Temp (812) < low@Temp (800)"
  21. },
  22. {
  23. "acat": "alarm",
  24. "astt": "ON",
  25. "amod": "UNACKALARM",
  26. "atim": 1581515415,
  27. "alid": 3,
  28. "comt": "temp2@Temp (791) < low@Temp (800)"
  29. },
  30. {
  31. "acat": "critical",
  32. "astt": "ON",
  33. "amod": "UNACKALARM",
  34. "atim": 1581515415,
  35. "alid": 4,
  36. "comt": "temp3@Temp (864) > high@Temp (850)"
  37. },
  38. {
  39. "acat": "alarm",
  40. "astt": "OFF",
  41. "amod": "UNACKALARM",
  42. "atim": 1581513592,
  43. "alid": 5,
  44. "comt": "temp3@Temp (864) < low@Temp (800)"
  45. }
  46. ]
  47. }
请求 字段说明
func 功能代码 61
wtrm 复制到响应信息的水印信息
actn 可以执行一下任何一种操作:

act_en:主动启用的警报
act_unack:主动撤消警报
act_all:激活所有警报
all_alm:所有警报
all_en:所有启用的警报器
all_dis:所有禁用的警报 |

响应 字段说明
func 功能代码 61
wtrm 从请求信息中复制的水印
errc 错误编码
tstp 时间戳
comm PLC或者硬件设备通信状态
UP
DOWN
mach 机器模式
AUTO
MANU
SERV
mode 请参考部分状态模式:
Inactive Mode(不活动模式)
Standby Mode / Semi-Standby Mode(待机/半待机模式)
Active Mode / Semi-Active Mode(活动/半活动模式)
mqcn MQTT代理连接状态
MQCONNECT(已连接)
MQDISCONNECT(未连接)
dalm 设备报警,指定哪个设备有通信问题
galm 用户可以定义自己的一般报警和触发器
ngal 一般报警的数量
grow 一般报警的行数
acat 报警类别
critical
alarm
warning
event
view
astt 报警状态
ON
OFF
amod 报警模式
UNACKALARM(撤消报警)
DISABLE(禁用报警)
atim 报警时间戳
alid 当用户使用80接口功能确认报警时,报警ID必须被复制下来
comt 报警条件描述
ndal 设备报警的数量
drow 设备报警的行数
chnl 设备的通道数
addr 设备地址

Function 62 Ping

HTTP API Header

(GET)

Resource Path: /api/v1/funcno62

Content-Type: application/json

Authorization: Bearer \

Function 70 网关控制

HTTP API header

(POST)

Resource Path: /api/v1/funcno70

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 70,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "acts": "restartnew"
  5. }

响应body的句式

  1. {
  2. "func": 70,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 70
wtrm 复制到响应信息的水印信息
acts 请求的行为:
restart:重新启动网关y
restartnew:用新的配置重新启动网关
shutdown:关闭网关
响应 字段说明
func 功能代码 70
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 71 状态控制

HTTP API Header

(POST)

Resource Path: /api/v1/funcno71

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 71,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "stat": "standby"
  5. }

响应body的句式

  1. {
  2. "func": 71,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 71
wtrm 复制到响应信息的水印信息
stat 请求的行为:
standby:待机模式(遥测将停止)
active:主动模式
响应 字段说明
func 功能代码 71
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 73 实例信息

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno73

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 73,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240"
  4. }

响应body的句式

  1. {
  2. "func": 73,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "errc": 0,
  5. "agts": [
  6. {
  7. "uuid": "16538d28-4592-11e9-a787-00e067109f12",
  8. "time": "2019/11/10 13:42:17",
  9. "expd": "2070/01/01 08:00:00",
  10. "rest": "00:00:00:00",
  11. "data": "2.113112",
  12. "natt": "34",
  13. "nalr": "10",
  14. "tatt": "50",
  15. "talr": "102",
  16. "tusg": "10.3426",
  17. "matt": "100",
  18. "malr": "500",
  19. "musg": "1000",
  20. "self": "Y"
  21. },
  22. {
  23. "uuid": "87244d28-4592-11e9-a787-00e097109f12",
  24. "time": "2019/11/10 13:42:17",
  25. "expd": "2070/01/01 08:00:00",
  26. "rest": "00:00:00:00",
  27. "data": "0.1276532",
  28. "natt": "19",
  29. "nalr": "13",
  30. "tatt": "50",
  31. "talr": "102",
  32. "tusg": "10.3426",
  33. "matt": "100",
  34. "malr": "500",
  35. "musg": "1000",
  36. "self": "N"
  37. },
  38. {
  39. "uuid": "11133d28-4592-11e9-a787-00e077109f12",
  40. "time": "2019/11/10 13:42:17",
  41. "expd": "2070/01/01 08:00:00",
  42. "rest": "00:00:00:00",
  43. "data": "1.2367209",
  44. "natt": "21",
  45. "nalr": "8",
  46. "tatt": "50",
  47. "talr": "102",
  48. "tusg": "10.3426",
  49. "matt": "100",
  50. "malr": "500",
  51. "musg": "1000",
  52. "self": "N"
  53. }
  54. ],
  55. "nagt": 3
  56. }
请求 字段说明
func 功能代码 73
wtrm 复制到响应信息的水印信息
响应 字段说明
func 功能代码 73
wtrm 从请求信息中复制的水印
errc 编译器错误代码
agts Neuron实例列表
uuid UUID
time 最后信息更新的时间
expd 系统过期时间
rest 系统不活动的时间间隔
data 数据使用情况
natt 属性的数量
nalr 报警点的数量
tatt 总的属性数
talr 总的报警数
tusg 总的数据使用量
matt 最大的属性数
malr 最大的报警数
musg 最大的数据使用量
self 自身标志 (Y/N)
nagt 实例的数量 Number of instances

Function 74 关于信息

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno74

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 74,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240"
  4. }

响应body的句式

  1. {
  2. "func": 74,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "errc": 0,
  5. "sysn": "NEURON SYSTEM v1.1.1",
  6. "cpyr": "Copyright (C) 2020, EMQ Technologies Co., Ltd. All rights</br>reserved.",
  7. "modl": "ENT-x86_64-1-0101",
  8. "srno": "SN010101200227",
  9. "bver": " 1.1.1",
  10. "pver": 1,
  11. "host": "Instance 0",
  12. "expd": "2020/12/30 11:59:00",
  13. "rest": "306:23:03:07",
  14. "tatt": 2,
  15. "matt": 10000,
  16. "talr": 2,
  17. "malr": 1600,
  18. "tusg": 0.00010799,
  19. "musg": 100000000,
  20. "cont": "Joey Cheung (joey@emqx.io)",
  21. "uuid": "16538d28-4592-11e9-a787-00e067109f12"
  22. }
请求 字段说明
func 功能代码 74
wtrm 复制到响应信息的水印信息
响应 字段说明
func 功能代码 74
wtrm 从请求信息中复制的水印
errc 编译器错误代码
sysn 系统名称
cpyr 版权信息
modl 系统型号
modl 系统序列号
srno 序列号
bver 软件构建版本
pver 协议号
host 主机名
expd 过期时间
rest 剩余可用时间
tatt 使用中的属性总数
matt 允许的最大属性数
talr 使用中的报警总数
malr 允许的最大报警数
tusg 总的数据使用量
musg 允许使用的最大数据使用量
cont 联系信息
uuid UUID

Function 79 显示报警

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno79

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 79,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "actn": "act_en"
  5. }

响应body的句式

  1. {
  2. "func": 79,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 79
wtrm 复制到响应信息的水印信息
actn 可以是以下任意一种操作:
act_en:主动启用警报
act_unack:主动解除警报
act_all:激活所有警报
all_alm:所有警报
all_en:所有启用的警报
all_dis:
响应 字段说明
func 功能代码 79
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 80 报警确认

HTTP API Header

(POST)

Resource Path: /api/v1/funcno80

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 80,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "alid": 0,
  5. "actn": "acknowledge"
  6. }

响应body的句式

  1. {
  2. "func": 80,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 80
wtrm 复制到响应信息的水印信息
alid 这个ID是由网关在心跳信息中给出的。复制正在确认的报警的ID。
actn 可以是以下任意一种操作:
acknowledge(确认)
enable(启用)
disable(禁用)
响应 字段说明
func 功能代码 80
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 81 读历史报警

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno81

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 81,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "srch": "FromFirst",
  5. "sett": "",
  6. "tokn": "",
  7. "ofst": 0,
  8. "frti": 1607335939,
  9. "toti": 1607335950,
  10. "cate": "alarm",
  11. "patn": "Temp"
  12. }

响应body的句式

  1. {
  2. "func": 81,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "errc": 0,
  5. "frti": 1577930400,
  6. "toti": 1582552859,
  7. "nalm": 10,
  8. "ordr": "ascending",
  9. "rows": [
  10. {
  11. "anum": 1,
  12. "tstp": 1581482963,
  13. "uack": "",
  14. "cate": "alarm",
  15. "stat": "on",
  16. "comt": "temp2@Temp (791) < low@Temp (800)"
  17. },
  18. {
  19. "anum": 2,
  20. "tstp": 1581484493,
  21. "uack": "",
  22. "cate": "alarm",
  23. "stat": "off",
  24. "comt": "temp2@Temp (0) < low@Temp (0)"
  25. },
  26. {
  27. "anum": 3,
  28. "tstp": 1581485070,
  29. "uack": "",
  30. "cate": "alarm",
  31. "stat": "ack",
  32. "comt": "temp2@Temp (791) < low@Temp (790)"
  33. },
  34. {
  35. "anum": 4,
  36. "tstp": 1581513521,
  37. "uack": "",
  38. "cate": "alarm",
  39. "stat": "on",
  40. "comt": "temp1@Temp (0) < low@Temp (790)"
  41. },
  42. {
  43. "anum": 5,
  44. "tstp": 1581513521,
  45. "uack": "",
  46. "cate": "alarm",
  47. "stat": "on",
  48. "comt": "temp2@Temp (0) < low@Temp (790)"
  49. },
  50. {
  51. "anum": 6,
  52. "tstp": 1581513521,
  53. "uack": "",
  54. "cate": "alarm",
  55. "stat": "on",
  56. "comt": "temp3@Temp (0) < low@Temp (790)"
  57. },
  58. {
  59. "anum": 7,
  60. "tstp": 1581513580,
  61. "uack": "",
  62. "cate": "alarm",
  63. "stat": "off",
  64. "comt": "temp1@Temp (0) < low@Temp (0)"
  65. },
  66. {
  67. "anum": 8,
  68. "tstp": 1581513584,
  69. "uack": "",
  70. "cate": "alarm",
  71. "stat": "off",
  72. "comt": "temp2@Temp (0) < low@Temp (0)"
  73. },
  74. {
  75. "anum": 9,
  76. "tstp": 1581513592,
  77. "uack": "",
  78. "cate": "alarm",
  79. "stat": "off",
  80. "comt": "temp3@Temp (0) < low@Temp (0)"
  81. },
  82. {
  83. "anum": 10,
  84. "tstp": 1581515415,
  85. "uack": "",
  86. "cate": "alarm",
  87. "stat": "on",
  88. "comt": "temp2@Temp (791) < low@Temp (800)"
  89. }
  90. ],
  91. "tokn": "5e44029700000003"
  92. }
请求 字段说明
func 功能代码 81
wtrm 复制到响应信息的水印信息
srch 搜索方法 Search Method
FromFirst — 表示向前搜索
FromLast — 表示向后搜索
UseID — 用于连续搜索
Blank — 表示使用FromYear
sett Today
Yesterday
ThisWeek
LastWeek
ThisMonth
LastMonth
如果使用下面的FromYear或者是ToYear,则为空,且只能与UseID的搜索方法一起使用,或在上面的搜索方法中的第一个为空
tokn 前一次请求的ID字符串,用于下次搜索。(仅与UseID的搜索方法一起使用)
ofst 下次搜索的偏移量。正向或者负向,仅与UseID的搜索方法一起使用,仍使用下面的搜索模式
frti 开始日期(时间戳)
toti 结束日期(时间戳)
cate 报警类别
patn 搜索模式-在报警文本的任何地方检查匹配字符串。
响应 字段说明
func 功能代码 81
wtrm 从请求信息复制的水印A string that copied from the request message
errc 编译器错误代码
frti 开始日期 (时间戳)
toti 结束日期 (时间戳)
nalm Total number of alarms found
ordr Order
ascending
descending
anum Alarm index number
tstp Alarm happening time
uack User who acknowledge this alarm
cate Alarm Category
stat Status
on — alarm on time
off — alarm off time
ack — alarm ack time
comt Alarm message
tokn ID string for next search

Function 82 读历史趋势

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno82

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 82,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "scrn": "test",
  5. "attn": "data1",
  6. "fend": 0,
  7. "tokn": -1,
  8. "frti": 1632978564,
  9. "toti": 1632982164
  10. }

响应body的句式

  1. {
  2. "func": 82,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "errc": 0,
  5. "frti": 1632978564,
  6. "toti": 1632982164,
  7. "npts": 500,
  8. "itvl": 1,
  9. "tokn": 500,
  10. "ntps": 500,
  11. "tele": [
  12. {
  13. "objn": "test",
  14. "tstp": 1632980285,
  15. "t": 1
  16. },
  17. {
  18. "objn": "test",
  19. "tstp": 1632980286,
  20. "t": 1
  21. },
  22. {
  23. "objn": "test",
  24. "tstp": 1632980287,
  25. "t": 1
  26. }
  27. ]
  28. }
请求 字段说明
func 功能代码 82
wtrm 复制到响应信息的水印信息
srcn 带前缀和后缀的对象名称
attn 属性名称(空着表示所有属性)
fend 是否包含最后一个点
1 — 包含
0 — 不包含
tokn 用于下次搜索的文件索引号
frti 开始时间(时间戳)
toti 结束时间(时间戳)
响应 字段说明
func 功能代码 82
wtrm 从请求信息中复制的水印
errc 编译器错误代码
frti 开始时间(时间戳)
toti 结束时间(时间戳)
itvl 趋势点之间的时间间隔
npts 找到趋势点的数量
tokn 根据Token去实现下一次的搜索
tele 遥测数组
objn 对象名称
tstp 时间戳

Function 83 读日志

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno83

Content-Type: application/json

Authorization: Bearer \

HTTP API 或者 Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 83,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "logl": "all",
  5. "srtt": 1604311512,
  6. "stpt": 1604311517,
  7. "srtl": 0,
  8. "proc": "all"
  9. }

响应body的句式

  1. {
  2. "func": 83,
  3. "wtrm": "DEMO-Neuron-1001_1532419775357_240",
  4. "nrow": 500,
  5. "rows": [
  6. {
  7. "tstp": 1532419775,
  8. "logl": "warning",
  9. "proc": "CORE",
  10. "data": "extractlicense: loading certificate into memory"
  11. },
  12. {
  13. "tstp": 1532419775,
  14. "logl": "debug",
  15. "proc": "DRVR",
  16. "data": "debuglog: Cannot connect"
  17. },
  18. {
  19. "tstp": 1532419775,
  20. "logl": "err",
  21. "proc": "SERV",
  22. "data": "serverdisconnect: send disconnection request failed return code -3"
  23. },
  24. {
  25. "tstp": 1532419775,
  26. "logl": "warning",
  27. "proc": "CORE",
  28. "data": "update_process: process /home/neuron/ /bin/neuron_o_mbstcp was killed by uncaught signal 9 "
  29. }
  30. ],
  31. "last": 400,
  32. "errc": 0
  33. }
请求 字段说明
func 功能代码 83
wtrm 复制到响应信息的水印信息
logl 日志等级,
允许等级 :
all,
debug,
info,
warning,
err
srtt 开始的时间戳,默认为无。 Sart timestamp(s), default none
stpt 结束的时间戳,默认为无。如果”stpt”设置了值,则必须有一个非空的”srtt”。
srtl 日志文件的起始行号,也可以从响应信息的 “last “中获取,默认为0。
proc 进程名称
响应 字段说明
func 功能代码 83
wtrm 从请求信息中复制的水印
nrow 行数, 值 <= 500
rows 日志内容的行数,json数组
tstp 日志时间戳(s)
logl 日志等级
proc 进程名称
data 日志字符串数组
last 最后的行号,对请求信息的”strl”很有用
errc 编译器错误代码

Function 84 日志切换

Websockets or MQTT Communication

请求body的句式

  1. {
  2. "func": 84,
  3. "wtrm": "DEMO-Neuron-1002_1532419775357_240",
  4. "logn": "SCRIPTLOG",
  5. "vars": 100
  6. }

响应body的句式

  1. {
  2. "func": 84,
  3. "wtrm": "DEMO-Neuron-1002_1532419775357_240",
  4. "errc": 0
  5. }
请求 字段说明
func 功能代码 84
wtrm 复制到响应信息的水印信息
logn 日志名称:
SCRIPTLOG
DRIVERLOG
SERVICELOG
vars 可报告的最大日志行数的变量
响应 字段说明
func 功能代码 84
wtrm 从请求信息中复制的水印
errc 编译器错误代码

Function 93 读属性

HTTP API Header

(PUT)

Resource Path: /api/v1/funcno93

Content-Type: application/json

Authorization: Bearer \

HTTP状态代码 说明
200 操作成功
400 无效操作

HTTP API 或者Websockets 或者 MQTT 通信

请求body的句式

  1. {
  2. "func": 93,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "srcn": "object1",
  5. "attn": "data1"
  6. }

响应body的句式

  1. {
  2. "func": 93,
  3. "wtrm": "DEMO-Neuron-1001_1532421778827_1",
  4. "erroc": 0,
  5. "tele": [
  6. {
  7. "objn": "object1",
  8. "tstp": 1643177359,
  9. "data1": 0
  10. }
  11. ]
  12. }
请求 字段说明
func 功能代码 93
wtrm 复制到响应信息的水印信息
srcn 带有前缀和后缀的对象名称
attn 属性名称
响应 字段说明
func 功能代码 93
wtrm 从请求信息中复制的水印
erroc 错误编码
tele 遥测阵列
objn 对象名称
tstp 时间戳

仅限文件更新HTTP API

(POST)

Resource Path: /api/v1/{NAME}

Content-Type: multipart/form-data

Authorization: Bearer \

名称 描述
许可证 neuron 许可证文件
标志 neuron 前端标志文件
HTTP状态代码 说明
200 操作成功
400 无效操作

错误响应

The above gateway responses are assumed the request function are successfully handled. In case of failure to process the request, the gateway will return the following error message to the response topic.

Error 响应body的句式

  1. {
  2. "func": 14,
  3. "wtrm": "DEMO-Neuron-1001_1532419203896_239",
  4. "errc": 1001,
  5. "emsg": " Statement expected for this row "
  6. }
Response Compiler Error
func 功能代码
wtrm 从请求信息复制的字符串
errc 编译器错误代码
emsg 错误代码 Error text
0 , “No Error”
2 , “Function no has not found!”
3 , “Missing JSON item”
4 , “Invalid JSON structure”
10 , “Object locked”
11 , “Object not found”
12 , “Attribute locked”
13 , “Attribute not found”
14 , “Object number invalid”
15 , “Modification not allowed”
16 , “Attribute type invalid”
20 , “Operation not allowed”
21 , “Wrong password”
22 , “Wrong user name”
23 , “Not super user account”
24 , “System function error”
25 , “User not found”
26 , “Time out”
27 , “Default level”
28 , “Wrong number of levels”
29 , “User already exist”
30 , “Too many users”
40 , “Alarm not found”
41 , “Report empty”
42 , “Data format error”
43 , “Wrong revision”
44 , “Need rebuild file”
50 , “Too many global variables”
51 , “Global variable name length exceed”
52 , “Duplicated Global variables found”
53 , “Subroutine number not found”
54 , “Subroutine already exist”
55 , “No disk space for subroutine”
56 , “Search program number error”
57 , “No search string”
70 , “Wrong status change request”
71 , “Wrong gateway control request”
72 , “Wrong key”
73 , “Function not allowed in SEMI mode”
80 , “Attribute read only”
81 , “Object name error”
82 , “Data range error”
502 , “Too many channels”
503 , “Channel driver length size exceed maximum”
504 , “Channel driver invalid”
505 , “Channel driver type invalid”
506 , “Too many dummy variables”
507 , “Hostname length exceed maximum”
508 , “Port number is invalid”
509 , “Device file length too long”
510 , “Baud rate number is invalid”
511 , “Data bit invalid”
512 , “Stop bit invalid”
513 , “Parity bit invalid”
514 , “Too many objects”
515 , “Object ID length exceed maximum”
516 , “Object name length exceed maximum”
517 , “Duplicated object ID found”
518 , “Duplicated object name found”
519 , “Object size incorrect”
520 , “Update time incorrect”
521 , “Logging time incorrect”
522 , “Object status invalid”
523 , “Too many attributes”
524 , “Attribute status invalid”
525 , “Attribute type incorrect”
526 , “Attribute ID length exceed maximum”
527 , “Attribute name length exceed maximum”
528 , “Duplicated attribute ID found”
529 , “Duplicated attribute name found”
530 , “Decimal value invalid”
531 , “Attribute R/W length exceed maximum”
532 , “Attribute object number is not match”
533 , “Attribute object index is not match”
534 , “Prefix length exceed maximum”
535 , “Suffix length exceed maximum”
536 , “Prefix and Suffix string empty”
537 , “Tag address length exceed maximum”
538 , “Tag address invalid”
539 , “Tag address delimiter invalid”
540 , “Dummy sign invalid”
541 , “Tag address overlap”
542 , “Tag RW direction invalid”
543 , “Tag attribute is not match”
544 , “Tag bit type is not match”
545 , “Tag bit type error”
546 , “Tag ix exceed limit”
547 , “Tag array member invalid”
548 , “Alarm object name length exceed”
549 , “Alarm attribute name length exceed”
550 , “Alarm subroutine number not found”
551 , “Alarm category not found”
552 , “Alarm attribute not match”
553 , “Alarm ID not found”
554 , “Alarm type not found”
555 , “Alarm object name not found”
556 , “Tag name length exceed maximum”
557 , “Tag name invalid”
558 , “Duplicated tag name found”
559 , “Attribute tag length exceed”
560 , “Attribute tag not found”
561 , “Attribute tag index invalid”
562 , “Tag array invalid”
563 , “Tag type invalid”
564 , “Tag R/W direction invalid”
1001, “Statement expected for this row”
1002, “Statement does not exist”
1003, “INIT follows a normal statement (except REM, INIT)”
1004, “THEN expected after test statement”
1005, “Unexpected THEN, not a test above”
1006, “Unexpected ELIF/ELSE, not a THEN above”
1007, “Unknown statement”
1008, “GOTO undefined position (POSxxx)”
1009, “Error in POSxxx statement”
1010, “FATAL! Cannot solve all jump instruction”
2001, “Too many local variables in one file”
2002, “Syntax error in INIT (only assign local vars)”
2003, “INIT: assign (=) expected”
2004, “INIT: assign value expected”
2005, “INIT: expression delimiter (;) expected”
2006, “Syntax error in token”
2007, “Too long local variable name”
2008, “Syntax error in local variable”
2009, “Syntax error in constant”
2010, “Too long DB variable name”
2011, “Syntax error in [..] construction”
2012, “Syntax error in DB variable”
2013, “Syntax error in object variable”
2014, “Illegal label number”
2015, “Illegal subroutine number”
2016, “Too long global variable name”
2017, “Syntax error in global variable”
2018, “Syntax error in [index] construction”
2019, “Too long [index] name”
2020, “Syntax error in GOTO POSxxx instruction”
2021, “Syntax error in CALL SRxxx instruction”
2023, “Declaring a control variable”
2024, “Declaring too many local variables”
2025, “Local variable not declared/not a control variable”
2029, “Too long object name”
2030, “Too long field name”
2101, “Not an executable instruction/variable”
2102, “; expected after instruction”
2103, “No statement should follow RETURN/GOTO”
2104, “= expected after variable for assign”
2105, “; not allowed in test or inside parenthesis”
2106, “Instruction not allowed in test or inside parenthesis”
2107, “Operand expected”
2108, “Instruction should be first token in expression”
2109, “Operand/expression not expected”
2110, “Assign not allowed after test”
2111, “Assign variable is read-only”
2112, “) unexpected”
2113, “Object variable does not exist”
2114, “Index of Object variable not inside array”
2115, “Tag variable does not exist”
2116, “Index of Tag variable not inside array”
2117, “Unary used twice on same operand”
2118, “Unrecognized operator”
2119, “Application part for station does not exist”
2120, “Global variable does not exist”
2121, “Index of global variable not inside array”
2122, “, expected after variable declaration”
2123, “Index must be used on variable array”
2124, “Index cannot be used on single variable”
2125, “Operator is not allowed in double calculation”
2132, “Local variable as index is not used before”
2201, “Expression not completed”
2202, “Expression ended before resolving last parenthesis”
2300, “Global variable name too long”
2301, “Global variable name have capital letter”
2302, “Global variable length too large < 1000”
2303, “Global variable comment too long”