Esempio n. 1
0
/**
 * @fn      sensorTag_BattDisp
 *
 * @brief
 *
 * @param
 *
 * @return
 */
static void sensorTag_BattDisp(unsigned char level)
{
	oled_set_font(&icon16x16);
	switch (level) {
	case 7:	// battery charge
		if (charge_cnt < 3) {
			charge_cnt++;
		} else {
			charge_cnt = 0;
			if (pwmgr == PWMGR_S1) {
				switch (charge_icon) {
				case 0:	oled_draw_icon(2, 44,  7); break;
				case 1:	oled_draw_icon(2, 44,  8); break;
				case 2:	oled_draw_icon(2, 44,  9); break;
				case 3:	oled_draw_icon(2, 44, 10); break;
				case 4:	oled_draw_icon(2, 44, 11); break;
				case 5:	oled_draw_icon(2, 44, 12); break;
				}
				if (++charge_icon > 5) {
					charge_icon = 0;
				}
			} else {
				oled_set_font(&bigbatt40x32);
				switch (charge_icon) {
				case 0:	oled_draw_icon(0, 12, 0); break;
				case 1:	oled_draw_icon(0, 12, 1); break;
				case 2:	oled_draw_icon(0, 12, 2); break;
				case 3:	oled_draw_icon(0, 12, 3); break;
				}
				if (++charge_icon > 3) {
					charge_icon = 0;
				}
			}
		}
		break;

	case 6:	oled_draw_icon(2, 44, 12); break;	// battery full
	case 5:	oled_draw_icon(2, 44, 11); break;
	case 4:	oled_draw_icon(2, 44, 10); break;
	case 3:	oled_draw_icon(2, 44,  9); break;
	case 2:	oled_draw_icon(2, 44,  8); break;
	case 1:	oled_draw_icon(2, 44,  7); break;	// battery empty
	case 0:	// battery shutdown
		oled_set_font(&bigbatt40x32);
		oled_draw_icon(0, 12, 4);
		break;
	}
}
Esempio n. 2
0
void menu_draw(void)
{
  unsigned y, i;
  
  if ( menu_o.current_dialog == CLOCK_DIALOG )
  {
	draw_hm(&oled_o, &clk_o);
  }
  else
  {
    const char *m = menu_dialog_list[menu_o.current_dialog];
    
    oled_set_font(&oled_o, helvR12small);
    
    y = 14;
    for( i = 0; i < menu_o.total; i++ )
    {
	if ( menu_o.curr == i )
	{
	  oled_draw_string(&oled_o, 0, y, ":");
	}
	oled_draw_string(&oled_o, 10, y, m+2); 
	if ( *m == 0xf3 || *m == 0xf2 )
	{
	  oled_draw_num(&oled_o, 100, y, 10, 1, menu_o.num[i]);    
	}
	
	y += 16;
	m = menu_get_entry(m, 1);
    }
  }
}
Esempio n. 3
0
static void draw_hm(oled_t *oled, clk_t *clk)
{
  unsigned x, y, d;
  y = 47;
  x = 0;
  d = 25;


  oled_set_font(&oled_o, logisoso46);
  
  x += oled_draw_num(oled,x,y,d,0,clk->current_time.data[2]);
  oled_draw_glyph(oled, x, y, ':');
  x += d/2;
  x += oled_draw_num(oled,x,y,d,1,clk->current_time.data[1]);

  oled_set_font(&oled_o, helvR12small);
  oled_draw_num(oled,100,64,10,1,clk->current_time.data[0]);
  
}
Esempio n. 4
0
/**
 * @fn      sensorTag_HandleDisp
 *
 * @brief
 *
 * @param
 *
 * @return
 */
