报文分析

界面演示





    
核心接口
 
  1. public interface I项目
  2. {
  3. M项目 获取项目();
  4. void 保存当前映射(List<M设备映射> 当前通信);
  5. }
  1. public class M项目
  2. {
  3. [DBKey]
  4. public Int64 Id { get; set; }
  5. public string 名称 { get; set; }
  6. public List<M设备映射> 设备通信模板 { get; set; }
  7. public List<M设备映射> 当前通信设备 { get; set; }
  8. public List<string> 业务类型列表 { get; set; }
  9. public List<string> 设备类型列表 { get; set; }
  10. public Func<M解码前报文, M解码后报文> 解码器 { get; set; }
  11. /// <summary>
  12. /// 参数依次为: 发送方设备类型, 接收方设备类型, 功能码
  13. /// </summary>
  14. public Func<string, string, string, M功能> 功能码查询 { get; set; }
  15. public List<string> 默认内容过滤 { get; set; }
  16. public List<string> 默认业务过滤 { get; set; }
  17. public M项目()
  18. {
  19. this.默认内容过滤 = new List<string>();
  20. this.默认业务过滤 = new List<string>();
  21. }
  22. public override string ToString()
  23. {
  24. return 名称;
  25. }
  26. }
  1. public class M设备映射
  2. {
  3. [DBKey]
  4. public Int64 Id { get; set; }
  5. public bool 启用 { get; set; }
  6. public bool TCP { get; set; }
  7. public IPAddress IP1 { get; set; }
  8. /// <summary>
  9. /// 0表示任意端口
  10. /// </summary>
  11. public int 端口1 { get; set; }
  12. public string 设备类型1 { get; set; }
  13. public IPAddress IP2 { get; set; }
  14. /// <summary>
  15. /// 0表示任意端口
  16. /// </summary>
  17. public int 端口2 { get; set; }
  18. public string 设备类型2 { get; set; }
  19. public string 协议版本号 { get; set; }
  20. }
  1. public class M解码后报文
  2. {
  3. public DateTime 时间 { get; set; }
  4. public string 业务 { get; set; }
  5. public string 发送方 { get; set; }
  6. public string 发送方设备类型 { get; set; }
  7. public string 接收方 { get; set; }
  8. public string 接收方设备类型 { get; set; }
  9. public string 概述 { get; set; }
  10. public List<M信息> 详述 { get; set; }
  11. /// <summary>
  12. /// 传输层
  13. /// </summary>
  14. public byte[] 码流 { get; set; }
  15. public bool TCP { get; set; }
  16. public string 功能码 { get; set; }
  17. }
  1. public class M解码前报文
  2. {
  3. public bool TCP { get; set; }
  4. public string 发送方设备类型 { get; set; }
  5. public IPAddress 发送方IP { get; set; }
  6. public int 发送方端口号 { get; set; }
  7. public string 接收方设备类型 { get; set; }
  8. public IPAddress 接收方IP { get; set; }
  9. public int 接收方端口号 { get; set; }
  10. /// <summary>
  11. /// 传输层
  12. /// </summary>
  13. public byte[] 码流 { get; set; }
  14. public DateTime 时间 { get; set; }
  15. }
  1. public class M信息
  2. {
  3. public string { get; set; }
  4. public string { get; set; }
  5. public string 描述 { get; set; }
  6. public M信息 父节点 { get; set; }
  7. public List<M信息> 子节点 { get; set; }
  8. public M信息()
  9. {
  10. 子节点 = new List<M信息>();
  11. }
  12. public override string ToString()
  13. {
  14. var __详述内容 = new StringBuilder();
  15. __详述内容.AppendFormat("{0} : {1}{2}", 键, 值, Environment.NewLine);
  16. 递归详述(子节点, __详述内容, "--------");
  17. return __详述内容.ToString();
  18. }
  19. public static void 递归详述(List<M信息> 子节点, StringBuilder __详述内容, string __缩进)
  20. {
  21. 子节点.ForEach(q =>
  22. {
  23. __详述内容.AppendFormat("{0}{1} : {2}{3}", __缩进, q.键, q.值, Environment.NewLine);
  24. if (q.子节点 != null && q.子节点.Count > 0)
  25. {
  26. 递归详述(q.子节点, __详述内容, __缩进 + __缩进);
  27. }
  28. });
  29. }
  30. }

   
 




原文地址:https://www.cnblogs.com/wangk/p/5730940.html