一种轻量级的嵌入式数采设备数据传输及反控方法

未命名 08-07 阅读:80 评论:0


1.本发明涉及物联网技术领域,尤其涉及一种轻量级的嵌入式数采设备数据传输及反控方法。


背景技术:

2.嵌入式和物联网数采设备及其上程序(以下简称设备端)是物联网和工业互联网应用的重要组成部分,其将采集到的各种数据传输给应用中的上位机(或服务器,以下简称为服务端),同时接收服务端下发的控制指令,而目前普遍采用的通讯协议(如uart、rs232、rs485、mqtt等)具有以下不足:
3.1、各自基于专有标准,协议涉及内容较多,协议格式相对复杂,需要设备端和服务端双方的开发者付出额外的学习成本;
4.2、某些编程语言并未对这些协议提供原生支持(如java不原生支持rs232、rs485等协议),需要使用第三方实现库;
5.3、实现库在不同编程语言和平台下的api差异较大,使得基于不同编程语言和平台的开发者难以以一种较为通用的方式进行数据的发送、接收、续传和解析。


技术实现要素:

6.有鉴于此,本发明的目的在于提出一种轻量级的嵌入式数采设备数据传输及反控方法,以解决现有通讯协议格式复杂、需要第三方实现库、难以通用的问题。
7.基于上述目的,本发明提供了一种轻量级的嵌入式数采设备数据传输及反控方法,包括以下步骤:
8.s1、设备端每次数采完毕后,使用设备端id、本条数据采集时间dt、采集的各数值量di、采集的各开关量组成的串s、报警状态字st,拼接出参数串params,并根据params串计算其校验码vc;
9.s2、将vc和params拼接,形成请求地址,并通过http协议向服务端发出http请求req;
10.s3、服务端从接收到的http请求req中获得参数串params和校验码vc,使用与设备端计算校验码vc时相同的加密算法计算出params的校验码vc,并检查vc是否与vc一致,若不一致,则使code=1,并转到步骤s10,若一致,执行步骤s4;
11.s4、服务端从接收到的请求req中获得设备端id,并在数据库中检查id是否合法,若不合法,则使code=2,并转到步骤s10,若一致,执行步骤s5;
12.s5、服务端从接收到的请求req中获得数据采集时间dt,并检查,若dt全为0,则使code=0,并转到步骤s10,否则,执行步骤s6;
13.s6、服务端以当前时间now预定义参数beforedays预定义参数afterseconds为依据,检查dt是否介于now-beforedays和now+afterseconds之间,其中beforedays用于设备端续传几天前采集的数据,afterseconds用于设备端获取的本地时间略微超过服务端时
间,若否,则使code=3,并转到步骤s10,若是,则检查数据库中是否已存在相同id和dt的记录,若存在,则使code=3,并转到步骤s10,若不存在,则执行步骤s7;
14.s7、服务端从接收到的请求req中获得采集的各开关量组成的串s和采集的各数值量di,并检查其的长度及格式是否合法,若不合法,则使code=4,并转到步骤s10,其中1≤i≤m,若合法则执行步骤s8;
15.s8、服务端从接收到的请求req中获得报警状态字st,并检查其长度及格式是否合法,若不合法,则使code=5,并转到步骤s10,若合法,执行步骤s9;
16.s9、服务端将id、dt、各di、s、st组成一条新纪录,插入数据库,并使code=0;
17.s10、服务端从数据库中通过id获取设备端预先配置的各工作参数以及下一条要执行的命令,向设备端发送响应内容r,以反控设备端;
18.s11、设备端获取并解析服务端的响应内容r以得到新的各工作参数、下一条要执行的命令及参数,并转到步骤s10,开始下一次传输及反控流程。
19.优选地,参数串params中,id具有唯一性,设备端每次启动时,另dt全为0,di格式为浮点型,其中,1≤i≤m,m为设备端支持的数值量最大个数,s长度为n,n为设备端支持的开关量最大个数,sj,1≤j≤n取值均为“0、1、
‑”
,分别标识第j个开关量为“断开、闭合、未知”,设备端每次启动时,另s全为
“‑”
,st长度为m+n,stk,1≤k≤m+n取值均为“0~9”或
“‑”
,其中,“0”标识di或s
j-m
正常、“1~9”标识di或s
i-m
异常,设备端每次启动时,另st全为“0”。
20.优选地,步骤s2包括以下子步骤:
21.s21、若本条数据含有图片pm,1≤m≤q,q为设备端支持的最大图片个数,则先将pm序列化为base64编码bm,并以键值对的形式将pm、bm放入req的请求体中,以post方式发出req;
22.s22、否则,以get方式发出req。
23.优选地,步骤s10中,响应内容r由code和以下各项拼接为串,包括:
24.server1:设备端下一次访问的服务端地址,若未指定此项,则设备端下一次继续使用步骤s2中的请求地址;
25.server2:服务端备用地址;
26.now:服务端当前时间;
27.interval:设备端下一次访问服务端的时间间隔;
28.sensorenables:设备端各传感器是否启用;
29.thresholdsd:各di(1≤i≤m)的正常阈值范围;
30.thresholdss:各si(1≤i≤n)的正常状态;
31.cmd:设备端下一条要执行的命令及参数。
32.优选地,响应内容r中,以“|”为分隔符,“!”为结束符。
33.本说明书还提供一种轻量级的嵌入式数采设备数据反控方法,包括以下步骤:
34.s100、接收设备端发送的http请求req;
35.s200、从接收到的http请求req中获得参数串params和校验码vc,使用与设备端计算校验码vc时相同的加密算法计算出params的校验码vc,并检查vc是否与vc一致,若不一致,则使code=1,并转到步骤,若一致,执行步骤s23,其中参数串params由设备端id、本条数据采集时间dt、采集的各数值量di、采集的各开关量组成的串s、报警状态字st拼接构成;
36.s300、从接收到的请求req中获得设备端id,并在数据库中检查id是否合法,若不合法,则使code=2,并转到步骤,若一致,执行步骤s400;
37.s400、从接收到的请求req中获得数据采集时间dt,并检查,若dt全为0,则使code=0,并转到步骤,否则,执行步骤s500;
38.s500、以当前时间now预定义参数beforedays预定义参数afterseconds为依据,检查dt是否介于now-beforedays和now+afterseconds之间,其中beforedays用于设备端续传几天前采集的数据,afterseconds用于设备端获取的本地时间略微超过服务端时间,若否,则使code=3,并转到步骤,若是,则检查数据库中是否已存在相同id和dt的记录,若存在,则使code=3,并转到步骤,若不存在,则执行步骤s600;
39.s600、从接收到的请求req中获得采集的各开关量组成的串s和采集的各数值量di,并检查其的长度及格式是否合法,若不合法,则使code=4,并转到步骤,其中1≤i≤m,若合法则执行步骤s700;
40.s700、从接收到的请求req中获得报警状态字st,并检查其长度及格式是否合法,若不合法,则使code=5,并转到步骤,若合法,执行步骤s800;
41.s800、将id、dt、各di、s、st组成一条新纪录,插入数据库,并使code=0;
42.s900、从数据库中通过id获取设备端预先配置的各工作参数以及下一条要执行的命令,向设备端发送响应内容r,以反控设备端。
43.本发明的有益效果:本发明使用基于纯文本的http协议,请求和相应的内容易于理解,编程方式与操作系统无关,能够提供一种通用的方式进行数据的发送、接收、续传和解析,且不需要第三方实现库。
附图说明
44.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.图1为本发明实施例的数据传输及反控方法流程示意图;
具体实施方式
46.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,对本发明进一步详细说明。
47.如图1所示,本说明书实施例提供一种轻量级的嵌入式数采设备传输及反控方法,包括以下步骤:
48.步骤s1:设备端每次数采完毕后,使用设备端id、本条数据采集时间dt、采集的各数值量di、采集的各开关量组成的串s、报警状态字st等,以“键值对(key=value)”的形式拼接出参数串params,并根据params串计算其校验码vc。params的具体说明如下:
49.1)id具有唯一性,长度和格式可根据业务自定义;
50.2)dt长度为14,格式为“年月日时分秒”。设备端每次启动时,dt全为“0”;
51.3)di(1≤i≤m,m为设备端支持的数值量最大个数,如8)格式为浮点型;
52.4)s长度为n(n为设备端支持的开关量最大个数,如8),sj(1≤j≤n)取值均为“0、1、
‑”
,分别标识第j个开关量为“断开、闭合、未知”。设备端每次启动时,s全为
“‑”

