Subversion Repositories FlightCtrl

Rev

Rev 1051 | Rev 1054 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1051 Rev 1053
Line 7... Line 7...
7
#include <stdarg.h>
7
#include <stdarg.h>
8
#include <string.h>
8
#include <string.h>
9
#include "main.h"
9
#include "main.h"
10
#include "uart.h"
10
#include "uart.h"
Line 11... Line 11...
11
 
11
 
-
 
12
unsigned char GetExternalControl = 0,DebugDisplayAnforderung1 = 0, DebugDisplayAnforderung = 0,DebugDataAnforderung = 0,GetVersionAnforderung = 0, GetPPMChannelAnforderung = 0;
12
unsigned char GetExternalControl = 0,DebugDisplayAnforderung = 0,DebugDataAnforderung = 0,GetVersionAnforderung = 0, GetPPMChannelAnforderung = 0;
13
unsigned char DisplayLine = 0;
13
unsigned volatile char SioTmp = 0;
14
unsigned volatile char SioTmp = 0;
14
unsigned volatile char SendeBuffer[MAX_SENDE_BUFF];
15
unsigned volatile char SendeBuffer[MAX_SENDE_BUFF];
15
unsigned volatile char RxdBuffer[MAX_EMPFANGS_BUFF];
16
unsigned volatile char RxdBuffer[MAX_EMPFANGS_BUFF];
16
unsigned volatile char NMEABuffer[MAX_EMPFANGS_BUFF];
17
unsigned volatile char NMEABuffer[MAX_EMPFANGS_BUFF];
Line 299... Line 300...
299
            break;
300
            break;
300
   case 'd': // Poll the debug data
301
   case 'd': // Poll the debug data
301
                        DebugDataIntervall = pRxData[0] * 10;
302
                        DebugDataIntervall = pRxData[0] * 10;
302
            if (DebugDataIntervall) DebugDataAnforderung = 1;
303
            if (DebugDataIntervall) DebugDataAnforderung = 1;
303
            break;
304
            break;
-
 
305
 
-
 
306
   case 'h':// x-1 Displayzeilen
-
 
307
                RemoteKeys |= pRxData[0];
-
 
308
                if(RemoteKeys) DisplayLine = 0;
-
 
309
                        DebugDisplayAnforderung = 1;
-
 
310
                        break;
-
 
311
 
304
   case 'l':// x-1 Displayzeilen
312
   case 'l':// x-1 Displayzeilen
305
            MenuePunkt = pRxData[0];
313
            MenuePunkt = pRxData[0];
306
                        DebugDisplayAnforderung = 1;
314
                        DebugDisplayAnforderung1 = 1;
307
                        break;
315
                        break;
308
   case 'm':// Motortest
316
   case 't':// Motortest
309
            memcpy(&MotorTest[0], (unsigned char *)pRxData, sizeof(MotorTest));
317
            memcpy(&MotorTest[0], (unsigned char *)pRxData, sizeof(MotorTest));
310
            while(!UebertragungAbgeschlossen);
318
            while(!UebertragungAbgeschlossen);
311
            SendOutData('M', MeineSlaveAdresse, 0);
319
            SendOutData('T', MeineSlaveAdresse, 0);
312
            PcZugriff = 255;
320
            PcZugriff = 255;
313
                        break;
321
                        break;
314
   case 'v': // Version-Anforderung     und Ausbaustufe
322
   case 'v': // Version-Anforderung     und Ausbaustufe
315
            GetVersionAnforderung = 1;
323
            GetVersionAnforderung = 1;
316
            break;
324
            break;
Line 318... Line 326...
318
                        GetExternalControl = 1;
326
                        GetExternalControl = 1;
319
            break;
327
            break;
320
   case 'p': // get PPM Channels
328
   case 'p': // get PPM Channels
321
                        GetPPMChannelAnforderung = 1;
329
                        GetPPMChannelAnforderung = 1;
322
                        break;
330
                        break;
323
   case 't':// "Get"-Anforderung für Settings
331
   case 'q':// "Get"-Anforderung für Settings
324
            // Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen
332
            // Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen
325
            if(pRxData[0] == 0xFF)
333
            if(pRxData[0] == 0xFF)
