Subversion Repositories FlightCtrl

Rev

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

Rev 1056 Rev 1058
Line 283... Line 283...
283
// --------------------------------------------------------------------------
283
// --------------------------------------------------------------------------
284
void BearbeiteRxDaten(void)
284
void BearbeiteRxDaten(void)
285
{
285
{
286
 if(!NeuerDatensatzEmpfangen) return;
286
 if(!NeuerDatensatzEmpfangen) return;
Line -... Line 287...
-
 
287
 
287
 
288
        unsigned char tempchar1, tempchar2;
288
        Decode64(); // dekodiere datenblock im Empfangsbuffer
289
        Decode64(); // dekodiere datenblock im Empfangsbuffer
289
        switch(RxdBuffer[1]-'a') // check for Slave Address
290
        switch(RxdBuffer[1]-'a') // check for Slave Address
290
        {
291
        {
Line 320... Line 321...
320
                                                else if(pRxData[0] > 5) pRxData[0] = 5; // limit to 5
321
                                                else if(pRxData[0] > 5) pRxData[0] = 5; // limit to 5
321
                                                // load requested parameter set
322
                                                // load requested parameter set
322
                                                ReadParameterSet(pRxData[0], (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
323
                                                ReadParameterSet(pRxData[0], (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
323
                                        }
324
                                        }
324
                                        while(!UebertragungAbgeschlossen);
325
                                        while(!UebertragungAbgeschlossen);
-
 
326
                                        tempchar1 = pRxData[0];
-
 
327
                                        tempchar2 = EE_DATENREVISION;
325
                                        SendOutData('Q', FC_ADDRESS, 2, &pRxData[0], sizeof(unsigned char), (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
328
                                        SendOutData('Q', FC_ADDRESS, 3, &tempchar1, sizeof(tempchar1), &tempchar2, sizeof(tempchar2), (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
326
                                        break;
329
                                        break;
Line 327... Line 330...
327
 
330
 
328
                        case 's': // Parametersatz speichern
331
                        case 's': // Parametersatz speichern
329
                                        if((1 <= pRxData[0]) && (pRxData[0] <= 5)) // check for setting to be in range
332
                                        if((1 <= pRxData[0]) && (pRxData[0] <= 5) && (pRxData[1] == EE_DATENREVISION)) // check for setting to be in range
330
                                        {
333
                                        {
331
                                                memcpy((unsigned char *) &EE_Parameter.Kanalbelegung[0], (unsigned char *)&pRxData[1], STRUCT_PARAM_LAENGE);
334
                                                memcpy((unsigned char *) &EE_Parameter.Kanalbelegung[0], (unsigned char *)&pRxData[2], STRUCT_PARAM_LAENGE);
332
                                                WriteParameterSet(pRxData[0], (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
335
                                                WriteParameterSet(pRxData[0], (unsigned char *) &EE_Parameter.Kanalbelegung[0], STRUCT_PARAM_LAENGE);
333
                                                eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], RxdBuffer[2] - 'l' + 1);  // aktiven Datensatz merken
336
                                                eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], RxdBuffer[2] - 'l' + 1);  // aktiven Datensatz merken
334
                                                Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
337
                                                Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
335
                                                Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L;
338
                                                Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L;
336
                                                Piep(GetActiveParamSetNumber());
-
 
337
                                                while(!UebertragungAbgeschlossen);
339
                                                Piep(GetActiveParamSetNumber());
338
                                                SendOutData('S', FC_ADDRESS, 1, &pRxData[0], sizeof(unsigned char));
340
                                                tempchar1 = pRxData[0]; // return setting written
-
 
341
                                        }
-
 
342
                                        else
-
 
343
                                        {
-
 
344
                                                tempchar1 = 0; // mark in response an invlid setting
-
 
345
                                        }
-
 
346
                                        while(!UebertragungAbgeschlossen);
339
                                        }
347
                                        SendOutData('S', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1));
Line 340... Line 348...
340
                                        break;
348
                                        break;
Line 341... Line 349...
341
 
349
 
Line 444... Line 452...
444
        //fdevopen (uart_putchar, 0);
452
        //fdevopen (uart_putchar, 0);
445
        //sbi(PORTD,4);
453
        //sbi(PORTD,4);
446
        Debug_Timer = SetDelay(DebugDataIntervall);
454
        Debug_Timer = SetDelay(DebugDataIntervall);
447
        Kompass_Timer = SetDelay(220);
455
        Kompass_Timer = SetDelay(220);
Line 448... Line 456...
448
 
456
 
449
        VersionInfo.Major = VERSION_MAJOR;
457
        VersionInfo.SWMajor = VERSION_MAJOR;
450
        VersionInfo.Minor = VERSION_MINOR;
458
        VersionInfo.SWMinor = VERSION_MINOR;
-
 
459
        VersionInfo.SWPatch = VERSION_PATCH;
451
        VersionInfo.Patch = VERSION_PATCH;
460
        VersionInfo.ProtoMajor  = VERSION_SERIAL_MAJOR;
Line 452... Line 461...
452
        VersionInfo.Compatible  = VERSION_SERIAL_COMPATIBLE;
461
        VersionInfo.ProtoMinor  = VERSION_SERIAL_MINOR;
453
 
462
 
454
        pRxData = 0;
463
        pRxData = 0;