Пример #1
0
/***********************************************************************
*@函数名称: sdfuse_dis_key
*@功能描述: LCD上左下角显示两行提示字符
*@参数: 	无
*@返回:		无
*@备注:		无
 **********************************************************************/
void sdfuse_dis_key(void)
{
#define KEY_AREA_COLORS 	0xffffff
    lcd_fill_rectangle(0, 400, 360, 200, KEY_AREA_COLORS, 0);
    lcd_draw_string(0, 520, 1, 1, 0, "%s", "Press UP  key, Burn all file");
    lcd_draw_string(0, 550, 1, 1, 0, "%s", "Press DOWN  key, Reset system");
}
Пример #2
0
void show_traffic(char *dev) {
	static int prev_traffic[MAX_TRAFFIC_DEVICES][2] = { {0,0}, {0,0}, {0,0} };
    static int pos = 0;
    static int line = 9 * 6;

	if (is_link_down(dev)) {
		lcd_draw_string(line, 0, "Link is down");
		return;
	}
	
	int prev_tx = prev_traffic[pos][0],
		prev_rx = prev_traffic[pos][1];

	int traffic[2];
	get_traffic(dev, traffic);
	
	int tx_bytes = traffic[0] - prev_tx,
		rx_bytes = traffic[1] - prev_rx;
	char tx_rate[32], rx_rate[32], tx_tmp[32], rx_tmp[32];
	
	convert_bytes_to_rate_string(tx_bytes, tx_tmp);
	convert_bytes_to_rate_string(rx_bytes, rx_tmp);
	prev_traffic[pos][0] = traffic[0];
	prev_traffic[pos][1] = traffic[1];

    sprintf(tx_rate, "%s%s", "t", tx_tmp);
    sprintf(rx_rate, "%s%s", "r", rx_tmp);

	lcd_draw_string(line, 0, tx_rate);
	lcd_draw_string(line, 128 - 8 * strlen(rx_rate), rx_rate);
}
Пример #3
0
void show_mems() {
	struct sysinfo *sinfo = get_sysinfo();
	char tmp[20];
	lcd_draw_string(9 * 4, 0, "Mem");

	sprintf(tmp, "%0.1f/%0.0fM",
            sinfo->totalram/1024.0/1024.0 - sinfo->freeram/1024.0/1024.0,
			sinfo->totalram/1024.0/1024.0
           );

	lcd_draw_string(9 * 4, 128 - 8 * strlen(tmp), tmp);
}
Пример #4
0
/**
 * @see http://www.linuxquestions.org/questions/programming-9/load-average-return-values-from-sysinfo-309720/
 */
void show_loads() {
	unsigned long *loads = get_loads();
	lcd_draw_string(9 * 1, 0, "Load");

    char result[128];
    strcpy(result, "");
    
    int i;
    for (i = 0; i < 3; i++) {
	    char tmp[16];
	    sprintf(tmp, " %0.1f", loads[i]/65536.0);
        strcat(result, tmp);
    }

	lcd_draw_string(9 * 1, 128 - 8 * strlen(result), result);
}
Пример #5
0
void skin_draw_header_text(Skin *skin, char *text, SDL_Surface *target)
{
	lcd_draw_string(&skin->font1, text, target, 
	                gmu_widget_get_pos_x(&skin->header, 1),
			                             gmu_widget_get_pos_y(&skin->header, 0) +
			                             (gmu_widget_get_height(&skin->header, 0) -
			                              skin->font1_char_height) / 2);
}
Пример #6
0
/**
 * \brief Starts the calibration routines and displays user instructions on screen.
 *
 * \return 0 if calibration is successful, else 1.
 */
