Hexiwear Program for my Hackster Hexiwear contest entry
Dependencies: Hexi_OLED_SSD1351
main.cpp
- Committer:
- keithm01
- Date:
- 2016-09-15
- Revision:
- 0:6bb49e7332b4
File content as of revision 0:6bb49e7332b4:
#include "mbed.h"
#include "Hexi_OLED_SSD1351.h"
#include "string.h"
#include "images.h"
DigitalOut led_green(LED_GREEN);
DigitalOut vib(PTB9);
Serial eddy(PTD3, PTD2); // tx rx
// Connect to the oled
SSD1351 oled(PTB22,PTB21,PTC13,PTB20,PTE6, PTD15); /* (MOSI,SCLK,POWER,CS,RST,DC) */
bool armed = false;
bool alarm = false;
int main() {
// Buffer to store label text
char text[20];
// Use default properties
oled_text_properties_t textProperties = {0};
oled.GetTextProperties(&textProperties);
// Fill the screen
oled.FillScreen(COLOR_BLACK);
const uint8_t *borderImage;
borderImage = border_bmp;
oled.DrawImage(borderImage,0,20);
// Set text color to white and left aligned
textProperties.fontColor = COLOR_WHITE;
textProperties.alignParam = OLED_TEXT_ALIGN_CENTER;
oled.SetTextProperties(&textProperties);
const uint8_t *armedImage;
armedImage = lock_bmp;
const uint8_t *disarmedImage;
disarmedImage = unlock_bmp;
const uint8_t *alarmImage;
alarmImage = alarm_bmp;
while (true) {
time_t seconds = time(NULL); // Get the time in unix format
const tm *t = localtime (&seconds); // Convert the unix time to actual time
char* s = "AM"; // The suffix to use for the time of day
int h = t->tm_hour; // The hours
if (h > 12){ // If it's entering 24/h time, change it to 12/h and add PM
s = "PM";
h = h - 12;
}
// Format the time
sprintf(text,"%d:%d %s",h, t->tm_min, s);
// Display the time on screen
oled.TextBox((uint8_t *)text,2,2, 91, 15);
if(alarm){
vib = !vib;
oled.DrawImage(alarmImage,0,20);
}else{
if(armed){
oled.DrawImage(armedImage,0,20);
}else{
oled.DrawImage(disarmedImage,0,20);
}
}
// Flash the green led
led_green = !led_green;
if(eddy.readable()) {
char read = eddy.getc();
if(read == '0'){
armed = false;
alarm = false;
}else if (read == '1'){
armed = true;
alarm = false;
}else if (read == '2'){
alarm = true;
}
}
Thread::wait(1000);
}
}
Keith Mitchell