using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HybirdFrameworkEntity { public class Decode { public void decode(string IP,string port,byte[] data) { switch (IP) { case "1": break; case "2": break; case "3": break; case "4": break; case "5": break; } int func = (ushort)(data[6] + (data[6 + 1] << 8)); switch (func) { #region 协议格式 case 2: { CMD2 CMD2 = ConCMD2(data); string result = "(CMD=2)充电桩参数整形设置/查询应答 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "(CMD=2)充电桩参数整形设置/查询应答对象:" + JsonConvert.SerializeObject(CMD2); ////Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 4: { CMD4 CMD4 = ConCMD4(data); string result = "(CMD=4)充电桩参数字符形设置/查询应答 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "(CMD=4)充电桩参数字符形设置/查询应答对象:" + JsonConvert.SerializeObject(CMD4); ////Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 6: { CMD6 CMD6 = ConCMD6(data); string result = "(CMD=6)充电桩对后台控制命令应答- 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "(CMD=6)充电桩对后台控制命令应答对象:" + JsonConvert.SerializeObject(CMD6); ////Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 8: { CMD8 CMD8 = ConCMD8(data); string result = "(CMD=8) 充电桩对后台下发的充电桩开启充电控制应答 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "(CMD=8) 充电桩对后台下发的充电桩开启充电控制应答对象:" + JsonConvert.SerializeObject(CMD8); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 10: { CMD10 CMD10 = ConCMD10(data); string result = "(CMD=10)充电桩上传命令请求(预留) - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "(CMD=10)充电桩上传命令请求(预留)对象:" + JsonConvert.SerializeObject(CMD10); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; #endregion #region 充电桩主动上传数据 case 102: { CMD102 CMD102 = ConCMD102(data); string result = "(CMD=10)充电桩上传心跳包信息 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "(CMD=10)充电桩上传心跳包信息对象:" + JsonConvert.SerializeObject(CMD102); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 104: { CMD104 CMD104 = ConCMD104(data); string result = "(CMD=10)充电桩状态信息包上报 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "(CMD=10)充电桩状态信息包上报对象:" + JsonConvert.SerializeObject(CMD104); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 106: { CMD106 CMD106 = ConCMD106(data); string result = "(CMD=10)充电桩签到信息上报 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "(CMD=10)充电桩签到信息上报对象:" + JsonConvert.SerializeObject(CMD106); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 108: { CMD108 CMD108 = ConCMD108(data); string result = "(CMD=10)充电桩告警信息上报(预留) - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "(CMD=10)充电桩告警信息上报(预留)对象:" + JsonConvert.SerializeObject(CMD108); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 110: { CMD110 CMD110 = ConCMD110(data); string result = "(CMD=10)充电桩上报充电启动完成命令(预留) - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "(CMD=10)充电桩上报充电启动完成命令(预留)对象:" + JsonConvert.SerializeObject(CMD110); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 112: { CMD112 CMD112 = ConCMD112(data); string result = "(CMD=10)充电桩模块信息上报(预留) - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "(CMD=10)充电桩模块信息上报对象:" + JsonConvert.SerializeObject(CMD112); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 114: { CMD114 CMD114 = ConCMD114(data); string result = "(CMD=10)充电桩应答服务器查询最近一次充电各时段信息 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "(CMD=10)充电桩应答服务器查询最近一次充电各时段信息对象:" + JsonConvert.SerializeObject(CMD114); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; #endregion #region 充电信息数据 case 202: case 222: { CMD202 CMD202 = ConCMD202((UInt16)func, data); string result = "充电桩上报充电记录信息 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "上报充电记录信息对象:" + JsonConvert.SerializeObject(CMD202); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 204: { CMD204 CMD204 = ConCMD204(data); string result = "充电桩充电上传用户账户查询报文 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩充电上传用户账户查询报文对象:" + JsonConvert.SerializeObject(CMD204); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 206: { CMD206 CMD206 = ConCMD206(data); string result = "充电桩充电上传用户密码验证报文 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩充电上传用户密码验证报文对象:" + JsonConvert.SerializeObject(CMD206); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 208: { CMD208 CMD208 = ConCMD208(data); string result = "充电桩上报“即插即充”启动充电请求 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩上报“即插即充”启动充电请求对象:" + JsonConvert.SerializeObject(CMD208); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 210: { CMD210 CMD210 = ConCMD210(data); string result = "充电桩上报“即插即充”启动充电结果 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩上报“即插即充”启动充电结果:" + JsonConvert.SerializeObject(CMD210); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; #endregion #region 直流充电桩 BMS 信息数据(预留) case 302: { CMD302 CMD302 = ConCMD302(data); string result = "充电桩上报BMS信息 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩上报BMS信息对象:" + JsonConvert.SerializeObject(CMD302); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 304: { CMD304 CMD304 = ConCMD304(data); string result = "充电桩上报BMS信息(预留-暂时不用) - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩上报BMS信息(预留-暂时不用)对象:" + JsonConvert.SerializeObject(CMD304); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; #endregion #region 历史记录 case 402: case 422: { CMD402 CMD402 = ConCMD402((UInt16)func, data); string result = "充电桩上报历史的充电记录 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩上报历史的充电记录:" + JsonConvert.SerializeObject(CMD402); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; #endregion #region 升级命令 case 1002: { CMD1002 CMD1002 = ConCMD1002(data); string result = "充电桩回复服务器下发擦除指令 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩回复服务器下发擦除指令对象:" + JsonConvert.SerializeObject(CMD1002); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 1004: { CMD1004 CMD1004 = ConCMD1004(data); string result = "充电桩应答服务器下发升级文件名指令 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩应答服务器下发升级文件名指令对象:" + JsonConvert.SerializeObject(CMD1004); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 1006: { CMD1006 CMD1006 = ConCMD1006(data); string result = "充电桩应答服务器下发升级文件大小指令 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩应答服务器下发升级文件大小指令对象:" + JsonConvert.SerializeObject(CMD1006); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 1008: { CMD1008 CMD1008 = ConCMD1008(data); string result = "充电桩应答服务器下发升级文件数据指令 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩应答服务器下发升级文件数据指令对象:" + JsonConvert.SerializeObject(CMD1008); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 1010: { CMD1010 CMD1010 = ConCMD1010(data); string result = "充电桩应答服务器下发升级文件数据结束指令 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩应答服务器下发升级文件数据结束指令对象:" + JsonConvert.SerializeObject(CMD1010); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 1012: { CMD1012 CMD1012 = ConCMD1012(data); string result = "充电桩应答服务器下发重启指令- 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩应答服务器下发重启指令对象:" + JsonConvert.SerializeObject(CMD1012); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 1022: { CMD1022 CMD1022 = ConCMD1022(data); string result = "充电桩主动请求升级命令 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩主动请求升级命令对象:" + JsonConvert.SerializeObject(CMD1022); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; #endregion #region 与计费策略相关的指令 case 1102: { CMD1102 CMD1102 = ConCMD1102(data); string result = "充电桩应答后台服务器查询24时电费计价策略信息- 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩应答后台服务器查询24时电费计价策略信息对象:" + JsonConvert.SerializeObject(CMD1102); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 1104: { CMD1104 CMD1104 = ConCMD1104(data); string result = "充电桩应答后台服务器设置24时电费计价策略信息 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩应答后台服务器设置24时电费计价策略信息对象:" + JsonConvert.SerializeObject(CMD1104); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 1106: { CMD1106 CMD1106 = ConCMD1106(data); string result = "充电桩应答后台服务器设置分时段计价策略信息 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩应答后台服务器设置分时段计价策略信息对象:" + JsonConvert.SerializeObject(CMD1106); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 1108: { CMD1108 CMD1108 = ConCMD1108(data); string result = "充电桩回复分时电费计价策略信息 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩回复分时电费计价策略信息对象:" + JsonConvert.SerializeObject(CMD1108); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; #endregion #region 白名单报文 case 1302: { CMD1302 CMD1302 = ConCMD1302(data); string result = "充电桩应答白名单操作日志数据包 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩应答白名单操作日志数据包对象:" + JsonConvert.SerializeObject(CMD1302); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; #endregion #region FTP远程升级和FTP方式日志上传 case 1402: { CMD1402 CMD1402 = ConCMD1402(data); string result = "充电桩应答服务器下发FTP远程升级命令- 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩应答服务器下发FTP远程升级命令对象:" + JsonConvert.SerializeObject(CMD1402); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 1403: { CMD1403 CMD1403 = ConCMD1403(data); string result = "充电桩应答FTP升级包下载进度 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩应答FTP升级包下载进度对象:" + JsonConvert.SerializeObject(CMD1403); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 1407: { CMD1407 CMD1407 = ConCMD1407(data); string result = "充电桩应答服务器下发获取充电桩日志命令 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "充电桩应答服务器下发获取充电桩日志命令对象:" + JsonConvert.SerializeObject(CMD1407); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; #endregion #region 协议方式日志上传 case 1501: { CMD1501 CMD1501 = ConCMD1501(data); string result = "(CMD=1501)申请上传文件 - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "(CMD=1501)申请上传文件对象:" + JsonConvert.SerializeObject(CMD1501); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 1503: { CMD1503 CMD1503 = ConCMD1503(data); string result = "(CMD=10)充电桩上传命令请求(预留) - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "(CMD=10)充电桩上传命令请求(预留)对象:" + JsonConvert.SerializeObject(CMD1503); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; case 1505://接收完成,要保存关闭 { CMD1505 CMD1505 = ConCMD1505(data); string result = "(CMD=10)充电桩上传命令请求(预留) - 接收字节内容:" + ByteUtils.BytesToHexStr(data) + ";"; result += "\r\n" + "(CMD=10)充电桩上传命令请求(预留)对象:" + JsonConvert.SerializeObject(CMD1505); //Log.LogInstance.WriteLog(result, LogType.Information, "Charger" + "充电机编码"); } break; #endregion } } public CMD2 ConCMD2(byte[] data) { CMD2 CMD2 = null; if (data != null && data.Length > 0) { CMD2 = new CMD2(); CMD2.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD2.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD2.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD2.Type = data[44]; CMD2.SAddress = ByteUtils.DToUInt32(data, 45); CMD2.SNum = data[50]; CMD2.SResult = data[51]; CMD2.SData = Encoding.ASCII.GetString(data, 52, (data.Length - 52)); } return CMD2; } public CMD4 ConCMD4(byte[] data) { CMD4 CMD4 = null; if (data != null && data.Length > 0) { CMD4 = new CMD4(); CMD4.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD4.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD4.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD4.Type = data[44]; CMD4.SAddress = ByteUtils.DToUInt32(data, 45); CMD4.SResult = data[49]; CMD4.SData = Encoding.ASCII.GetString(data, 50, (data.Length - 51)); } return CMD4; } public CMD6 ConCMD6(byte[] data) { CMD6 CMD6 = null; if (data != null && data.Length > 0) { CMD6 = new CMD6(); CMD6.value01 = ByteUtils.DToUInt16(data, 8); CMD6.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD6.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD6.ChargMuzzle = data[44]; CMD6.CommandMark = ByteUtils.DToUInt32(data, 45); CMD6.CommandNum = data[49]; CMD6.CommandResult = data[50]; } return CMD6; } public CMD8 ConCMD8(byte[] data) { CMD8 CMD8 = null; if (data != null && data.Length > 0) { CMD8 = new CMD8(); CMD8.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD8.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD8.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD8.ChargMuzzle = data[44]; CMD8.CommandResult = ByteUtils.DToUInt16(data, 45); CMD8.ChargSerialNum = Encoding.ASCII.GetString(data, 49, 32); } return CMD8; } public CMD10 ConCMD10(byte[] data) { CMD10 CMD10 = null; if (data != null && data.Length > 0) { CMD10 = new CMD10(); CMD10.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD10.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD10.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); ; CMD10.ChargGunNum = data[44]; CMD10.RequestStaIP = ByteUtils.DToUInt32(data, 45); CMD10.Parameter = (float)((ByteUtils.DToUInt32(data, 49)) * 0.01); } return CMD10; } public CMD102 ConCMD102(byte[] data) { CMD102 CMD102 = null; if (data != null && data.Length > 0) { CMD102 = new CMD102(); CMD102.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD102.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD102.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); ; CMD102.HeartNum = ByteUtils.DToUInt16(data, 44); CMD102.GunStatus[0] = data[46]; CMD102.GunStatus[1] = data[47]; CMD102.GunStatus[2] = data[48]; CMD102.GunStatus[3] = data[49]; CMD102.GunStatus[4] = data[50]; CMD102.GunStatus[5] = data[51]; CMD102.GunStatus[6] = data[52]; CMD102.GunStatus[7] = data[53]; CMD102.GunStatus[8] = data[54]; CMD102.GunStatus[9] = data[55]; CMD102.GunStatus[10] = data[56]; CMD102.GunStatus[11] = data[57]; CMD102.GunStatus[12] = data[58]; CMD102.GunStatus[13] = data[59]; CMD102.GunStatus[14] = data[60]; CMD102.GunStatus[15] = data[61]; } return CMD102; } public CMD104 ConCMD104(byte[] data) { CMD104 CMD104 = null; if (data != null && data.Length > 0) { CMD104 = new CMD104(); CMD104.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD104.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD104.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD104.ChargGunNum = data[44]; CMD104.ChargNum = data[45]; CMD104.ChargGunType = data[46]; CMD104.WorkState = data[47]; CMD104.SOCNOW = data[48]; CMD104.MaxAlarmCode = Encoding.ASCII.GetString(data, 49, 4); CMD104.ConnecteState = data[53]; CMD104.TotalCost = (float)(ByteUtils.DToUInt32(data, 54) * 0.01); CMD104.Reserved3 = ByteUtils.DToUInt32(data, 58); CMD104.Reserved4 = ByteUtils.DToUInt32(data, 62); if (data[46] == 1) { CMD104.DcChargVoltage = ByteUtils.DToUInt16(data, 66); CMD104.DcChargCurrent = ByteUtils.DToUInt16(data, 68); CMD104.BMSDemVoltage = ByteUtils.DToUInt16(data, 70); CMD104.BMSDemCurrent = ByteUtils.DToUInt16(data, 72); } else { CMD104.DcChargVoltage = 0; CMD104.DcChargCurrent = 0; CMD104.BMSDemVoltage = 0; CMD104.BMSDemCurrent = 0; } CMD104.BMSchargMode = data[74]; CMD104.AcChargVoltageA = ByteUtils.DToUInt16(data, 75); CMD104.AcChargVoltageB = ByteUtils.DToUInt16(data, 77); CMD104.AcChargVoltageC = ByteUtils.DToUInt16(data, 79); CMD104.AcChargCurrentA = ByteUtils.DToUInt16(data, 81); CMD104.AcChargCurrentB = ByteUtils.DToUInt16(data, 83); CMD104.AcChargCurrentC = ByteUtils.DToUInt16(data, 85); CMD104.RemainTime = ByteUtils.DToUInt16(data, 87); CMD104.ChargTime = ByteUtils.DToUInt32(data, 89); CMD104.TotalChargkwh = ByteUtils.DToUInt32(data, 93); CMD104.StartAmmeterValue = (float)(ByteUtils.DToUInt32(data, 97) * 0.01); CMD104.AmmeterValue = (float)(ByteUtils.DToUInt32(data, 101) * 0.01); CMD104.ChargStartMode = data[105]; CMD104.ChargStrategy = data[106]; CMD104.ChargStrategyPara = ByteUtils.DToUInt32(data, 107); CMD104.AppointmentSign = data[111]; CMD104.ChargID = Encoding.ASCII.GetString(data, 112, 32); CMD104.OutTime = data[144]; CMD104.StartTime = Encoding.ASCII.GetString(data, 145, 8); CMD104.InitialBalance = ByteUtils.DToUInt32(data, 153); CMD104.Reserved5 = ByteUtils.DToUInt32(data, 157); CMD104.ChargPower = (float)(ByteUtils.DToUInt32(data, 161) * 0.1); CMD104.Reserved6 = ByteUtils.DToUInt32(data, 165); CMD104.Reserved7 = ByteUtils.DToUInt32(data, 169); CMD104.Reserved8 = ByteUtils.DToUInt32(data, 173); CMD104.OutletTemp = data[177]; CMD104.Temperature = data[178]; CMD104.ChargGunTemp = data[179]; CMD104.VINNum = Encoding.ASCII.GetString(data, 180, 18); CMD104.DoorState = data[198]; CMD104.ChargSerialNum = Encoding.ASCII.GetString(data, 199, 32); CMD104.TotalElectricity = ByteUtils.DToUInt32(data, 231); CMD104.ServiceCharge = ByteUtils.DToUInt32(data, 235); CMD104.HomingState = data[239]; CMD104.GroundLockedState = data[240]; CMD104.KilojoulesElec = data[241]; CMD104.DcACElectricity = ((float)(ByteUtils.DToUInt32(data, 242) * 0.001)).ToString("F1"); CMD104.ChargMode = data[246]; CMD104.ChargeOrDisSign = data[247]; } return CMD104; } public CMD106 ConCMD106(byte[] data) { CMD106 CMD106 = null; if (data != null && data.Length > 0) { CMD106 = new CMD106(); CMD106.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD106.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD106.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD106.Sign = data[44]; CMD106.ChargVersion = ByteUtils.DToUInt32(data, 45); CMD106.ChargProType = ByteUtils.DToUInt16(data, 49); CMD106.StartNum = ByteUtils.DToUInt32(data, 51); CMD106.DataUploadMode = data[55]; CMD106.SignInterval = ByteUtils.DToUInt16(data, 56); CMD106.RunVariable = data[58]; CMD106.ChargGunNum = data[59]; CMD106.HeartReportCycle = data[60]; CMD106.TimeoutNum = data[61]; CMD106.RecordNum = ByteUtils.DToUInt32(data, 62); CMD106.SystemTime = Encoding.ASCII.GetString(data, 66, 8); CMD106.Reserved3 = Encoding.ASCII.GetString(data, 74, 8); CMD106.Reserved4 = Encoding.ASCII.GetString(data, 82, 8); CMD106.Reserved5 = Encoding.ASCII.GetString(data, 90, 8); CMD106.RandomNum = ByteUtils.DToUInt32(data, 98); CMD106.ProtocolVersion = ByteUtils.DToUInt16(data, 102); CMD106.WhiteVersionNum = ByteUtils.DToUInt16(data, 104); CMD106.DeviceType = data[108]; CMD106.AssetCoding = Encoding.ASCII.GetString(data, 109, 32); } return CMD106; } public CMD108 ConCMD108(byte[] data) { CMD108 CMD108 = null; if (data != null && data.Length > 0) { CMD108 = new CMD108(); CMD108.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD108.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD108.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD108.AlarmBitInfo = Encoding.ASCII.GetString(data, 44, 32); } return CMD108; } public CMD110 ConCMD110(byte[] data) { CMD110 CMD110 = null; if (data != null && data.Length > 0) { CMD110 = new CMD110(); CMD110.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD110.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD110.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD110.ChargGunNum = data[44]; CMD110.ChargeFail = ByteUtils.DToUInt32(data, 45); CMD110.SendMessage = ByteUtils.DToUInt16(data, 49); CMD110.Reserved3 = ByteUtils.DToUInt16(data, 51); CMD110.Reserved4 = ByteUtils.DToUInt32(data, 53); byte version1 = data[58]; byte version2 = data[59]; byte version3 = data[60]; CMD110.BRMBMSVersionNum = "v" + version1.ToString() + version2.ToString() + version3.ToString(); CMD110.BRMBatteryType = data[61]; CMD110.BRMRatedCapacity = ByteUtils.DToUInt32(data, 62); CMD110.BRMRatedVoltage = ByteUtils.DToUInt32(data, 66); CMD110.BRMBatteryManu = ByteUtils.DToUInt32(data, 70); CMD110.BRMBatteryPackID = ByteUtils.DToUInt32(data, 74); CMD110.BRMDateYear = ByteUtils.DToUInt16(data, 78); CMD110.BRMDateMonth = data[80]; CMD110.BRMDateDay = data[81]; CMD110.BRMChargeCount = ByteUtils.DToUInt32(data, 82); CMD110.BRMTitleMark = data[86]; CMD110.Reserved5 = data[87]; CMD110.BRMVINID = Encoding.ASCII.GetString(data, 88, 17); byte VersionSerialNum = data[105]; byte day = data[106]; byte month = data[107]; ushort year = ByteUtils.DToUInt16(data, 108); CMD110.BRMBMSSoftVerNum = VersionSerialNum.ToString() + year.ToString() + "年" + month.ToString() + "月" + day.ToString() + "日"; CMD110.MaxChargVoltage = (float)(ByteUtils.DToUInt32(data, 113) * 0.1); CMD110.MaxChargCurrent = (float)(ByteUtils.DToUInt32(data, 117) * 0.1); CMD110.TotalEnergy = (float)(ByteUtils.DToUInt32(data, 121) * 0.1); CMD110.MaxTotalVoltage = (float)(ByteUtils.DToUInt32(data, 125) * 0.1); CMD110.MaxTemp = data[129]; CMD110.ChargeState = (float)(ByteUtils.DToUInt16(data, 130) * 0.1); CMD110.CellVoltage = (float)(ByteUtils.DToUInt32(data, 132) * 0.1); CMD110.ChargSerialNum = Encoding.ASCII.GetString(data, 136, 32); } return CMD110; } public CMD112 ConCMD112(byte[] data) { CMD112 CMD112 = null; if (data != null && data.Length > 0) { CMD112 = new CMD112(); CMD112.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD112.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD112.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD112.ReportMode = data[44]; CMD112.ModuleNum = data[45]; CMD112.ModuleType = data[46]; CMD112.ACModuleversion1 = ByteUtils.DToUInt16(data, 47); CMD112.DCModuleversion1 = ByteUtils.DToUInt16(data, 49); CMD112.ModuleState1 = data[51]; CMD112.ModuleOutVoltage1 = ByteUtils.DToUInt16(data, 52); CMD112.ModuleOutCurrent1 = ByteUtils.DToUInt16(data, 54); CMD112.ModuleAlarm1 = ByteUtils.DToUInt32(data, 56); CMD112.ACModuleversion2 = ByteUtils.DToUInt16(data, 60); CMD112.DCModuleversion2 = ByteUtils.DToUInt16(data, 62); CMD112.ModuleState2 = data[64]; CMD112.ModuleOutVoltage2 = ByteUtils.DToUInt16(data, 65); CMD112.ModuleOutCurrent2 = ByteUtils.DToUInt16(data, 67); CMD112.ModuleAlarm2 = ByteUtils.DToUInt32(data, 69); } return CMD112; } public CMD114 ConCMD114(byte[] data) { CMD114 CMD114 = null; if (data != null && data.Length > 0) { CMD114 = new CMD114(); CMD114.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD114.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD114.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD114.ChargGunNum = data[44]; CMD114.WorkState = data[45]; CMD114.StartChargTime = Encoding.ASCII.GetString(data, 46, 8); /* 7 54 8 56 9 58 10 60 11 62 12 64 13 66 14 68 15 70 16 72 17 74 18 76 19 78 20 80 21 82 22 84 23 86 24 88 25 90 26 92 27 94 28 96 29 98 30 100 31 102 32 104 33 106 34 108 35 110 36 112 37 114 38 116 39 118 40 120 41 122 42 124 43 126 44 128 45 130 46 132 47 134 48 136 49 138 50 140 51 142 52 144 53 146 54 148 */ CMD114.Charge01 = ByteUtils.DToUInt16(data, 54); CMD114.Charge02 = ByteUtils.DToUInt16(data, 56); CMD114.Charge03 = ByteUtils.DToUInt16(data, 58); CMD114.Charge04 = ByteUtils.DToUInt16(data, 60); CMD114.Charge05 = ByteUtils.DToUInt16(data, 62); CMD114.Charge06 = ByteUtils.DToUInt16(data, 64); CMD114.Charge07 = ByteUtils.DToUInt16(data, 66); CMD114.Charge08 = ByteUtils.DToUInt16(data, 68); CMD114.Charge09 = ByteUtils.DToUInt16(data, 70); CMD114.Charge10 = ByteUtils.DToUInt16(data, 72); CMD114.Charge11 = ByteUtils.DToUInt16(data, 74); CMD114.Charge12 = ByteUtils.DToUInt16(data, 76); CMD114.Charge13 = ByteUtils.DToUInt16(data, 78); CMD114.Charge14 = ByteUtils.DToUInt16(data, 80); CMD114.Charge15 = ByteUtils.DToUInt16(data, 82); CMD114.Charge16 = ByteUtils.DToUInt16(data, 84); CMD114.Charge17 = ByteUtils.DToUInt16(data, 86); CMD114.Charge18 = ByteUtils.DToUInt16(data, 88); CMD114.Charge19 = ByteUtils.DToUInt16(data, 90); CMD114.Charge20 = ByteUtils.DToUInt16(data, 92); CMD114.Charge21 = ByteUtils.DToUInt16(data, 94); CMD114.Charge22 = ByteUtils.DToUInt16(data, 96); CMD114.Charge23 = ByteUtils.DToUInt16(data, 98); CMD114.Charge24 = ByteUtils.DToUInt16(data, 100); CMD114.Charge25 = ByteUtils.DToUInt16(data, 102); CMD114.Charge26 = ByteUtils.DToUInt16(data, 104); CMD114.Charge27 = ByteUtils.DToUInt16(data, 106); CMD114.Charge29 = ByteUtils.DToUInt16(data, 108); CMD114.Charge30 = ByteUtils.DToUInt16(data, 110); CMD114.Charge31 = ByteUtils.DToUInt16(data, 112); CMD114.Charge32 = ByteUtils.DToUInt16(data, 114); CMD114.Charge33 = ByteUtils.DToUInt16(data, 116); CMD114.Charge34 = ByteUtils.DToUInt16(data, 118); CMD114.Charge35 = ByteUtils.DToUInt16(data, 120); CMD114.Charge36 = ByteUtils.DToUInt16(data, 122); CMD114.Charge37 = ByteUtils.DToUInt16(data, 124); CMD114.Charge38 = ByteUtils.DToUInt16(data, 126); CMD114.Charge39 = ByteUtils.DToUInt16(data, 128); CMD114.Charge40 = ByteUtils.DToUInt16(data, 130); CMD114.Charge41 = ByteUtils.DToUInt16(data, 132); } return CMD114; } public CMD202 ConCMD202(uint func, byte[] data) { CMD202 CMD202 = null; if (data != null && data.Length > 0) { CMD202 = new CMD202(); CMD202.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD202.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD202.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD202.PosType = data[44]; CMD202.ChargGun = data[45]; CMD202.ChargID = Encoding.ASCII.GetString(data, 46, 32); CMD202.StartTime = Encoding.ASCII.GetString(data, 78, 8); CMD202.EndTime = Encoding.ASCII.GetString(data, 86, 8); CMD202.TimeSpan = ByteUtils.DToUInt32(data, 94); CMD202.SOCStart = data[98]; CMD202.SOCEnd = data[99]; CMD202.EndReason = ByteUtils.DToUInt32(data, 100); if (func == 202) { CMD202.ChargCapacityNow = (ByteUtils.DToUInt32(data, 104) * 0.01).ToString("F2"); CMD202.SAmmeterValue = (ByteUtils.DToUInt32(data, 108) * 0.01).ToString("F2"); CMD202.EAmmeterValue = (ByteUtils.DToUInt32(data, 112) * 0.01).ToString("F2"); CMD202.ChargCapacity01 = ByteUtils.DToUInt16(data, 167).ToString(); CMD202.ChargCapacity02 = ByteUtils.DToUInt16(data, 169).ToString(); CMD202.ChargCapacity03 = ByteUtils.DToUInt16(data, 171).ToString(); CMD202.ChargCapacity04 = ByteUtils.DToUInt16(data, 173).ToString(); CMD202.ChargCapacity05 = ByteUtils.DToUInt16(data, 175).ToString(); CMD202.ChargCapacity06 = ByteUtils.DToUInt16(data, 177).ToString(); CMD202.ChargCapacity07 = ByteUtils.DToUInt16(data, 179).ToString(); CMD202.ChargCapacity08 = ByteUtils.DToUInt16(data, 181).ToString(); CMD202.ChargCapacity09 = ByteUtils.DToUInt16(data, 183).ToString(); CMD202.ChargCapacity10 = ByteUtils.DToUInt16(data, 185).ToString(); CMD202.ChargCapacity11 = ByteUtils.DToUInt16(data, 187).ToString(); CMD202.ChargCapacity12 = ByteUtils.DToUInt16(data, 189).ToString(); CMD202.ChargCapacity13 = ByteUtils.DToUInt16(data, 191).ToString(); CMD202.ChargCapacity14 = ByteUtils.DToUInt16(data, 193).ToString(); CMD202.ChargCapacity15 = ByteUtils.DToUInt16(data, 195).ToString(); CMD202.ChargCapacity16 = ByteUtils.DToUInt16(data, 197).ToString(); CMD202.ChargCapacity17 = ByteUtils.DToUInt16(data, 199).ToString(); CMD202.ChargCapacity18 = ByteUtils.DToUInt16(data, 201).ToString(); CMD202.ChargCapacity19 = ByteUtils.DToUInt16(data, 203).ToString(); CMD202.ChargCapacity20 = ByteUtils.DToUInt16(data, 205).ToString(); CMD202.ChargCapacity21 = ByteUtils.DToUInt16(data, 207).ToString(); CMD202.ChargCapacity22 = ByteUtils.DToUInt16(data, 209).ToString(); CMD202.ChargCapacity23 = ByteUtils.DToUInt16(data, 211).ToString(); CMD202.ChargCapacity24 = ByteUtils.DToUInt16(data, 213).ToString(); CMD202.ChargCapacity25 = ByteUtils.DToUInt16(data, 215).ToString(); CMD202.ChargCapacity26 = ByteUtils.DToUInt16(data, 217).ToString(); CMD202.ChargCapacity27 = ByteUtils.DToUInt16(data, 219).ToString(); CMD202.ChargCapacity28 = ByteUtils.DToUInt16(data, 221).ToString(); CMD202.ChargCapacity29 = ByteUtils.DToUInt16(data, 223).ToString(); CMD202.ChargCapacity30 = ByteUtils.DToUInt16(data, 225).ToString(); CMD202.ChargCapacity31 = ByteUtils.DToUInt16(data, 227).ToString(); CMD202.ChargCapacity32 = ByteUtils.DToUInt16(data, 229).ToString(); CMD202.ChargCapacity33 = ByteUtils.DToUInt16(data, 231).ToString(); CMD202.ChargCapacity34 = ByteUtils.DToUInt16(data, 233).ToString(); CMD202.ChargCapacity35 = ByteUtils.DToUInt16(data, 235).ToString(); CMD202.ChargCapacity36 = ByteUtils.DToUInt16(data, 237).ToString(); CMD202.ChargCapacity37 = ByteUtils.DToUInt16(data, 239).ToString(); CMD202.ChargCapacity38 = ByteUtils.DToUInt16(data, 241).ToString(); CMD202.ChargCapacity39 = ByteUtils.DToUInt16(data, 243).ToString(); CMD202.ChargCapacity40 = ByteUtils.DToUInt16(data, 245).ToString(); CMD202.ChargCapacity41 = ByteUtils.DToUInt16(data, 247).ToString(); CMD202.ChargCapacity42 = ByteUtils.DToUInt16(data, 249).ToString(); CMD202.ChargCapacity43 = ByteUtils.DToUInt16(data, 251).ToString(); CMD202.ChargCapacity44 = ByteUtils.DToUInt16(data, 253).ToString(); CMD202.ChargCapacity45 = ByteUtils.DToUInt16(data, 255).ToString(); CMD202.ChargCapacity46 = ByteUtils.DToUInt16(data, 257).ToString(); CMD202.ChargCapacity47 = ByteUtils.DToUInt16(data, 259).ToString(); CMD202.ChargCapacity48 = ByteUtils.DToUInt16(data, 261).ToString(); CMD202.StartMode = data[263]; CMD202.ChargSerialNum = Encoding.ASCII.GetString(data, 264, 32); CMD202.ChargServiceCost = ByteUtils.DToUInt32(data, 296); CMD202.KilElectricity = data[300]; CMD202.ParallelMark = data[301]; CMD202.ChargeOrDisMark = data[302]; CMD202.MeterEncData = Encoding.ASCII.GetString(data, 303, 34); CMD202.MeterNum = Encoding.ASCII.GetString(data, 337, 6); CMD202.MeterProVersion = ByteUtils.DToUInt16(data, 343); CMD202.EncMode = data[345]; } else if (func == 222) { CMD202.ChargCapacityNow = (ByteUtils.DToUInt32(data, 104) * 0.001).ToString("F3"); CMD202.SAmmeterValue = (ByteUtils.DToUInt32(data, 108) * 0.001).ToString("F3"); CMD202.EAmmeterValue = (ByteUtils.DToUInt32(data, 112) * 0.001).ToString("F3"); CMD202.ChargCapacity01 = (ByteUtils.DToUInt32(data, 167) * 0.001).ToString("F3"); CMD202.ChargCapacity02 = (ByteUtils.DToUInt32(data, 171) * 0.001).ToString("F3"); CMD202.ChargCapacity03 = (ByteUtils.DToUInt32(data, 175) * 0.001).ToString("F3"); CMD202.ChargCapacity04 = (ByteUtils.DToUInt32(data, 179) * 0.001).ToString("F3"); CMD202.ChargCapacity05 = (ByteUtils.DToUInt32(data, 183) * 0.001).ToString("F3"); CMD202.ChargCapacity06 = (ByteUtils.DToUInt32(data, 187) * 0.001).ToString("F3"); CMD202.ChargCapacity07 = (ByteUtils.DToUInt32(data, 191) * 0.001).ToString("F3"); CMD202.ChargCapacity08 = (ByteUtils.DToUInt32(data, 195) * 0.001).ToString("F3"); CMD202.ChargCapacity09 = (ByteUtils.DToUInt32(data, 199) * 0.001).ToString("F3"); CMD202.ChargCapacity10 = (ByteUtils.DToUInt32(data, 203) * 0.001).ToString("F3"); CMD202.ChargCapacity11 = (ByteUtils.DToUInt32(data, 207) * 0.001).ToString("F3"); CMD202.ChargCapacity12 = (ByteUtils.DToUInt32(data, 211) * 0.001).ToString("F3"); CMD202.ChargCapacity13 = (ByteUtils.DToUInt32(data, 215) * 0.001).ToString("F3"); CMD202.ChargCapacity14 = (ByteUtils.DToUInt32(data, 219) * 0.001).ToString("F3"); CMD202.ChargCapacity15 = (ByteUtils.DToUInt32(data, 223) * 0.001).ToString("F3"); CMD202.ChargCapacity16 = (ByteUtils.DToUInt32(data, 227) * 0.001).ToString("F3"); CMD202.ChargCapacity17 = (ByteUtils.DToUInt32(data, 231) * 0.001).ToString("F3"); CMD202.ChargCapacity18 = (ByteUtils.DToUInt32(data, 235) * 0.001).ToString("F3"); CMD202.ChargCapacity19 = (ByteUtils.DToUInt32(data, 239) * 0.001).ToString("F3"); CMD202.ChargCapacity20 = (ByteUtils.DToUInt32(data, 243) * 0.001).ToString("F3"); CMD202.ChargCapacity21 = (ByteUtils.DToUInt32(data, 247) * 0.001).ToString("F3"); CMD202.ChargCapacity22 = (ByteUtils.DToUInt32(data, 251) * 0.001).ToString("F3"); CMD202.ChargCapacity23 = (ByteUtils.DToUInt32(data, 255) * 0.001).ToString("F3"); CMD202.ChargCapacity24 = (ByteUtils.DToUInt32(data, 259) * 0.001).ToString("F3"); CMD202.ChargCapacity25 = (ByteUtils.DToUInt32(data, 263) * 0.001).ToString("F3"); CMD202.ChargCapacity26 = (ByteUtils.DToUInt32(data, 267) * 0.001).ToString("F3"); CMD202.ChargCapacity27 = (ByteUtils.DToUInt32(data, 271) * 0.001).ToString("F3"); CMD202.ChargCapacity28 = (ByteUtils.DToUInt32(data, 275) * 0.001).ToString("F3"); CMD202.ChargCapacity29 = (ByteUtils.DToUInt32(data, 279) * 0.001).ToString("F3"); CMD202.ChargCapacity30 = (ByteUtils.DToUInt32(data, 283) * 0.001).ToString("F3"); CMD202.ChargCapacity31 = (ByteUtils.DToUInt32(data, 287) * 0.001).ToString("F3"); CMD202.ChargCapacity32 = (ByteUtils.DToUInt32(data, 291) * 0.001).ToString("F3"); CMD202.ChargCapacity33 = (ByteUtils.DToUInt32(data, 295) * 0.001).ToString("F3"); CMD202.ChargCapacity34 = (ByteUtils.DToUInt32(data, 299) * 0.001).ToString("F3"); CMD202.ChargCapacity35 = (ByteUtils.DToUInt32(data, 303) * 0.001).ToString("F3"); CMD202.ChargCapacity36 = (ByteUtils.DToUInt32(data, 307) * 0.001).ToString("F3"); CMD202.ChargCapacity37 = (ByteUtils.DToUInt32(data, 311) * 0.001).ToString("F3"); CMD202.ChargCapacity38 = (ByteUtils.DToUInt32(data, 315) * 0.001).ToString("F3"); CMD202.ChargCapacity39 = (ByteUtils.DToUInt32(data, 319) * 0.001).ToString("F3"); CMD202.ChargCapacity40 = (ByteUtils.DToUInt32(data, 323) * 0.001).ToString("F3"); CMD202.ChargCapacity41 = (ByteUtils.DToUInt32(data, 327) * 0.001).ToString("F3"); CMD202.ChargCapacity42 = (ByteUtils.DToUInt32(data, 331) * 0.001).ToString("F3"); CMD202.ChargCapacity43 = (ByteUtils.DToUInt32(data, 335) * 0.001).ToString("F3"); CMD202.ChargCapacity44 = (ByteUtils.DToUInt32(data, 339) * 0.001).ToString("F3"); CMD202.ChargCapacity45 = (ByteUtils.DToUInt32(data, 343) * 0.001).ToString("F3"); CMD202.ChargCapacity46 = (ByteUtils.DToUInt32(data, 347) * 0.001).ToString("F3"); CMD202.ChargCapacity47 = (ByteUtils.DToUInt32(data, 351) * 0.001).ToString("F3"); CMD202.ChargCapacity48 = (ByteUtils.DToUInt32(data, 355) * 0.001).ToString("F3"); CMD202.StartMode = data[359]; CMD202.ChargSerialNum = Encoding.ASCII.GetString(data, 360, 32); CMD202.ChargServiceCost = ByteUtils.DToUInt32(data, 392); CMD202.KilElectricity = data[396]; CMD202.ParallelMark = data[397]; CMD202.ChargeOrDisMark = data[398]; CMD202.MeterEncData = Encoding.ASCII.GetString(data, 399, 34); CMD202.MeterNum = Encoding.ASCII.GetString(data, 433, 6); CMD202.MeterProVersion = ByteUtils.DToUInt16(data, 439); CMD202.EncMode = data[441]; } CMD202.ChargeAmount = ByteUtils.DToUInt32(data, 116); CMD202.IndexNum = BitConverter.ToInt32(data, 120); CMD202.CardBalance = ByteUtils.DToUInt32(data, 124); CMD202.ChargRecord = ByteUtils.DToUInt32(data, 128); CMD202.SumChargRecord = ByteUtils.DToUInt32(data, 132); CMD202.Reserved3 = data[136]; CMD202.ChargStrategy = data[137]; switch (data[137]) { case 1: CMD202.ChargStrategyPara = ByteUtils.DToUInt32(data, 138).ToString(); break; case 2: CMD202.ChargStrategyPara = (ByteUtils.DToUInt32(data, 138) * 0.01).ToString("F2"); break; case 3: CMD202.ChargStrategyPara = (ByteUtils.DToUInt32(data, 138) * 0.01).ToString("F2"); break; } CMD202.CarVIN = Encoding.ASCII.GetString(data, 142, 17); CMD202.CarID = Encoding.ASCII.GetString(data, 159, 8); } return CMD202; } public CMD204 ConCMD204(byte[] data) { CMD204 CMD204 = null; if (data != null && data.Length > 0) { CMD204 = new CMD204(); CMD204.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD204.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD204.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD204.ChargID = Encoding.ASCII.GetString(data, 44, 32); CMD204.Balance = ByteUtils.DToUInt32(data, 76); CMD204.BlacklistSign = data[80]; CMD204.ChargCardPassword = Encoding.ASCII.GetString(data, 81, 32); CMD204.RandomData = Encoding.ASCII.GetString(data, 113, 48); CMD204.M1CardID = ByteUtils.DToUInt32(data, 161); CMD204.Auth = data[165]; CMD204.ChargGunNum = data[166]; } return CMD204; } public CMD206 ConCMD206(byte[] data) { CMD206 CMD206 = null; if (data != null && data.Length > 0) { CMD206 = new CMD206(); CMD206.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD206.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD206.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD206.ChargID = Encoding.ASCII.GetString(data, 44, 32); CMD206.ChargPassword = Encoding.ASCII.GetString(data, 76, 32); CMD206.RandomData = Encoding.ASCII.GetString(data, 108, 48); } return CMD206; } public CMD208 ConCMD208(byte[] data) { CMD208 CMD208 = null; if (data != null && data.Length > 0) { CMD208 = new CMD208(); CMD208.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD208.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD208.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD208.ChargGunNum = data[44]; CMD208.VINNum = Encoding.ASCII.GetString(data, 45, 17); CMD208.ChargStrategy = data[62]; CMD208.ChargStrategyPara = ByteUtils.DToUInt32(data, 63); } return CMD208; } public CMD210 ConCMD210(byte[] data) { CMD210 CMD210 = null; if (data != null && data.Length > 0) { CMD210 = new CMD210(); CMD210.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD210.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD210.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD210.ChargGunNum = data[44]; CMD210.StartResult = ByteUtils.DToUInt32(data, 45); } return CMD210; } public CMD222 ConCMD222(byte[] data) { CMD222 CMD222 = null; if (data != null && data.Length > 0) { CMD222 = new CMD222(); CMD222.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD222.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD222.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD222.PosType = data[44]; CMD222.ChargGun = data[45]; CMD222.ChargID = Encoding.ASCII.GetString(data, 46, 32); CMD222.StartTime = Encoding.ASCII.GetString(data, 78, 8); CMD222.EndTime = Encoding.ASCII.GetString(data, 86, 8); CMD222.TimeSpan = ByteUtils.DToUInt32(data, 94); CMD222.SOCStart = data[98]; CMD222.SOCEnd = data[99]; CMD222.EndReason = ByteUtils.DToUInt32(data, 100); CMD222.ChargCapacityNow = ByteUtils.DToUInt32(data, 104); CMD222.SAmmeterValue = ByteUtils.DToUInt32(data, 108); CMD222.EAmmeterValue = ByteUtils.DToUInt32(data, 112); CMD222.ChargeAmount = ByteUtils.DToUInt32(data, 116); CMD222.IndexNum = ByteUtils.DToUInt32(data, 120); CMD222.CardBalance = ByteUtils.DToUInt32(data, 124); CMD222.ChargRecord = ByteUtils.DToUInt32(data, 128); CMD222.SumChargRecord = ByteUtils.DToUInt32(data, 132); CMD222.Reserved3 = data[136]; CMD222.ChargStrategy = data[137]; CMD222.ChargStrategyPara = ByteUtils.DToUInt32(data, 138); CMD222.CarVIN = Encoding.ASCII.GetString(data, 142, 17); CMD222.CarID = Encoding.ASCII.GetString(data, 159, 8); CMD222.ChargCapacity01 = (int)ByteUtils.DToUInt32(data, 167); CMD222.ChargCapacity02 = (int)ByteUtils.DToUInt32(data, 171); CMD222.ChargCapacity03 = (int)ByteUtils.DToUInt32(data, 175); CMD222.ChargCapacity04 = (int)ByteUtils.DToUInt32(data, 179); CMD222.ChargCapacity05 = (int)ByteUtils.DToUInt32(data, 183); CMD222.ChargCapacity06 = (int)ByteUtils.DToUInt32(data, 187); CMD222.ChargCapacity07 = (int)ByteUtils.DToUInt32(data, 191); CMD222.ChargCapacity08 = (int)ByteUtils.DToUInt32(data, 195); CMD222.ChargCapacity09 = (int)ByteUtils.DToUInt32(data, 199); CMD222.ChargCapacity10 = (int)ByteUtils.DToUInt32(data, 203); CMD222.ChargCapacity11 = (int)ByteUtils.DToUInt32(data, 207); CMD222.ChargCapacity12 = (int)ByteUtils.DToUInt32(data, 211); CMD222.ChargCapacity13 = (int)ByteUtils.DToUInt32(data, 215); CMD222.ChargCapacity14 = (int)ByteUtils.DToUInt32(data, 219); CMD222.ChargCapacity15 = (int)ByteUtils.DToUInt32(data, 223); CMD222.ChargCapacity16 = (int)ByteUtils.DToUInt32(data, 227); CMD222.ChargCapacity17 = (int)ByteUtils.DToUInt32(data, 231); CMD222.ChargCapacity18 = (int)ByteUtils.DToUInt32(data, 235); CMD222.ChargCapacity19 = (int)ByteUtils.DToUInt32(data, 239); CMD222.ChargCapacity20 = (int)ByteUtils.DToUInt32(data, 243); CMD222.ChargCapacity21 = (int)ByteUtils.DToUInt32(data, 247); CMD222.ChargCapacity22 = (int)ByteUtils.DToUInt32(data, 251); CMD222.ChargCapacity23 = (int)ByteUtils.DToUInt32(data, 255); CMD222.ChargCapacity24 = (int)ByteUtils.DToUInt32(data, 259); CMD222.ChargCapacity25 = (int)ByteUtils.DToUInt32(data, 263); CMD222.ChargCapacity26 = (int)ByteUtils.DToUInt32(data, 267); CMD222.ChargCapacity27 = (int)ByteUtils.DToUInt32(data, 271); CMD222.ChargCapacity28 = (int)ByteUtils.DToUInt32(data, 275); CMD222.ChargCapacity29 = (int)ByteUtils.DToUInt32(data, 279); CMD222.ChargCapacity30 = (int)ByteUtils.DToUInt32(data, 283); CMD222.ChargCapacity31 = (int)ByteUtils.DToUInt32(data, 287); CMD222.ChargCapacity32 = (int)ByteUtils.DToUInt32(data, 291); CMD222.ChargCapacity33 = (int)ByteUtils.DToUInt32(data, 295); CMD222.ChargCapacity34 = (int)ByteUtils.DToUInt32(data, 299); CMD222.ChargCapacity35 = (int)ByteUtils.DToUInt32(data, 303); CMD222.ChargCapacity36 = (int)ByteUtils.DToUInt32(data, 307); CMD222.ChargCapacity37 = (int)ByteUtils.DToUInt32(data, 311); CMD222.ChargCapacity38 = (int)ByteUtils.DToUInt32(data, 315); CMD222.ChargCapacity39 = (int)ByteUtils.DToUInt32(data, 319); CMD222.ChargCapacity40 = (int)ByteUtils.DToUInt32(data, 323); CMD222.ChargCapacity41 = (int)ByteUtils.DToUInt32(data, 327); CMD222.ChargCapacity42 = (int)ByteUtils.DToUInt32(data, 331); CMD222.ChargCapacity43 = (int)ByteUtils.DToUInt32(data, 335); CMD222.ChargCapacity44 = (int)ByteUtils.DToUInt32(data, 339); CMD222.ChargCapacity45 = (int)ByteUtils.DToUInt32(data, 343); CMD222.ChargCapacity46 = (int)ByteUtils.DToUInt32(data, 347); CMD222.ChargCapacity47 = (int)ByteUtils.DToUInt32(data, 351); CMD222.ChargCapacity48 = (int)ByteUtils.DToUInt32(data, 355); CMD222.StartMode = data[359]; CMD222.ChargSerialNum = Encoding.ASCII.GetString(data, 360, 32); CMD222.ChargServiceCost = ByteUtils.DToUInt32(data, 392); CMD222.KilElectricity = data[394]; CMD222.ParallelMark = data[395]; CMD222.ChargeOrDisMark = data[396]; CMD222.MeterEncData = data[397]; CMD222.MeterNum = Encoding.ASCII.GetString(data, 398, 6); CMD222.MeterProVersion = ByteUtils.DToUInt16(data, 404); CMD222.EncMode = data[408]; } return CMD222; } public CMD302 ConCMD302(byte[] data) { CMD302 CMD302 = null; if (data != null && data.Length > 0) { CMD302 = new CMD302(); CMD302.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD302.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD302.MessageOrderNum = ByteUtils.DToUInt16(data, 12); CMD302.ChargGunNum = ByteUtils.DToUInt16(data, 14); CMD302.ASCIINum = Encoding.ASCII.GetString(data, 16, 32); CMD302.WorkState = data[48]; CMD302.connectState = data[49]; CMD302.BRMBMSVersionNum = data[50]; CMD302.BRMBatteryType = data[51]; CMD302.BRMRatedCapacity = ByteUtils.DToUInt32(data, 52); CMD302.BRMRatedVoltage = ByteUtils.DToUInt32(data, 56); CMD302.BRMBatteryManu = ByteUtils.DToUInt32(data, 60); CMD302.BRMBatteryPackID = ByteUtils.DToUInt32(data, 64); CMD302.BRMDateYear = ByteUtils.DToUInt16(data, 68); CMD302.BRMDateMonth = data[70]; CMD302.BRMDateDay = data[71]; CMD302.BRMChargeCount = ByteUtils.DToUInt32(data, 72); CMD302.BRMTitleMark = data[76]; CMD302.Reserved3 = data[77]; CMD302.BRMVINID = Encoding.ASCII.GetString(data, 78, 17); CMD302.BRMBMSSoftVerNum = ByteUtils.DToUInt16(data, 95); CMD302.MaxChargVoltage = ByteUtils.DToUInt32(data, 103); CMD302.MaxChargCurrent = ByteUtils.DToUInt32(data, 107); CMD302.TotalEnergy = ByteUtils.DToUInt32(data, 111); CMD302.MaxTotalVoltage = ByteUtils.DToUInt32(data, 115); CMD302.MaxTemp = data[119]; CMD302.ChargeState = ByteUtils.DToUInt16(data, 120); CMD302.CellVoltage = ByteUtils.DToUInt32(data, 122); CMD302.ChargePrepared = data[126]; CMD302.BCLVoltage = ByteUtils.DToUInt32(data, 127); CMD302.BCLCurrent = ByteUtils.DToUInt32(data, 131); CMD302.BCLChargMode = data[135]; CMD302.BCSVoltageValue = ByteUtils.DToUInt32(data, 136); CMD302.BCSCurrentValue = ByteUtils.DToUInt32(data, 140); CMD302.BCSVoltageMAX = ByteUtils.DToUInt32(data, 144); CMD302.BCSBatteryNumMAX = data[145]; CMD302.BCSChargState = ByteUtils.DToUInt16(data, 146); CMD302.ReChargeTime = ByteUtils.DToUInt32(data, 148); CMD302.BSMNum = data[152]; CMD302.BSMMaxTemp = data[153]; CMD302.MaxTempPointNum = data[154]; CMD302.MinBatteryTemp = data[155]; CMD302.MinTempPointNum = data[156]; CMD302.voltageHighLow = data[157]; CMD302.ChargStateHighLow = data[158]; CMD302.BmsOvercurrent = data[159]; CMD302.TempHigh = data[160]; CMD302.InsulatState = data[161]; CMD302.ConnectState = data[162]; CMD302.AllowCharge = data[163]; CMD302.SOCTargetValue = data[164]; CMD302.SumVoltageSetValue = data[165]; CMD302.VoltageSetValue = data[166]; CMD302.ChargeEnd = data[167]; CMD302.InsulatFault = data[168]; CMD302.OvertempFault = data[169]; CMD302.Overtemp = data[170]; CMD302.ConnectorFault = data[171]; CMD302.ChargOvertempFault = data[172]; CMD302.HVoltageFault = data[173]; CMD302.VoltageSenseFault = data[174]; CMD302.OtherFault = data[175]; CMD302.Overcurrent = data[176]; CMD302.VoltageAnomaly = data[177]; CMD302.VoltageAnomaly = data[178]; CMD302.EndChargState = data[179]; CMD302.MinVoltage = data[180]; CMD302.MaxVoltage = data[181]; CMD302.MinChargTemp = data[182]; CMD302.MaxChargTemp = data[183]; CMD302.ReceiveTimeout1 = data[184]; CMD302.ReceiveTimeout2 = data[185]; CMD302.ReceiveTimeout3 = data[186]; CMD302.ReceiveTimeout4 = data[187]; CMD302.ReceiveTimeout5 = data[188]; CMD302.ReceiveTimeout6 = data[189]; CMD302.ReceiveTimeout7 = data[190]; CMD302.Other = data[191]; } return CMD302; } public CMD304 ConCMD304(byte[] data) { CMD304 CMD304 = null; if (data != null && data.Length > 0) { CMD304 = new CMD304(); CMD304.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD304.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD304.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD304.WorkState = data[44]; CMD304.connectState = data[45]; CMD304.BRMMessage = Encoding.ASCII.GetString(data, 46, 64); CMD304.VBIMessage = Encoding.ASCII.GetString(data, 110, 64); CMD304.ChargParameter = Encoding.ASCII.GetString(data, 174, 16); CMD304.ReadyState = ByteUtils.DToUInt16(data, 190); CMD304.ChargDemand = ByteUtils.DToUInt16(data, 198); CMD304.TotalState = Encoding.ASCII.GetString(data, 206, 16); CMD304.StateInfo = ByteUtils.DToUInt32(data, 222); CMD304.StopCharg = ByteUtils.DToUInt32(data, 226); CMD304.StatisticData = ByteUtils.DToUInt32(data, 230); CMD304.BEMMessage = ByteUtils.DToUInt32(data, 234); } return CMD304; } public CMD402 ConCMD402(uint func, byte[] data) { CMD402 CMD402 = null; if (data != null && data.Length > 0) { CMD402 = new CMD402(); CMD402.Reserved1 = ByteUtils.DToUInt16(data, 8); CMD402.Reserved2 = ByteUtils.DToUInt16(data, 10); CMD402.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD402.PosType = data[44]; CMD402.ChargGun = data[45]; CMD402.ChargCardID = Encoding.ASCII.GetString(data, 46, 32); CMD402.ChargStartTime = Encoding.ASCII.GetString(data, 78, 8); CMD402.ChargEndTime = Encoding.ASCII.GetString(data, 86, 8); CMD402.ChargTimeLength = ByteUtils.DToUInt32(data, 94); CMD402.SOCStart = data[98]; CMD402.SOCEnd = data[99]; CMD402.ChargEndReason = Encoding.ASCII.GetString(data, 100, 4); if (func == 402) { CMD402.ChargCapacity = (ByteUtils.ToUInt32(data, 104) * 0.01).ToString("F2"); CMD402.ChargCapacity01 = ((ByteUtils.DToUInt16(data, 167)) * 0.01).ToString("F2"); CMD402.ChargCapacity02 = ((ByteUtils.DToUInt16(data, 169)) * 0.01).ToString("F2"); CMD402.ChargCapacity03 = ((ByteUtils.DToUInt16(data, 171)) * 0.01).ToString("F2"); CMD402.ChargCapacity04 = ((ByteUtils.DToUInt16(data, 173)) * 0.01).ToString("F2"); CMD402.ChargCapacity05 = ((ByteUtils.DToUInt16(data, 175)) * 0.01).ToString("F2"); CMD402.ChargCapacity06 = ((ByteUtils.DToUInt16(data, 177)) * 0.01).ToString("F2"); CMD402.ChargCapacity07 = ((ByteUtils.DToUInt16(data, 179)) * 0.01).ToString("F2"); CMD402.ChargCapacity08 = ((ByteUtils.DToUInt16(data, 181)) * 0.01).ToString("F2"); CMD402.ChargCapacity09 = ((ByteUtils.DToUInt16(data, 183)) * 0.01).ToString("F2"); CMD402.ChargCapacity10 = ((ByteUtils.DToUInt16(data, 185)) * 0.01).ToString("F2"); CMD402.ChargCapacity11 = ((ByteUtils.DToUInt16(data, 187)) * 0.01).ToString("F2"); CMD402.ChargCapacity12 = ((ByteUtils.DToUInt16(data, 189)) * 0.01).ToString("F2"); CMD402.ChargCapacity13 = ((ByteUtils.DToUInt16(data, 191)) * 0.01).ToString("F2"); CMD402.ChargCapacity14 = ((ByteUtils.DToUInt16(data, 193)) * 0.01).ToString("F2"); CMD402.ChargCapacity15 = ((ByteUtils.DToUInt16(data, 195)) * 0.01).ToString("F2"); CMD402.ChargCapacity16 = ((ByteUtils.DToUInt16(data, 197)) * 0.01).ToString("F2"); CMD402.ChargCapacity17 = ((ByteUtils.DToUInt16(data, 199)) * 0.01).ToString("F2"); CMD402.ChargCapacity18 = ((ByteUtils.DToUInt16(data, 201)) * 0.01).ToString("F2"); CMD402.ChargCapacity19 = ((ByteUtils.DToUInt16(data, 203)) * 0.01).ToString("F2"); CMD402.ChargCapacity20 = ((ByteUtils.DToUInt16(data, 205)) * 0.01).ToString("F2"); CMD402.ChargCapacity21 = ((ByteUtils.DToUInt16(data, 207)) * 0.01).ToString("F2"); CMD402.ChargCapacity22 = ((ByteUtils.DToUInt16(data, 209)) * 0.01).ToString("F2"); CMD402.ChargCapacity23 = ((ByteUtils.DToUInt16(data, 211)) * 0.01).ToString("F2"); CMD402.ChargCapacity24 = ((ByteUtils.DToUInt16(data, 213)) * 0.01).ToString("F2"); CMD402.ChargCapacity25 = ((ByteUtils.DToUInt16(data, 215)) * 0.01).ToString("F2"); CMD402.ChargCapacity26 = ((ByteUtils.DToUInt16(data, 217)) * 0.01).ToString("F2"); CMD402.ChargCapacity27 = ((ByteUtils.DToUInt16(data, 219)) * 0.01).ToString("F2"); CMD402.ChargCapacity28 = ((ByteUtils.DToUInt16(data, 221)) * 0.01).ToString("F2"); CMD402.ChargCapacity29 = ((ByteUtils.DToUInt16(data, 223)) * 0.01).ToString("F2"); CMD402.ChargCapacity30 = ((ByteUtils.DToUInt16(data, 225)) * 0.01).ToString("F2"); CMD402.ChargCapacity31 = ((ByteUtils.DToUInt16(data, 227)) * 0.01).ToString("F2"); CMD402.ChargCapacity32 = ((ByteUtils.DToUInt16(data, 229)) * 0.01).ToString("F2"); CMD402.ChargCapacity33 = ((ByteUtils.DToUInt16(data, 231)) * 0.01).ToString("F2"); CMD402.ChargCapacity34 = ((ByteUtils.DToUInt16(data, 233)) * 0.01).ToString("F2"); CMD402.ChargCapacity35 = ((ByteUtils.DToUInt16(data, 235)) * 0.01).ToString("F2"); CMD402.ChargCapacity36 = ((ByteUtils.DToUInt16(data, 237)) * 0.01).ToString("F2"); CMD402.ChargCapacity37 = ((ByteUtils.DToUInt16(data, 239)) * 0.01).ToString("F2"); CMD402.ChargCapacity38 = ((ByteUtils.DToUInt16(data, 241)) * 0.01).ToString("F2"); CMD402.ChargCapacity39 = ((ByteUtils.DToUInt16(data, 243)) * 0.01).ToString("F2"); CMD402.ChargCapacity40 = ((ByteUtils.DToUInt16(data, 245)) * 0.01).ToString("F2"); CMD402.ChargCapacity41 = ((ByteUtils.DToUInt16(data, 247)) * 0.01).ToString("F2"); CMD402.ChargCapacity42 = ((ByteUtils.DToUInt16(data, 249)) * 0.01).ToString("F2"); CMD402.ChargCapacity43 = ((ByteUtils.DToUInt16(data, 251)) * 0.01).ToString("F2"); CMD402.ChargCapacity44 = ((ByteUtils.DToUInt16(data, 253)) * 0.01).ToString("F2"); CMD402.ChargCapacity45 = ((ByteUtils.DToUInt16(data, 255)) * 0.01).ToString("F2"); CMD402.ChargCapacity46 = ((ByteUtils.DToUInt16(data, 257)) * 0.01).ToString("F2"); CMD402.ChargCapacity47 = ((ByteUtils.DToUInt16(data, 259)) * 0.01).ToString("F2"); CMD402.ChargCapacity48 = ((ByteUtils.DToUInt16(data, 261)) * 0.01).ToString("F2"); CMD402.StartMode = data[263]; CMD402.SerialNum = Encoding.ASCII.GetString(data, 264, 32); CMD402.ChargServiceCost = ByteUtils.DToUInt32(data, 296); CMD402.KilElectricity = (data[300] * 0.001).ToString("F4"); CMD402.ParallelMark = data[301]; } else if (func == 422) { CMD402.ChargCapacity = (ByteUtils.ToUInt32(data, 104) * 0.001).ToString("F3"); CMD402.ChargCapacity01 = ((ByteUtils.DToUInt32(data, 167) * 0.001)).ToString("F3"); CMD402.ChargCapacity02 = ((ByteUtils.DToUInt32(data, 171) * 0.001)).ToString("F3"); CMD402.ChargCapacity03 = ((ByteUtils.DToUInt32(data, 175) * 0.001)).ToString("F3"); CMD402.ChargCapacity04 = ((ByteUtils.DToUInt32(data, 179) * 0.001)).ToString("F3"); CMD402.ChargCapacity05 = ((ByteUtils.DToUInt32(data, 183) * 0.001)).ToString("F3"); CMD402.ChargCapacity06 = ((ByteUtils.DToUInt32(data, 187) * 0.001)).ToString("F3"); CMD402.ChargCapacity07 = ((ByteUtils.DToUInt32(data, 191) * 0.001)).ToString("F3"); CMD402.ChargCapacity08 = ((ByteUtils.DToUInt32(data, 195) * 0.001)).ToString("F3"); CMD402.ChargCapacity09 = ((ByteUtils.DToUInt32(data, 199) * 0.001)).ToString("F3"); CMD402.ChargCapacity10 = ((ByteUtils.DToUInt32(data, 203) * 0.001)).ToString("F3"); CMD402.ChargCapacity11 = ((ByteUtils.DToUInt32(data, 207) * 0.001)).ToString("F3"); CMD402.ChargCapacity12 = ((ByteUtils.DToUInt32(data, 211) * 0.001)).ToString("F3"); CMD402.ChargCapacity13 = ((ByteUtils.DToUInt32(data, 215) * 0.001)).ToString("F3"); CMD402.ChargCapacity14 = ((ByteUtils.DToUInt32(data, 219) * 0.001)).ToString("F3"); CMD402.ChargCapacity15 = ((ByteUtils.DToUInt32(data, 223) * 0.001)).ToString("F3"); CMD402.ChargCapacity16 = ((ByteUtils.DToUInt32(data, 227) * 0.001)).ToString("F3"); CMD402.ChargCapacity17 = ((ByteUtils.DToUInt32(data, 231) * 0.001)).ToString("F3"); CMD402.ChargCapacity18 = ((ByteUtils.DToUInt32(data, 235) * 0.001)).ToString("F3"); CMD402.ChargCapacity19 = ((ByteUtils.DToUInt32(data, 239) * 0.001)).ToString("F3"); CMD402.ChargCapacity20 = ((ByteUtils.DToUInt32(data, 243) * 0.001)).ToString("F3"); CMD402.ChargCapacity21 = ((ByteUtils.DToUInt32(data, 247) * 0.001)).ToString("F3"); CMD402.ChargCapacity22 = ((ByteUtils.DToUInt32(data, 251) * 0.001)).ToString("F3"); CMD402.ChargCapacity23 = ((ByteUtils.DToUInt32(data, 255) * 0.001)).ToString("F3"); CMD402.ChargCapacity24 = ((ByteUtils.DToUInt32(data, 259) * 0.001)).ToString("F3"); CMD402.ChargCapacity25 = ((ByteUtils.DToUInt32(data, 263) * 0.001)).ToString("F3"); CMD402.ChargCapacity26 = ((ByteUtils.DToUInt32(data, 267) * 0.001)).ToString("F3"); CMD402.ChargCapacity27 = ((ByteUtils.DToUInt32(data, 271) * 0.001)).ToString("F3"); CMD402.ChargCapacity28 = ((ByteUtils.DToUInt32(data, 275) * 0.001)).ToString("F3"); CMD402.ChargCapacity29 = ((ByteUtils.DToUInt32(data, 279) * 0.001)).ToString("F3"); CMD402.ChargCapacity30 = ((ByteUtils.DToUInt32(data, 283) * 0.001)).ToString("F3"); CMD402.ChargCapacity31 = ((ByteUtils.DToUInt32(data, 287) * 0.001)).ToString("F3"); CMD402.ChargCapacity32 = ((ByteUtils.DToUInt32(data, 291) * 0.001)).ToString("F3"); CMD402.ChargCapacity33 = ((ByteUtils.DToUInt32(data, 295) * 0.001)).ToString("F3"); CMD402.ChargCapacity34 = ((ByteUtils.DToUInt32(data, 299) * 0.001)).ToString("F3"); CMD402.ChargCapacity35 = ((ByteUtils.DToUInt32(data, 303) * 0.001)).ToString("F3"); CMD402.ChargCapacity36 = ((ByteUtils.DToUInt32(data, 307) * 0.001)).ToString("F3"); CMD402.ChargCapacity37 = ((ByteUtils.DToUInt32(data, 311) * 0.001)).ToString("F3"); CMD402.ChargCapacity38 = ((ByteUtils.DToUInt32(data, 315) * 0.001)).ToString("F3"); CMD402.ChargCapacity39 = ((ByteUtils.DToUInt32(data, 319) * 0.001)).ToString("F3"); CMD402.ChargCapacity40 = ((ByteUtils.DToUInt32(data, 323) * 0.001)).ToString("F3"); CMD402.ChargCapacity41 = ((ByteUtils.DToUInt32(data, 327) * 0.001)).ToString("F3"); CMD402.ChargCapacity42 = ((ByteUtils.DToUInt32(data, 331) * 0.001)).ToString("F3"); CMD402.ChargCapacity43 = ((ByteUtils.DToUInt32(data, 335) * 0.001)).ToString("F3"); CMD402.ChargCapacity44 = ((ByteUtils.DToUInt32(data, 339) * 0.001)).ToString("F3"); CMD402.ChargCapacity45 = ((ByteUtils.DToUInt32(data, 343) * 0.001)).ToString("F3"); CMD402.ChargCapacity46 = ((ByteUtils.DToUInt32(data, 347) * 0.001)).ToString("F3"); CMD402.ChargCapacity47 = ((ByteUtils.DToUInt32(data, 351) * 0.001)).ToString("F3"); CMD402.ChargCapacity48 = ((ByteUtils.DToUInt32(data, 355) * 0.001)).ToString("F3"); CMD402.StartMode = data[359]; CMD402.SerialNum = Encoding.ASCII.GetString(data, 360, 32); CMD402.ChargServiceCost = ByteUtils.DToUInt32(data, 392); CMD402.KilElectricity = (data[396] * 0.001).ToString("F4"); CMD402.ParallelMark = data[397]; } CMD402.SAmmeterValue = ByteUtils.DToUInt32(data, 108); CMD402.EAmmeterValue = ByteUtils.DToUInt32(data, 112); CMD402.ChargeAmount = ByteUtils.DToUInt32(data, 116); CMD402.IndexNum = ByteUtils.DToUInt32(data, 120); CMD402.InitialBalance = ByteUtils.DToUInt32(data, 124); CMD402.ChargRecordIndex = ByteUtils.DToUInt32(data, 128); CMD402.TotalChargeRecord = ByteUtils.DToUInt32(data, 132); CMD402.Reserved3 = data[136]; CMD402.ChargStrategy = data[137]; switch (data[137]) { case 1: CMD402.ChargStrategyPara = (ByteUtils.ToUInt32(data, 138)).ToString(); break; case 2: CMD402.ChargStrategyPara = ((float)ByteUtils.ToUInt32(data, 138) * 0.01).ToString("F2"); break; case 3: CMD402.ChargStrategyPara = ((float)ByteUtils.ToUInt32(data, 138) * 0.01).ToString("F3"); break; } CMD402.VINCar = Encoding.ASCII.GetString(data, 142, 17); CMD402.CarID = Encoding.ASCII.GetString(data, 159, 8); } return CMD402; } public CMD1002 ConCMD1002(byte[] data) { CMD1002 CMD1002 = null; if (data != null && data.Length > 0) { CMD1002 = new CMD1002(); CMD1002.ErasurePercentage = data[8]; } return CMD1002; } public CMD1004 ConCMD1004(byte[] data) { CMD1004 CMD1004 = null; if (data != null && data.Length > 0) { CMD1004 = new CMD1004(); CMD1004.DataLength = data[8]; } return CMD1004; } public CMD1006 ConCMD1006(byte[] data) { CMD1006 CMD1006 = null; if (data != null && data.Length > 0) { CMD1006 = new CMD1006(); CMD1006.ResponseFlag = data[8]; } return CMD1006; } public CMD1008 ConCMD1008(byte[] data) { CMD1008 CMD1008 = null; if (data != null && data.Length > 0) { CMD1008 = new CMD1008(); CMD1008.ReceiveSN = data[8]; CMD1008.WriteFlag = data[9]; CMD1008.Reserved1 = (short)ByteUtils.DToUInt16(data, 10); CMD1008.Reserved2 = (int)ByteUtils.DToUInt32(data, 12); } return CMD1008; } public CMD1010 ConCMD1010(byte[] data) { CMD1010 CMD1010 = null; if (data != null && data.Length > 0) { CMD1010 = new CMD1010(); CMD1010.Reserved1 = ByteUtils.DToUInt16(data, 8); } return CMD1010; } public CMD1012 ConCMD1012(byte[] data) { CMD1012 CMD1012 = null; if (data != null && data.Length > 0) { CMD1012 = new CMD1012(); CMD1012.Reserved1 = (int)ByteUtils.DToUInt32(data, 8); } return CMD1012; } public CMD1022 ConCMD1022(byte[] data) { CMD1022 CMD1022 = null; if (data != null && data.Length > 0) { CMD1022 = new CMD1022(); CMD1022.EquipmentCode = (int)ByteUtils.DToUInt32(data, 8); CMD1022.ProjectCode = (int)ByteUtils.DToUInt32(data, 12); CMD1022.SoftwareVersion = (int)ByteUtils.DToUInt32(data, 16); CMD1022.ReceiveFileSizeMax = (int)ByteUtils.DToUInt32(data, 20); CMD1022.DeviceDescripte = Encoding.ASCII.GetString(data, 24, 32); CMD1022.CommandFlag = (int)ByteUtils.DToUInt32(data, 56); CMD1022.Offset = (int)ByteUtils.DToUInt32(data, 60); CMD1022.ContinuatSN = data[64]; CMD1022.DataLength = (int)ByteUtils.DToUInt32(data, 65); } return CMD1022; } public CMD1102 ConCMD1102(byte[] data) { CMD1102 CMD1102 = null; if (data != null && data.Length > 0) { CMD1102 = new CMD1102(); CMD1102.StartHour1 = data[8]; CMD1102.STartMin1 = data[9]; CMD1102.EndHour1 = data[10]; CMD1102.EndMin1 = data[11]; CMD1102.Rate1 = ByteUtils.DToUInt32(data, 12); CMD1102.StartHour2 = data[16]; CMD1102.STartMin2 = data[17]; CMD1102.EndHour2 = data[18]; CMD1102.EndMin2 = data[19]; CMD1102.Rate2 = ByteUtils.DToUInt32(data, 20); CMD1102.StartHour3 = data[24]; CMD1102.STartMin3 = data[25]; CMD1102.EndHour3 = data[26]; CMD1102.EndMin3 = data[27]; CMD1102.Rate3 = ByteUtils.DToUInt32(data, 28); CMD1102.StartHour4 = data[32]; CMD1102.STartMin4 = data[33]; CMD1102.EndHour4 = data[34]; CMD1102.EndMin4 = data[35]; CMD1102.Rate4 = ByteUtils.DToUInt32(data, 36); CMD1102.StartHour5 = data[40]; CMD1102.STartMin5 = data[41]; CMD1102.EndHour5 = data[42]; CMD1102.EndMin5 = data[43]; CMD1102.Rate5 = ByteUtils.DToUInt32(data, 44); CMD1102.StartHour6 = data[48]; CMD1102.STartMin6 = data[49]; CMD1102.EndHour6 = data[50]; CMD1102.EndMin6 = data[51]; CMD1102.Rate6 = ByteUtils.DToUInt32(data, 52); CMD1102.StartHour7 = data[56]; CMD1102.STartMin7 = data[57]; CMD1102.EndHour7 = data[58]; CMD1102.EndMin7 = data[59]; CMD1102.Rate7 = ByteUtils.DToUInt32(data, 60); CMD1102.StartHour8 = data[64]; CMD1102.STartMin8 = data[65]; CMD1102.EndHour8 = data[66]; CMD1102.EndMin8 = data[67]; CMD1102.Rate8 = ByteUtils.DToUInt32(data, 68); CMD1102.StartHour9 = data[72]; CMD1102.STartMin9 = data[73]; CMD1102.EndHour9 = data[74]; CMD1102.EndMin9 = data[75]; CMD1102.Rate9 = ByteUtils.DToUInt32(data, 76); CMD1102.StartHour10 = data[80]; CMD1102.STartMin10 = data[81]; CMD1102.EndHour10 = data[82]; CMD1102.EndMin10 = data[83]; CMD1102.Rate10 = ByteUtils.DToUInt32(data, 84); CMD1102.StartHour11 = data[88]; CMD1102.STartMin11 = data[89]; CMD1102.EndHour11 = data[90]; CMD1102.EndMin11 = data[91]; CMD1102.Rate11 = ByteUtils.DToUInt32(data, 92); CMD1102.StartHour12 = data[96]; CMD1102.STartMin12 = data[97]; CMD1102.EndHour12 = data[98]; CMD1102.EndMin12 = data[99]; CMD1102.Rate12 = ByteUtils.DToUInt32(data, 100); } return CMD1102; } public CMD1104 ConCMD1104(byte[] data) { CMD1104 CMD1104 = null; if (data != null && data.Length > 0) { CMD1104 = new CMD1104(); CMD1104.ConfirmResult = data[8]; } return CMD1104; } public CMD1106 ConCMD1106(byte[] data) { CMD1106 CMD1106 = null; if (data != null && data.Length > 0) { CMD1106 = new CMD1106(); CMD1106.ConfirmResult = data[8]; } return CMD1106; } public CMD1108 ConCMD1108(byte[] data) { CMD1108 CMD1108 = null; if (data != null && data.Length > 0) { CMD1108 = new CMD1108(); CMD1108.StartHour1 = data[8]; CMD1108.STartMin1 = data[9]; CMD1108.EndHour1 = data[10]; CMD1108.EndMin1 = data[11]; CMD1108.Rate1 = ByteUtils.DToUInt32(data, 12); CMD1108.StartHour2 = data[16]; CMD1108.STartMin2 = data[17]; CMD1108.EndHour2 = data[18]; CMD1108.EndMin2 = data[19]; CMD1108.Rate2 = ByteUtils.DToUInt32(data, 20); CMD1108.StartHour3 = data[24]; CMD1108.STartMin3 = data[25]; CMD1108.EndHour3 = data[26]; CMD1108.EndMin3 = data[27]; CMD1108.Rate3 = ByteUtils.DToUInt32(data, 28); CMD1108.StartHour4 = data[32]; CMD1108.STartMin4 = data[33]; CMD1108.EndHour4 = data[34]; CMD1108.EndMin4 = data[35]; CMD1108.Rate4 = ByteUtils.DToUInt32(data, 36); CMD1108.StartHour5 = data[40]; CMD1108.STartMin5 = data[41]; CMD1108.EndHour5 = data[42]; CMD1108.EndMin5 = data[43]; CMD1108.Rate5 = ByteUtils.DToUInt32(data, 44); CMD1108.StartHour6 = data[48]; CMD1108.STartMin6 = data[49]; CMD1108.EndHour6 = data[50]; CMD1108.EndMin6 = data[51]; CMD1108.Rate6 = ByteUtils.DToUInt32(data, 52); CMD1108.StartHour7 = data[56]; CMD1108.STartMin7 = data[57]; CMD1108.EndHour7 = data[58]; CMD1108.EndMin7 = data[59]; CMD1108.Rate7 = ByteUtils.DToUInt32(data, 60); CMD1108.StartHour8 = data[64]; CMD1108.STartMin8 = data[65]; CMD1108.EndHour8 = data[66]; CMD1108.EndMin8 = data[67]; CMD1108.Rate8 = ByteUtils.DToUInt32(data, 68); CMD1108.StartHour9 = data[72]; CMD1108.STartMin9 = data[73]; CMD1108.EndHour9 = data[74]; CMD1108.EndMin9 = data[75]; CMD1108.Rate9 = ByteUtils.DToUInt32(data, 76); CMD1108.StartHour10 = data[80]; CMD1108.STartMin10 = data[81]; CMD1108.EndHour10 = data[82]; CMD1108.EndMin10 = data[83]; CMD1108.Rate10 = ByteUtils.DToUInt32(data, 84); CMD1108.StartHour11 = data[88]; CMD1108.STartMin11 = data[89]; CMD1108.EndHour11 = data[90]; CMD1108.EndMin11 = data[91]; CMD1108.Rate11 = ByteUtils.DToUInt32(data, 92); CMD1108.StartHour12 = data[96]; CMD1108.STartMin12 = data[97]; CMD1108.EndHour12 = data[98]; CMD1108.EndMin12 = data[99]; CMD1108.Rate12 = ByteUtils.DToUInt32(data, 100); } return CMD1108; } public CMD1302 ConCMD1302(byte[] data) { CMD1302 CMD1302 = null; if (data != null && data.Length > 0) { CMD1302 = new CMD1302(); CMD1302.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD1302.WhitelistType = data[44]; CMD1302.Operate = data[45]; CMD1302.ListVersioe = ByteUtils.DToUInt32(data, 46); CMD1302.OperatResult = data[50]; } return CMD1302; } public CMD1402 ConCMD1402(byte[] data) { CMD1402 CMD1402 = null; if (data != null && data.Length > 0) { CMD1402 = new CMD1402(); CMD1402.Result = data[12]; } return CMD1402; } public CMD1403 ConCMD1403(byte[] data) { CMD1403 CMD1403 = null; if (data != null && data.Length > 0) { CMD1403 = new CMD1403(); CMD1403.ScheduleResult = data[12]; } return CMD1403; } public CMD1407 ConCMD1407(byte[] data) { CMD1407 CMD1407 = null; if (data != null && data.Length > 0) { CMD1407 = new CMD1407(); CMD1407.Result = data[12]; } return CMD1407; } public CMD1501 ConCMD1501(byte[] data) { CMD1501 CMD1501 = null; if (data != null && data.Length > 0) { CMD1501 = new CMD1501(); CMD1501.ASCIINum = Encoding.ASCII.GetString(data, 12, 32); CMD1501.UpFileName = Encoding.ASCII.GetString(data, 44, 128); } return CMD1501; } public CMD1503 ConCMD1503(byte[] data) { CMD1503 CMD1503 = null; if (data != null && data.Length > 0) { CMD1503 = new CMD1503(); CMD1503.DataLength = ByteUtils.DToUInt32(data, 12); CMD1503.MessageNum = ByteUtils.DToUInt32(data, 16); CMD1503.LogData = Encoding.ASCII.GetString(data, 20, (data.Length - 21)); ; } return CMD1503; } public CMD1505 ConCMD1505(byte[] data) { CMD1505 CMD1505 = null; if (data != null && data.Length > 0) { CMD1505 = new CMD1505(); } return CMD1505; } } }