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