- Базовый URL
/api/v01/<object>/
/help
Возвращает список доступных команд и их краткое описание.
/
Возвращает стандартную информацию об объекте.
/regs
Получить список/значения регистров (как реализовано в MBSlave::request_regs).
GET /<object>/regs?addr=mbaddr1,mbaddr2®s=reg1,reg2
Параметры:
addr — список адресов Modbus slave (строка, через запятую)
regs — список регистров (строка, через запятую)
/getparam и /setparam
Чтение и изменение выбранных runtime-параметров процесса.
Базовый путь: /api/v01/ <object>/...
Поддерживаемые параметры:
- force (0|1)
- sockTimeout (ms)
- sessTimeout (ms)
- updateStatTime (ms)
- Чтение параметров
GET /api/v01/MBSlave1/getparam?name=force&name=sockTimeout&name=sessTimeout&name=updateStatTime
Response:
{
"result": "OK",
"params": {
"force": 0,
"sockTimeout": 30000,
"sessTimeout": 2000,
"updateStatTime": 4000
},
"unknown": ["..."]
}
- Изменение параметров
GET /api/v01/MBSlave1/setparam?force=1&sockTimeout=45000&sessTimeout=2500&updateStatTime=5000
Response:
{
"result": "OK",
"updated": {
"force": 1,
"sockTimeout": 45000,
"sessTimeout": 2500,
"updateStatTime": 5000
},
"unknown": ["..."]
}
- Ограничения
- Изменение параметров через
/setparam может быть заблокировано флагом httpEnabledSetParams.
- При заблокированном режиме
/setparam вернёт ошибку.
- Коды ошибок
- 400/5xx: некорректные значения (например,
sockTimeout="abc")
- 400: пустой запрос
/setparam (нет key=value) или /getparam (нет name)
/status
Возвращает текущее состояние объекта в JSON (аналогично getInfo()).
GET /api/v01/MBSlave1/status
Ответ содержит поля:
- name, tcp{ip,port}, logserver{host,port}
- iomap{size,map[]}, myaddr
- stat{connectionCount,smPingOK,restartTCPServerCount}
- tcp_clients[], tcp_sessions{count,max_sessions,updateStatTime,items[]}
- sockTimeout, sessTimeout, updateStatTime, force
GET /api/v01/MBSlave1/status
Response:
{
"result": "OK",
"status": {
"name": "MBSlave1",
"tcp": {"ip":"192.168.1.10","port":502},
"monitor": "....",
"logserver": {"host":"127.0.0.1","port":5510},
"iomap": {
"size": 3,
"map": [
{"mbaddr":"1","iomap":12},
{"mbaddr":"2","iomap":8}
]
},
"myaddr": 1,
"stat": {"connectionCount":42,"smPingOK":42,"restartTCPServerCount":0},
"tcp_clients": [
{"id":1,"short":"..."},
{"id":2,"short":"..."}
],
"tcp_sessions": {
"count": 2,
"max_sessions": 10,
"updateStatTime": 4000,
"items": [
{"ip":"10.0.0.5","askCount":123},
{"ip":"10.0.0.6","askCount":77}
]
},
"sockTimeout": 30000,
"sessTimeout": 2000,
"updateStatTime": 4000,
"force": 0
}
}