326
                        {
334
                        {
327
                                pRxData[0] = GetActiveParamSetNumber();
335
                                pRxData[0] = GetActiveParamSetNumber();
328
                        }
336
                        }
Line 332... Line 340...
332
                                else if(pRxData[0] > 5) pRxData[0] = 5; // limit to 5
340
                                else if(pRxData[0] > 5) pRxData[0] = 5; // limit to 5
333
                                // load requested parameter set
341
                                // load requested parameter set
334
                                ReadParameterSet(pRxData[0], (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
342
                                ReadParameterSet(pRxData[0], (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
335
                        }
343
                        }
336
            while(!UebertragungAbgeschlossen);
344
            while(!UebertragungAbgeschlossen);
337
            SendOutData('T', MeineSlaveAdresse, 2, &pRxData[0], sizeof(unsigned char), (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
345
            SendOutData('Q', MeineSlaveAdresse, 2, &pRxData[0], sizeof(unsigned char), (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
338
            break;
346
            break;
339
   case 's': // Parametersatz speichern
347
   case 's': // Parametersatz speichern
340
                        if((1 <= pRxData[0]) && (pRxData[0] <= 5)) // check for setting to be in range
348
                        if((1 <= pRxData[0]) && (pRxData[0] <= 5)) // check for setting to be in range
341
                        {
349
                        {
342
                                memcpy((unsigned char *) &EE_Parameter.Kanalbelegung[0], (unsigned char *)&pRxData[1], STRUCT_PARAM_LAENGE);
350
                                memcpy((unsigned char *) &EE_Parameter.Kanalbelegung[0], (unsigned char *)&pRxData[1], STRUCT_PARAM_LAENGE);
Line 449... Line 457...
449
     if(ConfirmFrame && UebertragungAbgeschlossen)   // Datensatz bestätigen
457
     if(ConfirmFrame && UebertragungAbgeschlossen)   // Datensatz bestätigen
450
         {
458
         {
451
                SendOutData('B', MeineSlaveAdresse, 1, (uint8_t*)&ConfirmFrame, sizeof(ConfirmFrame));
459
                SendOutData('B', MeineSlaveAdresse, 1, (uint8_t*)&ConfirmFrame, sizeof(ConfirmFrame));
452
        ConfirmFrame = 0;
460
        ConfirmFrame = 0;
453
     }
461
     }
-
 
462
 
454
     if(DebugDisplayAnforderung && UebertragungAbgeschlossen)
463
     if(DebugDisplayAnforderung && UebertragungAbgeschlossen)
455
         {
464
         {
-
 
465
             Menu();
-
 
466
             SendOutData('H',MeineSlaveAdresse, 2, &DisplayLine, sizeof(DisplayLine), &DisplayBuff[DisplayLine * 20], 20);
-
 
467
             DisplayLine++;
-
 
468
             if(DisplayLine >= 4) DisplayLine = 0;
-
 
469
                 DebugDisplayAnforderung = 0;
-
 
470
         }
-
 
471
     if(DebugDisplayAnforderung1 && UebertragungAbgeschlossen)
-
 
472
         {
456
      Menu();
473
        Menu();
457
      SendOutData('L',MeineSlaveAdresse, 3, &MenuePunkt, sizeof(MenuePunkt), &MaxMenue, sizeof(MaxMenue), DisplayBuff, sizeof(DisplayBuff));
474
        SendOutData('L',MeineSlaveAdresse, 3, &MenuePunkt, sizeof(MenuePunkt), &MaxMenue, sizeof(MaxMenue), DisplayBuff, sizeof(DisplayBuff));
458
          DebugDisplayAnforderung = 0;
475
                DebugDisplayAnforderung1 = 0;
459
         }
476
         }
460
    if(GetVersionAnforderung && UebertragungAbgeschlossen)
477
    if(GetVersionAnforderung && UebertragungAbgeschlossen)
461
     {
478
     {
462
      SendOutData('V',MeineSlaveAdresse, 1, (unsigned char *) &VersionInfo, sizeof(VersionInfo));
479
      SendOutData('V',MeineSlaveAdresse, 1, (unsigned char *) &VersionInfo, sizeof(VersionInfo));
463
          GetVersionAnforderung = 0;
480
          GetVersionAnforderung = 0;