Skip to content

Simple wrapper for AppMessage integer and string types with built in error reporting.

License

Notifications You must be signed in to change notification settings

C-D-Lewis/pebble-packet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pebble-packet

Simple wrapper for AppMessage integer and string types with built in error reporting. Never directly use DictionaryIterator or Tuple again!

Available on NPM.

How to use

  1. Install the Pebble package:
$ pebble package install pebble-packet
  1. Add the pebble-package include at the top of your source.
#include <pebble-packet/pebble-packet.h>
  1. Ensure AppMessage is open:
const int inbox = 128;
const int outbox = 128;
events_app_message_request_inbox_size(inbox);
events_app_message_request_outbox_size(outbox);
events_app_message_open();
  1. Begin, build, and send a packet:
if(packet_begin()) {
  packet_put_integer(AppKeyInteger, 42);
  packet_put_string(AppKeyString, "Don't talk to me about life.");
  packet_send();
}
  1. Get data from a received dictionary:
// in your setup after the app_message_open call
app_message_register_inbox_received(in_recv_handler);

static void in_recv_handler(DictionaryIterator *iter, void *context) {
  if(packet_contains_key(iter, MESSAGE_KEY_Integer)) {
    APP_LOG(APP_LOG_LEVEL_INFO, "Got int: %d", packet_get_integer(iter, MESSAGE_KEY_Integer));
  }

  if(packet_contains_key(iter, MESSAGE_KEY_String)) {
    APP_LOG(APP_LOG_LEVEL_INFO, "Got string: %s", packet_get_string(iter, MESSAGE_KEY_String));
  }

  if(packet_contains_key(iter, MESSAGE_KEY_Boolean)) {
    APP_LOG(APP_LOG_LEVEL_INFO, "Got int: %s", packet_get_boolean(iter, MESSAGE_KEY_Boolean) ? "true" : "false");
  }

  APP_LOG(APP_LOG_LEVEL_INFO, "Size: %d", packet_get_size(iter));
}

Documentation

See include/pebble-packet.h for function documentation.

Changelog

1.0

  • Initial version

1.1

  • Add packet_get_size(), packet_contains_key(), packet_put_boolean(), packet_get_boolean(), packet_get_integer(), and packet_get_string().

1.2

  • Build for Diorite platform on SDK 4.0

1.3

  • Add failed handler so client apps can retry their packets.

1.3.1

  • Add NULL check for retry callbacks.

1.3.2

  • Build for Emery

About

Simple wrapper for AppMessage integer and string types with built in error reporting.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published