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