SrnsViewer — различия между версиями

Материал из SRNS
Перейти к: навигация, поиск
(Общее)
Строка 81: Строка 81:
 
Слот, вызываемый кнопкой "Exit".Закрывает порт и приложение.
 
Слот, вызываемый кнопкой "Exit".Закрывает порт и приложение.
  
=Класс SatView=
+
 
 +
=Классы=
 +
 
 +
==SatView==
 
Данный класс предназначен для компоновки и отображения графической информации о сигналах с видимых спутников.
 
Данный класс предназначен для компоновки и отображения графической информации о сигналах с видимых спутников.
  
==Классы==
 
 
*SatSnr - класс, предназначенный для передачи информации в виде списка объектов этого класса. Содержит информацию, которую необходимо отобразить, и функции чтения/записи.
 
*SatSnr - класс, предназначенный для передачи информации в виде списка объектов этого класса. Содержит информацию, которую необходимо отобразить, и функции чтения/записи.
  
 
<source lang="cpp">  
 
<source lang="cpp">  
 
class SatSnr  
 
class SatSnr  
private:
 
  
 
QString name;//номер спутника
 
QString name;//номер спутника
Строка 99: Строка 100:
 
*Otobragenie - вспомогательный класс.
 
*Otobragenie - вспомогательный класс.
  
==Функции==
+
''Методы''
 
*void otobrazi(std::list<SatSnr>) - Функция,отображающая входной список.В ней предусмотрена компоновка, выбор отображаемых позиций, функция   
 
*void otobrazi(std::list<SatSnr>) - Функция,отображающая входной список.В ней предусмотрена компоновка, выбор отображаемых позиций, функция   
 
scroll'а.Использует объекты QwtThermo библиотеки Qwt.
 
scroll'а.Использует объекты QwtThermo библиотеки Qwt.
 +
 +
==satpolarplot==
 +
Предназначен для отображения положения спутников на полярном графике.
 +
 +
*dataForPolarPlot - класс, предназначенный для передачи информации в виде списка объектов этого класса. Содержит информацию, которую необходимо отобразить, и функции чтения/записи.
 +
<source lang="cpp">
 +
class dataForPolarPlot
 +
 +
    QString name;//номер спутника
 +
    QString satSys;//нав. сис-ма
 +
    double elevation;//угол места
 +
    double azimuth;//азимут
 +
    bool inSolution;// Участие в решении
 +
    bool slezhenie;// в слежении
 +
    double SNR;//с/ш
 +
</source>
 +
 +
''Методы''
 +
*void showListOfSatellites(std::list<dataForPolarPlot>) - функция,отображающая входной список.Использует объекты QwtPolarPlot библиотеки QwtPolar.
  
 
=Описание работы=
 
=Описание работы=
[[File:satviewer.jpeg|400px|Скрин окошка программы|thumb]]
+
[[File:6.png|400px|Скрин окошка программы|thumb]]
 
#Доступ к порту (на котором стоит приемник) и его настройка осуществляется посредством библиотеки QSerialPort.
 
#Доступ к порту (на котором стоит приемник) и его настройка осуществляется посредством библиотеки QSerialPort.
#Ежесекундно (QTimer) вызывается слот dodo(), в котором происходит построчное чтение данных из буфера.  
+
#Ежесекундно (QTimer) вызывается слот dodo(), в котором происходит чтение данных из буфера.  
 
#Далее происходит идентификация, разбор строк и проверка контрольной суммы(на этом этапе задействованы классы и функции описанные выше).
 
#Далее происходит идентификация, разбор строк и проверка контрольной суммы(на этом этапе задействованы классы и функции описанные выше).
#Следующий этап - компоновка информации в виде объектов класса SatSnr и составление списка из объектов этого класса.
+
#Следующий этап - компоновка информации в виде объектов класса SatSnr и dataForPolarPlot  и составление списка из объектов этих классов.
 
#И, наконец, передача списка функции otobrazi() класса SatView.
 
#И, наконец, передача списка функции otobrazi() класса SatView.
 
=Дополнительно=
 
=Дополнительно=

Версия 18:18, 7 ноября 2013

Содержание

Общее

Данный проект основан на использовании инструментов библиотеки Qt4. Его задачей является чтение, обработка и отображение информации, приходящей с приемника по текстовому протоколу NMEA 0183 и др.

Описание

Классы

  • SatInfoRMC - Класс строки RMC. Содержит в себе всю информацию, содержащуюся в данной строке, и функции для записи/чтения информации из объекта класса.
 
