Exemple #1
0
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);
}
Exemple #2
0
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();
		}
}		
Exemple #3
0
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;	
}