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