MH/T4029.3是民航业用来规定飞行计划相关数据交互的规范,今天我们先来解析下其中I类的IFPL报文.

我们先来看看IFPL报文长啥样.

ZCZC

-TITLE IFPL

-FILTIM 010909

-IFPLID 201332005

-SOURCE AIRNET:ZUCK

-ARCID CSN6435

-ADEP ZBAA

-ADES ZUUU

-EOBD 20130301

-EOBT 0850

-SSRCODE A1270

NNNN

其中ZCZC是报文的开头标记,NNNN是报文的结束标记,没有实际意义

反序列化

  1. 下面我们根据报文创建我们的对象,忽略报头和报尾
    class IFPL
{
public string TITLE { get; set; }
public string FILTIM { get; set; }
public string IFPLID { get; set; }
public string SOURCE { get; set; }
public string ARCID { get; set; }
public string ADEP { get; set; }
public string ADES { get; set; }
public string EOBD { get; set; }
public string EOBT { get; set; }
public string SSRCODE { get; set; }
}
  1. 下面我们安装下MH/T4029.3报文解析工具,程序包控制台输入命令:

    Install-Package Extensioner.MHT40293 -Version 1.0.0
  2. 反序列化报文
            var message = @"ZCZC
-TITLE IFPL
-FILTIM 010909
-IFPLID 201332005
-SOURCE AIRNET:ZUCK
-ARCID CSN6435
-ADEP ZBAA
-ADES ZUUU
-EOBD 20130301
-EOBT 0850
-SSRCODE A1270
NNNN"; var model = MessageConvert.DeserializeObject<IFPL>(message); Console.ReadKey();

反序列化后的对象如下图:



是不是很简单?

序列化

反过来我们有时候需要把对象转换为MH/T4029.3报文,怎么办呢?也很简单!类库已经帮我们封装好了方法,我们直接调用即可.

我们把上面的model序列化然后打印一下

            var value = MessageConvert.SerializeObject(model);

            Console.WriteLine(value);

序列化后的报文入下图:



So easy!

完整代码如下:

点击查看代码
using Extensioner.MHT40293;
using System; namespace MHT40293.IFPLTest
{
class Program
{
static void Main(string[] args)
{
var message = @"ZCZC
-TITLE IFPL
-FILTIM 010909
-IFPLID 201332005
-SOURCE AIRNET:ZUCK
-ARCID CSN6435
-ADEP ZBAA
-ADES ZUUU
-EOBD 20130301
-EOBT 0850
-SSRCODE A1270
NNNN"; var model = MessageConvert.DeserializeObject<IFPL>(message); var value = MessageConvert.SerializeObject(model); Console.WriteLine(value); Console.ReadKey();
}
} class IFPL
{
public string TITLE { get; set; }
public string FILTIM { get; set; }
public string IFPLID { get; set; }
public string SOURCE { get; set; }
public string ARCID { get; set; }
public string ADEP { get; set; }
public string ADES { get; set; }
public string EOBD { get; set; }
public string EOBT { get; set; }
public string SSRCODE { get; set; }
} }

