using EasyInject.Attributes; using TMPro; using UnityEngine; /// /// 输送线面板UI弹窗 /// [GameObjectBean] public sealed class ConveyorPopUI: AbstractPopUI { [Header("输送线")] [Header("设备名称")] public TMP_Text conveyor_deviceCode; [Header("驱动名称")] public TMP_Text conveyor_driverName; [Header("在线状态")] public TMP_Text conveyor_onlineStatus; [Header("工作状态")] public TMP_Text conveyor_wokingStatus; [Header("当前指令")] public TMP_Text conveyor_currentIns; [Header("上个指令")] public TMP_Text conveyor_lastIns; [Header("当前托盘")] public TMP_Text conveyor_currentContianer; [Header("上个托盘")] public TMP_Text conveyor_lastContainer; [Header("业务异常消息")] public TMP_Text conveyor_message; [Header("系统异常消息")] public TMP_Text conveyor_systemMessage; private ConveyorData baseConveyorData; private DeviceData baseDeviceData; public override void Open(IDevice conveyor) { base.Open(conveyor); ConveyorData conveyorData = conveyor.DynamicData(); DeviceData deviceData = conveyor.DeviceData; conveyor_currentContianer.text = conveyorData.containerCode; conveyor_lastContainer.text = conveyorData.lastContainerCode; conveyor_currentIns.text = conveyorData.instructionCode; conveyor_lastIns.text = conveyorData.lastInstructionCode; conveyor_deviceCode.text = deviceData.deviceCode; conveyor_onlineStatus.text = deviceData.isOnline ? "在线" : "离线"; conveyor_wokingStatus.text = deviceData.isWorking ? "工作中" : "待机"; conveyor.DataChange += DataChanageHandle; this.baseConveyorData = conveyorData; this.baseDeviceData = deviceData; gameObject.SetActive(!gameObject.activeSelf); rectTransform.transform.parent = conveyor.Transform; rectTransform.localPosition = Vector3.zero + offset; } public override void DataChanageHandle(object data, object other) { ConveyorData currentData = (ConveyorData)data; DeviceData currentDeviceData = (DeviceData)other; if (this.baseDeviceData.deviceCode != currentData.deviceCode) { return; } conveyor_currentContianer.text = currentData.containerCode; conveyor_lastContainer.text = currentData.lastContainerCode; conveyor_currentIns.text = currentData.instructionCode; conveyor_lastIns.text = currentData.lastInstructionCode; conveyor_deviceCode.text = currentDeviceData.deviceCode; conveyor_onlineStatus.text = currentDeviceData.isOnline ? "在线" : "离线"; conveyor_wokingStatus.text = currentDeviceData.isWorking ? "工作中" : "待机"; } }