Giter Site home page Giter Site logo

gisdevelope / handheld-navigator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from azure42/handheld-navigator

0.0 2.0 0.0 2.97 MB

基于Qt4和嵌入式linux系统的简易北斗导航终端

License: GNU General Public License v3.0

C++ 99.04% QMake 0.88% C 0.08%

handheld-navigator's Introduction

##handheld-navigator手持导航仪

本项目为一个基于qt4和嵌入式linux系统的简易北斗导航仪,功能界面模仿自Furuno GP30船载导航仪。为学习QtE和C++时做的demo。


###线程 本项目定义为在海船上使用的导航仪,故最重要的功能是卫星数据的接收与显示,且使用按键操作。由于基于嵌入式Linux设备,故使用一个独立的线程定时进行串口读取,并同时用这个定时器完成界面的刷新;又编写自定义驱动,通过阻塞方式获取按键数据,再通过信号与槽方式实现功能。

###按键 本项目使用了六个按键,分别是四个方向键和一个确认键,一个界面切换键。

###数据抽象

  • 卫星、按键数据的实现作为全局变量在main.cpp中被创建,在各个子界面中作为外部变量被使用。
  • 储存途径点坐标的链表的实现作为全局变量在plotter.cpp中被创建,在各个子界面中作为外部变量被使用。

###子界面 为显示四个功能界面,主框架为一QStackedWidget,各子界面继承自QWidget。通过按键可循环切换四个页面。

  1. navdata:显示时间、经纬度、速度、航向角
  2. plotter:显示经纬度、速度、航向角,以及一图形化的途径点设置界面(QGraphicsView实现)
  3. highway:显示航向角、方向角、速度、到途径点距离,以及一图形化仿3D导航界面(QPainter实现)
  4. sterring:显示航向角、方向角、速度、到途径时间,以及一图形化仿罗盘导航界面(QPainter实现)

###美化 为了实现自适应分辨率,各个界面在获取设备分辨率后按比例绘制。并使用qss加上贴图和立体效果。

handheld-navigator's People

Contributors

azure42 avatar

Watchers

James Cloos avatar GIS Map avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.