53.5)st长度为m+n,stk(1≤k≤m+n)取值均为“0~9”或
“‑”
。其中,“0”标识di(1≤i≤m)或s
j-m
(m+1≤j≤m+n)正常、“1~9”标识di或s
j-m
异常(可根据业务自定义每个数值量和开关量的至多9种异常状态,如st1=1对应d1“低温异常”、st1=2对应d1“高温异常”、st1=9对应d1“传感器损坏异常”、st
m+1
=1对应s1“断开异常”等)、
“‑”
标识di或s
j-m
对应的传感器未启用。若st全为“0或
‑”
,则标识本条数据正常,否则标识本条数据至少有一个数值量或开关量异常。设备端每次启动时,st全为“0”;
54.6)以上各项,除di外,其余全部为必选项;
55.7)params形如“id=g020001&dt=20221229142030&d1=-8&d4=37.5&s=011-0
‑‑
0&st=10
‑‑2‑‑‑‑
100-2
‑‑
0”。
56.作为一种实施方式,计算校验码的方式可以采用md5、sha-1等标准加密算法,若设备端的计算性能受限,则可以采用时间复杂度较低的自定义hash算法。
57.步骤s2:将vc与params拼接,形成最终的请求地址(形如“http(s)://服务端默认地址?vc=a8e9&params”),并通过各种编程语言和平台都内建支持的http协议,向服务器端(或上位机)发出http请求req,具体为:
58.步骤s21:若本条数据含有图片pm(1≤m≤q,q为设备端支持的最大图片个数),则先将pm序列化为base64编码bm,并以“键值对”的形式将pm、bm放入req的请求体(request body)中,然后以post方式发出req,转到步骤s3;
59.步骤s22否则,以get方式发出req,转到步骤s3。
60.步骤s3:服务端从接收到的请求req中获得参数vc和params,然后使用与设备端相同的加密算法计算出params的校验码vc,并检查vc是否与vc一致:
61.步骤s31若一致,则转到步骤s4;
62.步骤s32否则,使code=1(检验码不一致),并转到步骤s10。
63.步骤s4:服务端从接收到的请求req中获得参数id,并在数据库中检查id是否合法(如是否存在、是否启用、是否处于服务期限、是否已被分配给客户、所属客户是否启用等):
64.步骤s41若合法,则转到步骤s5;
65.步骤s42否则,使code=2(id非法,或依据业务为每种具体的非法情形定义单独的状态码),并转到步骤s10。
66.步骤s5:服务端从接收到的请求req中获得参数dt,并检查:
67.步骤s51若dt全为0(设备端启动后首次访问服务端),则使code=0(本次访问成功),则转到步骤s10,否则,转到步骤s6
68.步骤s6以服务端当前时间now预定义参数beforedays(单位为天,用于设备端续传几天前采集的数据)、预定义参数afterseconds(单位为秒,用于设备端获取的本地时间略微超过服务端时间)为依据,检查dt是否介于now-beforedays和now+afterseconds之间:
69.步骤s61若是,则检查数据库中是否已存在相同id和dt的记录:
70.1)若不存在,则转到步骤s7;
71.2)否则,使code=3(dt非法),并转到步骤s10。
72.步骤s62否则,使code=3(dt非法),并转到步骤s10。
73.步骤s7:服务端从接收到的请求req中获得参数s和各di(1≤i≤m),并检查它们的长度及格式是否合法:
74.步骤s71若均合法,则转到步骤s8;
75.步骤s72否则,使code=4(s或di非法),并转到步骤s10。
76.步骤s8:服务端从接收到的请求req中获得参数st,并检查其长度及格式是否合法:
77.步骤s81若合法,则转到步骤s9;
78.步骤s82否则,使code=5(st非法),并转到步骤s10。
79.步骤s9:将id、dt、各di(1≤i≤m)、s、st组成一条新纪录,插入数据库,并使code=0(本次访问成功)。
80.步骤10:服务端从数据库中通过id获取为该设备端预先配置的各工作参数以及下一条要执行的命令,以便反控该设备端,具体包括:
81.1)server1:设备端下一次访问的服务端地址(如“https://srv1.mycompany.com”)。当并发量较高时,将设备端请求分发到此服务端,以便实现负载均衡。若未指定此项,则设备端下一次继续使用步骤s2中的服务端默认地址;
82.2)server2:服务端备用地址。当上述server1无响应时,设备端应继续访问此地址;
83.3)now:服务端当前时间,供设备端校准本地时间;
84.4)interval:设备端下一次访问服务端的时间间隔(单位为秒);
85.5)sensorenables:设备端各传感器是否启用,长度与st相同(m+n),每一位(设为sek,1≤i≤m+n)均为“0或1”。当sek=0(禁用)时,标识设备端下一次数采时无需采集di(1≤i≤m)或s
j-m
(m+1≤j≤m+n)。若禁用di,则设备端下一次拼接的参数串params不应包含di对应的“键值对”;若禁用s
j-m
,则设备端下一次产生的sj(1≤j≤n)应主动置为
“‑”
。类似地,当sek=0时,设备端下一次产生的stk(1≤k≤m+n)应主动置为那么
“‑”

