1 | /*********************************************************************
|
---|
2 | // created: 2005/10/17 - 15:09
|
---|
3 | // filename: gpsServerSocket.cpp
|
---|
4 | //
|
---|
5 | // author: Gerald Dherbomez
|
---|
6 | //
|
---|
7 | // version: $Id: gpsServerSocket.cpp 870 2010-07-23 09:50:45Z gdherbom $
|
---|
8 | //
|
---|
9 | // purpose: Implementation of the gpsServerSocket class
|
---|
10 | *********************************************************************/
|
---|
11 |
|
---|
12 |
|
---|
13 | #include "network/GpsServerSocket.h"
|
---|
14 | #include "network/gpsServerSocketInterface.h"
|
---|
15 | #include <qsocket.h>
|
---|
16 | #include <qtextstream.h>
|
---|
17 | #include "kernel/pacpus.h"
|
---|
18 |
|
---|
19 |
|
---|
20 | GpsServerSocket::GpsServerSocket(int gpsServerSocketPort) : QServerSocket(gpsServerSocketPort)
|
---|
21 | {
|
---|
22 | if (!ok())
|
---|
23 | qWarning("Failed to bind the port %d\n", gpsServerSocketPort);
|
---|
24 | }
|
---|
25 |
|
---|
26 |
|
---|
27 | GpsServerSocket::~GpsServerSocket()
|
---|
28 | {
|
---|
29 | socketDevice()->close();
|
---|
30 | }
|
---|
31 |
|
---|
32 |
|
---|
33 | void GpsServerSocket::customEvent(QCustomEvent* e)
|
---|
34 | {
|
---|
35 | int i;
|
---|
36 | switch(e->type() - QEvent::User)
|
---|
37 | {
|
---|
38 | case SIGNAL_PPS:
|
---|
39 | break;
|
---|
40 |
|
---|
41 | case TRAME_GGA_DBL:
|
---|
42 | ggaData = *(trame_gga_dbl*)(e->data());
|
---|
43 | printf ("%d %d %d %d \n",ggaData.H, ggaData.Mi, ggaData.S, ggaData.Ms);
|
---|
44 | break;
|
---|
45 |
|
---|
46 | case TRAME_GSA:
|
---|
47 | gsaData = *(trame_gsa*)(e->data());
|
---|
48 | printf("GSA");
|
---|
49 | break;
|
---|
50 |
|
---|
51 | case TRAME_GST:
|
---|
52 | gstData = *(trame_gst*)(e->data());
|
---|
53 | break;
|
---|
54 |
|
---|
55 | case TRAME_GSV:
|
---|
56 | gsvData = *(trame_gsv*)(e->data());
|
---|
57 | for (i=0 ; i<12 ; i++)
|
---|
58 | printf ("%d ",gsvData.SatellitesInView[i][0]);
|
---|
59 | printf ("\n");
|
---|
60 | break;
|
---|
61 |
|
---|
62 | case TRAME_HDT:
|
---|
63 | hdtData = *(trame_hdt*)(e->data());
|
---|
64 | break;
|
---|
65 |
|
---|
66 | case TRAME_RMC:
|
---|
67 | rmcData = *(trame_rmc*)(e->data());
|
---|
68 | printf("RMC");
|
---|
69 | break;
|
---|
70 |
|
---|
71 | case TRAME_ROT:
|
---|
72 | rotData = *(trame_rot*)(e->data());
|
---|
73 | break;
|
---|
74 |
|
---|
75 | case TRAME_VTG:
|
---|
76 | vtgData = *(trame_vtg*)(e->data());
|
---|
77 | printf("VTG");
|
---|
78 | break;
|
---|
79 |
|
---|
80 | case TRAME_ZDA:
|
---|
81 | zdaData = *(trame_zda*)(e->data());
|
---|
82 | printf("ZDA");
|
---|
83 | break;
|
---|
84 |
|
---|
85 | default:
|
---|
86 | qDebug("Unknown GPS data received !\n");
|
---|
87 | }
|
---|
88 |
|
---|
89 | }
|
---|
90 |
|
---|
91 |
|
---|
92 | void GpsServerSocket::newConnection(int socket)
|
---|
93 | {
|
---|
94 | GpsServerSocketInterface *s = new GpsServerSocketInterface(socket);
|
---|
95 | }
|
---|