using System;
namespace StandardScene.Charge
{
///
/// 通讯报文数据模型
///
public class CommunicationMessage
{
///
/// 报文ID(自动生成)
///
public string MessageId { get; set; }
///
/// 时间戳
///
public DateTime Timestamp { get; set; }
///
/// 方向(发送/接收)
///
public MessageDirection Direction { get; set; }
///
/// IP地址
///
public string IpAddress { get; set; }
///
/// 端口号
///
public int Port { get; set; }
///
/// 原始报文数据(十六进制字符串)
///
public string RawData { get; set; }
///
/// 报文长度(字节)
///
public int Length { get; set; }
///
/// 协议类型
///
public string Type { get; set; }
///
/// 关联的充电桩ID(可选)
///
public string StationId { get; set; }
public CommunicationMessage()
{
MessageId = GenerateMessageId();
Timestamp = DateTime.Now;
}
private static string GenerateMessageId()
{
return $"MSG{DateTime.Now:yyyyMMddHHmmssfff}{new Random().Next(100, 999)}";
}
public override string ToString()
{
return $"[{Timestamp:HH:mm:ss.fff}] {Direction} {IpAddress}:{Port} - {Length}字节";
}
}
//解析后的数据
///
/// 报文方向枚举
///
public enum MessageDirection
{
///
/// 发送
///
Send = 0,
///
/// 接收
///
Receive = 1
}
}