Skip to content

Latest commit

 

History

History
102 lines (73 loc) · 3.38 KB

File metadata and controls

102 lines (73 loc) · 3.38 KB

AppMessage packets

Dictionary entry 0 will always contain the packet ID (uint8)

Phone -> Watch

Phone Welcome (packet 1)

Sent to the watch as the response to the packet 1.

  • 1. - phone protocol version (uint16)
  • 2 - Bucketsync sync data (byte array)
    • Sync status (uint8) - 2 - watch is up to date, 1 - this is the last sync packet, 0 - more packet 3 packets will follow this packet.
    • If latest bucketsync version does not match the watch's version:
      • Latest bucketsync version on the phone (uint16)
      • Number of currently active buckets (uint8)
      • For every active bucket:
        • Bucket id (uint8)
        • Bucket flags (uint8)
      • For every bucketsync updated bucket that can fit into this packet:
        • Bucket id (uint8)
        • Bucket size in bytes (uint8)
        • Bucket data (bytes)
  • 3 - If this key exists, watch should auto-close after sync is completed (uint8)

(Note: if phone/watch protocol versions do not match, only dictionary entry 1 is sent).

Re-start bucketsync sync (packet 2)

Sent to the watch when the watchapp is open and buckets on the phone change

  • 1 - Bucketsync sync data (byte array)
    • Sync complete flag (uint8) - 1 if this is the last sync packet, 0 if more packet 3 packets will follow.
    • Latest bucketsync version on the phone (uint16)
    • Number of currently active buckets (uint8)
    • For every active bucket:
      • Bucket id (uint8)
      • Bucket flags (uint8)
    • For every bucketsync updated bucket that can fit into this packet:
      • Bucket id (uint8)
      • Bucket size in bytes (uint8)
      • Bucket data (bytes)

Follow up bucket data (packet 3)

Optionally sent to the watch after packets 1 or 2. Can be repeated until data for all changed buckets has been sent

  • 1 - Bucketsync bucket data (byte array)
    • Sync complete flag (uint8) - 1 if this is the last sync packet, 0 if more packet 3 packets will follow.
    • For every bucketsync updated bucket that can fit into this packet:
      • Bucket id (uint8)
      • Bucket size in bytes (uint8)
      • Bucket data (bytes)

Watch -> Phone

Watch Welcome (packet 0)

Sent from the watch when the app is opened.

  • 1 - watch protocol version (uint16)
  • 2 - current bucketsync watch version (uint16)
  • 3 - Appmessage incoming buffer size in bytes (uint16)

Trigger action (packet 4)

Sent from the watch when the app is opened.

  • 1 - ID of the action to trigger (uint16)
  • 2 - Text of the action to trigger (cstring)

Buckets

Watch can store up to 15 of them, up to 256 bytes each

Every bucket corresponds to one Tasker directory

Data in every bucket:

  • Number of items (uint8)
  • Items (Max 13 items - 19 bytes per item)
    • ID (uint16)
    • Target directory (uint8) - If item should open another directory, 0 otherwise
    • Flags (uint8) - For future use
    • Title (cstring) - up to 14 bytes + null terminator

Every bucket is stored in the 2001 - 2015 storage keys

Non-bucket storage on the watch

160 bytes left over from buckets

1000 - List of all buckets on the watch (up to 60 bytes)

  • array of tuples (up to 15 items)
  • array size determined through persist_get_size()
  • Tuple: (2 bytes each)
    • Bucket id (uint8)
    • Flags (uint8) - For future use

1001 - Current version of the data on the watch (uint16) 1002 - Protocol version of the last data writing on the watch (uint16) If this changes, the watch is wiped and re-synced to the phone