Diffstat (limited to 'noncore/net/wellenreiter/gui/gps.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/net/wellenreiter/gui/gps.cpp | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/noncore/net/wellenreiter/gui/gps.cpp b/noncore/net/wellenreiter/gui/gps.cpp index 3206655..288afee 100644 --- a/noncore/net/wellenreiter/gui/gps.cpp +++ b/noncore/net/wellenreiter/gui/gps.cpp | |||
@@ -14,8 +14,11 @@ | |||
14 | **********************************************************************/ | 14 | **********************************************************************/ |
15 | 15 | ||
16 | #include "gps.h" | 16 | #include "gps.h" |
17 | #include <unistd.h> | 17 | #include <unistd.h> |
18 | |||
19 | #include <qtextstream.h> | ||
20 | |||
18 | GPS::GPS( QObject* parent, const char * name ) | 21 | GPS::GPS( QObject* parent, const char * name ) |
19 | :QObject( parent, name ) | 22 | :QObject( parent, name ) |
20 | { | 23 | { |
21 | qDebug( "GPS::GPS()" ); | 24 | qDebug( "GPS::GPS()" ); |
@@ -34,9 +37,9 @@ bool GPS::open( const QString& host, int port ) | |||
34 | _socket->connectToHost( host, port ); | 37 | _socket->connectToHost( host, port ); |
35 | } | 38 | } |
36 | 39 | ||
37 | 40 | ||
38 | float GPS::latitude() const | 41 | GpsLocation GPS::position() const |
39 | { | 42 | { |
40 | char buf[256]; | 43 | char buf[256]; |
41 | 44 | ||
42 | int result = _socket->writeBlock( "p\r\n", 3 ); | 45 | int result = _socket->writeBlock( "p\r\n", 3 ); |
@@ -46,21 +49,21 @@ float GPS::latitude() const | |||
46 | int numAvail = _socket->bytesAvailable(); | 49 | int numAvail = _socket->bytesAvailable(); |
47 | qDebug( "GPS write succeeded, %d bytes available for reading...", numAvail ); | 50 | qDebug( "GPS write succeeded, %d bytes available for reading...", numAvail ); |
48 | if ( numAvail ) | 51 | if ( numAvail ) |
49 | { | 52 | { |
53 | QTextStream stream( _socket ); | ||
50 | 54 | ||
51 | int num = _socket->readLine( &buf[0], sizeof buf ); | 55 | QString str; |
52 | if ( num ) | 56 | stream.readRawBytes( &buf[0], 7 ); |
53 | { | 57 | float lat = -111.111; |
54 | qDebug( "GPS got %d bytes ['%s']", num, &buf[0] ); | 58 | stream >> lat; |
55 | return 0.0; | 59 | stream.skipWhiteSpace(); |
56 | } | 60 | float lon = -111.111; |
57 | } | 61 | stream >> lon; |
62 | stream.readRawBytes( &buf[0], 200 ); // read and discard the stuff until EOF | ||
63 | |||
64 | return GpsLocation( lat, lon ); | ||
58 | } | 65 | } |
59 | return -1.0; | ||
60 | } | 66 | } |
61 | 67 | return GpsLocation( -1.0, -1.0 ); | |
62 | |||
63 | float GPS::longitute() const | ||
64 | { | ||
65 | } | 68 | } |
66 | 69 | ||