2022年第二更。
终于有更新了。
其实新版本的程序已经出来有一阵子了,一直在服务器上做稳定性测试,终于还是克服了懒癌给挂出来了。本次更新功能较多,多图烧机。
1、地图更新
上一个版本是一次大的更新,在软件原有的矢量地图的基础上,为系统增加了高程地图以及卫星地图,但是由于30米及90米分辨率的高程地图其单个数据文件体量较大,在缩小到一定尺度后,屏幕内需要同时显示的影像数量就会上升,最后一定会出现软件的卡顿。在强迫症的驱使下这个问题如梗在喉,终于还是得解决一下,于是找到了450m分辨率的高程数据,只不过是tif文件格式,写了一个程序对数据进行了提出并进行了渲晕处理,生成了影像数据。在地图缩小至一定的级别后,切换至显示450分辨率的地图了。显示效果总体上还算可以。
450米精度SRTM高程地图显示效果
2、界面更新
上一版本的软件主显示界面尽可能增大了主操作区域的面积,目的是想要显示尽可能多的航班及内容,自然而然也就压缩了上方状态栏和底部工具栏的空间,所放的快捷操作功能自然也不是很多。但是后来发现了一个问题,就是软件本来有着丰富的功能,但是有机场用户在使用过程却完全不知道这些功能的存在,仔细分析想来还是因为软件设计上的问题。
旧版本软件主界面
早期软件在进行设计时先后使用过的电脑有thinkapd x230及thinkpad x395的笔记本电脑,thinkapd x230其分辨率高达1366X768,屏幕有限的空间限制了设计者(我)的思维能力,总会想着要多显示点飞机。这种设计风格就这么一直延续了下来。
新版本的软件则更多的向主流空管系统看齐了,对软件的状态栏及工具栏进行了拓展,将众多功能的入口直接提级放在了软件的主界面上了。并且将工具栏由图标更改为了文字形式进行显示,图标形式的按钮虽然颜值不错,但是其可识别性还是要差一些,新用户在使用时会存在一定的障碍(尽管设计了鼠标介入提示泡)。
新版本软件主界面
新版本软件主界面
新版本软件主界面
新版本软件状态栏
新版本软件的状态栏上新增加了北京时间显示、系统单位制式、系统当前使用的坐标系统、鼠标位置处实时SRTM高程数据值。同时增加了大量的功能入口,包括航班列表开关、航班速度及高度飞行剖面显示开关、距离环开关、罗盘开关及距离测量、屏幕截图等等。各类功能的一级入口的增加,极大的增加了软件的用户友好性(不用再去翻使用说明书了)。
同时航班搜索框直接集成到状态栏的右侧。当然若屏幕分辨率不足,搜索框若没有足够显示空间的话则其会动态的显示至主操作区的左上角。
新版本软件工具栏
新版软件的工具栏按钮进行了优化调整。由图标按钮切换为文字按钮了(图像按钮的功能仍然保留了,只是不是默认显示,需要在软件中进行设置)。
3、飞行计划
其实一直抵触在系统中接入飞行计划,原因在于我对软件的定位就是单纯的监视软件,完成飞机的运行监视即可,并没有足够的野心将系统做成空管自动化系统或飞行服务站(也没有这个能力),另外一个原因在于,在空管中飞行计划是并列于监视的另一大领域,与其相关的基础知识也是非常之多,学习成本也是很高的。
但终究还是接了,不接入飞行计划总会感觉软件是残缺的。硬着头皮啃了一堆标准文档,终究是把这个事给办了。
目前完成的部分有:
1)构建了独立的飞行计划接入及处理软件,完成了AFTN报文的接入,支持RS232串口及RJ45网络两种形式接入;
飞行计划管理终端
软件商品参数配置
2)完成了飞行计划的存储及管理,搭建了mysql数据库,完成了数据的的存储管理。采用mysql而非之前软件中一直使用的sqlite其主要原因在于前者支持网络访问,其部署更为灵活;sqlite虽然方便好用,并且使用多年,但是其为嵌入式数据库,仅能随软件在本机使用。不支持网络访问。
3)完成了FPL、CHG、CNL、DEP、ARR、DLA、CPL、EST、CDN、ACP等多种报文的解析及显示。飞行计划报文解析花费了我较多时间,因为有着多量的学习工作要做。
FPL报文解析
系统在接收到航班的飞行计划后,会完成航班关联,在显示终端上也会有相应的飞行计划访问入口。由于数据库从sqlite切换成为了mysql,支持了远程访问支持了多终端,对于系统的部署的灵活性有了很大的助益。
显示终端飞行坟计划入口
若航班有飞行计划数据,其标牌所显示的内容变会增多,增加了航班起降机场、起降时间、机型、尾流等信息。显示终端或上角增加了航班飞行计划详细信息浏览窗口,点击目标即可显示该航班的全所飞行计划详细信息。
带有计划信息的航迹标牌
飞行计划标牌
4、气象信息接入
由于AFTN报文中包含有气象相关报文,包括METAR、TAF、SPECIAL等多种报文。因为完成气象报文的接入也就成为了顺理成章的事情了。当前完成的内容相关较为基础,仅仅中是METAR及SPECIAL报文的接入、存储及显示,部分完成了报文的解析。但是METAR报文的解析其难度相较于飞行计划而言要更高(尽管其信息内容反而更少,气象报文更多是给人辨认的,而不适合于用软件程序自动化的进行处理)。目前气象报文的解析完成程度不高,也贴出来吧。
METAR报文解析
在完成报文的接入及存储后,实将实时气象报文推送至显示终端主界面。主界面会弹出提示框,进行报文的展示。
实时气象信息推送
气象及飞行计划显示效果
5、数据记录与回放的更新
由于接入飞行计划时使用到的是mysql,硬着头皮啃了三五行mysql的代码,对于这种有着远程访问能力的数据库有着着迷。因为一直一来我都认为sqlite才是最好的数据库,难道不是吗?sqlite的优点那是无人能及的——无需安装部署,程序一运行自动就生成了数据库了。速度快,几十万的数据,秒级的速度就出来了!这种魅力多好啊。只是,不支持远程不支持远程啊。远程的魅力也是不可抵挡的。多个终端可以共用一套数据,这种灵活性,也是很有魅力的。于是一咬牙就将数据记录与回放软的后台数据由sqlite切换到了mysql。
切换后也是很好的。记录程序和回放终端可以不是同一台主机了,想在那里浏览后台数据就加多一个软件终端就OK了。终端就是纯粹的终端了,数据呢都在服务器上了,不再随着终端走了。
数据记录与回放
6、移除了google map地图
在上一个版本中为显示终端引入了google map地图。显示效果也还是OK的。只是的只是,使用中发现地图上人位置与实际的地理坐标之前存在着较大的差异,能达到一两公里,刚开始以为是软件程序或数据问题,查了一圈才明白。这是火星坐标系,大量不折腾,在软件在将此功能禁用了。
Goolge maps底图
目前软件保留的地图就只有三种了:矢量地图、GOOGLE EARTH卫星影像、SRTM高程地图。
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
后续博客请移步简书。
欢迎各位多提意见。
minszu@126.com