lorewalker-chen / qt_radar_terminal_demo

Qt下的雷达终端小样,其中PPI部分使用QwtPolar库绘制。个人学习记录,如其中有错误,请您批评指正,本人将不胜感激。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

QtRadarTerminalDemo

Qt下的雷达终端示例程序,拟实现以下功能模块。

其中ppi的绘制基于QwtPolar库。

全局参数类

单例,实现全局参数的管理,配置文件读写。

1.本地网络参数(RW)

终端绑定的本机Ipv4地址和端口号。

  • 第一次运行程序将默认值写入配置文件
  • 从配置文件读取
  • 界面修改
  • 程序关闭时保存

2.雷达网络参数(RW)

终端绑定的雷达Ipv4地址和端口号。

  • 第一次运行程序将默认值写入配置文件
  • 从配置文件读取
  • 界面修改
  • 程序关闭时保存

3.雷达北向角(RW)

雷达法线与正北方向夹角,顺时针为正。

  • 根据雷达回传值修改

4.界面时间(RW)

QDateTime格式。

  • 运行程序时读取本机时间
  • 增加1s
  • 根据雷达回传值修改

5.雷达位置(RW)

包括雷达的经度、纬度、海拔。

  • 根据雷达回传值修改

6.定时器

  • 每1s调用时间增加1s函数

UDP发送类

单例,实现将数据发送到雷达。

  • 可移动到线程中

1.本地网络参数(W)

  • 程序启动时从全局参数类获取
  • 全局参数修改时从全局参数类获取

2.雷达网络参数(W)

  • 程序启动时从全局参数类获取
  • 全局参数修改时从全局参数类获取

3.udp socket

  • 绑定本地网络参数
  • 本地网络参数改变时重新绑定
  • 发送数据到雷达

4.定时器

  • 定时发送数据(频率可设置)

UDP接收类

单例,实现接收雷达发来的数据。

  • 可移动到线程中

1.本地网络参数(W)

  • 程序启动时从全局参数类获取
  • 全局参数修改时从全局参数类获取

2.雷达网络参数(W)

  • 程序启动时从全局参数类获取
  • 全局参数修改时从全局参数类获取

3.udp socket

  • 绑定本地网络参数
  • 本地网络参数改变时重新绑定
  • 接收数据,并添加到缓冲区

4.定时器

  • 定时检查是否有雷达回传的数据,以判断雷达连接状态(频率可设置)

解包类

单例,实现解析接收到的雷达数据。

  • 可移动到线程中
  • 从缓冲区找到相应报文,并取出
  • 按照解析取出的报文,转化为结构体,并发射信号通知需要数据的类

PPI点迹类

绘制雷达点迹数据,通过极坐标点(方位, 距离)的队列

  • 可设置颜色
  • 可设置队列最大容量
  • 可控制显隐
  • 可添加极坐标点(方位,距离)
  • 可清空点数据队列

PPI航迹类

绘制雷达航迹数据,通过极坐标点(方位, 距离)的队列

  • 可设置颜色
  • 可设置一批航迹最大点数
  • 可控制是否绘制连接线
  • 可控制显隐
  • 可控制选中
  • 可添加极坐标点
  • 可查找是否包含某一极坐标点
  • 可清空点数据队列
  • 可标记航迹已经结束
  • 超过时间标记该批航迹无效

PPI航迹末尾点类

绘制雷达航迹最后一个点。

  • 绘制批号
  • 可设置颜色
  • 可改变位置

PPI扫描线类

绘制雷达扫描线。

  • 可设置颜色
  • 可控制显隐
  • 可设置结束点位置

PPI

绘制雷达平面指示器。

  • 可缩放
  • 可漫游
  • 定时或根据数据刷新扫描线位置
  • 分别清空点航或清全屏
  • 鼠标悬浮,发送鼠标当前位置的极坐标值

About

Qt下的雷达终端小样,其中PPI部分使用QwtPolar库绘制。个人学习记录,如其中有错误,请您批评指正,本人将不胜感激。


Languages

Language:C++ 96.5%Language:CSS 3.0%Language:QMake 0.4%Language:C 0.1%