Links

Embedded Driver

A C embedded driver is available to drive the modem from a host MCU.
The current modem C API is below for reference:
/**
* Callbacks required for modem initialization
* The on_event_irq() callback is raised in interrupt context,
* and requires processing by blecon_modem_process_event() in user mode
*/
struct blecon_modem_callbacks_t {
void (*on_connection)(struct blecon_modem_t* modem, void* user_data); // Connection callback
void (*on_response)(struct blecon_modem_t* modem, void* user_data); // Response available callback
void (*on_error)(struct blecon_modem_t* modem, void* user_data); // Error callback
void (*on_event_irq)(struct blecon_modem_t* modem, void* user_data); // Event IRQ callback
};
/**
* Initialize the modem with a transport and callbacks
*/
enum blecon_modem_error_code_t blecon_modem_init(struct blecon_modem_t* modem, struct blecon_modem_transport_t* transport, const struct blecon_modem_callbacks_t* callbacks, void* user_data);
/**
* Set model id and schema version
*/
enum blecon_modem_error_code_t blecon_modem_set_application_data(struct blecon_modem_t* modem, const uint8_t* model_id, uint32_t schema_version);
/**
* Request a network connection
*/
enum blecon_modem_error_code_t blecon_modem_request_connection(struct blecon_modem_t* modem);
/**
* Close an open connection, or cancel the connection request
*/
enum blecon_modem_error_code_t blecon_modem_close_connection(struct blecon_modem_t* modem);
/**
* Send a blecon request with the following payload
*/
enum blecon_modem_error_code_t blecon_modem_send_request(struct blecon_modem_t* modem, const uint8_t* data, size_t sz);
/**
* Get the last error
*/
enum blecon_modem_error_code_t blecon_modem_get_error(struct blecon_modem_t* modem, enum blecon_modem_rpc_error_t* error);
/**
* Retrieve a response to a successful request
*/
enum blecon_modem_error_code_t blecon_modem_get_response(struct blecon_modem_t* modem, uint8_t* data, size_t* sz);
/**
* Get the device's URL
*/
enum blecon_modem_error_code_t blecon_modem_get_device_url(struct blecon_modem_t* modem, char* url, size_t max_sz);
/**
* Get the device's identity (UUID)
*/
enum blecon_modem_error_code_t blecon_modem_get_identity(struct blecon_modem_t* modem, uint8_t* uuid);
/**
* Identify the device using with the Blecon hotspot
*/
enum blecon_modem_error_code_t blecon_modem_identify(struct blecon_modem_t* modem);
/**
* Process any incoming event
*/
enum blecon_modem_error_code_t blecon_modem_process_event(struct blecon_modem_t* modem);
/**
* Retrieve the modem's firmware version
*/
uint32_t blecon_modem_get_firmware_version(struct blecon_modem_t* modem);
For more details, please contact us.