コード例 #1
0
ファイル: a_lib.c プロジェクト: rballis/up4dar-os
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
}
コード例 #2
0
ファイル: rmuset.c プロジェクト: st0ne/up4dar-os
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()]);
}
コード例 #3
0
ファイル: nodeinfo.c プロジェクト: dl1bff/up4dar-os
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);
}
コード例 #4
0
ファイル: a_lib.c プロジェクト: rballis/up4dar-os
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();
}