void ccs_send_info(const uint8_t * mycall, const uint8_t * mycall_ext, int remove_module_char) { if (!ccs_is_connected()) return; if (dcs_is_connected()) { dcs_get_current_reflector_name(ccs_rx_reflector); if (memcmp(ccs_rx_reflector, "DCS", 3) != 0) { memset(ccs_rx_reflector, 0x20, 8); } } else { memset(ccs_rx_reflector, 0x20, 8); } memcpy(ccs_rx_callsign, mycall, 8); if (remove_module_char != 0) { ccs_rx_callsign[7] = 0x20; } memcpy(ccs_rx_callsign_ext, mycall_ext, 4); }
static void show_dcs_state(void) { char buf[10]; dcs_get_current_reflector_name(buf); buf[8] = 32; buf[9] = 0; vdisp_prints_xy( 95, 27, VDISP_FONT_4x6, dcs_is_connected(), buf ); if (dcs_changed() && ((repeater_mode != 0) || (hotspot_mode != 0))) { send_dcs_state(); } }
static int ref_app_key_event_handler (void * app_context, int key_num, int key_event) { // app_context_t * a = (app_context_t *) app_context; char v; if ((key_event == A_KEY_PRESSED) || (key_event == A_KEY_REPEAT)) { switch (key_num) { case A_KEY_BUTTON_1: // connect button if (dcs_mode != 0) { ref_selected_item = REF_SELECTION_SPECIAL; dcs_on(); if (repeater_mode || hotspot_mode) ambe_set_ref_timer(1); SETTING_CHAR(C_DCS_CONNECT_AFTER_BOOT) = 1; } break; case A_KEY_BUTTON_2: // disconnect button ref_selected_item = 0; if (dcs_mode != 0) { dcs_off(); if (repeater_mode || hotspot_mode) ambe_set_ref_timer(0); SETTING_CHAR(C_DCS_CONNECT_AFTER_BOOT) = 0; } break; case A_KEY_BUTTON_3: // select button if (!dcs_is_connected()) { int num_items = REF_NUM_ITEMS; num_items -= (repeater_mode || hotspot_mode) ? 0 : 1; ref_selected_item ++; if (ref_selected_item >= num_items) { ref_selected_item = 0; } } break; case A_KEY_BUTTON_UP: if (ref_selected_item != REF_SELECTION_SPECIAL) { v = ref_items[(int) ref_selected_item]; v++; if (v > ref_item_max_val[(int) ref_selected_item]) { v = 0; } ref_items[(int) ref_selected_item] = v; } break; case A_KEY_BUTTON_DOWN: if (ref_selected_item != REF_SELECTION_SPECIAL) { v = ref_items[(int) ref_selected_item]; if (v == 0) { v = ref_item_max_val[(int) ref_selected_item]; } else { v--; } ref_items[(int) ref_selected_item] = v; } break; } 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]); SETTING_CHAR(C_REF_TYPE) = ref_items[1]; SETTING_SHORT(S_REF_SERVER_NUM) = n; SETTING_CHAR(C_REF_MODULE_CHAR) = ref_items[5] + 0x41; SETTING_CHAR(C_DCS_MODE) = ref_items[0]; SETTING_CHAR(C_REF_TIMER) = ref_items[6]; //settings_set_home_ref(); ref_print_status(); } return 1; }