pebble-packet

1.3.2 • Public • Published

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-package/pebble-package.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.

Readme

Keywords

Package Sidebar

Install

npm i pebble-packet

Weekly Downloads

6

Version

1.3.2

License

none

Last publish

Collaborators

  • chris-lewis