using System;
///
/// 串口通信服务接口 - 基于DCS项目串口通信协议
///
public interface ISerialCommunicationService : IService
{
// 事件定义
event Action OnHandshakeCompleted;
event Action OnDeviceStatusReceived;
// event Action OnAlarmStatusReceived;
event Action OnCommunicationError;
// 连接状态
bool IsConnected { get; }
bool IsHandshakeCompleted { get; }
// 连接控制
bool Connect(string portName = "COM1", int baudRate = 115200);
void Disconnect();
// 协议命令
void SendHandshakeRequest();
void SendHeartbeatResponse();
void SendAlarmCommand(byte alarmCode, byte priority, byte state);
void SendTimeSync(DateTime time);
void SendParameterQuery(byte paramType);
void SendParameterSet(byte paramType, byte[] data);
}
///
/// 设备状态数据
///
public struct DeviceStatusData
{
public float BFI; // BFI血流值
public byte BatteryLevel; // 电池电量 (0-100%)
public ushort BatteryVoltage; // 电池电压 (mV)
public short Temperature; // 内部温度 (0.1°C)
public byte LaserStatus; // 激光器状态 (0=异常,1=工作,2=停止)
public byte PowerType; // 电源类型 (0=AC,1=BAT)
public uint ReservedData; // 保留字段
}
///
/// 设备数据上报
///
public struct DeviceDataReport
{
public float BFI; // BFI数据
public byte BatteryLevel; // 电池电量
public ushort Voltage; // 电压
public short Temperature; // 内部温度
public byte LaserStatus; // 激光器状态
public byte PowerStatus; // 电源状态
public uint ExtensionData; // 扩展保留
}
///
/// 告警状态反馈
///
public struct AlarmStatusReport
{
public byte AlarmCode; // 报警代码
public byte AlarmPriority; // 报警级别
public byte AlarmState; // 报警状态
public DateTime Timestamp; // 时间戳
}