Subversion Repositories NaviCtrl

Rev

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

Rev 345 Rev 351
Line 238... Line 238...
238
            LCD_printfxy(0,2,"I  :%3i D  :%3i ",Parameter.NaviGpsI, Parameter.NaviGpsD);
238
            LCD_printfxy(0,2,"I  :%3i D  :%3i ",Parameter.NaviGpsI, Parameter.NaviGpsD);
239
                    LCD_printfxy(0,3,"ACC:%3i SAT:%3i ",Parameter.NaviGpsACC, Parameter.NaviGpsMinSat);
239
                    LCD_printfxy(0,3,"ACC:%3i SAT:%3i ",Parameter.NaviGpsACC, Parameter.NaviGpsMinSat);
240
                        break;
240
                        break;
241
                case 5: // Navi Params 2 from FC
241
                case 5: // Navi Params 2 from FC
242
                        LCD_printfxy(0,0,"Stick TS:  %3i", Parameter.NaviStickThreshold);
242
                        LCD_printfxy(0,0,"Stick TS:  %3i", Parameter.NaviStickThreshold);
243
            LCD_printfxy(0,1,"MaxRadius: %3i m", NaviData.OperatingRadius);
243
            LCD_printfxy(0,1,"MaxRadius: %3im", DebugOut.Analog[4]);
244
            LCD_printfxy(0,2,"WindCorr:  %3i", Parameter.NaviWindCorrection);
244
            LCD_printfxy(0,2,"WindCorr:  %3i", Parameter.NaviWindCorrection);
245
                    LCD_printfxy(0,3,"AccComp:   %3i", Parameter.NaviSpeedCompensation);
245
                    LCD_printfxy(0,3,"AccComp:   %3i", Parameter.NaviSpeedCompensation);
246
                        break;
246
                        break;
247
                case 6: // Navi Params 3 from FC
247
                case 6: // Navi Params 3 from FC
248
                        LCD_printfxy(0,0,"Angle-Limit: %3i", Parameter.NaviAngleLimitation);
248
                        LCD_printfxy(0,0,"Angle-Limit: %3i", Parameter.NaviAngleLimitation);
249
            LCD_printfxy(0,1,"    P-Limit: %3i", Parameter.NaviGpsPLimit);
249
            LCD_printfxy(0,1,"    P-Limit: %3i", Parameter.NaviGpsPLimit);
250
            LCD_printfxy(0,2,"    I-Limit: %3i", Parameter.NaviGpsILimit);
250
            LCD_printfxy(0,2,"    I-Limit: %3i", Parameter.NaviGpsILimit);
251
                    LCD_printfxy(0,3,"    D-Limit: %3i", Parameter.NaviGpsDLimit);
251
                    LCD_printfxy(0,3,"    D-Limit: %3i", Parameter.NaviGpsDLimit);
252
                        break;
252
                        break;
-
 
253
                case 7: // Max Ranges
-
 
254
                        LCD_printfxy(0,0,"Maximum flying  ");
-
 
255
            LCD_printfxy(0,1,"Range:  %4im ", AbsoluteFlyingRange);
-
 
256
            LCD_printfxy(0,2,"Descend:%4im ", AutoDescendRange);
-
 
257
                        if(!AbsoluteFlyingRange) LCD_printfxy(8,1,"disabled");
-
 
258
                        if(!AutoDescendRange)    LCD_printfxy(8,2,"disabled");
-
 
259
                        break;
253
                case 7:
260
                case 8:
254
                        LCD_printfxy(0,0,"Home Position");
261
                        LCD_printfxy(0,0,"Home Position");
255
                        if(NaviData.HomePosition.Status == INVALID)
262
                        if(NaviData.HomePosition.Status == INVALID)
256
                        {
263
                        {
257
                                LCD_printfxy(0,1,"                     ");
264
                                LCD_printfxy(0,1,"                     ");
258
                                LCD_printfxy(0,2,"    Is not set.      ");
265
                                LCD_printfxy(0,2,"    Is not set.      ");
Line 275... Line 282...
275
                                i1 = abs(NaviData.HomePosition.Altitude)/1000L;
282
                                i1 = abs(NaviData.HomePosition.Altitude)/1000L;
276
                                i2 = abs(NaviData.HomePosition.Altitude)%1000L;
283
                                i2 = abs(NaviData.HomePosition.Altitude)%1000L;
277
                                LCD_printfxy(0,3,"Alt:%c%04ld.%03ld m",sign, i1, i2);
284
                                LCD_printfxy(0,3,"Alt:%c%04ld.%03ld m",sign, i1, i2);
278
                        }
285
                        }
279
                        break;
286
                        break;
280
                case 8:
287
                case 9:
281
                        LCD_printfxy(0,0,"Target Position");
288
                        LCD_printfxy(0,0,"Target Position");
282
                        if(NaviData.TargetPosition.Status == INVALID)
289
                        if(NaviData.TargetPosition.Status == INVALID)
