PebbleOS
Loading...
Searching...
No Matches
Macros | Typedefs | Enumerations | Functions
Protocol

BlobDB Pebble Protocol definitions. More...

Macros

#define RESPONSE_MASK   (1 << 7)
 Bit set in the command of a response.
 

Typedefs

typedef uint16_t BlobDBToken
 Message token, echoed in responses to match them with requests.
 

Enumerations

enum  BlobDBResponse {
  BLOB_DB_SUCCESS = 0x01 , BLOB_DB_GENERAL_FAILURE = 0x02 , BLOB_DB_INVALID_OPERATION = 0x03 , BLOB_DB_INVALID_DATABASE_ID = 0x04 ,
  BLOB_DB_INVALID_DATA = 0x05 , BLOB_DB_KEY_DOES_NOT_EXIST = 0x06 , BLOB_DB_DATABASE_FULL = 0x07 , BLOB_DB_DATA_STALE = 0x08 ,
  BLOB_DB_DB_NOT_SUPPORTED = 0x09 , BLOB_DB_DB_LOCKED = 0x0A , BLOB_DB_TRY_LATER = 0x0B
}
 Response codes. More...
 
enum  BlobDBCommand {
  BLOB_DB_COMMAND_INSERT = 0x01 , BLOB_DB_COMMAND_READ = 0x02 , BLOB_DB_COMMAND_UPDATE = 0x03 , BLOB_DB_COMMAND_DELETE = 0x04 ,
  BLOB_DB_COMMAND_CLEAR = 0x05 , BLOB_DB_COMMAND_DIRTY_DBS = 0x06 , BLOB_DB_COMMAND_START_SYNC = 0x07 , BLOB_DB_COMMAND_WRITE = 0x08 ,
  BLOB_DB_COMMAND_WRITEBACK = 0x09 , BLOB_DB_COMMAND_SYNC_DONE = 0x0A , BLOB_DB_COMMAND_VERSION = 0x0B , BLOB_DB_COMMAND_DIRTY_ALL = 0x0C ,
  BLOB_DB_COMMAND_INSERT_WITH_TIMESTAMP = 0x0D , BLOB_DB_COMMAND_DIRTY_DBS_RESPONSE = BLOB_DB_COMMAND_DIRTY_DBS | RESPONSE_MASK , BLOB_DB_COMMAND_START_SYNC_RESPONSE = BLOB_DB_COMMAND_START_SYNC | RESPONSE_MASK , BLOB_DB_COMMAND_WRITE_RESPONSE = BLOB_DB_COMMAND_WRITE | RESPONSE_MASK ,
  BLOB_DB_COMMAND_WRITEBACK_RESPONSE = BLOB_DB_COMMAND_WRITEBACK | RESPONSE_MASK , BLOB_DB_COMMAND_SYNC_DONE_RESPONSE = BLOB_DB_COMMAND_SYNC_DONE | RESPONSE_MASK , BLOB_DB_COMMAND_VERSION_RESPONSE = BLOB_DB_COMMAND_VERSION | RESPONSE_MASK
}
 Commands. More...
 

Functions

const uint8_t * endpoint_private_read_token_db_id (const uint8_t *iter, BlobDBToken *out_token, BlobDBId *out_db_id)
 Parse the token and database id at the start of a message body.
 
void blob_db_enabled (bool enabled)
 Enable or disable message handling on both BlobDB endpoints.
 

Detailed Description

BlobDB Pebble Protocol definitions.

The phone writes on endpoint 0xb1db and sync runs on 0xb2db; see docs/reference/blob-db.md for message layouts.

Macro Definition Documentation

◆ RESPONSE_MASK

#define RESPONSE_MASK   (1 << 7)

Bit set in the command of a response.

Typedef Documentation

◆ BlobDBToken

typedef uint16_t BlobDBToken

Message token, echoed in responses to match them with requests.

Enumeration Type Documentation

◆ BlobDBCommand

Commands.

Enumerator
BLOB_DB_COMMAND_INSERT 

Insert a record.

BLOB_DB_COMMAND_READ 

Read a record; not implemented.

BLOB_DB_COMMAND_UPDATE 

Update a record; not implemented.

BLOB_DB_COMMAND_DELETE 

Delete a record.

BLOB_DB_COMMAND_CLEAR 

Delete all records of a database.

BLOB_DB_COMMAND_DIRTY_DBS 

List databases with dirty records.

This and the following commands belong to sync; not every phone supports them.

BLOB_DB_COMMAND_START_SYNC 

Start syncing a database.

BLOB_DB_COMMAND_WRITE 

Watch write of a single record.

BLOB_DB_COMMAND_WRITEBACK 

Watch write-back of a dirty record during a database sync.

BLOB_DB_COMMAND_SYNC_DONE 

Database sync finished.

BLOB_DB_COMMAND_VERSION 

Protocol version query.

BLOB_DB_COMMAND_DIRTY_ALL 

Mark all records dirty; only supported by the settings database.

BLOB_DB_COMMAND_INSERT_WITH_TIMESTAMP 

Insert a record unless the watch copy is newer.

BLOB_DB_COMMAND_DIRTY_DBS_RESPONSE 

Response to BLOB_DB_COMMAND_DIRTY_DBS.

BLOB_DB_COMMAND_START_SYNC_RESPONSE 

Response to BLOB_DB_COMMAND_START_SYNC.

BLOB_DB_COMMAND_WRITE_RESPONSE 

Response to BLOB_DB_COMMAND_WRITE.

BLOB_DB_COMMAND_WRITEBACK_RESPONSE 

Response to BLOB_DB_COMMAND_WRITEBACK.

BLOB_DB_COMMAND_SYNC_DONE_RESPONSE 

Response to BLOB_DB_COMMAND_SYNC_DONE.

BLOB_DB_COMMAND_VERSION_RESPONSE 

Response to BLOB_DB_COMMAND_VERSION.

◆ BlobDBResponse

Response codes.

Enumerator
BLOB_DB_SUCCESS 

Success.

BLOB_DB_GENERAL_FAILURE 

Unspecified error.

BLOB_DB_INVALID_OPERATION 

Unknown or unsupported command.

BLOB_DB_INVALID_DATABASE_ID 

Invalid or disabled database (E_RANGE).

BLOB_DB_INVALID_DATA 

Malformed message or rejected record (E_INVALID_ARGUMENT).

BLOB_DB_KEY_DOES_NOT_EXIST 

Key not found (E_DOES_NOT_EXIST).

BLOB_DB_DATABASE_FULL 

Out of storage (E_OUT_OF_STORAGE).

BLOB_DB_DATA_STALE 

Watch copy is newer (E_INVALID_OPERATION).

BLOB_DB_DB_NOT_SUPPORTED 

Database not supported.

BLOB_DB_DB_LOCKED 

Database locked.

BLOB_DB_TRY_LATER 

Endpoint not accepting messages yet.

Function Documentation

◆ blob_db_enabled()

void blob_db_enabled ( bool  enabled)

Enable or disable message handling on both BlobDB endpoints.

While disabled, commands are answered with BLOB_DB_TRY_LATER.

Parameters
enabledtrue to accept messages.

◆ endpoint_private_read_token_db_id()

const uint8_t * endpoint_private_read_token_db_id ( const uint8_t *  iter,
BlobDBToken *  out_token,
BlobDBId *  out_db_id 
)

Parse the token and database id at the start of a message body.

Parameters
iterMessage body, after the command byte.
[out]out_tokenToken.
[out]out_db_idDatabase id.
Returns
Pointer past the parsed fields.