class SatInfoRMC
private:
    QString satSys;
    QByteArray timeUTC;//время
    char status ;//статус
    double latitude;//широта
    char nors;//Сев/Южн
    double longitude;//долгота
    char eorw;//Вост/Зап
    double speed;//скорость
    double putevoiUgol;//Путевой угол
    QByteArray date;//Дата
    double MagnitSklon;//Магнитное склонение
    char napMS;//Направление магнитного склонения
    char regim;//Индикатор режима
    QString CheckSum;
  • SatInfoGSV - Класс строки GSV. Содержит в себе всю информацию, содержащуюся в данной строке, и функции для записи/чтения информации из объекта класса.
 
class SatInfoGSV
private:
    QString satSys;
    int totalNumMes;//число сообщений
    int mesNumber;//номер сообщения
    int satInView;//полное число видимых спутников
    QVector<int> satNumber;//номер спутника
    QVector<int> elevation;//высота
    QVector<int> azimuth;//азимут
    QVector<double> SNR;//с/ш
    QString CheckSum;
  • SatInfoGSA - Класс строки GSA. Содержит в себе всю информацию, содержащуюся в данной строке, и функции для записи/чтения информации из объекта класса.
 
class SatInfoGSA
private:
    QString satSys;
    QString mode1;
    QString mode2;
    QVector <int> satNamesForFix;
    QString PDOP;
    QString HDOP;
    QString VDOP;
    QString CheckSum;
  • Имена функций для записи/чтения , как правило, состоят из названия переменной с префиксом set/get.

Функции

  • QString CalcalateCheckSum(QByteArray stroka)

Функция подсчета контрольной суммы строки.

  • SatInfoGSV GetInfoGSV(QByteArray stroka)

Парсер строки GSV.

  • SatInfoGSA GetInfoGSA(QByteArray stroka)

Парсер строки GSA.

  • SatInfoRMC GetInfoRMC(QByteArray stroka)

Парсер строки RMC.

Слоты

  • dodo()

Слот, вызывающийся ежесекундно. Содержит набор операций по чтению, обработке и отображению информации.

  • goAway()

Слот, вызываемый кнопкой "Exit".Закрывает порт и приложение.


Классы

SatView

Данный класс предназначен для компоновки и отображения графической информации о сигналах с видимых спутников.

  • SatSnr - класс, предназначенный для передачи информации в виде списка объектов этого класса. Содержит информацию, которую необходимо отобразить, и функции чтения/записи.
 
class SatSnr

QString name;//номер спутника
double q;// с/ш
bool insat;//участие в решении
QString navsys;//навиг. сис-ма
  • Otobragenie - вспомогательный класс.

Методы

  • void otobrazi(std::list<SatSnr>) - Функция,отображающая входной список.В ней предусмотрена компоновка, выбор отображаемых позиций, функция

scroll'а.Использует объекты QwtThermo библиотеки Qwt.

satpolarplot

Предназначен для отображения положения спутников на полярном графике.

  • dataForPolarPlot - класс, предназначенный для передачи информации в виде списка объектов этого класса. Содержит информацию, которую необходимо отобразить, и функции чтения/записи.
 
class dataForPolarPlot

    QString name;//номер спутника
    QString satSys;//нав. сис-ма
    double elevation;//угол места
    double azimuth;//азимут
    bool inSolution;// Участие в решении
    bool slezhenie;// в слежении
    double SNR;//с/ш

Методы

  • void showListOfSatellites(std::list<dataForPolarPlot>) - функция,отображающая входной список.Использует объекты QwtPolarPlot библиотеки QwtPolar.

Описание работы

Скрин окошка программы
  1. Доступ к порту (на котором стоит приемник) и его настройка осуществляется посредством библиотеки QSerialPort.
  2. Ежесекундно (QTimer) вызывается слот dodo(), в котором происходит чтение данных из буфера.
  3. Далее происходит идентификация, разбор строк и проверка контрольной суммы(на этом этапе задействованы классы и функции описанные выше).
  4. Следующий этап - компоновка информации в виде объектов класса SatSnr и dataForPolarPlot и составление списка из объектов этих классов.
  5. И, наконец, передача списка функции otobrazi() класса SatView.

Дополнительно

Реализовано отображение времени с поправкой на часовой пояс.

P.S.

По аналогии можно без труда реализовать парсер и для других типов строк NMEA.

Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты