Subversion Repositories Projects

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2136 - 1
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3
 
4
//############################################################################
5
//# HISTORY  gpsmouse.c
6
//#
7
//# 30.07.2015 CB
8
//# - add: Anzeige von CRC Fehlern im NMEA Datensatz in GPSMouse_ShowData
9
//#
10
//# 28.07.2015 CB
11
//# - fix: Überprüfung von führenden 00 in der MAC-Adresse der BT Maus abgeschaltet
12
//#
13
//# 28.06.2014 OG
14
//# - fix: GPSMouse_ShowData() - wenn BT-Datenverlust dann immer GPSMouse_Disconnect()
15
//#        auch wenn waitsatfix Modus aktiv ist
16
//# - fix: GPSMouse_ShowData() - Rueckgabe von 0 wenn Verbindung bereits vorhanden war
17
//#        und dabei aber ein Verbindungsverlust zur BT GPS-Maus auftrat
18
//#
19
//# 27.06.2014 OG
20
//# - chg: GPSMouse_Disconnect() - Anzeige von BT-Datenverlust optimiert
21
//# - chg: GPSMouse_ShowData() - nach GPSMouse_Connect ein clear_key_all() eingefuegt
22
//#
23
//# 24.06.2014 OG
24
//# - add: GPSMouse_Connect(), GPSMouse_Disconnect()
25
//#
26
//# 23.06.2014 OG
27
//# - chg: GPSMouse_ShowData() - neue Parameter und Return-Codes fuer
28
//#        hoehere Flexibilitaet
29
//#
30
//# 22.06.2014 OG - NEU
31
//# ehemals BT_ShowGPSData() in setup.c
32
//############################################################################
33
 
34
#include "../cpu.h"
35
#include <avr/io.h>
36
#include <avr/interrupt.h>
37
#include <avr/pgmspace.h>
38
#include <string.h>
39
#include <util/delay.h>
40
 
41
#include "../main.h"
42
#include "../lcd/lcd.h"
43
#include "../setup/setup.h"
44
#include "../eeprom/eeprom.h"
45
#include "../lipo/lipo.h"
46
#include "../timer/timer.h"
47
#include "../bluetooth/fifo.h"
48
#include "../bluetooth/bluetooth.h"
49
#include "../uart/uart1.h"
50
#include "../utils/menuctrl.h"
51
#include "../utils/xutils.h"
52
#include "../pkt/pkt.h"
53
#include "../messages.h"
54
//#include "../gps/gps_nmea.h"
55
#include "../avr-nmea-gps-library/nmea.h"
56
#include "../gps/gpsmouse.h"
57
 
58
 
59
static const char STR_FIX0[]     PROGMEM = "  no";
60
static const char STR_FIX1[]     PROGMEM = " GPS";
61
static const char STR_FIX2[]     PROGMEM = "DGPS";
62
static const char STR_FIX6[]     PROGMEM = "esti";
63
static const char STR_FIX[]      PROGMEM = " ---";
64
 
65
 
66
 
67
 
68
 
69
//--------------------------------------------------------------
70
// retcode = GPSMouse_Connect()
71
//
72
// RUECKGABE:
73
//  -2: kein BTM222 eingebaut
74
//  -1: keine GPS Maus konfiguriert
75
//   0: Fehler bei connect, kein connect durchgeführt (evtl. GPS Maus nicht eingeschaltet)
76
//   1: verbunden
77
//--------------------------------------------------------------
78
int8_t GPSMouse_Connect( void )
79
{
80
    uint8_t status;
81
 
82
    if( !BT_CheckBTM222() )
83
    {
84
        // PKT_Message_P( text, error, timeout, beep, clearscreen)
85
        PKT_Message_P( strGet(STR_NOBTM222), true, 1000, true, true);           // 1000 = max. 10 Sekunden anzeigen; "kein BTM222 vorh."
86
        return -2;                                                              // -2: kein BTM222 eingebaut
87
    }
88
 
89
//      deaktiviert, MAC Adressen von Handys haben keine 00 in der MAC-Adresse
90
//    if( (Config.gps_UsedMac[5] == '0') || (Config.gps_UsedMac[6] == '0') )
91
//    {
92
        // PKT_Message_P( text, error, timeout, beep, clearscreen)
93
//        PKT_Message_P( strGet(STR_NOGPSMOUSE), true, 1000, true, true);         // 1000 = max. 10 Sekunden anzeigen; "keine GPS-Maus!"
94
//        return -1;                                                              // -1: keine GPS Maus konfiguriert
95
//    }
96
 
97
 
98
    //--------------------
99
    // verbinde BT GPS-Maus
100
    //--------------------
101
    PKT_Title( Config.gps_UsedDevName, true, true);                             // PKT_Title( text, lShowLipo, clearscreen )
102
 
103
    lcdx_printp_center( 2, strGet(STR_GPSMOUSECONNECT), MNORMAL, 0,1);          // "suche GPS-Maus"
104
 
105
    PKT_Gauge_Begin( 0 );                                                       // Gauge: 0 = Default fuer y verwenden
106
 
107
    set_BTOn();
108
 
109
    if( Config.BTIsSlave )
110
    {
111
        bt_downlink_init();
112
    }
113
 
114
    status = bt_connect( Config.gps_UsedMac );
115
 
116
    uart1_flush();
117
    fifo_clear(&in_fifo);
118
 
119
    UART1_receiveNMEA = true;                                                   // Uartflag setzen zur Erkennung der NMEA Datensätze
120
 
121
    PKT_Gauge_End();                                                            // Gauge: Ende
122
 
123
    if( !status )                                                               // keine Verbindung zum BT-Device
124
    {
125
        set_BTOff();
126
 
127
        // PKT_Message_P( text, error, timeout, beep, clearscreen)
128
        PKT_Message_P( strGet(STR_GPSMOUSECONNECTION), true, 1000, true, true); // 1000 = max. 10 Sekunden anzeigen; "GPS-Maus Verbindung"
129
        return 0;                                                               // 0: Fehler bei connect, kein connect durchgeführt (evtl. GPS Maus nicht eingeschaltet)
130
    }
131
 
132
    return 1;                                                                   // 1 = ok, Verbindung steht
133
}
134
 
135
 
136
 
137
//--------------------------------------------------------------
138
// GPSMouse_Disconnect()
139
//--------------------------------------------------------------
140
void GPSMouse_Disconnect( void )
141
{
142
    PKT_Title( Config.gps_UsedDevName, true, true);                             //PKT_Title( text, lShowLipo, clearscreen )
143
 
144
    //---------------------
145
    // GPS beenden
146
    //---------------------
147
    UART1_receiveNMEA = false;
148
    if( !receiveNMEA )                                                          // ggf. anders implementieren, z.B. via Parameter; aber erstmal geht's auch so
149
    {
150
      //lcdx_cls_row( y, mode, yoffs )
151
        lcdx_cls_row( 7, MINVERSX, 0 );
152
        lcdx_printp_center( 7, strGet(STR_BT_LOSTDATA), MINVERSX, 0,0);         // "BT Datenverlust"
153
        set_beep( 600, 0xffff, BeepNormal);
154
    }
155
 
156
    lcdx_printp_center( 2, strGet(STR_GPSMOUSEDISCONNECT), MNORMAL, 0,1);       // "trenne GPS-Maus"
157
 
158
    PKT_Gauge_Begin( 0 );                                                       // Gauge: 0 = Default fuer y verwenden
159
 
160
    receiveNMEA = false;                                                        // Uartflag zurücksetzen, es kommen keine NMEA Datensätze mehr
161
 
162
    if (!bt_disconnect());
163
    {
164
//        lcdx_printp_center( 2, PSTR("Error on disconnect"), MNORMAL, 0,1);       // Fehler beim Disconncet aufgetreten
165
//        _delay_ms(2000);                                                         // 09.08.2015 cebra, muss noch untersucht werden, ist aber jetzt kein Problem
166
    }
167
 
168
    set_BTOff();
169
 
170
    PKT_Gauge_End();                                                            // Gauge: Ende
171
}
172
 
173
 
174
 