uint32_t rtouch_calibrate(void)
{
	uint32_t i;
	uint32_t x, y;

	/* Print user instructions */
	lcd_fill(UNI_COLOR_WHITE);
	lcd_set_foreground_color(UNI_COLOR_BLACK);
	lcd_draw_string(30, 60, (uint8_t *)"LCD calibration");
	lcd_draw_string(1, 190, (uint8_t *)"Touch the dots to\ncalibrate the screen");

	/* Calibration points */
	for (i = 0; i < 5; i++) {
		draw_calibration_point(&gs_calibration_points[i].panel);

		/* Wait for touch & end of conversion */
		rtouch_wait_pressed();
		
		rtouch_get_raw_point(&x, &y);
		gs_calibration_points[i].raw.x = x;
		gs_calibration_points[i].raw.y = y;
		clear_calibration_point(&gs_calibration_points[i].panel);

		/* Wait for contact loss */
		rtouch_wait_released();
	}
	
	if (rtouch_compute_calibration((rtouch_calibration_point_t *) &gs_calibration_points) == 0) {
		lcd_fill(UNI_COLOR_WHITE);
		lcd_set_foreground_color(UNI_COLOR_BLACK);
		lcd_draw_string(20, 130, (uint8_t *)"Calibration done.");
		return 0;
	} else {
		lcd_fill(UNI_COLOR_WHITE);
		lcd_set_foreground_color(UNI_COLOR_BLACK);
		lcd_draw_string(10, 100, (uint8_t *)"Calibration failed!");
		lcd_draw_string(10, 190, (uint8_t *)"Please try again...");
		
		/* Wait for contact loss */
		rtouch_wait_released();
		return 1;
	}
}
Пример #7
0
void show_uptime() {
    char result[128];
    strcpy(result, "");

    long uptime = get_uptime();

    long day = uptime / (24 * 60 * 60);
    long hour = (uptime / (60 * 60) - day * 24);
    long minute = ((uptime / 60) - day * 24 * 60 - hour * 60);
    long second = (uptime - day * 24 * 60 * 60 - hour * 60 * 60 - minute * 60);

    lcd_draw_string(9 * 2, 0, "Uptime");

    if (day > 0) {
        char tmp[10];
        sprintf(tmp, "%ldd", day);
        strcat(result, tmp);
    } 
    
    if (day > 0 || hour > 0) {
        char tmp[10];
        sprintf(tmp, "%ldh", hour);
        strcat(result, tmp);
    } 
    
    if (minute > 0) {
        char tmp[10];
        sprintf(tmp, "%ldm", minute);
        strcat(result, tmp);
    } 

    if (hour <= 0 && second > 0) {
        char tmp[3];
        sprintf(tmp, "%lds", second);
        strcat(result, tmp);
    }
    
    lcd_draw_string(9 * 2, 128 - 8 * strlen(result), result);
}
Пример #8
0
void sample_adc_channel(uint8_t channel){
    ADMUX &= ~((1<<MUX3)|(1<<MUX2)|(1<<MUX1)|(1<<MUX0));    // Clear ADC Mux Bits
    if(channel == 1){
        ADMUX |= (1<<MUX0);                             // setup ADC Channel 1
        uint16_t adcVal;
        char valueIn[4];

        lcd_draw_string(0, 0, "ADXL335 Readings: " , buffer);

        ADCSRA |= (1 << ADSC); // Start a new conversion, 
        adcVal = ADC;       // 10 bit reading
        itoa(adcVal, valueIn, 10);
        lcd_draw_string(0,2, "X: " , buffer);
        lcd_draw_string(13, 2, valueIn, buffer);
    }
    else if(channel == 2){
        ADMUX |= (1<<MUX1);                             // setup ADC Channel 2
        uint16_t adcVal;
        char valueIn[4];

        ADCSRA |= (1 << ADSC); // Start a new conversion, 
        adcVal = ADC;       // 10 bit reading
        itoa(adcVal, valueIn, 10);
        lcd_draw_string(0, 3, "Y: ", buffer);
        lcd_draw_string(13, 3, valueIn, buffer);
    }
    else if(channel == 3){
        ADMUX |= ((1<<MUX1)|(1<<MUX0));                 // setup ADC Channel 3
        uint16_t adcVal;
        char valueIn[4];

        ADCSRA |= (1 << ADSC); // Start a new conversion, 
        adcVal = ADC;       // 10 bit reading
        itoa(adcVal, valueIn, 10);
        lcd_draw_string(0, 4, "Z: ", buffer);
        lcd_draw_string(13, 4, valueIn, buffer);
    }


}
Пример #9
0
void show_traffic(int pos, char *dev, char *name) {
	static int prev_traffic[MAX_TRAFFIC_DEVICES][2] = { {0,0}, {0,0}, {0,0} };
	static int traffic_loaded[MAX_TRAFFIC_DEVICES] = { 0 };
	int y = pos * 9 + 19;
	
	if (is_link_down(dev)) {
		lcd_draw_string(0, y, name);
		lcd_draw_string(33, y, "link is down");
		return;
	}
	
	int prev_tx = prev_traffic[pos][0],
		prev_rx = prev_traffic[pos][1];
	int traffic[2];
	get_traffic(dev, traffic);
	//printf("traffic %d, %d\n", traffic[0], traffic[1]);
	
	int tx_bytes = traffic[0] - prev_tx,
		rx_bytes = traffic[1] - prev_rx;
	char tx_rate[10], rx_rate[10];
	
	convert_bytes_to_rate_string(tx_bytes, tx_rate);
	convert_bytes_to_rate_string(rx_bytes, rx_rate);
	prev_traffic[pos][0] = traffic[0];
	prev_traffic[pos][1] = traffic[1];
	
	if (traffic_loaded[pos] == 0) {
	    lcd_draw_string(0, y, name);
		lcd_draw_string(33, y, "            "); // clear link is down text
	    lcd_draw_image(33, y, 1, 7, arrow_up);
	    lcd_draw_image(82, y, 1, 7, arrow_down);
    	traffic_loaded[pos] = 1;
	}
	
	lcd_draw_string(39, y, tx_rate);
	lcd_draw_string(88, y, rx_rate);
}
Пример #10
0
void pl_browser_draw(PlaylistBrowser *pb, SDL_Surface *sdl_target)
{
	int    i = 0;
	char   buf[64];
	Entry *pl_entry;
	int    number_of_visible_lines = skin_textarea_get_number_of_lines((Skin *)pb->skin);
	int    len = (skin_textarea_get_characters_per_line((Skin *)pb->skin) > 63 ? 
	              63 : skin_textarea_get_characters_per_line((Skin *)pb->skin));
	int    selected_entry_drawn = 0;

	snprintf(buf, 63, "Playlist (%d %s)", gmu_core_playlist_get_length(),
	         gmu_core_playlist_get_length() != 1 ? "entries" : "entry");
	skin_draw_header_text((Skin *)pb->skin, buf, sdl_target);

	if (pb->first_visible_entry == NULL || pb->offset == 0) {
		pb->first_visible_entry = gmu_core_playlist_get_first();
	}

	pb->longest_line_so_far = 0;
	pl_entry = pb->first_visible_entry;
	for (i = pb->offset; 
	     i < pb->offset + number_of_visible_lines && 
	     i < gmu_core_playlist_get_length() && pl_entry != NULL;
	     i++) {
		char  c = (playlist_get_played(pl_entry) ? 'o' : ' ');
		char *entry_name = gmu_core_playlist_get_entry_name(pl_entry);
		char *format = "%c%3d";
		int   l = gmu_core_playlist_get_length();
		int   line_length = strlen(entry_name);
		LCD  *font, *font_inverted;

		if (line_length > pb->longest_line_so_far)
			pb->longest_line_so_far = line_length;

		if (l > 999 && l <= 9999) format = "%c%4d";
		if (l > 9999) format = "%c%5d";

		if (playlist_entry_get_queue_pos(pl_entry) == 0)
			snprintf(buf, len, format, (pl_entry == gmu_core_playlist_get_current() ? '*' : c), i + 1);
		else
			snprintf(buf, len, "%cQ:%d", (pl_entry == gmu_core_playlist_get_current() ? '*' : c),
			         playlist_entry_get_queue_pos(pl_entry));

		if (i == pb->offset + number_of_visible_lines - 1 && !selected_entry_drawn)
			pb->selection = i;

		font =          (LCD *)(i == pb->selection ? &pb->skin->font2 : &pb->skin->font1);
		font_inverted = (LCD *)(i == pb->selection ? &pb->skin->font1 : &pb->skin->font2);

		if (i == pb->selection) selected_entry_drawn = 1;
		lcd_draw_string(font, buf, sdl_target, gmu_widget_get_pos_x((GmuWidget *)&pb->skin->lv, 1),
						gmu_widget_get_pos_y((GmuWidget *)&pb->skin->lv, 1) + 1
						+ (i-pb->offset) * (pb->skin->font2_char_height + 1));
		lcd_draw_string_with_highlight(font, font_inverted, entry_name, pb->horiz_offset, sdl_target, 
									   gmu_widget_get_pos_x((GmuWidget *)&pb->skin->lv, 1)
									   + pb->skin->font1_char_width * 7,
									   gmu_widget_get_pos_y((GmuWidget *)&pb->skin->lv, 1) + 1
									   + (i-pb->offset)*(pb->skin->font2_char_height+1),
									   skin_textarea_get_characters_per_line((Skin *)pb->skin)-6, RENDER_ARROW);
		pl_entry = playlist_get_next(pl_entry);
	}
}
Пример #11
0
void show_ip(char *dev) {
	char *ip = get_ip(dev);
	lcd_draw_string(9 * 5, 0, "IP");
	lcd_draw_string(9 * 5, 128 - 8 * strlen(ip), ip);
}
Пример #12
0
void show_hostname() {
	char hostname[50];
	gethostname(hostname, sizeof(hostname));
	lcd_draw_string(0, 0, hostname);
}
Пример #13
0
void show_time() {
	char tmp[10];
    sprintf(tmp, "%5s", get_cmd_result("date '+%H:%M'"));
    lcd_draw_string(0, 128 - 8 * strlen(tmp), tmp);
}