From b71546bf33153b22b8a0052863d189ba68563efe Mon Sep 17 00:00:00 2001
From: lch <1627445470@qq.com>
Date: Fri, 15 Mar 2024 16:07:22 +0800
Subject: [PATCH] =?UTF-8?q?0315=E4=BF=AE=E6=94=B9CMD1-CMD113=E5=85=85?=
=?UTF-8?q?=E7=94=B5=E6=9C=BA=E5=8F=91=E9=80=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BatCharging.Model/客户端发送/CMD1.cs | 2 +-
BatCharging.Model/客户端发送/CMD103.cs | 6 +-
BatCharging.Model/客户端发送/CMD3.cs | 8 +-
BatCharging.Model/客户端发送/CMD5.cs | 2 +-
BatCharging.Model/客户端发送/CMD9.cs | 12 +-
.../BatCharging.Service.csproj | 1 +
BatCharging.Service/ChargerMgrTool.cs | 25 +-
BatCharging.Service/ChargerSendMsg.cs | 313 +++++++++++++-----
.../发送方法/ChargerSendCMD.cs | 156 +++------
ChargeInterfaceTest.sln | 6 +
CommonClass/CommonClass.csproj | 9 +
CommonClass/PubCommonClass.cs | 40 +++
12 files changed, 350 insertions(+), 230 deletions(-)
create mode 100644 CommonClass/CommonClass.csproj
create mode 100644 CommonClass/PubCommonClass.cs
diff --git a/BatCharging.Model/客户端发送/CMD1.cs b/BatCharging.Model/客户端发送/CMD1.cs
index bfa50d3..3bb78c8 100644
--- a/BatCharging.Model/客户端发送/CMD1.cs
+++ b/BatCharging.Model/客户端发送/CMD1.cs
@@ -37,7 +37,7 @@ namespace BatCharging.Model
///
/// 设置数据
///
- public UInt32 value7 { get; set; }
+ public byte[] value7 { get; set; }
/*
diff --git a/BatCharging.Model/客户端发送/CMD103.cs b/BatCharging.Model/客户端发送/CMD103.cs
index 6022646..b5d5de8 100644
--- a/BatCharging.Model/客户端发送/CMD103.cs
+++ b/BatCharging.Model/客户端发送/CMD103.cs
@@ -11,11 +11,11 @@ namespace BatCharging.Model
///
/// 预留
///
- public byte value01 { get; set; }
+ public ushort value01 { get; set; }
///
/// 预留
///
- public byte value02 { get; set; }
+ public ushort value02 { get; set; }
///
/// 充电口号(这个字段与 104 报文字段 5 一致)
///
@@ -25,6 +25,6 @@ namespace BatCharging.Model
/// 0:否
/// 1:是
///
- public byte value04 { get; set; }
+ public bool value04 { get; set; }
}
}
diff --git a/BatCharging.Model/客户端发送/CMD3.cs b/BatCharging.Model/客户端发送/CMD3.cs
index 096b2ca..0905bdd 100644
--- a/BatCharging.Model/客户端发送/CMD3.cs
+++ b/BatCharging.Model/客户端发送/CMD3.cs
@@ -27,16 +27,12 @@ namespace BatCharging.Model
///
public UInt32 value4 { get; set; }
///
- /// 设置/查询个数
- ///
- public byte value5 { get; set; }
- ///
/// 设置参数字节数
///
- public UInt16 value6 { get; set; }
+ public UInt16 value5 { get; set; }
///
/// 设置数据
///
- public UInt32 value7 { get; set; }
+ public byte[] value6 { get; set; }
}
}
diff --git a/BatCharging.Model/客户端发送/CMD5.cs b/BatCharging.Model/客户端发送/CMD5.cs
index 34b63fc..b218ed9 100644
--- a/BatCharging.Model/客户端发送/CMD5.cs
+++ b/BatCharging.Model/客户端发送/CMD5.cs
@@ -35,6 +35,6 @@ namespace BatCharging.Model
///
/// 命令参数
///
- public UInt32 value7 { get; set; }
+ public byte[] value7 { get; set; }
}
}
diff --git a/BatCharging.Model/客户端发送/CMD9.cs b/BatCharging.Model/客户端发送/CMD9.cs
index 445d353..d2abb21 100644
--- a/BatCharging.Model/客户端发送/CMD9.cs
+++ b/BatCharging.Model/客户端发送/CMD9.cs
@@ -12,11 +12,11 @@ namespace BatCharging.Model
///
/// 预留
///
- public byte value01 { get; set; }
+ public ushort value01 { get; set; }
///
/// 预留
///
- public byte value02 { get; set; }
+ public ushort value02 { get; set; }
///
/// 充电枪号
///
@@ -24,18 +24,18 @@ namespace BatCharging.Model
///
/// 执行结果
///
- public byte value04 { get; set; }
+ public uint value04 { get; set; }
///
/// 命令地址
///
- public byte value05 { get; set; }
+ public uint value05 { get; set; }
///
/// 数据长度
///
- public byte value06 { get; set; }
+ public uint value06 { get; set; }
///
/// 数据
///
- public string value07 { get; set; }
+ public byte[] value07 { get; set; }
}
}
diff --git a/BatCharging.Service/BatCharging.Service.csproj b/BatCharging.Service/BatCharging.Service.csproj
index dc224b0..9ef2a7e 100644
--- a/BatCharging.Service/BatCharging.Service.csproj
+++ b/BatCharging.Service/BatCharging.Service.csproj
@@ -12,6 +12,7 @@
+
diff --git a/BatCharging.Service/ChargerMgrTool.cs b/BatCharging.Service/ChargerMgrTool.cs
index 0fe7f7c..bb2f579 100644
--- a/BatCharging.Service/ChargerMgrTool.cs
+++ b/BatCharging.Service/ChargerMgrTool.cs
@@ -3053,35 +3053,48 @@ namespace BatCharging.Service
#endregion 数据发送
#region 协议格式
+ ///
+ /// (CMD=1)后台服务器下发充电桩整形工作参数
+ ///
+ /// 类型 0-查询/1-设置
+ /// 设置/查询参数起始地址
+ /// 设置/查询个数
+ /// 设置数据
- public void Send1()
+ public void Send1(byte type,uint startAddress,byte num,byte[] setData)
{
if (_chr_client != null)
{
if (_chr_client.Connected)
{
- new ChargerSendMsgUtils().Send1(_chr_client);
+ new ChargerSendMsgUtils().Send1(_chr_client,type,startAddress,num, setData);
}
}
}
- public void Send3()
+ ///
+ /// 后台服务器下发充电桩字符型参数
+ ///
+ /// 类型 0-查询 1-设置
+ /// 设置/查询参数起始地址
+ /// 设置数据
+ public void Send3(byte type, uint startAddress, byte[] setData)
{
if (_chr_client != null)
{
if (_chr_client.Connected)
{
- new ChargerSendMsgUtils().Send3(_chr_client);
+ new ChargerSendMsgUtils().Send3(_chr_client,type,startAddress,setData);
}
}
}
- public void Send5()
+ public void Send5(byte type, uint startAddress, byte num, byte[] setData)
{
if (_chr_client != null)
{
if (_chr_client.Connected)
{
- new ChargerSendMsgUtils().Send5(_chr_client);
+ new ChargerSendMsgUtils().Send5(_chr_client,type, startAddress, num, setData);
}
}
}
diff --git a/BatCharging.Service/ChargerSendMsg.cs b/BatCharging.Service/ChargerSendMsg.cs
index 37eea26..84f3594 100644
--- a/BatCharging.Service/ChargerSendMsg.cs
+++ b/BatCharging.Service/ChargerSendMsg.cs
@@ -7,6 +7,7 @@ using System.Threading.Tasks;
using System.Xml.Linq;
using BatCharging.Model;
using BatCharging.Service.Encoder.New;
+using CommonClass;
using Module.Socket.Tool;
using Monitor.LogService;
using Newtonsoft.Json;
@@ -19,6 +20,8 @@ namespace BatCharging.Service
///
internal class ChargerSendMsgUtils
{
+
+ PubCommonClass pubCommonClass = new PubCommonClass();
#region
#region 充放电启动指令
@@ -285,15 +288,31 @@ namespace BatCharging.Service
/// (CMD=1)后台服务器下发充电桩整形工作参数
///
///
- ///
- ///
- internal void Send1(TcpClientChargerTool tcp_client)
+ ///
+ ///
+ ///
+ ///
+ internal void Send1(TcpClientChargerTool tcp_client, byte type, uint startAddress, byte num, byte[] setData)
{
- byte[] bytes = new ChargerSendCMD().SendRCMD1(out APDUModel APDUModel);
- string result = "站控响应充放电机上报模块状态-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+ APDUModel APDUModel;
- Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
- tcp_client.Write(bytes);
+ CMD1 CMD1 = new CMD1();
+ CMD1.value1 = 0;
+ CMD1.value2 = 0;
+ CMD1.value3 = type;
+ CMD1.value4 = startAddress;
+ CMD1.value5 = num;
+ CMD1.value6 = (ushort)(num * 4);
+ CMD1.value7 = setData;
+
+ byte[] bytes = new ChargerSendCMD().SendRCMD1(out APDUModel, CMD1);
+
+ if (APDUModel != null)
+ {
+ string result = "后台服务器下发充电桩整形工作参数-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+ Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
+ tcp_client.Write(bytes);
+ }
}
///
@@ -302,172 +321,282 @@ namespace BatCharging.Service
///
///
///
- internal void Send3(TcpClientChargerTool tcp_client)
+ internal void Send3(TcpClientChargerTool tcp_client, byte type, uint startAddress, byte[] setData)
{
- byte[] bytes = new ChargerSendCMD().SendRCMD3(out APDUModel APDUModel);
- string result = "站控响应充放电机上报模块状态-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+ APDUModel APDUModel;
- Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
- tcp_client.Write(bytes);
+
+ CMD3 CMD3 = new CMD3();
+ CMD3.value1 = 0;
+ CMD3.value2 = 0;
+ CMD3.value3 = type;
+ CMD3.value4 = startAddress;
+ CMD3.value5 = pubCommonClass.cmd3StartAddress[startAddress];
+ CMD3.value6 = setData;
+
+ byte[] bytes = new ChargerSendCMD().SendRCMD3(out APDUModel, CMD3);
+
+ if (APDUModel != null)
+ {
+ string result = "后台服务器下发充电桩字符型参数-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+ Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
+ tcp_client.Write(bytes);
+ }
}
///
- /// (CMD=5)
+ /// 后台服务器下发充电桩控制命令
///
///
- ///
- ///
- internal void Send5(TcpClientChargerTool tcp_client)
+ /// 充电枪口
+ /// 启始命令地址
+ /// 命令个数
+ /// 命令参数
+ internal void Send5(TcpClientChargerTool tcp_client, byte chargeMuzzle, uint startAddress, byte num, byte[] setData)
{
- byte[] bytes = new ChargerSendCMD().SendRCMD5(out APDUModel APDUModel);
- string result = "站控响应充放电机上报模块状态-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
- Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
- tcp_client.Write(bytes);
+ APDUModel APDUModel;
+
+ CMD5 CMD = new CMD5();
+ CMD.value3 = chargeMuzzle;
+ CMD.value4 = startAddress;
+ CMD.value5 = num;
+ CMD.value6 = (ushort)(num * 4);
+ CMD.value7 = setData;
+
+
+ byte[] bytes = new ChargerSendCMD().SendRCMD5(out APDUModel, CMD);
+
+ if (APDUModel != null)
+ {
+ string result = "后台服务器下发充电桩控制命令-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+
+ Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
+ tcp_client.Write(bytes);
+ }
}
+
///
- /// (CMD=5)
+ /// 后台服务器下发充电桩开启充电控制命令
///
///
- ///
- ///
- internal void Send7(TcpClientChargerTool tcp_client)
+ ///
+ internal void Send7(TcpClientChargerTool tcp_client, CMD7 CMD)
{
- byte[] bytes = new ChargerSendCMD().SendRCMD7(out APDUModel APDUModel);
- string result = "站控响应充放电机上报模块状态-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+ APDUModel APDUModel;
- Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
- tcp_client.Write(bytes);
+ byte[] bytes = new ChargerSendCMD().SendRCMD7(out APDUModel, CMD);
+ if (APDUModel != null)
+ {
+
+ string result = "后台服务器下发充电桩开启充电控制命令-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+
+ Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
+ tcp_client.Write(bytes);
+ }
}
///
- /// (CMD=5)
+ /// 后台服务器应答桩上传命令请求(预留)
///
///
- ///
- ///
- internal void Send9(TcpClientChargerTool tcp_client)
+ /// 充电枪号
+ /// 执行结果
+ /// 命令地址
+ /// 数据
+ internal void Send9(TcpClientChargerTool tcp_client, byte chargeMuzzle, uint executeResult, uint address, byte[] setData)
{
- byte[] bytes = new ChargerSendCMD().SendRCMD9(out APDUModel APDUModel);
- string result = "站控响应充放电机上报模块状态-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+ APDUModel APDUModel;
- Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
- tcp_client.Write(bytes);
+ CMD9 CMD = new CMD9();
+
+ CMD.value03 = chargeMuzzle;
+ CMD.value04 = executeResult;
+ CMD.value05 = address;
+ CMD.value06 = 4;
+ CMD.value07 = null;
+
+ byte[] bytes = new ChargerSendCMD().SendRCMD9(out APDUModel, CMD);
+
+ if (APDUModel != null)
+ {
+ string result = "后台服务器应答桩上传命令请求(预留)-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+
+ Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
+ tcp_client.Write(bytes);
+ }
}
#endregion
#region 充电桩主动上传数据
-
///
- /// (CMD=5)
+ /// 服务器应答心跳包信息
///
///
- ///
- ///
- internal void Send101(TcpClientChargerTool tcp_client)
+ /// 心跳应答
+ internal void Send101(TcpClientChargerTool tcp_client, ushort heartbeatNum)
{
- byte[] bytes = new ChargerSendCMD().SendRCMD101(out APDUModel APDUModel);
- string result = "站控响应充放电机上报模块状态-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+ APDUModel APDUModel;
- Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
- tcp_client.Write(bytes);
+ CMD101 CMD = new CMD101();
+
+ CMD.value03 = heartbeatNum;
+
+ byte[] bytes = new ChargerSendCMD().SendRCMD101(out APDUModel, CMD);
+ if (APDUModel != null)
+ {
+
+ string result = "服务器应答心跳包信息-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+
+ Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
+ tcp_client.Write(bytes);
+ }
}
///
- /// (CMD=5)
+ /// 服务器应答充电桩状态信息包
///
///
- ///
- ///
- internal void Send103(TcpClientChargerTool tcp_client)
+ /// 充电口号
+ /// 是否立即上报一次104报文 0-否 、1-是
+ internal void Send103(TcpClientChargerTool tcp_client, byte chargeNum, bool reportMessage)
{
- byte[] bytes = new ChargerSendCMD().SendRCMD103(out APDUModel APDUModel);
- string result = "站控响应充放电机上报模块状态-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+ APDUModel APDUModel;
- Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
- tcp_client.Write(bytes);
+
+ CMD103 CMD = new CMD103();
+ CMD.value03 = chargeNum;
+ CMD.value04 = reportMessage;
+
+
+ byte[] bytes = new ChargerSendCMD().SendRCMD103(out APDUModel, CMD);
+ if (APDUModel != null)
+ {
+ string result = "服务器应答充电桩状态信息包-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+
+ Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
+ tcp_client.Write(bytes);
+ }
}
///
- /// (CMD=5)
+ /// 服务器应答充电桩签到命令
///
///
- ///
- ///
- internal void Send105(TcpClientChargerTool tcp_client)
+ ///
+ internal void Send105(TcpClientChargerTool tcp_client, CMD105 CMD)
{
- byte[] bytes = new ChargerSendCMD().SendRCMD105(out APDUModel APDUModel);
- string result = "站控响应充放电机上报模块状态-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+ APDUModel APDUModel;
- Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
- tcp_client.Write(bytes);
+ byte[] bytes = new ChargerSendCMD().SendRCMD105(out APDUModel, CMD);
+ if (APDUModel != null)
+ {
+ string result = "服务器应答充电桩签到命令-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+
+ Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
+ tcp_client.Write(bytes);
+ }
}
///
- /// (CMD=5)
+ /// 服务器应答充电桩告警信息
///
///
- ///
- ///
internal void Send107(TcpClientChargerTool tcp_client)
{
- byte[] bytes = new ChargerSendCMD().SendRCMD107(out APDUModel APDUModel);
- string result = "站控响应充放电机上报模块状态-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+ APDUModel APDUModel;
- Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
- tcp_client.Write(bytes);
+ CMD107 CMD = new CMD107();
+
+ byte[] bytes = new ChargerSendCMD().SendRCMD107(out APDUModel, CMD);
+ if (APDUModel != null)
+ {
+ string result = "服务器应答充电桩告警信息-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+
+ Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
+ tcp_client.Write(bytes);
+ }
}
///
- /// (CMD=5)
+ /// 服务器应答充电桩告警信息
///
///
- ///
- ///
internal void Send109(TcpClientChargerTool tcp_client)
{
- byte[] bytes = new ChargerSendCMD().SendRCMD109(out APDUModel APDUModel);
- string result = "站控响应充放电机上报模块状态-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+ APDUModel APDUModel;
- Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
- tcp_client.Write(bytes);
+
+
+ CMD109 CMD = new CMD109();
+
+
+ byte[] bytes = new ChargerSendCMD().SendRCMD109(out APDUModel, CMD);
+ if (APDUModel != null)
+ {
+ string result = "服务器应答充电桩告警信息-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+
+ Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
+ tcp_client.Write(bytes);
+ }
}
///
- /// (CMD=5)
+ /// 服务器应答充电桩上报模块信息(预留)
///
///
- ///
- ///
- internal void Send111(TcpClientChargerTool tcp_client)
+ /// 报文类型
+ internal void Send111(TcpClientChargerTool tcp_client, byte messageType)
{
- byte[] bytes = new ChargerSendCMD().SendRCMD111(out APDUModel APDUModel);
- string result = "站控响应充放电机上报模块状态-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+ APDUModel APDUModel;
- Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
- tcp_client.Write(bytes);
+
+ CMD111 CMD = new CMD111();
+
+ CMD.value03 = messageType;
+
+
+ byte[] bytes = new ChargerSendCMD().SendRCMD111(out APDUModel, CMD);
+ if (APDUModel != null)
+ {
+ string result = "服务器应答充电桩上报模块信息(预留)-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+
+ Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
+ tcp_client.Write(bytes);
+ }
}
///
- /// (CMD=5)
+ /// 服务器查询最近一次充电各时段信息
///
///
- ///
- ///
- internal void Send113(TcpClientChargerTool tcp_client)
+ /// 充电口号
+ /// 标志
+ internal void Send113(TcpClientChargerTool tcp_client, byte chargeNum, byte sign)
{
- byte[] bytes = new ChargerSendCMD().SendRCMD113(out APDUModel APDUModel);
- string result = "站控响应充放电机上报模块状态-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+ APDUModel APDUModel;
- Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
- tcp_client.Write(bytes);
+ CMD113 CMD = new CMD113();
+
+ CMD.value03 = chargeNum;
+ CMD.value04 = sign;
+
+
+ byte[] bytes = new ChargerSendCMD().SendRCMD113(out APDUModel, CMD);
+ if (APDUModel != null)
+ {
+ string result = "服务器查询最近一次充电各时段信息-发送字节内容:" + ByteUtils.BytesToHexStr(bytes) + ";";
+
+ Log.LogInstance.WriteLog(result, LogType.Information, "SendLog");
+ tcp_client.Write(bytes);
+ }
}
#endregion
@@ -823,7 +952,7 @@ namespace BatCharging.Service
///
///
///
- internal void Send1502(TcpClientChargerTool tcp_client )
+ internal void Send1502(TcpClientChargerTool tcp_client)
{
CMD1502 CMD = new CMD1502();
CMD.reserved1 = 0;
diff --git a/BatCharging.Service/发送方法/ChargerSendCMD.cs b/BatCharging.Service/发送方法/ChargerSendCMD.cs
index b06a83b..81acb6f 100644
--- a/BatCharging.Service/发送方法/ChargerSendCMD.cs
+++ b/BatCharging.Service/发送方法/ChargerSendCMD.cs
@@ -10,8 +10,9 @@ namespace BatCharging.Service
public class ChargerSendCMD
{
#region 协议格式
- public byte[] SendRCMD1(out APDUModel APDUModel)
+ public byte[] SendRCMD1(out APDUModel APDUModel, CMD1 t)
{
+
byte[] result = null;
APDUModel model = new APDUModel();
@@ -22,16 +23,8 @@ namespace BatCharging.Service
model.CMD = 1;
model.checksumDomain = 0x01;
- CMD1 CMD1 = new CMD1();
- CMD1.value1 = 0;
- CMD1.value2 = 0;
- CMD1.value3 = 0;
- CMD1.value4 = 0;
- CMD1.value5 = 1;
- CMD1.value6 = 1;
- CMD1.value7 = 1;
-
- model.dataDomain = GetRCMD1DataInfo(CMD1); //数据域
+
+ model.dataDomain = GetRCMD1DataInfo(t); //数据域
model.LengthDomain = Convert.ToUInt16(9 + model.dataDomain.Length); //报文长度
List lstResult = new List();
@@ -58,21 +51,24 @@ namespace BatCharging.Service
lstContent.AddRange(BitConverter.GetBytes(CMD1.value2));
lstContent.Add(CMD1.value3);
lstContent.AddRange(BitConverter.GetBytes(CMD1.value4));
- lstContent.Add(CMD1.value5);
- lstContent.AddRange(BitConverter.GetBytes(CMD1.value7));
+
if (CMD1.value3 == 1)
{
- CMD1.value4 = 1;
- CMD1.value7 = 1;
- lstContent.AddRange(BitConverter.GetBytes(CMD1.value4));
- lstContent.AddRange(BitConverter.GetBytes(CMD1.value7));
+ lstContent.Add(CMD1.value5);
+ lstContent.AddRange(BitConverter.GetBytes(CMD1.value6));
+ lstContent.AddRange(CMD1.value7);
+ }
+ else
+ {
+
}
+
results = lstContent.ToArray();
}
return results;
}
- public byte[] SendRCMD3(out APDUModel APDUModel)
+ public byte[] SendRCMD3(out APDUModel APDUModel, CMD3 CMD3)
{
byte[] result = null;
@@ -84,14 +80,6 @@ namespace BatCharging.Service
model.CMD = 1;
model.checksumDomain = 0x01;
- CMD3 CMD3 = new CMD3();
- CMD3.value1 = 0;
- CMD3.value2 = 0;
- CMD3.value3 = 0;
- CMD3.value4 = 0;
- CMD3.value5 = 1;
- CMD3.value6 = 1;
- CMD3.value7 = 1;
model.dataDomain = GetRCMD3DataInfo(CMD3); //数据域
model.LengthDomain = Convert.ToUInt16(9 + model.dataDomain.Length); //报文长度
@@ -120,20 +108,21 @@ namespace BatCharging.Service
lstContent.AddRange(BitConverter.GetBytes(CMD.value2));
lstContent.Add(CMD.value3);
lstContent.AddRange(BitConverter.GetBytes(CMD.value4));
- lstContent.Add(CMD.value5);
- lstContent.AddRange(BitConverter.GetBytes(CMD.value7));
+ lstContent.AddRange(CMD.value6);
if (CMD.value3 == 1)
{
- CMD.value4 = 1;
- CMD.value7 = 1;
- lstContent.AddRange(BitConverter.GetBytes(CMD.value4));
- lstContent.AddRange(BitConverter.GetBytes(CMD.value7));
+ lstContent.AddRange(BitConverter.GetBytes(CMD.value5));
+ lstContent.AddRange(CMD.value6);
+ }
+ else
+ {
+
}
results = lstContent.ToArray();
}
return results;
}
- public byte[] SendRCMD5(out APDUModel APDUModel)
+ public byte[] SendRCMD5(out APDUModel APDUModel, CMD5 cMD5)
{
byte[] result = null;
@@ -145,16 +134,9 @@ namespace BatCharging.Service
model.CMD = 1;
model.checksumDomain = 0x01;
- CMD5 CMD = new CMD5();
- CMD.value1 = 0;
- CMD.value2 = 0;
- CMD.value3 = 0;
- CMD.value4 = 0;
- CMD.value5 = 1;
- CMD.value6 = 1;
- CMD.value7 = 1;
- model.dataDomain = GetRCMD5DataInfo(CMD); //数据域
+
+ model.dataDomain = GetRCMD5DataInfo(cMD5); //数据域
model.LengthDomain = Convert.ToUInt16(9 + model.dataDomain.Length); //报文长度
List lstResult = new List();
@@ -196,7 +178,7 @@ namespace BatCharging.Service
}
- public byte[] SendRCMD7(out APDUModel APDUModel)
+ public byte[] SendRCMD7(out APDUModel APDUModel, CMD7 CMD)
{
byte[] result = null;
@@ -208,23 +190,7 @@ namespace BatCharging.Service
model.CMD = 1;
model.checksumDomain = 0x01;
- CMD7 CMD = new CMD7();
- CMD.value01 = 0;
- CMD.value02 = 0;
- CMD.value03 = 0;
- CMD.value04 = 0;
- CMD.value05 = 1;
- CMD.value06 = 1;
- CMD.value07 = 1;
- CMD.value08 = 1;
- CMD.value09 = 1;
- CMD.value10 = 1;
- CMD.value11 = 1;
- CMD.value12 = 1;
- CMD.value13 = null;
- CMD.value14 = 1;
- CMD.value15 = 1;
- CMD.value16 = 1;
+
model.dataDomain = GetRCMD7DataInfo(CMD); //数据域
model.LengthDomain = Convert.ToUInt16(9 + model.dataDomain.Length); //报文长度
@@ -270,7 +236,7 @@ namespace BatCharging.Service
}
- public byte[] SendRCMD9(out APDUModel APDUModel)
+ public byte[] SendRCMD9(out APDUModel APDUModel,CMD9 CMD)
{
byte[] result = null;
@@ -282,14 +248,7 @@ namespace BatCharging.Service
model.CMD = 1;
model.checksumDomain = 0x01;
- CMD9 CMD = new CMD9();
- CMD.value01 = 0;
- CMD.value02 = 0;
- CMD.value03 = 0;
- CMD.value04 = 0;
- CMD.value05 = 1;
- CMD.value06 = 1;
- CMD.value07 = null;
+
model.dataDomain = GetRCMD9DataInfo(CMD); //数据域
model.LengthDomain = Convert.ToUInt16(9 + model.dataDomain.Length); //报文长度
@@ -330,7 +289,7 @@ namespace BatCharging.Service
#region 充电桩主动上传数据
- public byte[] SendRCMD101(out APDUModel APDUModel)
+ public byte[] SendRCMD101(out APDUModel APDUModel, CMD101 CMD)
{
byte[] result = null;
@@ -342,10 +301,7 @@ namespace BatCharging.Service
model.CMD = 1;
model.checksumDomain = 0x01;
- CMD101 CMD = new CMD101();
- CMD.value01 = 0;
- CMD.value02 = 0;
- CMD.value03 = 0;
+
model.dataDomain = GetRCMD101DataInfo(CMD); //数据域
model.LengthDomain = Convert.ToUInt16(9 + model.dataDomain.Length); //报文长度
@@ -380,7 +336,7 @@ namespace BatCharging.Service
}
- public byte[] SendRCMD103(out APDUModel APDUModel)
+ public byte[] SendRCMD103(out APDUModel APDUModel, CMD103 CMD)
{
byte[] result = null;
@@ -392,11 +348,6 @@ namespace BatCharging.Service
model.CMD = 1;
model.checksumDomain = 0x01;
- CMD103 CMD = new CMD103();
- CMD.value01 = 0;
- CMD.value02 = 0;
- CMD.value03 = 0;
- CMD.value04 = 0;
model.dataDomain = GetRCMD103DataInfo(CMD); //数据域
model.LengthDomain = Convert.ToUInt16(9 + model.dataDomain.Length); //报文长度
@@ -431,7 +382,7 @@ namespace BatCharging.Service
return results;
}
- public byte[] SendRCMD105(out APDUModel APDUModel)
+ public byte[] SendRCMD105(out APDUModel APDUModel, CMD105 CMD)
{
byte[] result = null;
@@ -443,20 +394,9 @@ namespace BatCharging.Service
model.CMD = 1;
model.checksumDomain = 0x01;
- CMD105 CMD105 = new CMD105();
- CMD105.value1 = 1;
- CMD105.value2 = 1;
- CMD105.value3 = 1;
- CMD105.value4 = 1;
- CMD105.value5 = 0;
- CMD105.value6 = null;
- CMD105.value7 = 1;
- CMD105.value8 = 1;
- CMD105.value9 = 1;
- CMD105.value10 = 0xDE;
- CMD105.value11 = null;
-
- model.dataDomain = GetRCMD105DataInfo(CMD105); //数据域
+
+
+ model.dataDomain = GetRCMD105DataInfo(CMD); //数据域
model.LengthDomain = Convert.ToUInt16(9 + model.dataDomain.Length); //报文长度
List lstResult = new List();
@@ -500,7 +440,7 @@ namespace BatCharging.Service
}
- public byte[] SendRCMD107(out APDUModel APDUModel)
+ public byte[] SendRCMD107(out APDUModel APDUModel, CMD107 CMD)
{
byte[] result = null;
@@ -512,10 +452,7 @@ namespace BatCharging.Service
model.CMD = 1;
model.checksumDomain = 0x01;
- CMD107 CMD = new CMD107();
- //CMD.value01 = 0;
- //CMD.value02 = 0;
- //CMD.value03 = 0;
+
model.dataDomain = GetRCMD107DataInfo(CMD); //数据域
model.LengthDomain = Convert.ToUInt16(9 + model.dataDomain.Length); //报文长度
@@ -550,7 +487,7 @@ namespace BatCharging.Service
}
- public byte[] SendRCMD109(out APDUModel APDUModel)
+ public byte[] SendRCMD109(out APDUModel APDUModel, CMD109 CMD)
{
byte[] result = null;
@@ -562,9 +499,6 @@ namespace BatCharging.Service
model.CMD = 1;
model.checksumDomain = 0x01;
- CMD109 CMD = new CMD109();
- CMD.value01 = 0;
- CMD.value02 = 0;
model.dataDomain = GetRCMD109DataInfo(CMD); //数据域
model.LengthDomain = Convert.ToUInt16(9 + model.dataDomain.Length); //报文长度
@@ -598,7 +532,7 @@ namespace BatCharging.Service
}
- public byte[] SendRCMD111(out APDUModel APDUModel)
+ public byte[] SendRCMD111(out APDUModel APDUModel, CMD111 CMD)
{
byte[] result = null;
@@ -610,10 +544,6 @@ namespace BatCharging.Service
model.CMD = 1;
model.checksumDomain = 0x01;
- CMD111 CMD = new CMD111();
- CMD.value01 = 0;
- CMD.value02 = 0;
- CMD.value03 = 0;
model.dataDomain = GetRCMD111DataInfo(CMD); //数据域
model.LengthDomain = Convert.ToUInt16(9 + model.dataDomain.Length); //报文长度
@@ -647,7 +577,7 @@ namespace BatCharging.Service
return results;
}
- public byte[] SendRCMD113(out APDUModel APDUModel)
+ public byte[] SendRCMD113(out APDUModel APDUModel, CMD113 CMD)
{
byte[] result = null;
@@ -659,11 +589,7 @@ namespace BatCharging.Service
model.CMD = 1;
model.checksumDomain = 0x01;
- CMD113 CMD = new CMD113();
- CMD.value01 = 0;
- CMD.value02 = 0;
- CMD.value03 = 0;
- CMD.value04 = 0;
+
model.dataDomain = GetRCMD113DataInfo(CMD); //数据域
model.LengthDomain = Convert.ToUInt16(9 + model.dataDomain.Length); //报文长度
diff --git a/ChargeInterfaceTest.sln b/ChargeInterfaceTest.sln
index 23c77f0..22ee1c7 100644
--- a/ChargeInterfaceTest.sln
+++ b/ChargeInterfaceTest.sln
@@ -13,6 +13,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BatCharging.Service", "BatC
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Module.Socket.Tool", "Module.Socket.Tool\Module.Socket.Tool.csproj", "{5ECD672B-72BD-4A3A-9160-219F17FC9B9C}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommonClass", "CommonClass\CommonClass.csproj", "{03F698D6-A474-4408-9B92-A0F7977CCCFE}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -39,6 +41,10 @@ Global
{5ECD672B-72BD-4A3A-9160-219F17FC9B9C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5ECD672B-72BD-4A3A-9160-219F17FC9B9C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5ECD672B-72BD-4A3A-9160-219F17FC9B9C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {03F698D6-A474-4408-9B92-A0F7977CCCFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {03F698D6-A474-4408-9B92-A0F7977CCCFE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {03F698D6-A474-4408-9B92-A0F7977CCCFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {03F698D6-A474-4408-9B92-A0F7977CCCFE}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/CommonClass/CommonClass.csproj b/CommonClass/CommonClass.csproj
new file mode 100644
index 0000000..132c02c
--- /dev/null
+++ b/CommonClass/CommonClass.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net6.0
+ enable
+ enable
+
+
+
diff --git a/CommonClass/PubCommonClass.cs b/CommonClass/PubCommonClass.cs
new file mode 100644
index 0000000..e672e55
--- /dev/null
+++ b/CommonClass/PubCommonClass.cs
@@ -0,0 +1,40 @@
+namespace CommonClass
+{
+ ///
+ /// 公共通用类库参数
+ ///
+ public class PubCommonClass
+ {
+ ///
+ ///
+ ///
+ public Dictionary cmd3StartAddress = new Dictionary();
+
+
+ public void SetCmd3StartAddress()
+ {
+ cmd3StartAddress.Add(1, 32);
+ cmd3StartAddress.Add(2, 8);
+ cmd3StartAddress.Add(3, 8);
+ cmd3StartAddress.Add(4, 8);
+ cmd3StartAddress.Add(5, 6);
+ cmd3StartAddress.Add(6, 16);
+ cmd3StartAddress.Add(7, 256);
+ cmd3StartAddress.Add(8, 16);
+ cmd3StartAddress.Add(9, 16);
+ cmd3StartAddress.Add(10, 256);
+ cmd3StartAddress.Add(11, 128);
+ cmd3StartAddress.Add(12, 12);
+ cmd3StartAddress.Add(13, 64);
+ cmd3StartAddress.Add(14, 8);
+ cmd3StartAddress.Add(15, 256);
+ cmd3StartAddress.Add(16, 256);
+ cmd3StartAddress.Add(17, 256);
+ cmd3StartAddress.Add(18, 256);
+ cmd3StartAddress.Add(19, 256);
+ cmd3StartAddress.Add(20, 256);
+ }
+
+
+ }
+}
\ No newline at end of file