86.6)thresholdsd:各di(1≤i≤m)的正常阈值范围,以西文逗号(“,”,共m个)分隔每一个di的最小值和最大值(如
“‑
2.5,10”)、以西文分号(“;”,共m-1个)分隔多个di的阈值范围(如
“‑
2.5,10;4,8;...”)。若设备端下一次采集的di超出此范围,则应将对应的sti置为该数值量约定的异常状态码;
87.7)thresholdss:各sj(1≤j≤n)的正常状态,长度与s相同,每一位均为“0、1或
‑”
,分别标识sj处于“断开、闭合、断开或闭合”时才是正常状态。若设备端下一次采集的sj不是此正常状态,则应将对应的st
j+m
置为该开关量约定的异常状态码;
88.8)cmd:设备端下一条要执行的命令及参数,以西文逗号(“,”)来分隔命令与参数、参数与参数(不同命令涉及的参数个数可能不一样);
89.9)以上各项,除server1、server2外,其余全部为必选项;
90.10)将前述code连同上述各项,以西文竖线(“|”,共6个)为分隔符、西文感叹号(“!”)为结束符拼接出串r,作为服务端对设备端本次请求的响应内容。
91.步骤s11:设备端获取并解析服务端的响应内容r以得到新的各工作参数、下一条要执行的命令及参数,并转到步骤s1,开始下一次传输及反控流程。
92.本说明书实施例还提供一种轻量级的嵌入式数采设备数据反控方法,包括以下步
骤:
93.s100、接收设备端发送的http请求req;
94.s200、从接收到的http请求req中获得参数串params和校验码vc,使用与设备端计算校验码vc时相同的加密算法计算出params的校验码vc,并检查vc是否与vc一致,若不一致,则使code=1,并转到步骤,若一致,执行步骤s23,其中参数串params由设备端id、本条数据采集时间dt、采集的各数值量di、采集的各开关量组成的串s、报警状态字st拼接构成;
95.s300、从接收到的请求req中获得设备端id,并在数据库中检查id是否合法,若不合法,则使code=2,并转到步骤,若一致,执行步骤s400;
96.s400、从接收到的请求req中获得数据采集时间dt,并检查,若dt全为0,则使code=0,并转到步骤,否则,执行步骤s500;
97.s500、以当前时间now预定义参数beforedays预定义参数afterseconds为依据,检查dt是否介于now-beforedays和now+afterseconds之间,其中beforedays用于设备端续传几天前采集的数据,afterseconds用于设备端获取的本地时间略微超过服务端时间,若否,则使code=3,并转到步骤,若是,则检查数据库中是否已存在相同id和dt的记录,若存在,则使code=3,并转到步骤,若不存在,则执行步骤s600;
98.s600、从接收到的请求req中获得采集的各开关量组成的串s和采集的各数值量di,并检查其的长度及格式是否合法,若不合法,则使code=4,并转到步骤,其中1≤i≤m,若合法则执行步骤s700;
99.s700、从接收到的请求req中获得报警状态字st,并检查其长度及格式是否合法,若不合法,则使code=5,并转到步骤,若合法,执行步骤s800;
100.s800、将id、dt、各di、s、st组成一条新纪录,插入数据库,并使code=0;
101.s900、从数据库中通过id获取设备端预先配置的各工作参数以及下一条要执行的命令,向设备端发送响应内容r,以反控设备端。
102.本发明使用基于纯文本的http协议,请求和相应的内容易于理解,编程方式与操作系统无关,能够提供一种通用的方式进行数据的发送、接收、续传和解析,且不需要第三方实现库。
103.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
104.本发明旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种轻量级的嵌入式数采设备数据传输及反控方法,其特征在于,包括以下步骤:s1、设备端每次数采完毕后,使用设备端id、本条数据采集时间dt、采集的各数值量d
i
、采集的各开关量组成的串s、报警状态字st,拼接出参数串params,并根据params串计算其校验码vc;s2、将vc和params拼接,形成请求地址,并通过http协议向服务端发出http请求req;s3、服务端从接收到的http请求req中获得参数串params和校验码vc,使用与设备端计算校验码vc时相同的加密算法计算出params的校验码vc,并检查vc是否与vc一致,若不一致,则使code=1,并转到步骤s10,若一致,执行步骤s4;s4、服务端从接收到的请求req中获得设备端id,并在数据库中检查id是否合法,若不合法,则使code=2,并转到步骤s10,若一致,执行步骤s5;s5、服务端从接收到的请求req中获得数据采集时间dt,并检查,若dt全为0,则使code=0,并转到步骤s10,否则,执行步骤s6;s6、服务端以当前时间now预定义参数beforedays预定义参数afterseconds为依据,检查dt是否介于now-beforedays和now+afterseconds之间,其中beforedays用于设备端续传几天前采集的数据,afterseconds用于设备端获取的本地时间略微超过服务端时间,若否,则使code=3,并转到步骤s10,若是,则检查数据库中是否已存在相同id和dt的记录,若存在,则使code=3,并转到步骤s10,若不存在,则执行步骤s7;s7、服务端从接收到的请求req中获得采集的各开关量组成的串s和采集的各数值量d
i
,并检查其的长度及格式是否合法,若不合法,则使code=4,并转到步骤s10,其中1≤i≤m,若合法则执行步骤s8;s8、服务端从接收到的请求req中获得报警状态字st,并检查其长度及格式是否合法,若不合法,则使code=5,并转到步骤s10,若合法,执行步骤s9;s9、服务端将id、dt、各d
i
、s、st组成一条新纪录,插入数据库,并使code=0;s10、服务端从数据库中通过id获取设备端预先配置的各工作参数以及下一条要执行的命令,向设备端发送响应内容r,以反控设备端;s11、设备端获取并解析服务端的响应内容r以得到新的各工作参数、下一条要执行的命令及参数,并转到步骤s10,开始下一次传输及反控流程。2.根据权利要求1所述的数据传输及反控方法,其特征在于,参数串params中,id具有唯一性,设备端每次启动时,另dt全为0,d
i
格式为浮点型,其中,1≤i≤m,m为设备端支持的数值量最大个数,s长度为n,n为设备端支持的开关量最大个数,s
j
,1≤j≤n取值均为“0、1、
‑”
,分别标识第j个开关量为“断开、闭合、未知”,设备端每次启动时,另s全为
“‑”
,st长度为m+n,st
k
,1≤k≤m+n取值均为“0~9”或
“‑”
,其中,“0”标识d
i
或s
j-m
正常、“1~9”标识di或s
i-m
异常,设备端每次启动时,另st全为“0”。3.根据权利要求1所述的数据传输及反控方法,其特征在于,步骤s2包括以下子步骤:s21、若本条数据含有图片p
m
,1≤m≤q,q为设备端支持的最大图片个数,则先将p
m
序列化为base64编码b
m
,并以键值对的形式将p
m
、b
m
放入req的请求体中,以post方式发出req;s22、否则,以get方式发出req。4.根据权利要求1所述的数据传输及反控方法,其特征在于,步骤s10中,响应内容r由code和以下各项拼接为串,包括:
server1:设备端下一次访问的服务端地址,若未指定此项,则设备端下一次继续使用步骤s2中的请求地址;server2:服务端备用地址;now:服务端当前时间;interval:设备端下一次访问服务端的时间间隔;sensorenables:设备端各传感器是否启用;thresholdsd:各d
i
(1≤i≤m)的正常阈值范围;thresholdss:各s
i
(1≤i≤n)的正常状态;cmd:设备端下一条要执行的命令及参数。5.根据权利要求4所述的数据传输及反控方法,其特征在于,响应内容r中,以“|”为分隔符,“!”为结束符。6.一种轻量级的嵌入式数采设备数据反控方法,其特征在于,包括以下步骤:s100、接收设备端发送的http请求req;s200、从接收到的http请求req中获得参数串params和校验码vc,使用与设备端计算校验码vc时相同的加密算法计算出params的校验码vc,并检查vc是否与vc一致,若不一致,则使code=1,并转到步骤,若一致,执行步骤s23,其中参数串params由设备端id、本条数据采集时间dt、采集的各数值量d
i
、采集的各开关量组成的串s、报警状态字st拼接构成;s300、从接收到的请求req中获得设备端id,并在数据库中检查id是否合法,若不合法,则使code=2,并转到步骤,若一致,执行步骤s400;s400、从接收到的请求req中获得数据采集时间dt,并检查,若dt全为0,则使code=0,并转到步骤,否则,执行步骤s500;s500、以当前时间now预定义参数beforedays预定义参数afterseconds为依据,检查dt是否介于now-beforedays和now+afterseconds之间,其中beforedays用于设备端续传几天前采集的数据,afterseconds用于设备端获取的本地时间略微超过服务端时间,若否,则使code=3,并转到步骤,若是,则检查数据库中是否已存在相同id和dt的记录,若存在,则使code=3,并转到步骤,若不存在,则执行步骤s600;s600、从接收到的请求req中获得采集的各开关量组成的串s和采集的各数值量d
i
,并检查其的长度及格式是否合法,若不合法,则使code=4,并转到步骤,其中1≤i≤m,若合法则执行步骤s700;s700、从接收到的请求req中获得报警状态字st,并检查其长度及格式是否合法,若不合法,则使code=5,并转到步骤,若合法,执行步骤s800;s800、将id、dt、各d
i
、s、st组成一条新纪录,插入数据库,并使code=0;s900、从数据库中通过id获取设备端预先配置的各工作参数以及下一条要执行的命令,向设备端发送响应内容r,以反控设备端。

技术总结
本发明涉及物联网技术领域,尤其涉及一种轻量级的嵌入式数采设备数据传输及反控方法,通过设备端向服务端通过HTTP协议发出HTTP请求Req,服务端依次进行设备端id、本条数据采集时间dt、采集的各数值量Di、采集的各开关量组成的串S、报警状态字ST的检查,并拼接出串R,作为服务端对设备端本次请求的响应内容,设备端获取并解析服务端的响应内容R以得到新的各工作参数、下一条要执行的命令及参数,开始下一次数据传输及反控流程,基于纯文本的HTTP协议,请求和相应的内容易于理解,编程方式与操作系统无关,能够提供一种通用的方式进行数据的发送、接收、续传和解析,且不需要第三方实现库。库。库。


技术研发人员:胡平 杨琚钱 修宇 戴家树 章平 马进良 杨金盛 朱天宇
受保护的技术使用者:安徽工程大学
技术研发日:2023.04.08
技术公布日:2023/8/5
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