175
//--------------------------------------------------------------
176
// retcode = GPSMouse_ShowData( mode, waitsatfix )
177
//
178
// zeigt GPS-Daten der aktuellen BT-Maus an
179
//
180
// PARAMETER:
181
//  show:
182
//     was soll in der 2. Zeile angezeigt werden
183
//     GPSMOUSE_SHOW_TIME || GPSMOUSE_SHOW_WAITSATFIX
184
//
185
//  waitsatifix:
186
//      0 = Verbindungsaufbau; Daten anzeigen und beenden der
187
//          BT-Verbindung (fuer setup.c)
188
//      n = Zeit (via timer) die nach einem erfolgreichen Satfix gewartet wird bis
189
//          GPSMouse_ShowData() beendet wird - die Verbindung zur GPS-Maus bleibt erhalten
190
//          und kann weiterverwendet werden! (z.B. in followme.c)
191
//
192
// RUECKGABE:
193
//  -2: kein BTM222 eingebaut
194
//  -1: keine GPS Maus konfiguriert
195
//   0: Fehler bei connect, kein connect durchgeführt (evtl. GPS Maus nicht eingeschaltet)
196
//   1: connect zur GPS Maus ok, Benutzer hat Anzeige beenden
197
//   2: connect zur GPS Maus ok, Satix hat Anzeige beendet
198
//
199
// zusammengefasst:
200
//  >0 : Ok
201
//  <=0: Fehler
202
//--------------------------------------------------------------
203
int8_t GPSMouse_ShowData( uint8_t show, uint16_t waitsatfix )
204
{
205
    uint8_t redraw = true;
206
    uint8_t state_posfix = 0;
207
    const char *pStr;
208
    int8_t yoffs;
209
    int8_t retcode;
210
 
211
 
212
 
213
    //--------------------
214
    // BT GPS-Maus verbinden
215
    //--------------------
216
    retcode = GPSMouse_Connect();
217
    if( retcode <= 0 )
218
    {
219
        return retcode;
220
    }
221
    timer_nmea_timeout = NMEA_TIMEOUT;                      // Timeout Timer setzen
222
    clear_key_all();
223
 
224
 
225
 
226
    //---------------------
227
    // zeige GPS-Daten
228
    //---------------------
229
 
230
    receiveNMEA  = true;
231
 
232
 
233
    do
234
    {
235
        //-------------------------
236
        // Screen redraw
237
        //-------------------------
238
        if( redraw )
239
        {
240
            PKT_Title( Config.gps_UsedDevName, true, true);                             //PKT_Title( text, lShowLipo, clearscreen )
241
 
242
            if( show == GPSMOUSE_SHOW_TIME )                                            // Zeile 2: GPS-Zeit
243
            {
244
                lcdx_printp_at( 6, 1, PSTR("["), MNORMAL, -1,2);                            // Mitte: GPS Time
245
                lcdx_printp_at(15, 1, PSTR("]"), MNORMAL, -2,2);                            // ..
246
                lcd_line( 0, 13,  34, 13, 1);                                               // ..
247
                lcd_line(92, 13, 127, 13, 1);                                               // ..
248
            }
249
 
250
            if( show == GPSMOUSE_SHOW_WAITSATFIX )                                      // Zeile 2: "warte auf Satfix..."
251
            {
252
                yoffs = 1;
253
                lcdx_cls_row( 1, MINVERS, yoffs);
254
                lcdx_printp_center( 1, strGet(STR_WAITSATFIX), MINVERS, 0,yoffs);           // "warte auf Satfix..."
255
            }
256
 
257
//            yoffs = 1;
258
//            lcdx_cls_row( 1, MINVERS, yoffs);
259
//            lcdx_printp_center( 1,strGet(STR_WAITNMEA), MINVERS, 0,yoffs);           // "warte auf NMEA..."
260
 
261
            lcdx_printp_at( 0, 2, PSTR("Fix:") , MNORMAL, 0,3);                         // Links; Fix
262
            lcdx_printp_at( 0, 3, PSTR("Sat:") , MNORMAL, 0,3);                         // Links; Sat
263
            lcdx_printp_at( 0, 4, PSTR("Alt:") , MNORMAL, 0,3);                         // Links; Alt
264
 
265
            lcdx_printp_at(11, 2, PSTR("RCnt:"), MNORMAL, 0,3);                         // Rechts: RCnt - Zaehler empfangener GPGGA Datenpakete
266
            lcdx_printp_at(11, 3, PSTR("CErr:"), MNORMAL, 0,3);                         // Rechts: RErr - Zaehler fehlerhafte NMEA Pakete
267
            lcdx_printp_at(11, 4, PSTR("HDOP:"), MNORMAL, 0,3);                         // Rechts: HDOP
268
 
269
            lcdx_cls_row( 5, MINVERS, 4);                                               // Hintergrund invers
270
            lcdx_printp_at( 1, 5, strGet(START_LASTPOS1), MINVERS, 0,4);                //   "Breitengr.  Längengr."
271
 
272
            lcd_rect( 0, (4*8)+11, 127, (2*8)+4, 1);                                    // Rahmen
273
 
274
            redraw = false;
275
        }
276
 
277
 
278
        //-------------------------
279
        // PKT-LiPo anzeigen
280
        //-------------------------
281
        show_Lipo();
282
 
283
 
284
        //-------------------------
285
        // PKT-Update geht hier nicht...
286
        // wegen der Hardware-Verbindung
287
        //-------------------------
288
        //if( PKT_CtrlHook() )
289
        //{
290
        //    redraw = true;
291
        //}
292
 
293
        //-------------------------
294
        //-------------------------
295
 
296
       if(NMEA_isdataready())                                                                        // NMEA Daten vorhanden?
297
        {
298
 
299
          if( show == GPSMOUSE_SHOW_TIME )
300
          {
301
              lcdx_print_at(7, 1, (uint8_t *)NMEA.Time, MNORMAL, -2,2);                          // Mitte: GPS Time
302
          }
303
 
304
          //--------------
305
          // Sat-Fix
306
          //--------------
307
          //writex_ndigit_number_u( 6, 2, NMEA.SatFix , 2,0, MNORMAL, 0,3);                       // Links: Fix (als Zahl)
308
          switch( NMEA.SatFix )
309
          {
310
              case 0:  pStr = STR_FIX0;   break;                                                  // kein Sat-Fix!
311
              case 1:  pStr = STR_FIX1;   break;                                                  // GPS - Fix: OK
312
              case 2:  pStr = STR_FIX2;   break;                                                  // DGPS - Fix: OK
313
              case 6:  pStr = STR_FIX6;   break;                                                  // Estimated - wird hier als nicht Ok angesehen weil nicht klar was es bedeutet
314
              default: pStr = 0;                                                                  // Sat-Fix Code unbekannt!
315
                       lcdx_printf_at_P( 4, 2, MNORMAL, 1,3, PSTR(" ? %d"), NMEA.SatFix);         //  -> Zahl wird angezeigt - ggf. recherchieren was da bedeutet (Fix ok oder nicht)
316
                       break;
317
          }
318
 
319
          if( pStr )
320
          {
321
              lcdx_printf_at_P( 4, 2, MNORMAL, 1,3, PSTR("%4S"), pStr);                           // GPS Fix als String ausgeben
322
          }
323
 
324
          if( NMEA.SatFix==1 || NMEA.SatFix==2 )                                                  // Sat-Fix OK  =>  einen Haken anzeigen
325
              lcdx_putc( 8, 2, SYMBOL_CHECK, MNORMAL, 2,3 );
326
          else
327
              lcdx_putc( 8, 2, ' ',          MNORMAL, 2,3 );
328
 
329
 
330
          //--------------
331
          // Sat-Anzahl
332
          //--------------
333
          writex_ndigit_number_u( 6, 3, NMEA.SatsInUse, 2,0, MNORMAL, 1,3);                       // Links: Sat-Anzahl
334
          if( NMEA.SatsInUse >= GPSMOUSE_MINSAT )                                                 //   Haken angezeigt wenn MINSAT ok
335
              lcdx_putc( 8, 3, SYMBOL_CHECK, MNORMAL, 2,3 );
336
          else
337
              lcdx_putc( 8, 3, ' ',          MNORMAL, 2,3 );
338
 
339
 
340
          //--------------
341
          // Altitude
342
          //--------------
343
          lcdx_printf_at_P( 4, 4, MNORMAL, 1,3, PSTR("%4.1d"), NMEA.Altitude);                    // Links: Altitude
344
 
345
 
346
          //--------------
347
          // empfangene GPGGA Datenpakete
348
          //--------------
349
          lcdx_printf_at_P(16, 2, MNORMAL, 0,3, PSTR("%5ld"), NMEA.Counter );                     // Rechts: Anzahl empfangener NMEA GPGGA-Pakete
350
 
351
 
352
          //--------------
353
          // NMEA CRC Fehler
354
          //--------------
355
          lcdx_printf_at_P(16, 3, MNORMAL, 0,3, PSTR("%5ld"), NMEA_getCRCerror() );              // Rechts: Anzahl CRC Fehler im NMEA GPGGA-Pakete
356
//          lcdx_printf_at( 15, 3, mode, 0, 3, "%3.5ld", (uint32_t)NMEA_getBearing());
357
//          writex_ndigit_number_u_10th(15, 3, NMEA_getBearing(), 4,0, MNORMAL, 0,3);
358
 
359
          //--------------
360
          // HDOP
361
          //--------------
362
          if( NMEA.HDOP == 0 )                                                                    // Rechts:: HDOP
363
            lcdx_printp_at(16, 4, PSTR("  ---"), MNORMAL, 0,3);
364
          else
365
            writex_ndigit_number_u_10th(16, 4, NMEA.HDOP, 4,0, MNORMAL, 0,3);
366
 
367
 
368
          //--------------
369
          // Lat / Lon
370
          //--------------
371
          writex_gpspos( 1, 6, NMEA.Latitude , MNORMAL, 0,6 );                                     // unten links: Latitude
372
          writex_gpspos(12, 6, NMEA.Longitude, MNORMAL, 0,6 );                                     // unten rechts: Longitude
373
 
374
 
375
          //--------------
376
          //--------------
377
          if( waitsatfix > 0 )
378
          {
379
              if( (NMEA.SatFix==1 || NMEA.SatFix==2) && (state_posfix==0) )
380
              {
381
                  state_posfix = 1;
382
                  timer = waitsatfix;                                                             // Verzoegerung bzgl. Exit (z.B. 600 = 6 Sekunden)
383
              }
384
 
385
              if( (NMEA.SatFix!=1 && NMEA.SatFix!=2) && (state_posfix==1) && (timer!=0) )
386
              {
387
                  state_posfix = 0;
388
              }
389
 
390
              if( (NMEA.SatFix==1 || NMEA.SatFix==2) && (state_posfix==1) && (timer==0) )
391
              {
392
                  clear_key_all();
393
                  return 2;                                                                       // 2: connect zur GPS Maus ok, Satix hat Anzeige beendet
394
              }
395
          }
396
 
397
      }
398
 
399
       if (timer_nmea_timeout == 0) receiveNMEA = false;
400
 
401
    } while( !get_key_press(1 << KEY_ESC) && receiveNMEA );
402
 
403
 
404
 
405
    //---------------------
406
    // GPS beenden
407
    //---------------------
408
    if( (waitsatfix == 0) || !receiveNMEA )
409
    {
410
 
411
       GPSMouse_Disconnect();
412
    }
413
 
414
    clear_key_all();
415
    return (receiveNMEA ? 1 : 0);                                                               // 1: connect zur GPS Maus ok, Benutzer hat Anzeige beenden
416
}
417
 
