static void ref_print_status (void) { vd_prints_xy(VDISP_REF_LAYER, 36, 12, VDISP_FONT_6x8, (ref_selected_item == 0), ref_modes[(int) ref_items[0]]); #define XPOS_NODEINFO_LAYER 10 vd_prints_xy(VDISP_REF_LAYER, XPOS_NODEINFO_LAYER, 24, VDISP_FONT_6x8, (ref_selected_item == 1), ref_types[(int) ref_items[1]]); vd_printc_xy(VDISP_REF_LAYER, XPOS_NODEINFO_LAYER + 3*6, 24, VDISP_FONT_6x8, (ref_selected_item == 2), ref_items[2] + 0x30); vd_printc_xy(VDISP_REF_LAYER, XPOS_NODEINFO_LAYER + 4*6, 24, VDISP_FONT_6x8, (ref_selected_item == 3), ref_items[3] + 0x30); vd_printc_xy(VDISP_REF_LAYER, XPOS_NODEINFO_LAYER + 5*6, 24, VDISP_FONT_6x8, (ref_selected_item == 4), ref_items[4] + 0x30); vd_printc_xy(VDISP_REF_LAYER, XPOS_NODEINFO_LAYER + 6*6, 24, VDISP_FONT_6x8, (ref_selected_item == 5), 0x20); vd_printc_xy(VDISP_REF_LAYER, XPOS_NODEINFO_LAYER + 7*6, 24, VDISP_FONT_6x8, (ref_selected_item == 5), ref_items[5] + 0x41); vd_printc_xy(VDISP_REF_LAYER, XPOS_NODEINFO_LAYER + 8*6, 24, VDISP_FONT_6x8, (ref_selected_item == 5), 0x20); vd_clear_rect(VDISP_REF_LAYER, 0, 36, 120, 12); if (repeater_mode || hotspot_mode) { vd_prints_xy(VDISP_REF_LAYER, 0, 36, VDISP_FONT_6x8, 0, "Hometimer"); vd_prints_xy(VDISP_REF_LAYER, 60, 36, VDISP_FONT_6x8, (ref_selected_item == 6), ref_timer[(int) ref_items[6]]); } #undef XPOS }
void rmuset_print(void) { char str[RMUSET_LINE_LENGTH]; vd_clear_rect(VDISP_RMUSET_LAYER, 0, 12, 146, 43); vd_printc_xy(VDISP_RMUSET_LAYER, 120, 13, VDISP_FONT_8x12, 0, 0x1e); // arrow up vd_printc_xy(VDISP_RMUSET_LAYER, 120, 39, VDISP_FONT_8x12, 0, 0x1f); // arrow up vd_prints_xy(VDISP_RMUSET_LAYER, 0, 12, VDISP_FONT_5x8, 0, "TX-QRG:"); vd_prints_xy(VDISP_RMUSET_LAYER, 0, 23, VDISP_FONT_5x8, 0, "RX-QRG:"); vd_prints_xy(VDISP_RMUSET_LAYER, 93, 12, VDISP_FONT_5x8, 0, "MHz"); vd_prints_xy(VDISP_RMUSET_LAYER, 93, 23, VDISP_FONT_5x8, 0, "MHz"); if (!rmuset_enabled()) { vd_prints_xy(VDISP_RMUSET_LAYER, 40, 12, VDISP_FONT_5x8, 0, "---.---.--"); vd_prints_xy(VDISP_RMUSET_LAYER, 40, 23, VDISP_FONT_5x8, 0, "---.---.--"); feld_selected_item = 6; enabled_invers = 1; } else { memset(str, '\0', RMUSET_LINE_LENGTH); memcpy(str, settings.s.qrg_tx, 3); vd_prints_xy(VDISP_RMUSET_LAYER, 39, 12, VDISP_FONT_5x8, tx_qrg_MHz_invers, str); vd_prints_xy(VDISP_RMUSET_LAYER, 54, 12, VDISP_FONT_5x8, 0, "."); memset(str, '\0', RMUSET_LINE_LENGTH); memcpy(str, settings.s.qrg_tx + 3, 1); vd_prints_xy(VDISP_RMUSET_LAYER, 59, 12, VDISP_FONT_5x8, tx_qrg_100kHz_invers, str); memset(str, '\0', RMUSET_LINE_LENGTH); memcpy(str, settings.s.qrg_tx + 4, 2); vd_prints_xy(VDISP_RMUSET_LAYER, 65, 12, VDISP_FONT_5x8, tx_qrg_6_25kHz_invers, str); memset(str, '\0', RMUSET_LINE_LENGTH); memcpy(str, ".", 1); memcpy(str + 1, settings.s.qrg_tx + 6, 2); vd_prints_xy(VDISP_RMUSET_LAYER, 75, 12, VDISP_FONT_5x8, tx_qrg_6_25kHz_invers, str); memset(str, '\0', RMUSET_LINE_LENGTH); memcpy(str, settings.s.qrg_rx, 3); vd_prints_xy(VDISP_RMUSET_LAYER, 39, 23, VDISP_FONT_5x8, rx_qrg_MHz_invers, str); vd_prints_xy(VDISP_RMUSET_LAYER, 54, 23, VDISP_FONT_5x8, 0, "."); memset(str, '\0', RMUSET_LINE_LENGTH); memcpy(str, settings.s.qrg_rx + 3, 1); vd_prints_xy(VDISP_RMUSET_LAYER, 59, 23, VDISP_FONT_5x8, rx_qrg_100kHz_invers, str); memset(str, '\0', RMUSET_LINE_LENGTH); memcpy(str, settings.s.qrg_rx + 4, 2); vd_prints_xy(VDISP_RMUSET_LAYER, 65, 23, VDISP_FONT_5x8, rx_qrg_6_25kHz_invers, str); memset(str, '\0', RMUSET_LINE_LENGTH); memcpy(str, ".", 1); memcpy(str + 1, settings.s.qrg_rx + 6, 2); vd_prints_xy(VDISP_RMUSET_LAYER, 75, 23, VDISP_FONT_5x8, rx_qrg_6_25kHz_invers, str); } vd_prints_xy(VDISP_RMUSET_LAYER, 40, 35, VDISP_FONT_5x8, enabled_invers, ref_enabled[rmuset_enabled()]); }
void nodeinfo_print(void) { char str[NODEINFO_LINE_LENGTH]; vd_clear_rect(VDISP_NODEINFO_LAYER, 0, 12, 146, 43); vd_printc_xy(VDISP_NODEINFO_LAYER, 120, 13, VDISP_FONT_8x12, 0, 0x1e); // arrow up vd_printc_xy(VDISP_NODEINFO_LAYER, 120, 39, VDISP_FONT_8x12, 0, 0x1f); // arrow up vd_prints_xy(VDISP_NODEINFO_LAYER, 0, 12, VDISP_FONT_5x8, 0, "LAT:"); vd_prints_xy(VDISP_NODEINFO_LAYER, 0, 22, VDISP_FONT_5x8, 0, "LON:"); vd_prints_xy(VDISP_NODEINFO_LAYER, 0, 32, VDISP_FONT_5x8, 0, "QRG:"); vd_prints_xy(VDISP_NODEINFO_LAYER, 0, 42, VDISP_FONT_5x8, 0, "DUP:"); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_pos_lat, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER, 12, VDISP_FONT_5x8, (nodeinfo_pos == 0), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_pos_lat + 1, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 1 * 5, 12, VDISP_FONT_5x8, (nodeinfo_pos == 1), str); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 2 * 5, 12, VDISP_FONT_5x8, 0, "."); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_pos_lat + 2, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 3 * 5, 12, VDISP_FONT_5x8, (nodeinfo_pos == 2), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_pos_lat + 3, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 4 * 5, 12, VDISP_FONT_5x8, (nodeinfo_pos == 3), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_pos_lat + 4, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 5 * 5, 12, VDISP_FONT_5x8, (nodeinfo_pos == 4), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_pos_lat + 5, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 6 * 5, 12, VDISP_FONT_5x8, (nodeinfo_pos == 5), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_pos_lon, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER, 22, VDISP_FONT_5x8, (nodeinfo_pos == 6), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_pos_lon + 1, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 1 * 5, 22, VDISP_FONT_5x8, (nodeinfo_pos == 7), str); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 2 * 5, 22, VDISP_FONT_5x8, 0, "."); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_pos_lon + 2, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 3 * 5, 22, VDISP_FONT_5x8, (nodeinfo_pos == 8), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_pos_lon + 3, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 4 * 5, 22, VDISP_FONT_5x8, (nodeinfo_pos == 9), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_pos_lon + 4, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 5 * 5, 22, VDISP_FONT_5x8, (nodeinfo_pos == 10), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_pos_lon + 5, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 6 * 5, 22, VDISP_FONT_5x8, (nodeinfo_pos == 11), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_qrg, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER, 32, VDISP_FONT_5x8, (nodeinfo_pos == 12), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_qrg + 1, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 1 * 5, 32, VDISP_FONT_5x8, (nodeinfo_pos == 13), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_qrg + 2, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 2 * 5, 32, VDISP_FONT_5x8, (nodeinfo_pos == 14), str); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 3 * 5, 32, VDISP_FONT_5x8, 0, "."); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_qrg + 3, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 4 * 5, 32, VDISP_FONT_5x8, (nodeinfo_pos == 15), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_qrg + 4, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 5 * 5, 32, VDISP_FONT_5x8, (nodeinfo_pos == 16), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_qrg + 5, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 6 * 5, 32, VDISP_FONT_5x8, (nodeinfo_pos == 17), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_dup, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER, 42, VDISP_FONT_5x8, (nodeinfo_pos == 18), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_dup + 1, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 1 * 5, 42, VDISP_FONT_5x8, (nodeinfo_pos == 19), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_dup + 2, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 2 * 5, 42, VDISP_FONT_5x8, (nodeinfo_pos == 20), str); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 3 * 5, 42, VDISP_FONT_5x8, 0, "."); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_dup + 3, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 4 * 5, 42, VDISP_FONT_5x8, (nodeinfo_pos == 21), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_dup + 4, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 5 * 5, 42, VDISP_FONT_5x8, (nodeinfo_pos == 22), str); memset(str, '\0', NODEINFO_LINE_LENGTH); memcpy(str, settings.s.node_dup + 5, 1); vd_prints_xy(VDISP_NODEINFO_LAYER, XPOS_NODEINFO_LAYER + 6 * 5, 42, VDISP_FONT_5x8, (nodeinfo_pos == 23), str); }
void a_app_manager_init(void) { app_context_t * a; a = a_new_app( "DSTAR", VDISP_MAIN_LAYER); a_set_button_text(a, "PTT", "MUTE", "R>CS", "MENU"); a_set_key_event_handler(a, main_app_key_event_handler); main_screen = a; a = a_new_app( "RMU SET", VDISP_RMUSET_LAYER); a_set_button_text(a, "", "", "SELECT", "MENU"); a_set_key_event_handler(a, rmuset_app_key_event_handler); a = a_new_app( "DV SET", VDISP_DVSET_LAYER); a_set_button_text(a, "SELECT", "", "", "MENU"); a_set_key_event_handler(a, dvset_app_key_event_handler); a = a_new_app( "GPS", VDISP_GPS_LAYER); a_set_button_text(a, "", "", "", "MENU"); a = a_new_app( "MODE SET", VDISP_REF_LAYER); a_set_button_text(a, "CONNECT", "DISC", "SELECT", "MENU"); a_set_key_event_handler(a, ref_app_key_event_handler); a = a_new_app( "AUDIO", VDISP_AUDIO_LAYER); a_set_button_text(a, "", "", "", "MENU"); // a_set_key_event_handler(a, debug_app_key_event_handler); a = a_new_app( "DEBUG", VDISP_DEBUG_LAYER); a_set_button_text(a, "", "REBOOT", "", "MENU"); a_set_key_event_handler(a, debug_app_key_event_handler); a = a_new_app( "NODE INFO", VDISP_NODEINFO_LAYER); a_set_button_text(a, "GPS", "", "", "MENU"); // a_set_key_event_handler(a, debug_app_key_event_handler); help_layer = vd_new_screen(); if ((SETTING_SHORT(S_REF_SERVER_NUM) > 0) && (SETTING_SHORT(S_REF_SERVER_NUM) < 1000)) { int n = SETTING_SHORT(S_REF_SERVER_NUM); ref_items[4] = n % 10; n /= 10; ref_items[3] = n % 10; n /= 10; ref_items[2] = n % 10; } if ((SETTING_CHAR(C_REF_MODULE_CHAR) >= 'A') && (SETTING_CHAR(C_REF_MODULE_CHAR) <= 'Z')) { ref_items[5] = SETTING_CHAR(C_REF_MODULE_CHAR) - 0x41; } if ((SETTING_CHAR(C_REF_TIMER) >= 0) && (SETTING_CHAR(C_REF_TIMER) <= 7)) { ref_items[6] = SETTING_CHAR(C_REF_TIMER); } if ((SETTING_CHAR(C_DCS_MODE) >= 0) && (SETTING_CHAR(C_DCS_MODE) <= 5)) { ref_items[0] = SETTING_CHAR(C_DCS_MODE); } if ((SETTING_CHAR(C_REF_TYPE) >= 0) && (SETTING_CHAR(C_REF_TYPE) <= 2)) { ref_items[1] = SETTING_CHAR(C_REF_TYPE); } set_mode_vars(); int n = ref_items[2] * 100 + ref_items[3] * 10 + ref_items[4]; dcs_select_reflector( n, ref_items[5] + 0x41, ref_items[1]); if ((dcs_mode != 0) && (SETTING_CHAR(C_DCS_CONNECT_AFTER_BOOT) == 1)) { ref_selected_item = REF_SELECTION_SPECIAL; dcs_on(); } settings_set_home_ref(); // TODO error handling // vd_clear_rect(help_layer, 0, 0, 128, 64); int i; for (i=0; i < 128; i++) { vd_set_pixel(help_layer, i, 56, 0, 1, 1); } #define SIDEBOX_WIDTH 41 // #define SIDEBOX_HEIGHT 12 #define BOX1_YPOS 10 #define BOX2_YPOS 34 for (i=0; i < 7; i++) { vd_set_pixel(help_layer, 32, 57+i, 0, 1, 1); vd_set_pixel(help_layer, 64, 57+i, 0, 1, 1); vd_set_pixel(help_layer, 96, 57+i, 0, 1, 1); vd_set_pixel(help_layer, SIDEBOX_WIDTH - 1, i, 0, 1, 1); } for (i=0; i < SIDEBOX_WIDTH; i++) { vd_set_pixel(help_layer, i, 7, 0, 1, 1); } /* for (i=0; i <= SIDEBOX_HEIGHT; i++) { vd_set_pixel(help_layer, 127-SIDEBOX_WIDTH, BOX1_YPOS+i, 0, 1, 1); vd_set_pixel(help_layer, 127-SIDEBOX_WIDTH, BOX2_YPOS+i, 0, 1, 1); } */ // vd_prints_xy(help_layer, 4, 58, VDISP_FONT_4x6, 0,"TEST"); vd_prints_xy(VDISP_REF_LAYER, 0, 12, VDISP_FONT_6x8, 0, "Mode:"); vd_printc_xy(VDISP_REF_LAYER, 120, 13, VDISP_FONT_8x12, 0, 0x1e); // arrow up vd_printc_xy(VDISP_REF_LAYER, 120, 39, VDISP_FONT_8x12, 0, 0x1f); // arrow up vd_printc_xy(VDISP_DVSET_LAYER, 120, 13, VDISP_FONT_8x12, 0, 0x1e); // arrow up vd_printc_xy(VDISP_DVSET_LAYER, 120, 39, VDISP_FONT_8x12, 0, 0x1f); // arrow up vd_printc_xy(VDISP_RMUSET_LAYER, 120, 13, VDISP_FONT_8x12, 0, 0x1e); // arrow up vd_printc_xy(VDISP_RMUSET_LAYER, 120, 39, VDISP_FONT_8x12, 0, 0x1f); // arrow up set_help_text(); }