using OCPPServer.Protocol; using Packet.Cmd; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OCPPServer { public class ClientData { public byte[] _buffer = new byte[1024]; public List bufferList = new List(); public OCPPSession ClientSocket; public CmdHelper CmdHelper; public bool IsCheckIn { get; set; } public DateTime LastAccessDatetime { get; set; } /// /// 每個client有他自己的指令序號 2 byte /// private ushort _cmdSerNum = 0; /// /// 傳送的封包序號 1 byte /// private byte _serNum = 0; public string MachineId { get; set; } public Guid CustomerId { get; set; } public string CustomerName { get; set; } /// /// 客戶自訂的樁id /// public string MachineCustomId { get; set; } /// /// Accepted:0, Pending:1, Rejected:2 /// public bool RegistrationStatus { get; set; } /// /// 0: 会员、1: 卡号、2:不识别 /// public byte StartWith { get; set; } /// /// 充電/預約卡號、 36 bytes assic碼、不夠長度補'\0' /// public string ReservationCardNum { get; set; } /// /// Remote充電 /// public bool RemoteCharging { get; set; } public ClientData() { MachineCustomId = Guid.NewGuid().ToString(); IsCheckIn = false; RegistrationStatus = false; StartWith = 2; /// 0: 会员、1: 卡号、2:不识别 ReservationCardNum = ""; RemoteCharging = false; /// Remote充電 LastAccessDatetime = DateTime.Now; } public ClientData(OCPPSession clientSocket) { this.ClientSocket = clientSocket; MachineCustomId = Guid.NewGuid().ToString(); RemoteCharging = false; /// Remote充電 LastAccessDatetime = DateTime.Now; } /// /// 取得指令序號 0-65535 /// /// public ushort GetCmdSerNum() { if (_cmdSerNum == ushort.MaxValue) _cmdSerNum = 0; return ++_cmdSerNum; } /// /// 取得封包序號 1-255 /// /// public byte GetSerNum() { if (_serNum == byte.MaxValue) { _serNum = 0; } return ++_serNum; } public bool CheckClient() { return false; } } }