283
                        {
290
                        {
284
                                LCD_printfxy(0,1,"                     ");
291
                                LCD_printfxy(0,1,"                     ");
285
                                LCD_printfxy(0,2,"    Is not set.      ");
292
                                LCD_printfxy(0,2,"    Is not set.      ");
Line 302... Line 309...
302
                                i1 = abs(NaviData.TargetPosition.Altitude)/1000L;
309
                                i1 = abs(NaviData.TargetPosition.Altitude)/1000L;
303
                                i2 = abs(NaviData.TargetPosition.Altitude)%1000L;
310
                                i2 = abs(NaviData.TargetPosition.Altitude)%1000L;
304
                                LCD_printfxy(0,3,"Alt:%c%04ld.%03ld m",sign, i1, i2);
311
                                LCD_printfxy(0,3,"Alt:%c%04ld.%03ld m",sign, i1, i2);
305
                        }
312
                        }
306
                        break;
313
                        break;
307
                case 9: // RC stick controls from FC
314
                case 10: // RC stick controls from FC
308
                        LCD_printfxy(0,0,"RC-Sticks" );
315
                        LCD_printfxy(0,0,"RC-Sticks" );
309
            LCD_printfxy(0,1,"Ni:%4i  Ro:%4i ",FC.StickNick, FC.StickRoll);
316
            LCD_printfxy(0,1,"Ni:%4i  Ro:%4i ",FC.StickNick, FC.StickRoll);
310
            LCD_printfxy(0,2,"Gs:%4i  Ya:%4i ",FC.StickGas, FC.StickYaw);
317
            LCD_printfxy(0,2,"Gs:%4i  Ya:%4i ",FC.StickGas, FC.StickYaw);
311
                        break;
318
                        break;
312
                case 10: // RC poti controls from FC
319
                case 11: // RC poti controls from FC
313
                        LCD_printfxy(0,0,"RC-Potis 1" );
320
                        LCD_printfxy(0,0,"RC-Potis 1" );
314
            LCD_printfxy(0,1,"Po1:%3i  Po2:%3i ",FC.Poti[0], FC.Poti[1]);
321
            LCD_printfxy(0,1,"Po1:%3i  Po2:%3i ",FC.Poti[0], FC.Poti[1]);
315
            LCD_printfxy(0,2,"Po3:%3i  Po4:%3i ",FC.Poti[2], FC.Poti[3]);
322
            LCD_printfxy(0,2,"Po3:%3i  Po4:%3i ",FC.Poti[2], FC.Poti[3]);
316
                        break;
323
                        break;
317
                case 11: // RC poti controls from FC
324
                case 12: // RC poti controls from FC
318
                        LCD_printfxy(0,0,"RC-Potis 2" );
325
                        LCD_printfxy(0,0,"RC-Potis 2" );
319
            LCD_printfxy(0,1,"Po5:%3i  Po6:%3i ",FC.Poti[4], FC.Poti[5]);
326
            LCD_printfxy(0,1,"Po5:%3i  Po6:%3i ",FC.Poti[4], FC.Poti[5]);
320
            LCD_printfxy(0,2,"Po7:%3i  Po8:%3i ",FC.Poti[6], FC.Poti[7]);
327
            LCD_printfxy(0,2,"Po7:%3i  Po8:%3i ",FC.Poti[6], FC.Poti[7]);
321
                        break;
328
                        break;
322
                case 12: // attitude from FC
329
                case 13: // attitude from FC
323
                        if(FromFlightCtrl.AngleNick < 0) sign = '-';
330
                        if(FromFlightCtrl.AngleNick < 0) sign = '-';
324
                        else sign = '+';
331
                        else sign = '+';
325
                        i1 = abs(FromFlightCtrl.AngleNick)/10;
332
                        i1 = abs(FromFlightCtrl.AngleNick)/10;
326
                        i2 = abs(FromFlightCtrl.AngleNick)%10;
333
                        i2 = abs(FromFlightCtrl.AngleNick)%10;
327
                        LCD_printfxy(0,0,"GyroNick:%c%03ld.%01ld", sign, i1, i2);
334
                        LCD_printfxy(0,0,"GyroNick:%c%03ld.%01ld", sign, i1, i2);
Line 339... Line 346...
339
                        else sign = '+';
346
                        else sign = '+';
340
                        i1 = abs(FromFlightCtrl.AccRoll)/10;
347
                        i1 = abs(FromFlightCtrl.AccRoll)/10;
341
                        i2 = abs(FromFlightCtrl.AccRoll)%10;
348
                        i2 = abs(FromFlightCtrl.AccRoll)%10;
342
            LCD_printfxy(0,3," AccRoll:%c%03ld.%01ld", sign, i1, i2);
349
            LCD_printfxy(0,3," AccRoll:%c%03ld.%01ld", sign, i1, i2);
343
                        break;
350
                        break;
344
                case 13: // gyros from FC
351
                case 14: // gyros from FC
345
                        LCD_printfxy(0,0,"GyroNick:  %4i", FromFlightCtrl.GyroNick);
352
                        LCD_printfxy(0,0,"GyroNick:  %4i", FromFlightCtrl.GyroNick);
346
            LCD_printfxy(0,1,"GyroRoll:  %4i", FromFlightCtrl.GyroRoll);