MH/T4029.3 IFPL报文解析的更多相关文章

  1. 报文解析及CRC类

    /// <summary> /// 报文解析转换类 /// </summary> public class DatagramConvert { public static En ...

  2. ISO8583报文解析

    在此只写了一个8583报文的拆包,组包其实也差不多的. 不多说直接上文件, 具体思路过程,在解析类里面写的有. 其中包含了四个文件 8583resp.txt报文 ISO8583medata配置文件 B ...

  3. 基于DPI(深度报文解析)的应用识别

    一.概述 1.DPI(Deep packet inspection,深度报文解析) 所谓“深度”是和普通的报文分析层次相比较而言的,“普通报文检测”仅分析IP包4 层以下的内容,包括源地址.目的地址. ...

  4. C#ModBus Tcp 报文解析

    上一篇博客已经完成 C#ModBus Tcp Master的实现 本篇主要对不同的功能码所发出的报文进行解析(包括请求报文及响应报文) 读操作 功能码 0x01 读一组线圈 读取站号为1 从地址12开 ...

  5. GOOSE报文解析

    GOOSE报文解析 变电站 使用 MMS报文 http://www.360doc.com/content/16/1014/20/36538220_598459873.shtml

  6. xml报文解析和组装

    package com.xjts.cipher.util;import java.io.File;import java.io.FileWriter;import java.io.IOExceptio ...

  7. Motorola和Intel格式报文解析的区别

      结论:无论用的Motorola,还是Intel格式,只在单个信号跨字节时解析才有区别. 先看下Vector的CANoe中dbc编辑器是如何呈现报文的: 图1 CAN报文中byte与bit顺序 从图 ...

  8. HTTP 协议报文解析

    说明转载自https://blog.csdn.net/chf1142152101/article/details/74162755 本篇主要是为了记录HTTP中报文的格式,以便针对报文进行解析.首先会 ...

  9. SOAP XML报文解析

    import java.util.HashMap;import java.util.List;import java.util.Map; import org.dom4j.Document;impor ...

随机推荐

  1. [luogu5537]系统设计

    考虑哈希,令$h[x]$表示根到$x$路径的哈希值,那么有$h[x]+hash(l,r)=h[ans]$ 考虑用线段树维护$a_{i}$的区间哈希值,并用map去找到对应的$ans$ 但还有一个问题, ...

  2. 浅讲.Net 6之ConfigurationManager

    介绍 本节为大家带来.NET 6新增的ConfigurationManager,很多人好奇为啥要讲这个,读取加载配置信息都随手就来了,我们往下看一下. 翻译:这添加了 ASP.NET Core 的新 ...

  3. 【机器学习基础】卷积神经网络(CNN)基础

    最近几天陆续补充了一些"线性回归"部分内容,这节继续机器学习基础部分,这节主要对CNN的基础进行整理,仅限于基础原理的了解,更复杂的内容和实践放在以后再进行总结. 卷积神经网络的基 ...

  4. docker详细

    镜像(image) 容器(container) 启动,删除,停止 仓库(repository)   docker images  

  5. 实践案例1-利用低代码开发平台Odoo快速构建律师事务所管理系统

    今年10月份中旬的时候,有一段时间没联系的中学同学,我跟他关系比较好,突然打电话给我,希望我给他夫人的律所开发一个小系统.记得十几年前,当他还在他叔叔公司上班的,他是负责销售的,我们几乎每周都碰面,那 ...

  6. Docker Alpine Dockerfile 安装nginx,最小镜像

    Docker Alpine Dockerfile 安装nginx,最小镜像 FROM alpine MAINTAINER will ## 将alpine-linux:apk的安装源改为国内镜像 RUN ...

  7. Redis总结笔记

    Redis总结笔记 应用场景 缓存--热数据 计算器 队列 位操作 分布式锁与单线程机制 最新列表 排行榜   Maxmemory-policy算法 volatile-lru:使用LRU算法移除key ...

  8. Hadoop 相关知识点(二)

    1.HDFS副本机制 Hadoopde 默认副本布局策略是: (1)在运行客户端的节点上放置第一个副本(如果客户端运行在集群之外,就随机选择一个节点,不过系统会避免选择那些存储太满或者太忙的节点): ...

  9. HDFS【Namenode、SecondaryNamenode、Datanode】

    目录 一. NameNode和SecondaryNameNode 1.NN和2NN 工作机制 2. NN和2NN中的fsimage.edits分析 3.checkpoint设置 4.namenode故 ...

  10. 手淘lib-flexible布局适配方案

    前置知识:什么是rem CSS3新增的一个相对单位rem(root em,根em).rem是相对于根节点(或者是html节点).如果根节点设置了font-size:10px;那么font-size:1 ...