Rev 1056 | Rev 1059 | Go to most recent revision | Show entire file | Regard 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()); |
339 | Piep(GetActiveParamSetNumber()); |
- | 340 | tempchar1 = pRxData[0]; // return setting written |
|
- | 341 | } |
|
- | 342 | else |
|
337 | while(!UebertragungAbgeschlossen); |
343 | { |
338 | SendOutData('S', FC_ADDRESS, 1, &pRxData[0], sizeof(unsigned char)); |
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; |