Добрый день. Пытаюсь следовать документации и писать напрямую в порт следующую структуру. Для этого в топик /rpc/v1/wb-mqtt-serial/port/Load/wb я отправляю:
{
"params": {
"protocol": "modbus-tcp",
"ip": "192.168.1.81",
"port": 502,
"slave_id": 255,
"function": "0x10",
"address": 41001,
"count": 4,
"format": "HEX",
"msg": "0x0180010000000000",
"response_size": 12,
"total_timeout": 10000
}
}
Но получаю ошибку:
{“error”:{“code”:-32000,“data”:“Validation failed.\nError 1\n context: [protocol]\n desc: Failed to match against any enum values.\nError 2\n context: \n desc: Failed to validate against schema associated with property name ‘protocol’.\nError 3\n context: \n desc: Failed to validate against child schema #0.\nError 4\n context: [function]\n desc: Value type not permitted by ‘type’ constraint.\nError 5\n context: \n desc: Failed to validate against schema associated with property name ‘function’.\nError 6\n context: \n desc: Failed to validate against child schema #1.\nError 7\n context: \n desc: Failed to validate against any child schemas allowed by oneOf constraint.\nError 8\n context: \n desc: Failed to validate against child schema #3.\n”,“message”:“Server error”},“id”:null}
Если я просто пишу в топик wb-mqtt-serial/port/Load/wb, как указано в документации, то ничего не просходит. Если я указываю для значения function код 16, то тоже происходит ошибка.
Если я записываю структуру, где отправляется собранный кадр:
{
"params": {
"ip": "192.168.1.81",
"port": 502,
"response_size": 12,
"format": "HEX",
"msg": "92f70000000fff10a0290004080180010000000000",
"total_timeout": 1000
}
}
То ошибки нет. Устройство принимает команду. Подскажите, что я делаю не так в первом JSON?
Команда, которую я пытаюсь повторить:
modbus_client_rpc --debug -mtcp -a255 -t0x10 -r41001 -c4 -p502 192.168.1.81 0x0180 0x0100 0x0000 0x0000
Напрямую писать в порт мне нужно, т.к. шаблоны не поддерживают функцию 0x17

