Ejemplo n.º 1
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);
}
Ejemplo n.º 2
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);
}