From a8cb56b85cba3efbc531a9306b98b7de56469527 Mon Sep 17 00:00:00 2001 From: tmeissner Date: Wed, 14 Oct 2015 00:00:00 +0200 Subject: [PATCH] Initial commit of C watchface tutorial --- create_a_c_watchface/.gitignore | 6 + create_a_c_watchface/appinfo.json | 54 ++++ .../resources/fonts/perfect-dos-vga.ttf | Bin 0 -> 82676 bytes .../resources/images/background.png | Bin 0 -> 33491 bytes create_a_c_watchface/src/js/pebble-js-app.js | 94 ++++++ create_a_c_watchface/src/main.c | 277 ++++++++++++++++++ create_a_c_watchface/wscript | 41 +++ 7 files changed, 472 insertions(+) create mode 100644 create_a_c_watchface/.gitignore create mode 100644 create_a_c_watchface/appinfo.json create mode 100644 create_a_c_watchface/resources/fonts/perfect-dos-vga.ttf create mode 100644 create_a_c_watchface/resources/images/background.png create mode 100644 create_a_c_watchface/src/js/pebble-js-app.js create mode 100644 create_a_c_watchface/src/main.c create mode 100644 create_a_c_watchface/wscript diff --git a/create_a_c_watchface/.gitignore b/create_a_c_watchface/.gitignore new file mode 100644 index 0000000..9eaef5d --- /dev/null +++ b/create_a_c_watchface/.gitignore @@ -0,0 +1,6 @@ + +# Ignore build generated files +build + +# Ignore waf lock file +.lock-waf* diff --git a/create_a_c_watchface/appinfo.json b/create_a_c_watchface/appinfo.json new file mode 100644 index 0000000..dd2caeb --- /dev/null +++ b/create_a_c_watchface/appinfo.json @@ -0,0 +1,54 @@ +{ + "uuid": "3c6e0682-a917-4283-a27e-349f2de629fa", + "shortName": "create_a_c_watchface", + "longName": "create_a_c_watchface", + "companyName": "goodcleanfun", + "versionLabel": "1.0", + "sdkVersion": "3", + "targetPlatforms": ["aplite", "basalt"], + "watchapp": { + "watchface": true + }, + "appKeys": { + "dummy": 0 + }, + "capabilities": + [ "location" ], + "appKeys": { + "KEY_TEMPERATURE": 0, + "KEY_CONDITIONS": 1 + }, + "resources": { + "media": [ + { + "type": "font", + "name": "FONT_PERFECT_DOS_16", + "file": "fonts/perfect-dos-vga.ttf", + "compatibility":"2.7" + }, + { + "type": "font", + "name": "FONT_PERFECT_DOS_20", + "file": "fonts/perfect-dos-vga.ttf", + "compatibility":"2.7" + }, + { + "type": "font", + "name": "FONT_PERFECT_DOS_24", + "file": "fonts/perfect-dos-vga.ttf", + "compatibility":"2.7" + }, + { + "type": "font", + "name": "FONT_PERFECT_DOS_48", + "file": "fonts/perfect-dos-vga.ttf", + "compatibility":"2.7" + }, + { + "type": "png", + "name": "TUTORIAL_BACKGROUND", + "file": "images/background.png" + } + ] + } +} diff --git a/create_a_c_watchface/resources/fonts/perfect-dos-vga.ttf b/create_a_c_watchface/resources/fonts/perfect-dos-vga.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d03b1c5e5780554a44cf7c8caf03d0da38d4de25 GIT binary patch literal 82676 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 literal 0 HcmV?d00001 diff --git a/create_a_c_watchface/resources/images/background.png b/create_a_c_watchface/resources/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..1b5e78c6af2f7a92b318840dcc0f588e89cdda0f GIT binary patch literal 33491 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 JjqJy;{{dzw>CONE literal 0 HcmV?d00001 diff --git a/create_a_c_watchface/src/js/pebble-js-app.js b/create_a_c_watchface/src/js/pebble-js-app.js new file mode 100644 index 0000000..697f036 --- /dev/null +++ b/create_a_c_watchface/src/js/pebble-js-app.js @@ -0,0 +1,94 @@ +var xhrRequest = function (url, type, callback) { + + var xhr = new XMLHttpRequest(); + + xhr.onload = function () { + callback(this.responseText); + }; + + xhr.open(type, url); + xhr.send(); + +}; + + +function locationSuccess(pos) { + + // generic API key, has to be replaced by developers one + var api_key = 'bd82977b86bf27fb59a04b61b657fb6f'; + + // Construct URL + var url = 'http://api.openweathermap.org/data/2.5/weather?lat=' + + pos.coords.latitude + '&lon=' + pos.coords.longitude + + '&APPID=' + api_key; + + // Send request to OpenWeatherMap + xhrRequest(url, 'GET', + function(responseText) { + // responseText contains a JSON object with weather info + var json = JSON.parse(responseText); + + // Temperature in Kelvin requires adjustment + var temperature = Math.round(json.main.temp - 273.15); + console.log('Temperature is ' + temperature); + + // Conditions + var conditions = json.weather[0].main; + console.log('Conditions are ' + conditions); + + // Assemble dictionary using our keys + var dictionary = { + 'KEY_TEMPERATURE': temperature, + 'KEY_CONDITIONS': conditions + }; + + // Send to Pebble + Pebble.sendAppMessage(dictionary, + function(e) { + console.log('Weather info sent to Pebble successfully!'); + }, + function(e) { + console.log('Error sending weather info to Pebble!'); + } + ); + } + ); + +} + + +function locationError(err) { + + console.log('Error requesting location!'); + +} + + +function getWeather() { + + navigator.geolocation.getCurrentPosition( + locationSuccess, + locationError, + {timeout: 15000, maximumAge: 60000} + ); + +} + + +// Listen for when the watchface is opened +Pebble.addEventListener('ready', + function(e) { + console.log('PebbleKit JS ready!'); + // Get the initial weather + getWeather(); + } +); + + +// Listen for when an AppMessage is received +Pebble.addEventListener('appmessage', + function(e) { + console.log('AppMessage received!'); + getWeather(); + } +); diff --git a/create_a_c_watchface/src/main.c b/create_a_c_watchface/src/main.c new file mode 100644 index 0000000..b56366b --- /dev/null +++ b/create_a_c_watchface/src/main.c @@ -0,0 +1,277 @@ +#include + + +#define KEY_TEMPERATURE 0 +#define KEY_CONDITIONS 1 + + +// Function signatures +static void update_time(); +static void tick_handler(struct tm *tick_time, TimeUnits units_changed); +static void main_window_load(Window *window); +static void main_window_unload(Window *window); +static void init(); +static void deinit(); +static void inbox_received_callback(DictionaryIterator *iterator, void *context); +static void inbox_dropped_callback(AppMessageResult reason, void *context); +static void outbox_failed_callback(DictionaryIterator *iterator, AppMessageResult reason, void *context); +static void outbox_sent_callback(DictionaryIterator *iterator, void *context); + + +// Global variables +static Window *s_main_window; +static TextLayer *s_time_layer; +static TextLayer *s_weather_layer; +static TextLayer *s_daymonth_layer; +//static TextLayer *s_year_layer; +static GFont s_time_font; +static GFont s_weather_font; +static GFont s_date_font; +static BitmapLayer *s_background_layer; +static GBitmap *s_background_bitmap; + + + +int main(void) { + + init(); + app_event_loop(); + deinit(); + +} + + +static void update_time() { + + // Get a tm structure + time_t temp = time(NULL); + struct tm *tick_time = localtime(&temp); + + // Create a long-lived buffer + static char buffer[] = "00:00"; + + // Write the current hours and minutes into the buffer + if (clock_is_24h_style()) { + // Use 24 hour format + strftime(buffer, sizeof("00:00"), "%H:%M", tick_time); + } else { + // Use 12 hour format + strftime(buffer, sizeof("00:00"), "%I:%M", tick_time); + } + + // Display this time on the TextLayer + text_layer_set_text(s_time_layer, buffer); + +} + + +static void update_date() { + + // Get a tm structure + time_t temp = time(NULL); + struct tm *tick_time = localtime(&temp); + + // Create a long-lived buffer + static char buffer_daymonth[] = "00.000"; + + // Write the current hours and minutes into the buffer + strftime(buffer_daymonth, sizeof(buffer_daymonth), "%e.%b", tick_time); + + // Display this time on the TextLayer + text_layer_set_text(s_daymonth_layer, buffer_daymonth); + +} + + +static void tick_handler(struct tm *tick_time, TimeUnits units_changed) { + + update_time(); + if (units_changed & DAY_UNIT) { + update_date(); + } + + // Get weather update every 30 minutes + if (tick_time->tm_min % 30 == 0) { + // Begin dictionary + DictionaryIterator *iter; + app_message_outbox_begin(&iter); + + // Add a key-value pair + dict_write_uint8(iter, 0, 0); + + // Send the message! + app_message_outbox_send(); + } + +} + + +static void inbox_received_callback(DictionaryIterator *iterator, void *context) { + + // Store incoming information + static char temperature_buffer[8]; + static char conditions_buffer[32]; + static char weather_layer_buffer[32]; + + // Read first item + Tuple *t = dict_read_first(iterator); + + // For all items + while(t != NULL) { + + // Which key was received? + switch(t->key) { + case KEY_TEMPERATURE: + snprintf(temperature_buffer, sizeof(temperature_buffer), "%d°C", (int)t->value->int32); + break; + + case KEY_CONDITIONS: + snprintf(conditions_buffer, sizeof(conditions_buffer), "%s", t->value->cstring); + break; + + default: + APP_LOG(APP_LOG_LEVEL_ERROR, "Key %d not recognized!", (int)t->key); + break; + } + + // Look for next item + t = dict_read_next(iterator); + } + + // Assemble full string and display + snprintf(weather_layer_buffer, sizeof(weather_layer_buffer), "%s, %s", temperature_buffer, conditions_buffer); + text_layer_set_text(s_weather_layer, weather_layer_buffer); + +} + + +static void inbox_dropped_callback(AppMessageResult reason, void *context) { + APP_LOG(APP_LOG_LEVEL_ERROR, "Message dropped!"); +} + + +static void outbox_failed_callback(DictionaryIterator *iterator, AppMessageResult reason, void *context) { + APP_LOG(APP_LOG_LEVEL_ERROR, "Outbox send failed!"); +} + + +static void outbox_sent_callback(DictionaryIterator *iterator, void *context) { + APP_LOG(APP_LOG_LEVEL_INFO, "Outbox send success!"); +} + + +static void main_window_load(Window *window) { + + // Create GBitmap, then set to created BitmapLayer + s_background_bitmap = gbitmap_create_with_resource(RESOURCE_ID_TUTORIAL_BACKGROUND); + s_background_layer = bitmap_layer_create(GRect(0, 0, 144, 168)); + bitmap_layer_set_bitmap(s_background_layer, s_background_bitmap); + + // Create time TextLayer + s_time_layer = text_layer_create(GRect(5, 52, 139, 50)); + text_layer_set_background_color(s_time_layer, GColorClear); + text_layer_set_text_color(s_time_layer, GColorBlack); + + // Create temperature Layer + s_weather_layer = text_layer_create(GRect(0, 130, 144, 25)); + text_layer_set_background_color(s_weather_layer, GColorClear); + text_layer_set_text_color(s_weather_layer, GColorWhite); + text_layer_set_text(s_weather_layer, "Loading..."); + + // Create day-month TextLayer + s_daymonth_layer = text_layer_create(GRect(5, 12, 139, 30)); + text_layer_set_background_color(s_daymonth_layer, GColorBlack); + text_layer_set_text_color(s_daymonth_layer, GColorWhite); + + // Create year TextLayer +// s_year_layer = text_layer_create(GRect(5, 123, 139, 30)); +// text_layer_set_background_color(s_year_layer, GColorBlack); +// text_layer_set_text_color(s_year_layer, GColorWhite); + + // Create GFont + s_time_font = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_PERFECT_DOS_48)); + s_weather_font = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_PERFECT_DOS_16)); + s_date_font = fonts_load_custom_font(resource_get_handle(RESOURCE_ID_FONT_PERFECT_DOS_24)); + + // Apply to TextLayer + text_layer_set_font(s_time_layer, s_time_font); + text_layer_set_font(s_weather_layer, s_weather_font); + text_layer_set_font(s_daymonth_layer, s_date_font); +// text_layer_set_font(s_year_layer, s_date_font); + + // Improve the layout to be more like a watchface + text_layer_set_text_alignment(s_time_layer, GTextAlignmentCenter); + text_layer_set_text_alignment(s_weather_layer, GTextAlignmentCenter); + text_layer_set_text_alignment(s_daymonth_layer, GTextAlignmentCenter); +// text_layer_set_text_alignment(s_year_layer, GTextAlignmentCenter); + + // Add it as a child layer to the Window's root layer + layer_add_child(window_get_root_layer(window), bitmap_layer_get_layer(s_background_layer)); + layer_add_child(window_get_root_layer(window), text_layer_get_layer(s_time_layer)); + layer_add_child(window_get_root_layer(window), text_layer_get_layer(s_weather_layer)); + layer_add_child(window_get_root_layer(window), text_layer_get_layer(s_daymonth_layer)); + // layer_add_child(window_get_root_layer(window), text_layer_get_layer(s_year_layer)); + +} + + +static void main_window_unload(Window *window) { + + // Destroy TextLayer + text_layer_destroy(s_time_layer); + text_layer_destroy(s_weather_layer); + text_layer_destroy(s_daymonth_layer); +// text_layer_destroy(s_year_layer); + + // Unload GFont + fonts_unload_custom_font(s_time_font); + fonts_unload_custom_font(s_weather_font); + fonts_unload_custom_font(s_date_font); + + // Destroy GBitmap + gbitmap_destroy(s_background_bitmap); + + // Destroy BitmapLayer + bitmap_layer_destroy(s_background_layer); + +} + + +static void init() { + + // Create main Window element and assign to pointer + s_main_window = window_create(); + + // Set handlers to manage the elements inside the Window + window_set_window_handlers(s_main_window, (WindowHandlers){ + .load = main_window_load, + .unload = main_window_unload + }); + + // Show the Window on the watch, with animated=true + window_stack_push(s_main_window, true); + + // Register with TickTimerService + tick_timer_service_subscribe((MINUTE_UNIT | DAY_UNIT), tick_handler); + + // Register AppMessage callbacks + app_message_register_inbox_received(inbox_received_callback); + app_message_register_inbox_dropped(inbox_dropped_callback); + app_message_register_outbox_failed(outbox_failed_callback); + app_message_register_outbox_sent(outbox_sent_callback); + + // Open AppMessage + app_message_open(app_message_inbox_size_maximum(), app_message_outbox_size_maximum()); + + update_time(); + update_date(); + +} + + +static void deinit() { + + // Destroy Window + window_destroy(s_main_window); + +} diff --git a/create_a_c_watchface/wscript b/create_a_c_watchface/wscript new file mode 100644 index 0000000..040ab7c --- /dev/null +++ b/create_a_c_watchface/wscript @@ -0,0 +1,41 @@ + +# +# This file is the default set of rules to compile a Pebble project. +# +# Feel free to customize this to your needs. +# + +import os.path + +top = '.' +out = 'build' + +def options(ctx): + ctx.load('pebble_sdk') + +def configure(ctx): + ctx.load('pebble_sdk') + +def build(ctx): + ctx.load('pebble_sdk') + + build_worker = os.path.exists('worker_src') + binaries = [] + + for p in ctx.env.TARGET_PLATFORMS: + ctx.set_env(ctx.all_envs[p]) + ctx.set_group(ctx.env.PLATFORM_NAME) + app_elf='{}/pebble-app.elf'.format(ctx.env.BUILD_DIR) + ctx.pbl_program(source=ctx.path.ant_glob('src/**/*.c'), + target=app_elf) + + if build_worker: + worker_elf='{}/pebble-worker.elf'.format(ctx.env.BUILD_DIR) + binaries.append({'platform': p, 'app_elf': app_elf, 'worker_elf': worker_elf}) + ctx.pbl_worker(source=ctx.path.ant_glob('worker_src/**/*.c'), + target=worker_elf) + else: + binaries.append({'platform': p, 'app_elf': app_elf}) + + ctx.set_group('bundle') + ctx.pbl_bundle(binaries=binaries, js=ctx.path.ant_glob('src/js/**/*.js'))