33 lines
1.0 KiB
Python
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('读取失败')
|
|
|
|
|