353
            LCD_printfxy(0,1,"GyroRoll:  %4i", FromFlightCtrl.GyroRoll);
347
                        LCD_printfxy(0,2,"GyroYaw:   %4i", FromFlightCtrl.GyroYaw);
354
                        LCD_printfxy(0,2,"GyroYaw:   %4i", FromFlightCtrl.GyroYaw);
348
                        break;
355
                        break;
349
                case 14: // Remote Control Level from FC
356
                case 15: // Remote Control Level from FC
350
            LCD_printfxy(0,0,"RC-Level:    %3i", FC.RC_Quality);
357
            LCD_printfxy(0,0,"RC-Level:    %3i", FC.RC_Quality);
351
                        LCD_printfxy(0,1,"Ubat:        %2i.%1i V", FC.BAT_Voltage/10, FC.BAT_Voltage%10);
358
                        LCD_printfxy(0,1,"Ubat:        %2i.%1i V", FC.BAT_Voltage/10, FC.BAT_Voltage%10);
352
                        LCD_printfxy(0,2,"CompHeading: %3i", Compass_Heading);
359
                        LCD_printfxy(0,2,"CompHeading: %3i", Compass_Heading);
353
                        if(GeoMagDec < 0) sign = '-';
360
                        if(GeoMagDec < 0) sign = '-';
354
                        else sign = '+';
361
                        else sign = '+';
355
                        LCD_printfxy(0,3,"GeoMagDec:  %c%i.%1i", sign, abs(GeoMagDec)/10,abs(GeoMagDec)%10);
362
                        LCD_printfxy(0,3,"GeoMagDec:  %c%i.%1i", sign, abs(GeoMagDec)/10,abs(GeoMagDec)%10);
356
            break;
363
            break;
357
                case 15: // User Parameter
364
                case 16: // User Parameter
358
                        LCD_printfxy(0,0,"UP1:%3i  UP2:%3i",Parameter.User1,Parameter.User2);
365
                        LCD_printfxy(0,0,"UP1:%3i  UP2:%3i",Parameter.User1,Parameter.User2);
359
                        LCD_printfxy(0,1,"UP3:%3i  UP4:%3i",Parameter.User3,Parameter.User4);
366
                        LCD_printfxy(0,1,"UP3:%3i  UP4:%3i",Parameter.User3,Parameter.User4);
360
                        LCD_printfxy(0,2,"UP5:%3i  UP6:%3i",Parameter.User5,Parameter.User6);
367
                        LCD_printfxy(0,2,"UP5:%3i  UP6:%3i",Parameter.User5,Parameter.User6);
361
                        LCD_printfxy(0,3,"UP7:%3i  UP8:%3i",Parameter.User7,Parameter.User8);
368
                        LCD_printfxy(0,3,"UP7:%3i  UP8:%3i",Parameter.User7,Parameter.User8);
362
                        break;
369
                        break;
363
                case 16: // magnetic field
370
                case 17: // magnetic field
364
                        if(Compass_CalState)
371
                        if(Compass_CalState)
365
                        {
372
                        {
366
                                LCD_printfxy(0,0,"Calibration:");
373
                                LCD_printfxy(0,0,"Calibration:");
367
                                LCD_printfxy(0,1,"Step %d/", Compass_CalState);
374
                                LCD_printfxy(0,1,"Step %d/", Compass_CalState);
368
                                LCD_printfxy(0,2,"X %4i Y %4i Z %4i",MagVector.X,MagVector.Y,MagVector.Z);
375
                                LCD_printfxy(0,2,"X %4i Y %4i Z %4i",MagVector.X,MagVector.Y,MagVector.Z);
Line 409... Line 416...
409
                                if(Compass_CalState <5) Compass_SetCalState(Compass_CalState+1);
416
                                if(Compass_CalState <5) Compass_SetCalState(Compass_CalState+1);
410
                                else Compass_SetCalState(0);
417
                                else Compass_SetCalState(0);
411
                        }
418
                        }
412
                        if(Keys & KEY3)Compass_SetCalState(0);  // cancel
419
                        if(Keys & KEY3)Compass_SetCalState(0);  // cancel
413
                        break;
420
                        break;
414
                case 17:
421
                case 18:
415
                        if(GeoMagDec < 0) sign = '-';
422
                        if(GeoMagDec < 0) sign = '-';
416
                        else sign = '+';
423
                        else sign = '+';
417
                                LCD_printfxy(0,0,"Magnetic Field");
424
                                LCD_printfxy(0,0,"Magnetic Field");
418
                                LCD_printfxy(0,1,"Field:%3i (Percent)",EarthMagneticField/5);
425
                                LCD_printfxy(0,1,"Field:%3i (Percent)",EarthMagneticField/5);
419
                                LCD_printfxy(0,2,"Declination:%c%i.%1i ", sign, abs(GeoMagDec)/10,abs(GeoMagDec)%10);
426
                                LCD_printfxy(0,2,"Declination:%c%i.%1i ", sign, abs(GeoMagDec)/10,abs(GeoMagDec)%10);