|
|
using BatCharging.Model;
|
|
|
|
|
|
namespace BatCharging.Service.Encoder.New
|
|
|
{
|
|
|
internal class UpModelStationRespEcoder
|
|
|
{
|
|
|
public UpModelStationRespEcoder()
|
|
|
{
|
|
|
}
|
|
|
|
|
|
internal byte[] GetUpModelStationRespEcoderMsg(byte[] destAddr, byte respResult)
|
|
|
{
|
|
|
|
|
|
byte[] result = null;
|
|
|
|
|
|
APCI headAPCI = new APCI();
|
|
|
headAPCI.StartChar = CmnChargerConst.APCI_START_CHAR;
|
|
|
headAPCI.PackLen = 0; //临时赋值为零,具体数值看下面的计算结果
|
|
|
headAPCI.CtlArea = 0; //控制域
|
|
|
headAPCI.DestAddr = destAddr;//目的地址
|
|
|
headAPCI.SrcAddr = 0;//源地址,本系统中,源地址统一为:00000000(即为0)
|
|
|
|
|
|
|
|
|
|
|
|
ASDU headASDU = new ASDU();
|
|
|
headASDU.FrameTypeNo = 45; //帧类型号
|
|
|
headASDU.MsgBodyCount = 1; //信息体个数
|
|
|
headASDU.TransReason = 3; //传送原因
|
|
|
headASDU.PublicAddr = 0; //公共地址
|
|
|
headASDU.MsgBodyAddr = new byte[] { 0, 0, 0 }; //信息体地址
|
|
|
|
|
|
UpModelStationRespData upModelStationRespData = new UpModelStationRespData();
|
|
|
upModelStationRespData.RespResult = respResult;
|
|
|
|
|
|
headASDU.MsgBodyContents = GetMsgContents(upModelStationRespData); //信息体
|
|
|
|
|
|
headAPCI.PackLen = Convert.ToUInt16(24 + headASDU.MsgBodyContents.Length); //报文长度
|
|
|
|
|
|
List<byte> lstResult = MsgHeadApciEncoder.BuildBaseAPCI(headAPCI);
|
|
|
lstResult.AddRange(MsgHeadAsduEncoder.BuildBaseASDU(headASDU).ToArray());
|
|
|
|
|
|
result = lstResult.ToArray();
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
private byte[] GetMsgContents(UpModelStationRespData upModelStationRespData)
|
|
|
{
|
|
|
byte[] results = null;
|
|
|
if (upModelStationRespData != null)
|
|
|
{
|
|
|
List<byte> lstContent = new List<byte>();
|
|
|
lstContent.Add(upModelStationRespData.RecordType);
|
|
|
lstContent.Add(upModelStationRespData.RespResult);
|
|
|
|
|
|
results = lstContent.ToArray();
|
|
|
}
|
|
|
return results;
|
|
|
}
|
|
|
class UpModelStationRespData
|
|
|
{
|
|
|
public byte RecordType { get; set; } = 76;
|
|
|
|
|
|
//结果 0正常
|
|
|
public byte RespResult { get; set; }
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
} |