Files
hvac_end_python/api/modbus_api.py
2025-09-29 16:49:43 +08:00

33 lines
1.0 KiB
Python

from fastapi import APIRouter
from api.schemas.modbus_schemas import ModbusIn, ModbusOut
from common import reponse_code as rc
from modbus.modbus_util import write_register, read_register_float_value
modbus = APIRouter()
@modbus.post("/write")
def write_float_value(modbusIn: ModbusIn):
if modbusIn.type == 'float':
value = float(modbusIn.value)
elif modbusIn.type == 'short':
value = int(modbusIn.value)
success, msg = write_register(host=modbusIn.host, port=modbusIn.port,
address=modbusIn.address, value=value)
if success:
return rc.response_success("修改成功")
else:
return rc.response_error(msg)
@modbus.post("/read")
def write_float_value(modbusOut: ModbusOut):
success, result_dict = read_register_float_value(host=modbusOut.host, port=modbusOut.port, address=modbusOut.address)
if success:
return rc.response_success(msg="读取成功", data=result_dict)
else:
return rc.response_error('读取失败')