68 lines
2.1 KiB
C#
68 lines
2.1 KiB
C#
using System;
|
|
|
|
/// <summary>
|
|
/// 串口通信服务接口 - 基于DCS项目串口通信协议
|
|
/// </summary>
|
|
public interface ISerialCommunicationService : IService
|
|
{
|
|
// 事件定义
|
|
event Action OnHandshakeCompleted;
|
|
event Action<DeviceStatusData> OnDeviceStatusReceived;
|
|
// event Action<AlarmStatusReport> 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);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设备状态数据
|
|
/// </summary>
|
|
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; // 保留字段
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设备数据上报
|
|
/// </summary>
|
|
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; // 扩展保留
|
|
}
|
|
|
|
/// <summary>
|
|
/// 告警状态反馈
|
|
/// </summary>
|
|
public struct AlarmStatusReport
|
|
{
|
|
public byte AlarmCode; // 报警代码
|
|
public byte AlarmPriority; // 报警级别
|
|
public byte AlarmState; // 报警状态
|
|
public DateTime Timestamp; // 时间戳
|
|
} |