static void sensorTag_HandleDisp(unsigned char mode, void *p)
{
	VOID		*p;
	UTCTimeStruct	time;


	if ((mode & 0xF0) == MODE_SLEEP) {
		// display time
		sensorTag_ClockGet(&time, 0);

		oled_set_font(&num8x16);
		oled_draw_icon(1,  0, time.hour/10);
		oled_draw_icon(1,  8, time.hour%10);
		oled_draw_icon(1, 16, 10);
		oled_draw_icon(1, 24, time.minutes/10);
		oled_draw_icon(1, 32, time.minutes%10);

		// display sleep icon
		oled_set_font(&icon16x16);
		oled_draw_icon(0, 44, 6);

		// display battery
		sensorTag_BattDisp(batt_get_level());
		return;
	}

	switch (mode & 0x0F) {
	case MODE_TIME:
		if ((mode & 0xF0) == MODE_NORMAL) {
			// display time
			sensorTag_ClockGet(&time, 0);

			oled_set_font(&num8x16);
			oled_draw_icon(1,  0, time.hour/10);
			oled_draw_icon(1,  8, time.hour%10);
			oled_draw_icon(1, 16, 10);
			oled_draw_icon(1, 24, time.minutes/10);
			oled_draw_icon(1, 32, time.minutes%10);

			// display clock icon
			oled_set_font(&icon16x16);
			oled_draw_icon(0, 44, 13);

		} else {
			// display chronograph
			sensorTag_ClockGet(&time, workout.time);

			oled_set_font(&num8x16);
			oled_draw_icon(0,  0, time.hour/10);
			oled_draw_icon(0,  8, time.hour%10);
			oled_draw_icon(0, 16, 10);
			oled_draw_icon(0, 24, time.minutes/10);
			oled_draw_icon(0, 32, time.minutes%10);
			oled_draw_icon(0, 40, 10);
			oled_draw_icon(0, 48, time.seconds/10);
			oled_draw_icon(0, 56, time.seconds%10);
		}
		// display battery
		sensorTag_BattDisp(batt_get_level());
		break;

	case MODE_STEP:
		// display step icon
		oled_set_font(&icon16x16);
		if ((mode & 0xF0) == MODE_NORMAL) {
			oled_draw_icon(0, 44, 0);
		} else {
			oled_draw_icon(0, 44, 1);
		}
		// display step
		oled_set_font(&num8x16);
		if ((mode & 0xF0) == MODE_NORMAL) {
			oled_draw_num(1, 0, normal.steps);
		} else {
			oled_draw_num(1, 0, normal.steps - workout.steps);
		}
		break;

	case MODE_CALORIE:
		// display calorie icon
		oled_set_font(&icon16x16);
		if ((mode & 0xF0) == MODE_NORMAL) {
			oled_draw_icon(0, 44, 2);
		} else {
			oled_draw_icon(0, 44, 3);
		}
		// display calorie
		oled_set_font(&num8x16);
		if ((mode & 0xF0) == MODE_NORMAL) {
			oled_draw_num(1, 0, normal.calorie);
		} else {
			oled_draw_num(1, 0, workout.calorie);
		}
		break;

	case MODE_DISTANCE:
		// display distance icon
		oled_set_font(&icon16x16);
		if ((mode & 0xF0) == MODE_NORMAL) {
			oled_draw_icon(0, 44, 4);
		} else {
			oled_draw_icon(0, 44, 5);
		}
		// display distance
		oled_set_font(&num8x16);
		if ((mode & 0xF0) == MODE_NORMAL) {
			oled_draw_num(1, 0, normal.distance);
		} else {
			oled_draw_num(1, 0, workout.distance);
		}
		break;

	case MODE_DBG:
		oled_set_font(&fonts7x8);
		oled_gotoxy(0, 0);
		oled_puts("x:");
		oled_puts_04x(acc[0]);

		oled_gotoxy(1, 0);
		oled_puts("y:");
		oled_puts_04x(acc[1]);

		oled_gotoxy(2, 0);
		oled_puts("z:");
		oled_puts_04x(acc[2]);

		oled_gotoxy(3, 0);
		oled_puts("s:");
		oled_puts_05u(normal.steps);
		break;
	}
}