diff --git a/pycardium/modules/modbluetooth_card10.c b/pycardium/modules/modbluetooth_card10.c index e3ba0bc93f551d83600598036438a2c21941c770..0bff819a6aec832559e69a8fee90676218212a40 100644 --- a/pycardium/modules/modbluetooth_card10.c +++ b/pycardium/modules/modbluetooth_card10.c @@ -1,20 +1,32 @@ #include "extmod/modbluetooth.h" +#include "py/runtime.h" #include <stdint.h> +const char *const not_implemented_message = + "Not (yet) implemented on card10. See https://git.card10.badge.events.ccc.de/card10/firmware/-/issues/8"; + +static void raise(void) +{ + mp_raise_NotImplementedError(not_implemented_message); +} + // Enables the Bluetooth stack. int mp_bluetooth_init(void) { + raise(); return 0; } // Disables the Bluetooth stack. Is a no-op when not enabled. void mp_bluetooth_deinit(void) { + raise(); } // Returns true when the Bluetooth stack is enabled. bool mp_bluetooth_is_enabled(void) { + raise(); return false; } @@ -33,17 +45,20 @@ int mp_bluetooth_gap_advertise_start( const uint8_t *sr_data, size_t sr_data_len ) { + raise(); return 0; } // Stop advertisement. No-op when already stopped. void mp_bluetooth_gap_advertise_stop(void) { + raise(); } // Start adding services. Must be called before mp_bluetooth_register_service. int mp_bluetooth_gatts_register_service_begin(bool append) { + raise(); return 0; } // // Add a service with the given list of characteristics to the queue to be registered. @@ -58,11 +73,13 @@ int mp_bluetooth_gatts_register_service( uint16_t *handles, size_t num_characteristics ) { + raise(); return 0; } // Register any queued services. int mp_bluetooth_gatts_register_service_end() { + raise(); return 0; } @@ -70,17 +87,20 @@ int mp_bluetooth_gatts_register_service_end() int mp_bluetooth_gatts_read( uint16_t value_handle, uint8_t **value, size_t *value_len ) { + raise(); return 0; } // Write a value to the local gatts db (ready to be queried by a central). int mp_bluetooth_gatts_write( uint16_t value_handle, const uint8_t *value, size_t value_len ) { + raise(); return 0; } // Notify the central that it should do a read. int mp_bluetooth_gatts_notify(uint16_t conn_handle, uint16_t value_handle) { + raise(); return 0; } // Notify the central, including a data payload. (Note: does not set the gatts db value). @@ -90,11 +110,13 @@ int mp_bluetooth_gatts_notify_send( const uint8_t *value, size_t *value_len ) { + raise(); return 0; } // Indicate the central. int mp_bluetooth_gatts_indicate(uint16_t conn_handle, uint16_t value_handle) { + raise(); return 0; } @@ -102,12 +124,14 @@ int mp_bluetooth_gatts_indicate(uint16_t conn_handle, uint16_t value_handle) // Append-mode means that remote writes will append and local reads will clear after reading. int mp_bluetooth_gatts_set_buffer(uint16_t value_handle, size_t len, bool append) { + raise(); return 0; } // Disconnect from a central or peripheral. int mp_bluetooth_gap_disconnect(uint16_t conn_handle) { + raise(); return 0; } @@ -116,12 +140,14 @@ int mp_bluetooth_gap_disconnect(uint16_t conn_handle) int mp_bluetooth_gap_scan_start( int32_t duration_ms, int32_t interval_us, int32_t window_us ) { + raise(); return 0; } // Stop discovery (if currently active). int mp_bluetooth_gap_scan_stop(void) { + raise(); return 0; } @@ -129,12 +155,14 @@ int mp_bluetooth_gap_scan_stop(void) int mp_bluetooth_gap_peripheral_connect( uint8_t addr_type, const uint8_t *addr, int32_t duration_ms ) { + raise(); return 0; } // Find all primary services on the connected peripheral. int mp_bluetooth_gattc_discover_primary_services(uint16_t conn_handle) { + raise(); return 0; } @@ -142,6 +170,7 @@ int mp_bluetooth_gattc_discover_primary_services(uint16_t conn_handle) int mp_bluetooth_gattc_discover_characteristics( uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle ) { + raise(); return 0; } @@ -149,12 +178,14 @@ int mp_bluetooth_gattc_discover_characteristics( int mp_bluetooth_gattc_discover_descriptors( uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle ) { + raise(); return 0; } // Initiate read of a value from the remote peripheral. int mp_bluetooth_gattc_read(uint16_t conn_handle, uint16_t value_handle) { + raise(); return 0; } @@ -166,6 +197,7 @@ int mp_bluetooth_gattc_write( size_t *value_len, unsigned int mode ) { + raise(); return 0; } #endif