![]() |
![]() |
|
![]() |
![]() |
|
Designer Forum Treffpunkt für Gedankenaustausch von Simmern, die selbst |
|
Themen-Optionen | Ansicht |
![]() |
#8 |
Inventar
![]() |
![]() Hier also der code: Mit Kommentaren ausgerüstet; manchmal in deutsch, manchmal in englisch, wie's mich gerade gefreut hat!
//vsi_gauge.c //by Harald Scheidl (c)2003 char vsi_gauge_name[] = GAUGE_NAME; extern PELEMENT_HEADER vsi_list; extern MOUSERECT vsi_mouse_rect[]; GAUGE_CALLBACK vsi_update; GAUGE_HEADER_FS700(GAUGE_W, vsi_gauge_name, &vsi_list, vsi_mouse_rect, vsi_update, 0,0,0 ); MOUSE_BEGIN( vsi_mouse_rect, 0, 0, 0 ) MOUSE_END #include #include "font.h" //definiert die daten zur schrift #define GAUGE_MAX_FPM 6000 #define GAUGE_MIN_FPM -6000 //--------------------------------------------------------------- //updates NEEDLE_UPDATE_CALLBACK vsi_set_cb; NEEDLE_UPDATE_CALLBACK vsi_needle_src_cb; STRING_UPDATE_CALLBACK vsi_string_cb; //--------------------------------------------------------------- //Icon macro for showing EFIS/not showing EFIS MAKE_ICON( efis_black, EFIS_OFF, NULL, NULL, IMAGE_USE_ERASE | IMAGE_USE_TRANSPARENCY, 0, 0,0, MASTER_BATTERY, NULL, ICON_SWITCH_TYPE_SET_CUR_ICON, 2, 0, 0 ) PELEMENT_HEADER vsi_plist1[] = { &efis_black.header, NULL }; //--------------------------------------------------------------- MAKE_STRING( vsi_string, NULL, &vsi_plist1, IMAGE_USE_ERASE | IMAGE_USE_BRIGHT | IMAGE_USE_TRANSPARENCY, 0, 50, 35, 60, 20, 4, MODULE_VAR_NONE, MODULE_VAR_NONE, MODULE_VAR_NONE, RGB(255,128,0), RGB(0,0,0), RGB(92,92,92), GAUGE_FONT_DEFAULT, GAUGE_WEIGHT_DEFAULT, GAUGE_CHARSET, 0, DT_CENTER | DT_VCENTER | DT_SINGLELINE, NULL, vsi_string_cb ) PELEMENT_HEADER vsi_plist2[] = { &vsi_string.header, NULL }; //--------------------------------------------------------------- FLOAT64 FSAPI vsi_string_cb(PELEMENT_STRING pelement ) { FLOAT64 val=pelement->source_var[0].var_value.n; sprintf(pelement->string, "%s", "TEST"); return val; } //Nonlinearity Table for the needle of the VSI NONLINEARITY vsi_needle_nl[] = { {{112, 64}, -6000, 0}, {{104, 85}, -4000, 0}, {{75, 105}, -2000, 0}, {{35, 105 }, -1000, 0}, {{8, 58}, 0, 0}, {{35, 11}, 1000, 0}, {{75, 12}, 2000, 0}, {{104, 31}, 4000, 0}, {{112, 51}, 6000, 0}, }; //--------------------------------------------------------------- //VSI Autopilot Setting MAKE_NEEDLE( vsi_setting, VSI_SET, &vsi_plist2, NULL, IMAGE_USE_ERASE | IMAGE_USE_TRANSPARENCY, 0, 60, 59, 0, 5, AUTOPILOT_VERTICAL_HOLD_VAR, vsi_set_cb, vsi_needle_nl, 0 ) PELEMENT_HEADER vsi_plist3[] = { &vsi_setting.header, NULL }; //--------------------------------------------------------------- FLOAT64 FSAPI vsi_set_cb ( PELEMENT_NEEDLE pelement ) { FLOAT64 val=pelement->source_var.var_value.n; if ( val > GAUGE_MAX_FPM ) val = GAUGE_MAX_FPM; if ( val < GAUGE_MIN_FPM ) val = GAUGE_MIN_FPM; return val; } //--------------------------------------------------------------- //VSI display MAKE_NEEDLE( vsi_needle, VSI_NEEDLE, &vsi_plist3, NULL, IMAGE_USE_ERASE | IMAGE_USE_TRANSPARENCY, 0, 60, 59, 0, 5, VERTICAL_SPEED, vsi_needle_src_cb, vsi_needle_nl, 0 ) PELEMENT_HEADER vsi_plist4[] = { &vsi_needle.header, NULL }; FLOAT64 FSAPI vsi_needle_src_cb ( PELEMENT_NEEDLE pelement ) { FLOAT64 val=pelement->source_var.var_value.n /= 1.30048; if ( val > GAUGE_MAX_FPM ) val = GAUGE_MAX_FPM; if ( val < GAUGE_MIN_FPM ) val = GAUGE_MIN_FPM; return val; } //---------------------------------------------------------------- MAKE_STATIC( vsi_background, VSI_BACKGROUND, &vsi_plist4, NULL, IMAGE_USE_ERASE, 0, {0, 0} ) PELEMENT_HEADER vsi_list = &vsi_background.header; //--------------------------------------------------------------- void FSAPI vsi_update (PGAUGEHDR pgauge, int service_id, UINT32 extra_data) { switch(service_id) { /* "install_routine()" */ case PANEL_SERVICE_PRE_INSTALL: break; /* "initialize_routine()" */ case PANEL_SERVICE_PRE_INITIALIZE: break; /* "update_routine()" */ case PANEL_SERVICE_PRE_UPDATE: /* "draw_routine()" */ case PANEL_SERVICE_PRE_DRAW: break; /* "kill_routine()" */ case PANEL_SERVICE_PRE_KILL: break; } } ///////////////////////////////////////////////////////////////////////////// #undef GAUGE_NAME #undef GAUGEHDR_VAR_NAME #undef GAUGE_W
____________________________________
MEINE FLIEGERSEITE XML Gauges Programmierung für Anfänger Panel Design für Anfänger |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|