[bug fix] 修复接口参数处理错误

get_params接口原先获取的是"param_names"字段的内容,修改为获取"params"字段的参数。
This commit is contained in:
cuijingwei@brisonus.com 2025-02-22 13:47:00 +08:00
parent 2803e6a9c6
commit 083e1d9e05

View File

@ -89,17 +89,18 @@ class ModbusController:
return 0
# throw an error. { param.datatype } dataType not supported.
def write_parameter(self, param: Parameter, value: float):
def write_parameter(self, param: Parameter, value):
# Calculate register address from byte offset
reg_addr = self._byte_addr_to_register_addr(param.offset)
if param.data_type == "float32":
if param.data_type == "float":
print('convert')
# Convert float to two 16-bit registers using little endian byte-swap
bytes_value = struct.pack('<f', float(value))
registers = struct.unpack('<HH', bytes_value)
elif param.data_type == "int32_t":
# Convert float to two 16-bit registers using little endian byte-swap
bytes_value = struct.pack('<i', int(value))
else:
@ -108,6 +109,8 @@ class ModbusController:
# Swap registers for byte-swap format
swapped_registers = (registers[0], registers[1])
print(swapped_registers)
self.master.execute(
self.slave_addr,
self.cst.WRITE_MULTIPLE_REGISTERS,
@ -213,6 +216,7 @@ class TcpServer(QCoreApplication):
# Send response
response = json.dumps(res_obj)
response_data = response.encode()
print(response)
# Ensure complete send
total_sent = 0
@ -241,7 +245,7 @@ class TcpServer(QCoreApplication):
res = False
match cmd_type:
case "get_params":
params = data_obj["data"]["param_names"]
params = data_obj["data"]["params"]
param_data = self.handle_get_params(params)
res_data = param_data
res = True