[bug fix] 修复接口参数处理错误
get_params接口原先获取的是"param_names"字段的内容,修改为获取"params"字段的参数。
This commit is contained in:
parent
2803e6a9c6
commit
083e1d9e05
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user