Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 378 → Rev 379

/C-OSD/trunk/main.c
69,12 → 69,34
char stats_item_2[] PROGMEM = "max Distance:";
char stats_item_3[] PROGMEM = "min voltage :";
char stats_item_4[] PROGMEM = "max time :";
char* stats_item_pointers[] PROGMEM = {stats_item_0, stats_item_1, stats_item_2, stats_item_3, stats_item_4};
char* stats_item_pointers[] PROGMEM = {stats_item_0, stats_item_1, stats_item_2,
stats_item_3, stats_item_4};
 
// store more fixed strings in progmen
char ON[] PROGMEM = "ON ";
char ON[] PROGMEM = "ON ";
char OFF[] PROGMEM = "OFF";
 
// big vario arrays
char vario_00[5] PROGMEM = {0x00, 0x00, 0xc2, 0xff, 0xff};
char vario_01[5] PROGMEM = {0x00, 0x00, 0xc2, 0xff, 0xc0};
char vario_02[5] PROGMEM = {0x00, 0x00, 0xc2, 0xff, 0xc1};
char vario_03[5] PROGMEM = {0x00, 0x00, 0xc2, 0xff, 0x00};
char vario_04[5] PROGMEM = {0x00, 0x00, 0xc2, 0xc0, 0x00};
char vario_05[5] PROGMEM = {0x00, 0x00, 0xc2, 0xc1, 0x00};
char vario_06[5] PROGMEM = {0x00, 0x00, 0xc2, 0x00, 0x00};
char vario_07[5] PROGMEM = {0x00, 0x00, 0xbb, 0x00, 0x00};
char vario_08[5] PROGMEM = {0x00, 0x00, 0xc3, 0x00, 0x00};
char vario_09[5] PROGMEM = {0x00, 0xc4, 0xc3, 0x00, 0x00};
char vario_10[5] PROGMEM = {0x00, 0xc5, 0xc3, 0x00, 0x00};
char vario_11[5] PROGMEM = {0x00, 0xff, 0xc3, 0x00, 0x00};
char vario_12[5] PROGMEM = {0xc4, 0xff, 0xc3, 0x00, 0x00};
char vario_13[5] PROGMEM = {0xc5, 0xff, 0xc3, 0x00, 0x00};
char vario_14[5] PROGMEM = {0xff, 0xff, 0xc3, 0x00, 0x00};
char* vario_pnt[15] PROGMEM = {vario_00, vario_01, vario_02, vario_03, vario_04,
vario_05, vario_06, vario_07, vario_08,
vario_09, vario_10, vario_11, vario_12,
vario_13, vario_14};
 
#endif // ends !(ALLCHARSDEBUG|(WRITECHARS != -1))
 
// general PAL|NTSC distingiusch stuff
203,6 → 225,9
//write_ndigit_number_u(x, y-1, percent * 13 / 100, 100, 0);
}
 
/* ##########################################################################
* variometer
* ##########################################################################*/
/**
* draw variometer arrows at <x>/<y> according to <variometer>
*/
240,6 → 265,49
}
}
 
/**
* draw a bigger vario with middle at <x>/<y> acording to <variometer>
*/
void draw_big_variometer(uint8_t x, uint8_t y, int16_t variometer) {
int16_t index = 7 + variometer;
if (index > 14) index = 14;
else if (index < 0) index = 0;
// TODO: why does write_string_pgm_down(x, y-2, vario_pnt[index], 5);
// not work??? WTF?!
switch (index) {
case 0: write_string_pgm_down(x, y-2, vario_pnt[0], 5);
break;
case 1: write_string_pgm_down(x, y-2, vario_pnt[1], 5);
break;
case 2: write_string_pgm_down(x, y-2, vario_pnt[2], 5);
break;
case 3: write_string_pgm_down(x, y-2, vario_pnt[3], 5);
break;
case 4: write_string_pgm_down(x, y-2, vario_pnt[4], 5);
break;
case 5: write_string_pgm_down(x, y-2, vario_pnt[5], 5);
break;
case 6: write_string_pgm_down(x, y-2, vario_pnt[6], 5);
break;
case 7: write_string_pgm_down(x, y-2, vario_pnt[7], 5);
break;
case 8: write_string_pgm_down(x, y-2, vario_pnt[8], 5);
break;
case 9: write_string_pgm_down(x, y-2, vario_pnt[9], 5);
break;
case 10: write_string_pgm_down(x, y-2, vario_pnt[10], 5);
break;
case 11: write_string_pgm_down(x, y-2, vario_pnt[11], 5);
break;
case 12: write_string_pgm_down(x, y-2, vario_pnt[12], 5);
break;
case 13: write_string_pgm_down(x, y-2, vario_pnt[13], 5);
break;
default: write_string_pgm_down(x, y-2, vario_pnt[14], 5);
}
}
 
/* ##########################################################################
* artificial horizon
* ##########################################################################*/
638,6 → 706,8
Decode64();
naviData = *((NaviData_t*) pRxData);
 
draw_big_variometer(27, 8, naviData.Variometer);
 
// first line
write_ndigit_number_u(2, top_line, (uint16_t) (((uint32_t) naviData.GroundSpeed * (uint32_t)9) / (uint32_t)250), 100, 0);