using UnityEngine; using UnityEngine.UI; using System; using System.Collections.Generic; using System.IO; using TMPro; using BLEProtocol; /// /// 蓝牙演示UI - 展示如何使用BluetoothManager和BLE通信 /// public class BluetoothDemoUI : MonoBehaviour { [Header("UI组件 - 蓝牙连接")] public TextMeshProUGUI StatusText; // 状态文本 public TextMeshProUGUI deviceStatusText; [Header("UI组件 - BLE协议测试")] public TextMeshProUGUI revicedText; // 显示收发原始数据 public Button QueryRegistrationButton; // 查询注册状态按钮 public Button RegisterDeviceButton; // 注册设备按钮 public Button UserLoginButton; // 用户登录按钮 public Button QueryUserListButton; // 查询用户列表按钮 public Button UnregisterUserButton; // 注销用户按钮 public Button FingerprintEnableButton; // 指纹使能设置按钮 public Button FingerprintRecordButton; // 指纹录制按钮 public TMP_InputField UsernameInput; // 用户名输入 public Toggle FingerprintEnableToggle; // 指纹使能开关 [Header("UI组件 - 设备设置")] public TMP_InputField SettingsInputField; // 设置输入/展示框(语言/时间/定时任务共用) public Button ReadLanguageButton; // 读取语言按钮 public Button WriteLanguageButton; // 写入语言按钮 public Toggle LanguageToggle; // 语言开关(true=中文, false=英文) public Button ReadTimeButton; // 读取时间按钮 public Button WriteTimeButton; // 写入时间按钮 public Button ReadScheduleButton; // 读取定时任务按钮 public Button WriteScheduleButton; // 写入定时任务按钮 [Header("UI组件 - 外设控制")] public TMP_InputField PeripheralInputField; // 外设控制输入/展示框 public Button ReadLCDSleepButton; // 读取LCD休眠设置按钮 public Button WriteLCDSleepButton; // 写入LCD休眠设置按钮 public Button ReadLCDBrightnessButton; // 读取LCD亮度设置按钮 public Button WriteLCDBrightnessButton; // 写入LCD亮度设置按钮 public Button ReadRGBButton; // 读取RGB控制按钮 public Button WriteRGBButton; // 写入RGB控制按钮 public Button ReadWIFIButton; // 读取WIFI控制按钮 public Button WriteWIFIButton; // 写入WIFI控制按钮 public Button ReadBLEButton; // 读取BLE控制按钮 public Button WriteBLEButton; // 写入BLE控制按钮 public Button ReadMultimediaButton; // 读取多媒体控制按钮 public Button WriteMultimediaButton; // 写入多媒体控制按钮 public Button ReadFillLightButton; // 读取补光灯控制按钮 public Button WriteFillLightButton; // 写入补光灯控制按钮 public Button ReadVisibleLaserButton; // 读取可见光激光器控制按钮 public Button WriteVisibleLaserButton; // 写入可见光激光器控制按钮 public Button ReadFillLightConnectionButton; // 读取补光灯连接状态按钮 [Header("UI组件 - 害虫消灭控制")] public TMP_InputField PestControlInputField; // 害虫控制输入/展示框 public Button ReadAngleButton; // 读取角度控制按钮 public Button WriteAngleButton; // 写入角度控制按钮 public Button ReadDistanceButton; // 读取距离控制按钮 public Button WriteDistanceButton; // 写入距离控制按钮 [Header("UI组件 - 安全设置")] public TMP_InputField SafetySettingInputField; // 安全设置输入/展示框 public Button ReadMillimeterWaveButton; // 读取毫米波雷达设置按钮 public Button WriteMillimeterWaveButton; // 写入毫米波雷达设置按钮 public Button ReadVisualDetectionButton; // 读取视觉检测设置按钮 public Button WriteVisualDetectionButton; // 写入视觉检测设置按钮 public Button ReadAccelerometerSettingButton; // 读取加速度传感器设置按钮 public Button WriteAccelerometerSettingButton; // 写入加速度传感器设置按钮 public Button ReadAccelerometerDataButton; // 读取加速度传感器数据按钮 public Button ReadTemperatureMonitorButton; // 读取温度监控设置按钮 public Button WriteTemperatureMonitorButton; // 写入温度监控设置按钮 public Button ReadEnvironmentChangeButton; // 读取环境变化状态按钮 (0x56) public Button TriggerLaserTestButton; // 触发激光试射测试按钮 (0x56) [Header("UI组件 - 状态查询")] public TMP_InputField StatusQueryInputField; // 状态查询输入/展示框 public Button ReadWorkModeButton; // 读取工作模式按钮 public Button WriteWorkModeButton; // 写入工作模式按钮 public Button ReadHardwareStatusButton; // 读取硬件状态按钮 public Button ReadDeviceInfoButton; // 读取设备信息按钮 public Button WriteDeviceInfoButton; // 写入设备信息按钮 public Button ReadStatisticsButton; // 读取统计数据按钮 public Button QueryMosquitoDataButton; // 查询蚊虫数据按钮 (0xA4) public Button ReadSensorDataButton; // 读取传感器数据按钮 public Button GetAllMosquitoDataButton; // 获取所有蚊虫数据按钮 (0xA4) [Header("UI组件 - 蚊虫数据显示")] public TextMeshProUGUI MosquitoDataDisplay; // 蚊虫数据显示区域 [Header("UI组件 - 设备管理")] public Button FactoryResetButton; // 恢复出厂设置按钮 (0x60) [Header("UI组件 - OTA升级")] public Button OTAQueryVersionButton; // 查询OTA版本按钮 (0x80) public Button OTAStartUpgradeButton; // 开始OTA升级按钮 (0x81) public Button OTACancelUpgradeButton; // 取消OTA升级按钮 (0x85) public Button OTASelectFileButton; // 选择固件文件按钮 public TextMeshProUGUI OTAInfoText; // OTA信息显示(文件信息、状态、进度) // 选中的固件文件数据 private byte[] _selectedFirmwareData; private string _selectedFirmwarePath; List _deviceObjects = new List(); private List _mosquitoDataList = new List(); // 存储接收到的蚊虫数据 private List _deviceList = new List(); void Awake() { // 设置目标帧率为 60 FPS Application.targetFrameRate = 120; // 禁用垂直同步,允许更高帧率 QualitySettings.vSyncCount = 0; // 不休眠(保持屏幕常亮) Screen.sleepTimeout = SleepTimeout.NeverSleep; } void Start() { // 订阅蓝牙管理器事件 if (BluetoothManager.Instance != null) { BluetoothManager.Instance.OnInitialized += OnBluetoothInitialized; BluetoothManager.Instance.OnDeviceFound += OnDeviceFound; BluetoothManager.Instance.OnConnected += OnDeviceConnected; BluetoothManager.Instance.OnConnectFailed += OnConnectFailed; BluetoothManager.Instance.OnDisconnected += OnDeviceDisconnected; BluetoothManager.Instance.OnError += OnBluetoothError; BluetoothManager.Instance.OnLog += OnBluetoothLog; } // 订阅BLE通信事件 if (BLECommunicationManager.Instance != null) { BLECommunicationManager.Instance.OnRegistrationStatusReceived += OnRegistrationStatusReceived; BLECommunicationManager.Instance.OnRegisterResult += OnRegisterResult; BLECommunicationManager.Instance.OnUserLoginResult += OnUserLoginResult; BLECommunicationManager.Instance.OnUserListReceived += OnUserListReceived; BLECommunicationManager.Instance.OnUnregisterUserResult += OnUnregisterUserResult; BLECommunicationManager.Instance.OnFingerprintEnableResult += OnFingerprintEnableResult; BLECommunicationManager.Instance.OnFingerprintRecordResult += OnFingerprintRecordResult; BLECommunicationManager.Instance.OnRawDataReceived += OnRawDataReceived; BLECommunicationManager.Instance.OnRawDataSent += OnRawDataSent; BLECommunicationManager.Instance.OnCommunicationError += OnCommunicationError; BLECommunicationManager.Instance.OnLanguageSettingReceived += OnLanguageSettingReceived; BLECommunicationManager.Instance.OnTimeSettingReceived += OnTimeSettingReceived; BLECommunicationManager.Instance.OnScheduleTaskListReceived += OnScheduleTaskListReceived; BLECommunicationManager.Instance.OnLCDSleepSettingReceived += OnLCDSleepSettingReceived; BLECommunicationManager.Instance.OnLCDBrightnessSettingReceived += OnLCDBrightnessSettingReceived; BLECommunicationManager.Instance.OnRGBControlReceived += OnRGBControlReceived; BLECommunicationManager.Instance.OnWIFIControlReceived += OnWIFIControlReceived; BLECommunicationManager.Instance.OnBLEControlReceived += OnBLEControlReceived; BLECommunicationManager.Instance.OnMultimediaControlReceived += OnMultimediaControlReceived; BLECommunicationManager.Instance.OnFillLightControlReceived += OnFillLightControlReceived; BLECommunicationManager.Instance.OnFillLightConnectionStatusReceived += OnFillLightConnectionStatusReceived; BLECommunicationManager.Instance.OnVisibleLaserControlReceived += OnVisibleLaserControlReceived; // 订阅害虫消灭控制事件 BLECommunicationManager.Instance.OnAngleControlReceived += OnAngleControlReceived; BLECommunicationManager.Instance.OnDistanceControlReceived += OnDistanceControlReceived; // 订阅安全设置事件 BLECommunicationManager.Instance.OnMillimeterWaveSettingReceived += OnMillimeterWaveSettingReceived; BLECommunicationManager.Instance.OnVisualDetectionSettingReceived += OnVisualDetectionSettingReceived; BLECommunicationManager.Instance.OnAccelerometerSettingReceived += OnAccelerometerSettingReceived; BLECommunicationManager.Instance.OnAccelerometerDataReceived += OnAccelerometerDataReceived; BLECommunicationManager.Instance.OnTemperatureMonitorSettingReceived += OnTemperatureMonitorSettingReceived; // 订阅环境检测事件 BLECommunicationManager.Instance.OnEnvironmentChangeStatusReceived += OnEnvironmentChangeStatusReceived; // 订阅状态查询事件 BLECommunicationManager.Instance.OnWorkModeSettingReceived += OnWorkModeSettingReceived; BLECommunicationManager.Instance.OnHardwareStatusReceived += OnHardwareStatusReceived; BLECommunicationManager.Instance.OnDeviceInfoReceived += OnDeviceInfoReceived; BLECommunicationManager.Instance.OnStatisticsDataReceived += OnStatisticsDataReceived; BLECommunicationManager.Instance.OnSensorDataReceived += OnSensorDataReceived; // 订阅蚊虫数据事件 BLECommunicationManager.Instance.OnMosquitoDataReceived += OnMosquitoDataReceived; } // 绑定BLE测试按钮 if (QueryRegistrationButton != null) QueryRegistrationButton.onClick.AddListener(OnQueryRegistrationClick); if (RegisterDeviceButton != null) RegisterDeviceButton.onClick.AddListener(OnRegisterDeviceClick); if (UserLoginButton != null) UserLoginButton.onClick.AddListener(OnUserLoginClick); if (QueryUserListButton != null) QueryUserListButton.onClick.AddListener(OnQueryUserListClick); if (UnregisterUserButton != null) UnregisterUserButton.onClick.AddListener(OnUnregisterUserClick); if (FingerprintEnableButton != null) FingerprintEnableButton.onClick.AddListener(OnFingerprintEnableClick); if (FingerprintRecordButton != null) FingerprintRecordButton.onClick.AddListener(OnFingerprintRecordClick); // 绑定设备设置按钮 if (ReadLanguageButton != null) ReadLanguageButton.onClick.AddListener(OnReadLanguageClick); if (WriteLanguageButton != null) WriteLanguageButton.onClick.AddListener(OnWriteLanguageClick); if (ReadTimeButton != null) ReadTimeButton.onClick.AddListener(OnReadTimeClick); if (WriteTimeButton != null) WriteTimeButton.onClick.AddListener(OnWriteTimeClick); if (ReadScheduleButton != null) ReadScheduleButton.onClick.AddListener(OnReadScheduleClick); if (WriteScheduleButton != null) WriteScheduleButton.onClick.AddListener(OnWriteScheduleClick); // 绑定外设控制按钮 if (ReadLCDSleepButton != null) ReadLCDSleepButton.onClick.AddListener(OnReadLCDSleepClick); if (WriteLCDSleepButton != null) WriteLCDSleepButton.onClick.AddListener(OnWriteLCDSleepClick); if (ReadLCDBrightnessButton != null) ReadLCDBrightnessButton.onClick.AddListener(OnReadLCDBrightnessClick); if (WriteLCDBrightnessButton != null) WriteLCDBrightnessButton.onClick.AddListener(OnWriteLCDBrightnessClick); if (ReadRGBButton != null) ReadRGBButton.onClick.AddListener(OnReadRGBClick); if (WriteRGBButton != null) WriteRGBButton.onClick.AddListener(OnWriteRGBClick); if (ReadWIFIButton != null) ReadWIFIButton.onClick.AddListener(OnReadWIFIClick); if (WriteWIFIButton != null) WriteWIFIButton.onClick.AddListener(OnWriteWIFIClick); if (ReadBLEButton != null) ReadBLEButton.onClick.AddListener(OnReadBLEClick); if (WriteBLEButton != null) WriteBLEButton.onClick.AddListener(OnWriteBLEClick); if (ReadMultimediaButton != null) ReadMultimediaButton.onClick.AddListener(OnReadMultimediaClick); if (WriteMultimediaButton != null) WriteMultimediaButton.onClick.AddListener(OnWriteMultimediaClick); if (ReadFillLightButton != null) ReadFillLightButton.onClick.AddListener(OnReadFillLightClick); if (WriteFillLightButton != null) WriteFillLightButton.onClick.AddListener(OnWriteFillLightClick); if (ReadVisibleLaserButton != null) ReadVisibleLaserButton.onClick.AddListener(OnReadVisibleLaserClick); if (WriteVisibleLaserButton != null) WriteVisibleLaserButton.onClick.AddListener(OnWriteVisibleLaserClick); if (ReadFillLightConnectionButton != null) ReadFillLightConnectionButton.onClick.AddListener(OnReadFillLightConnectionClick); // 绑定害虫消灭控制按钮 if (ReadAngleButton != null) ReadAngleButton.onClick.AddListener(OnReadAngleClick); if (WriteAngleButton != null) WriteAngleButton.onClick.AddListener(OnWriteAngleClick); if (ReadDistanceButton != null) ReadDistanceButton.onClick.AddListener(OnReadDistanceClick); if (WriteDistanceButton != null) WriteDistanceButton.onClick.AddListener(OnWriteDistanceClick); // 绑定安全设置按钮 if (ReadMillimeterWaveButton != null) ReadMillimeterWaveButton.onClick.AddListener(OnReadMillimeterWaveClick); if (WriteMillimeterWaveButton != null) WriteMillimeterWaveButton.onClick.AddListener(OnWriteMillimeterWaveClick); if (ReadVisualDetectionButton != null) ReadVisualDetectionButton.onClick.AddListener(OnReadVisualDetectionClick); if (WriteVisualDetectionButton != null) WriteVisualDetectionButton.onClick.AddListener(OnWriteVisualDetectionClick); if (ReadAccelerometerSettingButton != null) ReadAccelerometerSettingButton.onClick.AddListener(OnReadAccelerometerSettingClick); if (WriteAccelerometerSettingButton != null) WriteAccelerometerSettingButton.onClick.AddListener(OnWriteAccelerometerSettingClick); if (ReadAccelerometerDataButton != null) ReadAccelerometerDataButton.onClick.AddListener(OnReadAccelerometerDataClick); if (ReadTemperatureMonitorButton != null) ReadTemperatureMonitorButton.onClick.AddListener(OnReadTemperatureMonitorClick); if (WriteTemperatureMonitorButton != null) WriteTemperatureMonitorButton.onClick.AddListener(OnWriteTemperatureMonitorClick); // 绑定环境检测按钮 if (ReadEnvironmentChangeButton != null) ReadEnvironmentChangeButton.onClick.AddListener(OnReadEnvironmentChangeClick); if (TriggerLaserTestButton != null) TriggerLaserTestButton.onClick.AddListener(OnTriggerLaserTestClick); // 绑定状态查询按钮 if (ReadWorkModeButton != null) ReadWorkModeButton.onClick.AddListener(OnReadWorkModeClick); if (WriteWorkModeButton != null) WriteWorkModeButton.onClick.AddListener(OnWriteWorkModeClick); if (ReadHardwareStatusButton != null) ReadHardwareStatusButton.onClick.AddListener(OnReadHardwareStatusClick); if (ReadDeviceInfoButton != null) ReadDeviceInfoButton.onClick.AddListener(OnReadDeviceInfoClick); if (WriteDeviceInfoButton != null) WriteDeviceInfoButton.onClick.AddListener(OnWriteDeviceInfoClick); if (ReadStatisticsButton != null) ReadStatisticsButton.onClick.AddListener(OnReadStatisticsClick); if (QueryMosquitoDataButton != null) QueryMosquitoDataButton.onClick.AddListener(OnQueryMosquitoDataClick); if (ReadSensorDataButton != null) ReadSensorDataButton.onClick.AddListener(OnReadSensorDataClick); // 绑定蚊虫数据按钮 if (GetAllMosquitoDataButton != null) GetAllMosquitoDataButton.onClick.AddListener(OnGetAllMosquitoDataClick); // 绑定设备管理按钮 if (FactoryResetButton != null) FactoryResetButton.onClick.AddListener(OnFactoryResetClick); // 绑定OTA升级按钮 if (OTAQueryVersionButton != null) OTAQueryVersionButton.onClick.AddListener(OnOTAQueryVersionClick); if (OTAStartUpgradeButton != null) OTAStartUpgradeButton.onClick.AddListener(OnOTAStartUpgradeClick); if (OTACancelUpgradeButton != null) OTACancelUpgradeButton.onClick.AddListener(OnOTACancelUpgradeClick); if (OTASelectFileButton != null) OTASelectFileButton.onClick.AddListener(OnOTASelectFileClick); // 订阅OTA事件 if (OTAManager.Instance != null) { OTAManager.Instance.OnVersionInfoReceived += OnOTAVersionInfoReceived; OTAManager.Instance.OnTransferProgress += OnOTATransferProgress; OTAManager.Instance.OnStateChanged += OnOTAStateChanged; OTAManager.Instance.OnError += OnOTAError; } UpdateStatus("等待初始化..."); if (deviceStatusText != null) deviceStatusText.text = "未连接"; OnInitializeClick(); } void OnDestroy() { // 取消订阅蓝牙事件 if (BluetoothManager.Instance != null) { BluetoothManager.Instance.OnInitialized -= OnBluetoothInitialized; BluetoothManager.Instance.OnDeviceFound -= OnDeviceFound; BluetoothManager.Instance.OnConnected -= OnDeviceConnected; BluetoothManager.Instance.OnConnectFailed -= OnConnectFailed; BluetoothManager.Instance.OnDisconnected -= OnDeviceDisconnected; BluetoothManager.Instance.OnError -= OnBluetoothError; BluetoothManager.Instance.OnLog -= OnBluetoothLog; } // 取消订阅BLE事件 if (BLECommunicationManager.Instance != null) { BLECommunicationManager.Instance.OnRegistrationStatusReceived -= OnRegistrationStatusReceived; BLECommunicationManager.Instance.OnRegisterResult -= OnRegisterResult; BLECommunicationManager.Instance.OnUserLoginResult -= OnUserLoginResult; BLECommunicationManager.Instance.OnUserListReceived -= OnUserListReceived; BLECommunicationManager.Instance.OnUnregisterUserResult -= OnUnregisterUserResult; BLECommunicationManager.Instance.OnFingerprintEnableResult -= OnFingerprintEnableResult; BLECommunicationManager.Instance.OnFingerprintRecordResult -= OnFingerprintRecordResult; BLECommunicationManager.Instance.OnRawDataReceived -= OnRawDataReceived; BLECommunicationManager.Instance.OnRawDataSent -= OnRawDataSent; BLECommunicationManager.Instance.OnCommunicationError -= OnCommunicationError; BLECommunicationManager.Instance.OnLanguageSettingReceived -= OnLanguageSettingReceived; BLECommunicationManager.Instance.OnTimeSettingReceived -= OnTimeSettingReceived; BLECommunicationManager.Instance.OnScheduleTaskListReceived -= OnScheduleTaskListReceived; BLECommunicationManager.Instance.OnLCDSleepSettingReceived -= OnLCDSleepSettingReceived; BLECommunicationManager.Instance.OnLCDBrightnessSettingReceived -= OnLCDBrightnessSettingReceived; BLECommunicationManager.Instance.OnRGBControlReceived -= OnRGBControlReceived; BLECommunicationManager.Instance.OnWIFIControlReceived -= OnWIFIControlReceived; BLECommunicationManager.Instance.OnBLEControlReceived -= OnBLEControlReceived; BLECommunicationManager.Instance.OnMultimediaControlReceived -= OnMultimediaControlReceived; BLECommunicationManager.Instance.OnFillLightControlReceived -= OnFillLightControlReceived; BLECommunicationManager.Instance.OnFillLightConnectionStatusReceived -= OnFillLightConnectionStatusReceived; BLECommunicationManager.Instance.OnVisibleLaserControlReceived -= OnVisibleLaserControlReceived; // 取消订阅害虫消灭控制事件 BLECommunicationManager.Instance.OnAngleControlReceived -= OnAngleControlReceived; BLECommunicationManager.Instance.OnDistanceControlReceived -= OnDistanceControlReceived; // 取消订阅安全设置事件 BLECommunicationManager.Instance.OnMillimeterWaveSettingReceived -= OnMillimeterWaveSettingReceived; BLECommunicationManager.Instance.OnVisualDetectionSettingReceived -= OnVisualDetectionSettingReceived; BLECommunicationManager.Instance.OnAccelerometerSettingReceived -= OnAccelerometerSettingReceived; BLECommunicationManager.Instance.OnAccelerometerDataReceived -= OnAccelerometerDataReceived; BLECommunicationManager.Instance.OnTemperatureMonitorSettingReceived -= OnTemperatureMonitorSettingReceived; // 取消订阅环境检测事件 BLECommunicationManager.Instance.OnEnvironmentChangeStatusReceived -= OnEnvironmentChangeStatusReceived; // 取消订阅状态查询事件 BLECommunicationManager.Instance.OnWorkModeSettingReceived -= OnWorkModeSettingReceived; BLECommunicationManager.Instance.OnHardwareStatusReceived -= OnHardwareStatusReceived; BLECommunicationManager.Instance.OnDeviceInfoReceived -= OnDeviceInfoReceived; BLECommunicationManager.Instance.OnStatisticsDataReceived -= OnStatisticsDataReceived; BLECommunicationManager.Instance.OnSensorDataReceived -= OnSensorDataReceived; // 取消订阅蚊虫数据事件 BLECommunicationManager.Instance.OnMosquitoDataReceived -= OnMosquitoDataReceived; } // 取消按钮绑定 if (QueryRegistrationButton != null) QueryRegistrationButton.onClick.RemoveListener(OnQueryRegistrationClick); if (RegisterDeviceButton != null) RegisterDeviceButton.onClick.RemoveListener(OnRegisterDeviceClick); if (UserLoginButton != null) UserLoginButton.onClick.RemoveListener(OnUserLoginClick); if (QueryUserListButton != null) QueryUserListButton.onClick.RemoveListener(OnQueryUserListClick); if (UnregisterUserButton != null) UnregisterUserButton.onClick.RemoveListener(OnUnregisterUserClick); if (FingerprintEnableButton != null) FingerprintEnableButton.onClick.RemoveListener(OnFingerprintEnableClick); if (FingerprintRecordButton != null) FingerprintRecordButton.onClick.RemoveListener(OnFingerprintRecordClick); // 取消设备设置按钮绑定 if (ReadLanguageButton != null) ReadLanguageButton.onClick.RemoveListener(OnReadLanguageClick); if (WriteLanguageButton != null) WriteLanguageButton.onClick.RemoveListener(OnWriteLanguageClick); if (ReadTimeButton != null) ReadTimeButton.onClick.RemoveListener(OnReadTimeClick); if (WriteTimeButton != null) WriteTimeButton.onClick.RemoveListener(OnWriteTimeClick); if (ReadScheduleButton != null) ReadScheduleButton.onClick.RemoveListener(OnReadScheduleClick); if (WriteScheduleButton != null) WriteScheduleButton.onClick.RemoveListener(OnWriteScheduleClick); // 取消外设控制按钮绑定 if (ReadLCDSleepButton != null) ReadLCDSleepButton.onClick.RemoveListener(OnReadLCDSleepClick); if (WriteLCDSleepButton != null) WriteLCDSleepButton.onClick.RemoveListener(OnWriteLCDSleepClick); if (ReadLCDBrightnessButton != null) ReadLCDBrightnessButton.onClick.RemoveListener(OnReadLCDBrightnessClick); if (WriteLCDBrightnessButton != null) WriteLCDBrightnessButton.onClick.RemoveListener(OnWriteLCDBrightnessClick); if (ReadRGBButton != null) ReadRGBButton.onClick.RemoveListener(OnReadRGBClick); if (WriteRGBButton != null) WriteRGBButton.onClick.RemoveListener(OnWriteRGBClick); if (ReadWIFIButton != null) ReadWIFIButton.onClick.RemoveListener(OnReadWIFIClick); if (WriteWIFIButton != null) WriteWIFIButton.onClick.RemoveListener(OnWriteWIFIClick); if (ReadBLEButton != null) ReadBLEButton.onClick.RemoveListener(OnReadBLEClick); if (WriteBLEButton != null) WriteBLEButton.onClick.RemoveListener(OnWriteBLEClick); if (ReadMultimediaButton != null) ReadMultimediaButton.onClick.RemoveListener(OnReadMultimediaClick); if (WriteMultimediaButton != null) WriteMultimediaButton.onClick.RemoveListener(OnWriteMultimediaClick); if (ReadFillLightButton != null) ReadFillLightButton.onClick.RemoveListener(OnReadFillLightClick); if (WriteFillLightButton != null) WriteFillLightButton.onClick.RemoveListener(OnWriteFillLightClick); if (ReadVisibleLaserButton != null) ReadVisibleLaserButton.onClick.RemoveListener(OnReadVisibleLaserClick); if (WriteVisibleLaserButton != null) WriteVisibleLaserButton.onClick.RemoveListener(OnWriteVisibleLaserClick); if (ReadFillLightConnectionButton != null) ReadFillLightConnectionButton.onClick.RemoveListener(OnReadFillLightConnectionClick); // 取消害虫消灭控制按钮绑定 if (ReadAngleButton != null) ReadAngleButton.onClick.RemoveListener(OnReadAngleClick); if (WriteAngleButton != null) WriteAngleButton.onClick.RemoveListener(OnWriteAngleClick); if (ReadDistanceButton != null) ReadDistanceButton.onClick.RemoveListener(OnReadDistanceClick); if (WriteDistanceButton != null) WriteDistanceButton.onClick.RemoveListener(OnWriteDistanceClick); // 取消安全设置按钮绑定 if (ReadMillimeterWaveButton != null) ReadMillimeterWaveButton.onClick.RemoveListener(OnReadMillimeterWaveClick); if (WriteMillimeterWaveButton != null) WriteMillimeterWaveButton.onClick.RemoveListener(OnWriteMillimeterWaveClick); if (ReadVisualDetectionButton != null) ReadVisualDetectionButton.onClick.RemoveListener(OnReadVisualDetectionClick); if (WriteVisualDetectionButton != null) WriteVisualDetectionButton.onClick.RemoveListener(OnWriteVisualDetectionClick); if (ReadAccelerometerSettingButton != null) ReadAccelerometerSettingButton.onClick.RemoveListener(OnReadAccelerometerSettingClick); if (WriteAccelerometerSettingButton != null) WriteAccelerometerSettingButton.onClick.RemoveListener(OnWriteAccelerometerSettingClick); if (ReadAccelerometerDataButton != null) ReadAccelerometerDataButton.onClick.RemoveListener(OnReadAccelerometerDataClick); if (ReadTemperatureMonitorButton != null) ReadTemperatureMonitorButton.onClick.RemoveListener(OnReadTemperatureMonitorClick); if (WriteTemperatureMonitorButton != null) WriteTemperatureMonitorButton.onClick.RemoveListener(OnWriteTemperatureMonitorClick); // 取消环境检测按钮绑定 if (ReadEnvironmentChangeButton != null) ReadEnvironmentChangeButton.onClick.RemoveListener(OnReadEnvironmentChangeClick); if (TriggerLaserTestButton != null) TriggerLaserTestButton.onClick.RemoveListener(OnTriggerLaserTestClick); // 取消状态查询按钮绑定 if (ReadWorkModeButton != null) ReadWorkModeButton.onClick.RemoveListener(OnReadWorkModeClick); if (WriteWorkModeButton != null) WriteWorkModeButton.onClick.RemoveListener(OnWriteWorkModeClick); if (ReadHardwareStatusButton != null) ReadHardwareStatusButton.onClick.RemoveListener(OnReadHardwareStatusClick); if (ReadDeviceInfoButton != null) ReadDeviceInfoButton.onClick.RemoveListener(OnReadDeviceInfoClick); if (WriteDeviceInfoButton != null) WriteDeviceInfoButton.onClick.RemoveListener(OnWriteDeviceInfoClick); if (ReadStatisticsButton != null) ReadStatisticsButton.onClick.RemoveListener(OnReadStatisticsClick); if (QueryMosquitoDataButton != null) QueryMosquitoDataButton.onClick.RemoveListener(OnQueryMosquitoDataClick); if (ReadSensorDataButton != null) ReadSensorDataButton.onClick.RemoveListener(OnReadSensorDataClick); // 取消蚊虫数据按钮绑定 if (GetAllMosquitoDataButton != null) GetAllMosquitoDataButton.onClick.RemoveListener(OnGetAllMosquitoDataClick); // 取消设备管理按钮绑定 if (FactoryResetButton != null) FactoryResetButton.onClick.RemoveListener(OnFactoryResetClick); } #region 蓝牙基础功能 /// /// 初始化蓝牙 /// private void OnInitializeClick() { if (BluetoothManager.Instance != null) { BluetoothManager.Instance.Initialize(); } else { UpdateStatus("错误: 未找到BluetoothManager实例"); } } /// /// 开始扫描 /// public void OnScanClick() { if (BluetoothManager.Instance != null) { // 清空列表 _deviceList.Clear(); if (_deviceObjects != null && _deviceObjects.Count > 0) { foreach (var item in _deviceObjects) { Destroy(item); } _deviceObjects.Clear(); } _deviceObjects = new List(); BluetoothManager.Instance.StartScan(10f); // 扫描10秒 UpdateStatus("正在扫描设备..."); } } public GameObject deviceListParent; public GameObject devicePrefab; public void AddOneDevice(BluetoothDevice device) { if (_deviceList.Contains(device)) return; GameObject deviceObject = Instantiate(devicePrefab, deviceListParent.transform); deviceObject.GetComponent().Init(device); _deviceObjects.Add(deviceObject); int index = _deviceObjects.IndexOf(deviceObject); deviceObject.GetComponent