• 报文分析


    界面演示





        
    核心接口
     
    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. }

       
     




  • 相关阅读:
    万维网
    MySQL客户端输出窗口显示中文乱码问题解决办法
    mysql数据库delete数据时不支持表别名
    Java 实现在固定区间内随机生成整数
    【面试】MySQL 中NULL和空值的区别?
    一个因MySQL大小写敏感导致的问题
    windows查看服务的状态
    不就是Select Count语句吗,竟然能被面试官虐的体无完肤!
    Java 代码的精优化
    java服务宕机原因查询
  • 原文地址:https://www.cnblogs.com/wangk/p/5730940.html
Copyright © 2020-2023  润新知