Rev 1221 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1221 | Rev 1222 | ||
---|---|---|---|
Line 95... | Line 95... | ||
95 | volatile uint8_t ReceivedBytes = 0; |
95 | volatile uint8_t ReceivedBytes = 0; |
96 | volatile uint8_t *pRxData = 0; |
96 | volatile uint8_t *pRxData = 0; |
97 | volatile uint8_t RxDataLen = 0; |
97 | volatile uint8_t RxDataLen = 0; |
Line 98... | Line 98... | ||
98 | 98 | ||
- | 99 | uint8_t PcAccess = 100; |
|
99 | uint8_t PcAccess = 100; |
100 | |
- | 101 | uint8_t MotorTest_Active = 0; |
|
100 | uint8_t MotorTest[4] = {0,0,0,0}; |
102 | uint8_t MotorTest[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; |
Line 101... | Line 103... | ||
101 | uint8_t ConfirmFrame; |
103 | uint8_t ConfirmFrame; |
102 | 104 | ||
103 | typedef struct |
105 | typedef struct |
Line 150... | Line 152... | ||
150 | " ", |
152 | " ", |
151 | " ", //25 |
153 | " ", //25 |
152 | " ", |
154 | " ", |
153 | "Kalman Max Drift", |
155 | "Kalman Max Drift", |
154 | " ", |
156 | " ", |
155 | " ", |
157 | "Navi Serial Data", |
156 | "GPS Nick ", //30 |
158 | "GPS Nick ", //30 |
157 | "GPSS Roll " |
159 | "GPSS Roll " |
158 | }; |
160 | }; |
Line 483... | Line 485... | ||
483 | CompassOffCourse = ((540 + CompassHeading - CompassCourse) % 360) - 180; |
485 | CompassOffCourse = ((540 + CompassHeading - CompassCourse) % 360) - 180; |
484 | break; |
486 | break; |
485 | #endif |
487 | #endif |
Line 486... | Line 488... | ||
486 | 488 | ||
- | 489 | case 't':// motor test |
|
- | 490 | if(RxDataLen > 20) // |
|
487 | case 't':// motor test |
491 | { |
- | 492 | memcpy(&MotorTest[0], (uint8_t*)pRxData, sizeof(MotorTest)); |
|
- | 493 | } |
|
- | 494 | else |
|
- | 495 | { |
|
- | 496 | memcpy(&MotorTest[0], (uint8_t*)pRxData, 4); |
|
488 | memcpy(&MotorTest[0], (uint8_t*)pRxData, sizeof(MotorTest)); |
497 | } |
- | 498 | //Request_MotorTest = TRUE; |
|
489 | //Request_MotorTest = TRUE; |
499 | MotorTest_Active = 255; |
490 | PcAccess = 255; |
500 | PcAccess = 255; |
Line -... | Line 501... | ||
- | 501 | break; |
|
- | 502 | ||
- | 503 | case 'n':// "Get Mixer Table |
|
- | 504 | while(!txd_complete); // wait for previous frame to be sent |
|
- | 505 | SendOutData('N', FC_ADDRESS, 1, (uint8_t *) &Mixer, sizeof(Mixer)); |
|
- | 506 | break; |
|
- | 507 | ||
- | 508 | case 'm':// "Set Mixer Table |
|
- | 509 | if(pRxData[0] == EEMIXER_REVISION) |
|
- | 510 | { |
|
- | 511 | memcpy(&Mixer, (uint8_t*)pRxData, sizeof(Mixer)); |
|
- | 512 | MixerTable_WriteToEEProm(); |
|
- | 513 | while(!txd_complete); // wait for previous frame to be sent |
|
- | 514 | tempchar1 = 1; |
|
- | 515 | } |
|
- | 516 | else |
|
- | 517 | { |
|
- | 518 | tempchar1 = 0; |
|
- | 519 | } |
|
- | 520 | SendOutData('M', FC_ADDRESS, 1, &tempchar1, 1); |
|
491 | break; |
521 | break; |
492 | 522 | ||
493 | case 'p': // get PPM channels |
523 | case 'p': // get PPM channels |
Line 494... | Line 524... | ||
494 | Request_PPMChannels = TRUE; |
524 | Request_PPMChannels = TRUE; |
Line 502... | Line 532... | ||
502 | // limit settings range |
532 | // limit settings range |
503 | if(pRxData[0] < 1) pRxData[0] = 1; // limit to 1 |
533 | if(pRxData[0] < 1) pRxData[0] = 1; // limit to 1 |
504 | else if(pRxData[0] > 5) pRxData[0] = 5; // limit to 5 |
534 | else if(pRxData[0] > 5) pRxData[0] = 5; // limit to 5 |
505 | // load requested parameter set |
535 | // load requested parameter set |
506 | ParamSet_ReadFromEEProm(pRxData[0]); |
536 | ParamSet_ReadFromEEProm(pRxData[0]); |
507 | - | ||
508 | tempchar1 = pRxData[0]; |
537 | tempchar1 = pRxData[0]; |
509 | tempchar2 = EEPARAM_VERSION; |
538 | tempchar2 = EEPARAM_REVISION; |
510 | while(!txd_complete); // wait for previous frame to be sent |
539 | while(!txd_complete); // wait for previous frame to be sent |
511 | SendOutData('Q', FC_ADDRESS,3, &tempchar1, sizeof(tempchar1), &tempchar2, sizeof(tempchar2), (uint8_t *) &ParamSet, sizeof(ParamSet)); |
540 | SendOutData('Q', FC_ADDRESS,3, &tempchar1, sizeof(tempchar1), &tempchar2, sizeof(tempchar2), (uint8_t *) &ParamSet, sizeof(ParamSet)); |
512 | break; |
541 | break; |
Line 513... | Line 542... | ||
513 | 542 | ||
514 | case 's': // save settings |
543 | case 's': // save settings |
515 | if(!(MKFlags & MKFLAG_MOTOR_RUN)) // save settings only if motors ar off |
544 | if(!(MKFlags & MKFLAG_MOTOR_RUN)) // save settings only if motors ar off |
516 | { |
545 | { |
517 | if((1 <= pRxData[0]) && (pRxData[0] <= 5) && (pRxData[1] == EEPARAM_VERSION)) // check for setting to be in range and version of settings |
546 | if((1 <= pRxData[0]) && (pRxData[0] <= 5) && (pRxData[1] == EEPARAM_REVISION)) // check for setting to be in range and version of settings |
518 | { |
547 | { |
519 | memcpy(&ParamSet, (uint8_t*)&pRxData[2], sizeof(ParamSet)); |
548 | memcpy(&ParamSet, (uint8_t*)&pRxData[2], sizeof(ParamSet)); |
520 | ParamSet_WriteToEEProm(pRxData[0]); |
549 | ParamSet_WriteToEEProm(pRxData[0]); |
521 | TurnOver180Nick = (int32_t) ParamSet.AngleTurnOverNick * 2500L; |
550 | TurnOver180Nick = (int32_t) ParamSet.AngleTurnOverNick * 2500L; |
Line 678... | Line 707... | ||
678 | // the last state is 5 and should be send only once to avoid multiple flash writing |
707 | // the last state is 5 and should be send only once to avoid multiple flash writing |
679 | if(CompassCalState > 4) CompassCalState = 0; |
708 | if(CompassCalState > 4) CompassCalState = 0; |
680 | Compass_Timer = SetDelay(99); |
709 | Compass_Timer = SetDelay(99); |
681 | } |
710 | } |
682 | #endif |
711 | #endif |
- | 712 | ||
683 | if(Request_MotorTest && txd_complete) |
713 | if(Request_MotorTest && txd_complete) |
684 | { |
714 | { |
685 | SendOutData('T', FC_ADDRESS, 0); |
715 | SendOutData('T', FC_ADDRESS, 0); |
686 | Request_MotorTest = FALSE; |
716 | Request_MotorTest = FALSE; |
687 | } |
717 | } |