using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JiShe.CollectBus.Protocol3761
{
///
/// 解析3761报文
///
public class TB3761
{
///
/// 报文
///
public BaseHexMessage BaseHexMessage { get; set;}=new BaseHexMessage();
///
/// 报文ID
///
public string? MessageId { get; set; }
///
/// 控制域C
///
public C C { get; set; } = new C();
///
/// 地址域A
///
public A A { get; set; } = new A();
///
/// 帧序列域 SEQ
///
public SEQ SEQ { get; set; } = new SEQ();
///
/// 用户数据区
/// 功能码
///
public AFN_FC AFN_FC { get; set; } = new AFN_FC();
///
/// 用户数据区
/// 信息点DA Pn
///
public DA DA { get; set; } = new DA();
///
/// 用户数据区
/// 信息类DT Fn
///
public DT DT { get; set; } = new DT();
///
/// 数据单元标识和数据单元格式
///
public UnitData UnitData { get; set; } = new UnitData();
}
#region
///
/// 报文信息
///
public class BaseHexMessage
{
///
/// 报文
///
public string? HexMessageString { get; set; }
///
/// 报文数组
///
public List? HexMessageList { get; set; }
}
///
/// 控制域C
///
public class C
{
///
/// 控制域C报文
///
public BaseHexMessage? BaseHexMessage { get; set; }
///
/// 传输方向位D7 DIR=0,表示此帧报文是由主站发出的下行报文;DIR=1,表示此帧报文是由终端发出的上行报文。
///
public int DIR { get; set; }
///
/// D6启动标志位 0:表示此帧报文来自从动站(终端),1:表示此帧报文来自启动站(服务端)
///
public int PRM { get; set; }
///
/// D5下行:帧计数位(FCB)/上行(ACD):要求访问位(终端有重要事件等待访问),
///
public int FCB { get; set; }
///
/// 下行:帧计数有效位(决定FCB位有效/无效)/上行:保留 D4
///
public int FCV { get; set; }
///
/// 功能码 D0-D3
///
public int FC { get; set; }
}
///
/// 地址域A
///
public class A
{
///
/// 地址域报文
///
public BaseHexMessage? BaseHexMessage { get; set; }
///
/// 集中器/终端编码
///
public string? Code { get; set; }
///
/// 行政区划码A1
///
public string? A1 { get; set; }
///
/// 终端地址A2
///
public int A2 { get; set; }
///
/// 站地址和组地址标志A3
///
public A3? A3 { get; set; }
}
///
/// 站地址和组地址标志A3
///
public class A3
{
///
/// 地址域A3报文
///
public BaseHexMessage? BaseHexMessage { get; set; }
///
/// 终端组地址标志,D0=0即False 表示终端地址A2 为单地址
///
public int D0 { get; set; }
///
/// 主站地址 MSA D1~D7 组成 0~127
///
public int D1_D7 { get; set; }
}
///
/// 帧序列域 SEQ
///
public class SEQ
{
///
/// 帧序列域报文
///
public BaseHexMessage? BaseHexMessage { get; set; }
///
/// 响应帧序号
///
public int PSEQ { get; set; }
///
/// CON为“1”,表示需要对该帧报文进行确认;置“0”,表示不需要对该帧报文进行确认。
///
public int CON { get; set; }
///
/// 末帧标志
///
public int FIN { get; set; }
///
/// 首帧标志
///
public int FIR { get; set; }
///
/// 帧时间标签有效位,TpV=0,表示在附加信息域中无时间标签Tp;TpV=1,表示在附加信息域中带有时间标签Tp
///
public int TpV { get; set; }
}
///
/// 用户数据区
/// 功能码
///
public class AFN_FC
{
public BaseHexMessage? BaseHexMessage { get; set; }
///
/// 功能码
///
public int AFN { get; set; }
}
///
/// 用户数据区
/// 信息点DA Pn
///
public class DA
{
public BaseHexMessage? BaseHexMessage { get; set; }
///
/// 信息点 DA Pn
///
public int Pn { get; set; }
}
///
/// 用户数据区
/// 信息类DT Fn
///
public class DT
{
public BaseHexMessage? BaseHexMessage { get; set; }
///
/// 信息类 DT Fn
///
public int Fn { get; set; }
}
///
/// 数据单元标识和数据单元格式
///
public class UnitData: BaseHexMessage{ }
#endregion
}