# hardware/transmitter.py from pymodbus.exceptions import ModbusException import socket from config.ini_manager import ini_manager from config.settings import app_set_config import time from metric_device import DeviceManager from enum import Enum, unique @unique class HopperType(Enum): UPPER = 1 # 上料斗 LOWER = 2 # 下料斗 class TransmitterController: def __init__(self, relay_controller=None): self.relay_controller = relay_controller UPPER_HOPPER_IP = ini_manager.upper_transmitter_ip UPPER_HOPPER_PORT = ini_manager.upper_transmitter_port LOWER_HOPPER_IP = ini_manager.lower_transmitter_ip LOWER_HOPPER_PORT = ini_manager.lower_transmitter_port self.upper_scale = DeviceManager.get_device(UPPER_HOPPER_IP, UPPER_HOPPER_PORT, "upper_scale") # 上料斗 self.lower_scale = DeviceManager.get_device(LOWER_HOPPER_IP, LOWER_HOPPER_PORT, "lower_scale") # 下料斗 def read_data(self, transmitter_id): """获取重量函数: Args: transmitter_id 为指定的上/下料斗的id """ if transmitter_id == HopperType.UPPER: return self.upper_scale.get_valid_weight() elif transmitter_id == HopperType.LOWER: return self.lower_scale.get_valid_weight()