418
 
419
// save, Anzeige der Daten im Format der neuen NMEA Routinen, nach Umbau auf NMEA Structur nicht mehr notwendig
420
//              {
421
//
422
//
423
//                if( show == GPSMOUSE_SHOW_TIME )
424
//                {
425
////                    lcdx_print_at(7, 1, (uint8_t *)NMEA.Time, MNORMAL, -2,2);                          // Mitte: GPS Time
426
//
427
//                    writex_ndigit_number_u( 7, 1, NMEA_getHour(), 2,0, MNORMAL, -2,2);
428
//                    lcdx_printp_at( 9, 1, PSTR(":") , MNORMAL, -2,2);
429
//                    writex_ndigit_number_u( 10, 1, NMEA_getMinute(), 2,0, MNORMAL, -2,2);
430
//                    lcdx_printp_at( 12, 1, PSTR(":") , MNORMAL, -2,2);
431
//                    writex_ndigit_number_u( 13, 1, NMEA_getSecond(), 2,0, MNORMAL, -2,2);
432
//
433
//                }
434
//
435
//                //--------------
436
//                // Sat-Fix
437
//                //--------------
438
//                //writex_ndigit_number_u( 6, 2, NMEA.SatFix , 2,0, MNORMAL, 0,3);                       // Links: Fix (als Zahl)
439
//                switch( NMEA_getGPSfix() )
440
//                {
441
//                    case 0:  pStr = STR_FIX0;   break;                                                  // kein Sat-Fix!
442
//                    case 1:  pStr = STR_FIX1;   break;                                                  // GPS - Fix: OK
443
//                    case 2:  pStr = STR_FIX2;   break;                                                  // DGPS - Fix: OK
444
//                    case 6:  pStr = STR_FIX6;   break;                                                  // Estimated - wird hier als nicht Ok angesehen weil nicht klar was es bedeutet
445
//                    default: pStr = 0;                                                                  // Sat-Fix Code unbekannt!
446
//                             lcdx_printf_at_P( 4, 2, MNORMAL, 1,3, PSTR(" ? %d"), NMEA_getGPSfix());         //  -> Zahl wird angezeigt - ggf. recherchieren was da bedeutet (Fix ok oder nicht)
447
//                             break;
448
//                }
449
//
450
//                if( pStr )
451
//                {
452
//                    lcdx_printf_at_P( 4, 2, MNORMAL, 1,3, PSTR("%4S"), pStr);                           // GPS Fix als String ausgeben
453
//                }
454
//
455
//                if( NMEA_getGPSfix()==1 || NMEA_getGPSfix()==2 )                                                  // Sat-Fix OK  =>  einen Haken anzeigen
456
//                    lcdx_putc( 8, 2, SYMBOL_CHECK, MNORMAL, 2,3 );
457
//                else
458
//                    lcdx_putc( 8, 2, ' ',          MNORMAL, 2,3 );
459
//
460
//
461
//                //--------------
462
//                // Sat-Anzahl
463
//                //--------------
464
//                writex_ndigit_number_u( 6, 3, NMEA_getSatellites(), 2,0, MNORMAL, 1,3);                       // Links: Sat-Anzahl
465
//                if( NMEA_getSatellites() >= GPSMOUSE_MINSAT )                                                 //   Haken angezeigt wenn MINSAT ok
466
//                    lcdx_putc( 8, 3, SYMBOL_CHECK, MNORMAL, 2,3 );
467
//                else
468
//                    lcdx_putc( 8, 3, ' ',          MNORMAL, 2,3 );
469
//
470
//
471
//                //--------------
472
//                // Altitude
473
//                //--------------
474
//                lcdx_printf_at_P( 4, 4, MNORMAL, 1,3, PSTR("%4.1d"), NMEA_getAltitude());                    // Links: Altitude
475
//
476
//
477
//                //--------------
478
//                // empfangene GPGGA Datenpakete
479
//                //--------------
480
//                lcdx_printf_at_P(16, 2, MNORMAL, 0,3, PSTR("%5ld"), NMEA_getNMEAcounter() );                     // Rechts: Anzahl empfangener NMEA GPGGA-Pakete
481
//
482
//
483
//                //--------------
484
//                // NMEA CRC Fehler
485
//                //--------------
486
//                lcdx_printf_at_P(16, 3, MNORMAL, 0,3, PSTR("%5ld"), NMEA_getCRCerror() );                     // Rechts: Anzahl empfangener NMEA GPGGA-Pakete
487
//
488
////                writex_ndigit_number_u(1, 5, UART1_GPGGA   , 4,0, MNORMAL, 0,3);
489
////                writex_ndigit_number_u(5, 5, bt_overrun   , 4,0, MNORMAL, 0,3);
490
////                writex_ndigit_number_u(10, 5, bt_bufferoverflow   , 4,0, MNORMAL, 0,3);
491
//
492
//
493
//                //--------------
494
//                // HDOP
495
//                //--------------
496
//                if(NMEA_getHDOP() == 0 )                                                                    // Rechts:: HDOP
497
//                  lcdx_printp_at(16, 4, PSTR("  ---"), MNORMAL, 0,3);
498
//                else
499
//                  writex_ndigit_number_u_10th(16, 4, NMEA_getHDOP(), 4,0, MNORMAL, 0,3);
500
//
501
//
502
//                //--------------
503
//                // Lat / Lon
504
//                //--------------
505
//                writex_gpspos( 1, 6, NMEA_getLatitude() , MNORMAL, 0,6 );                                     // unten links: Latitude
506
//                writex_gpspos(12, 6, NMEA_getLongitude(), MNORMAL, 0,6 );                                     // unten rechts: Longitude
507
//
508
//
509
//                //--------------
510
//                //--------------
511
//                if( waitsatfix > 0 )
512
//                {
513
//                    if( (NMEA_getGPSfix()==1 || NMEA_getGPSfix()==2) && (state_posfix==0) )
514
//                    {
515
//                        state_posfix = 1;
516
//                        timer = waitsatfix;                                                             // Verzoegerung bzgl. Exit (z.B. 600 = 6 Sekunden)
517
//                    }
518
//
519
//                    if( (NMEA_getGPSfix()!=1 && NMEA_getGPSfix()!=2) && (state_posfix==1) && (timer!=0) )
520
//                    {
521
//                        state_posfix = 0;
522
//                    }
523
//
524
//                    if( (NMEA_getGPSfix()==1 || NMEA_getGPSfix()==2) && (state_posfix==1) && (timer==0) )
525
//                    {
526
//                        clear_key_all();
527
//                        return 2;                                                                       // 2: connect zur GPS Maus ok, Satix hat Anzeige beendet
528
//                    }
529
//                }
530
//
531
//          }
532