source: pacpussensors/trunk/Gps/SeptentrioComponent.h@ 110

Last change on this file since 110 was 99, checked in by nguyenhu, 9 years ago

compilation under linux with 0.2.X framework

File size: 4.5 KB
Line 
1/// @date created 2008/07/18 - 15:33
2/// @author Gerald Dherbomez & Clement Fouque
3/// @copyright Heudiasyc UMR UTC/CNRS 6599
4/// @version $Id: $
5
6#ifndef SEPTENTRIOCOMPONENT_H
7#define SEPTENTRIOCOMPONENT_H
8
9#include <string>
10#include <QThread>
11#include <QObject>
12#include "SeptentrioSocket.h"
13#include "kernel/ComponentBase.h"
14#include "ui/polarxmainwindow.hpp"
15// #include "polarxGPSTKsolver.hpp"
16
17#include "structure_gps.h"
18#include "SerialCom/SerialCOM_Handle_Stream.hpp"
19#include "SerialCom/SBF/SerialCOM_Protocol_SBF.hpp"
20#include "SerialCom/SerialCOM_Msg.hpp"
21
22#include "SerialCom/SBF/SerialCOM_Msg_MeasEpoch.hpp"
23#include "SerialCom/SBF/SerialCOM_Msg_ShortMeasEpoch.hpp"
24#include "SerialCom/SBF/SerialCOM_Msg_GenMeasEpoch.hpp"
25#include "SerialCom/SBF/SerialCOM_Msg_EndOfMeas.hpp"
26
27#include "SerialCom/SBF/SerialCOM_Msg_GPSNav.hpp"
28#include "SerialCom/SBF/SerialCOM_Msg_GPSAlm.hpp"
29#include "SerialCom/SBF/SerialCOM_Msg_GPSIon.hpp"
30#include "SerialCom/SBF/SerialCOM_Msg_GPSUtc.hpp"
31#include "SerialCom/SBF/SerialCOM_Msg_GPSRaw.hpp"
32#include "SerialCom/SBF/SerialCOM_Msg_CNAVRaw.hpp"
33
34#include "SerialCom/SBF/SerialCOM_Msg_GEOMT00.hpp"
35#include "SerialCom/SBF/SerialCOM_Msg_GEOPRNMask.hpp"
36#include "SerialCom/SBF/SerialCOM_Msg_GEOFastCorr.hpp"
37#include "SerialCom/SBF/SerialCOM_Msg_GEOIntegrity.hpp"
38#include "SerialCom/SBF/SerialCOM_Msg_GEOFastCorrDegr.hpp"
39#include "SerialCom/SBF/SerialCOM_Msg_GEONav.hpp"
40#include "SerialCom/SBF/SerialCOM_Msg_GEODegrFactors.hpp"
41#include "SerialCom/SBF/SerialCOM_Msg_GEONetworkTime.hpp"
42#include "SerialCom/SBF/SerialCOM_Msg_GEOAlm.hpp"
43#include "SerialCom/SBF/SerialCOM_Msg_GEOIGPMask.hpp"
44#include "SerialCom/SBF/SerialCOM_Msg_GEOLongTermCorr.hpp"
45#include "SerialCom/SBF/SerialCOM_Msg_GEOIonoDelay.hpp"
46#include "SerialCom/SBF/SerialCOM_Msg_GEOServiceLevel.hpp"
47#include "SerialCom/SBF/SerialCOM_Msg_GEOClockEphCovMatrix.hpp"
48#include "SerialCom/SBF/SerialCOM_Msg_GEORaw.hpp"
49
50#include "SerialCom/SBF/SerialCOM_Msg_PVTCartesian.hpp"
51#include "SerialCom/SBF/SerialCOM_Msg_PVTGeodetic.hpp"
52#include "SerialCom/SBF/SerialCOM_Msg_PosCovCartesian.hpp"
53#include "SerialCom/SBF/SerialCOM_Msg_PosCovGeodetic.hpp"
54#include "SerialCom/SBF/SerialCOM_Msg_VelCovCartesian.hpp"
55#include "SerialCom/SBF/SerialCOM_Msg_VelCovGeodetic.hpp"
56#include "SerialCom/SBF/SerialCOM_Msg_DOP.hpp"
57#include "SerialCom/SBF/SerialCOM_Msg_PVTResiduals.hpp"
58#include "SerialCom/SBF/SerialCOM_Msg_RAIMStatistics.hpp"
59#include "SerialCom/SBF/SerialCOM_Msg_GEOCorrections.hpp"
60#include "SerialCom/SBF/SerialCOM_Msg_BaseLine.hpp"
61#include "SerialCom/SBF/SerialCOM_Msg_EndOfPVT.hpp"
62
63#include "SerialCom/SBF/SerialCOM_Msg_ReceiverTime.hpp"
64#include "SerialCom/SBF/SerialCOM_Msg_xPPSOffset.hpp"
65#include "SerialCom/SBF/SerialCOM_Msg_ExtEvent.hpp"
66
67#include "SerialCom/SBF/SerialCOM_Msg_TrackingStatus.hpp"
68#include "SerialCom/SBF/SerialCOM_Msg_ReceiverStatus.hpp"
69#include "SerialCom/SBF/SerialCOM_Msg_ReceiverSetup.hpp"
70
71namespace pacpus {
72
73class SeptentrioComponent
74 : public QThread
75 , public ComponentBase
76{
77 Q_OBJECT
78
79public:
80 SeptentrioComponent(QString name);
81 ~SeptentrioComponent();
82
83 virtual void stopActivity(); /*!< to stop the processing thread */
84 virtual void startActivity(); /*!< to start the processing thread */
85 virtual ComponentBase::COMPONENT_CONFIGURATION configureComponent(XmlComponentConfig config);
86
87
88private:
89 //! main loop of the thread
90 void run();
91
92 SeptentrioSocket * socketIf_;
93
94 //! The Septentrio IP or hostname
95 QString host_;
96
97 //! The Septentrio port
98 int port_;
99
100 //! Requested Frame
101 QString frame_ ;
102 PolarxMainWindow * ui_ ;
103
104 /*!\brief Object used to bufferize data and extract messages with the help of registered protocolhandle messages*/
105 SerialCOM_Handle_Stream * pHandleStream;
106
107 //! \brief Object to handle SBF data
108 Plrx::SerialCOM_Protocol_SBF * pProtocolSBF ;
109
110 /*! \brief time of arrival of the current data frame at the serial port */
111 road_time_t currentRoadtime;
112 road_time_t prevRoadTime;
113
114 /*! \brief time uncertainty on the currentRoadtime */
115 road_timerange_t currentTimerange;
116
117 bool computeGPSTk ;
118 //gpstk::Position curPos;
119 //Vector<double> curVel ;
120 //Vector<double> curTime ;
121 //gpstk::Position recPos;
122 // polarxGPSTKsolver * pSolver ;
123
124 //! SharedMemory segment
125 QSharedMemory * pShMem;
126
127 //! Semaphore system pour la mise à jour de la memoire partagée.
128 QSystemSemaphore * pShmSem ;
129
130 template <typename T> void sendToShmem( short id , T * msg, road_time_t t, road_timerange_t tr );
131};
132
133} // namespace pacpus
134
135#endif // SEPTENTRIOCOMPONENT_H
Note: See TracBrowser for help on using the repository browser.