BTstack.cpp (24b3c62931f131de8243230463f3536778ba1e63) | BTstack.cpp (5611a760af48d1ce1beea59c7908be73bd2393f1) |
---|---|
1/** 2 * Arduino Wrapper for BTstack 3 */ 4 5#include <Arduino.h> 6#include <SPI.h> 7 8#ifdef __AVR__ --- 141 unchanged lines hidden (view full) --- 150 if (bleDeviceDisconnectedCallback) { 151 handle = READ_BT_16(packet, 3); 152 BLEDevice device(handle); 153 (*bleDeviceDisconnectedCallback)(&device); 154 } 155 le_peripheral_todos |= SET_ADVERTISEMENT_ENABLED; 156 break; 157 | 1/** 2 * Arduino Wrapper for BTstack 3 */ 4 5#include <Arduino.h> 6#include <SPI.h> 7 8#ifdef __AVR__ --- 141 unchanged lines hidden (view full) --- 150 if (bleDeviceDisconnectedCallback) { 151 handle = READ_BT_16(packet, 3); 152 BLEDevice device(handle); 153 (*bleDeviceDisconnectedCallback)(&device); 154 } 155 le_peripheral_todos |= SET_ADVERTISEMENT_ENABLED; 156 break; 157 |
158 case GAP_LE_ADVERTISING_REPORT: { | 158 case GAP_LE_EVENT_ADVERTISING_REPORT: { |
159 if (bleAdvertismentCallback) { 160 BLEAdvertisement advertisement(packet); 161 (*bleAdvertismentCallback)(&advertisement); 162 } 163 break; 164 } 165 166 case HCI_EVENT_COMMAND_COMPLETE: --- 50 unchanged lines hidden (view full) --- 217 characteristic->uuid16 = READ_NET_32(characteristic->uuid128, 0); 218 } 219} 220 221static void gatt_client_callback(uint8_t packet_type, uint8_t * packet, uint16_t size){ 222 223 // if (hci) event is not 4-byte aligned, event->handle causes crash 224 // workaround: check event type, assuming GATT event types are contagious | 159 if (bleAdvertismentCallback) { 160 BLEAdvertisement advertisement(packet); 161 (*bleAdvertismentCallback)(&advertisement); 162 } 163 break; 164 } 165 166 case HCI_EVENT_COMMAND_COMPLETE: --- 50 unchanged lines hidden (view full) --- 217 characteristic->uuid16 = READ_NET_32(characteristic->uuid128, 0); 218 } 219} 220 221static void gatt_client_callback(uint8_t packet_type, uint8_t * packet, uint16_t size){ 222 223 // if (hci) event is not 4-byte aligned, event->handle causes crash 224 // workaround: check event type, assuming GATT event types are contagious |
225 if (packet[0] < GATT_QUERY_COMPLETE) return; 226 if (packet[0] > GATT_MTU) return; | 225 if (packet[0] < GATT_EVENT_QUERY_COMPLETE) return; 226 if (packet[0] > GATT_EVENT_MTU) return; |
227 228 uint16_t con_handle = READ_BT_16(packet, 2); 229 uint8_t status; 230 uint8_t * value; 231 uint16_t value_handle; 232 uint16_t value_length; 233 234 BLEDevice device(con_handle); 235 switch(packet[0]){ | 227 228 uint16_t con_handle = READ_BT_16(packet, 2); 229 uint8_t status; 230 uint8_t * value; 231 uint16_t value_handle; 232 uint16_t value_length; 233 234 BLEDevice device(con_handle); 235 switch(packet[0]){ |
236 case GATT_SERVICE_QUERY_RESULT: | 236 case GATT_EVENT_SERVICE_QUERY_RESULT: |
237 if (gattServiceDiscoveredCallback) { 238 le_service_t service; 239 extract_service(&service, packet); 240 BLEService bleService(service); 241 (*gattServiceDiscoveredCallback)(BLE_STATUS_OK, &device, &bleService); 242 } 243 break; | 237 if (gattServiceDiscoveredCallback) { 238 le_service_t service; 239 extract_service(&service, packet); 240 BLEService bleService(service); 241 (*gattServiceDiscoveredCallback)(BLE_STATUS_OK, &device, &bleService); 242 } 243 break; |
244 case GATT_CHARACTERISTIC_QUERY_RESULT: | 244 case GATT_EVENT_CHARACTERISTIC_QUERY_RESULT: |
245 if (gattCharacteristicDiscoveredCallback){ 246 le_characteristic_t characteristic; 247 extract_characteristic(&characteristic, packet); 248 BLECharacteristic bleCharacteristic(characteristic); 249 (*gattCharacteristicDiscoveredCallback)(BLE_STATUS_OK, &device, &bleCharacteristic); 250 } 251 break; | 245 if (gattCharacteristicDiscoveredCallback){ 246 le_characteristic_t characteristic; 247 extract_characteristic(&characteristic, packet); 248 BLECharacteristic bleCharacteristic(characteristic); 249 (*gattCharacteristicDiscoveredCallback)(BLE_STATUS_OK, &device, &bleCharacteristic); 250 } 251 break; |
252 case GATT_QUERY_COMPLETE: | 252 case GATT_EVENT_QUERY_COMPLETE: |
253 status = READ_BT_16(packet, 4); 254 switch (gattAction){ 255 case gattActionWrite: 256 if (gattCharacteristicWrittenCallback) gattCharacteristicWrittenCallback(status ? BLE_STATUS_OTHER_ERROR : BLE_STATUS_OK, &device); 257 break; 258 case gattActionSubscribe: 259 if (gattCharacteristicSubscribedCallback) gattCharacteristicSubscribedCallback(status ? BLE_STATUS_OTHER_ERROR : BLE_STATUS_OK, &device); 260 break; --- 5 unchanged lines hidden (view full) --- 266 break; 267 case gattActionCharacteristicQuery: 268 if (gattCharacteristicDiscoveredCallback) gattCharacteristicDiscoveredCallback(BLE_STATUS_DONE, &device, NULL); 269 break; 270 default: 271 break; 272 }; 273 break; | 253 status = READ_BT_16(packet, 4); 254 switch (gattAction){ 255 case gattActionWrite: 256 if (gattCharacteristicWrittenCallback) gattCharacteristicWrittenCallback(status ? BLE_STATUS_OTHER_ERROR : BLE_STATUS_OK, &device); 257 break; 258 case gattActionSubscribe: 259 if (gattCharacteristicSubscribedCallback) gattCharacteristicSubscribedCallback(status ? BLE_STATUS_OTHER_ERROR : BLE_STATUS_OK, &device); 260 break; --- 5 unchanged lines hidden (view full) --- 266 break; 267 case gattActionCharacteristicQuery: 268 if (gattCharacteristicDiscoveredCallback) gattCharacteristicDiscoveredCallback(BLE_STATUS_DONE, &device, NULL); 269 break; 270 default: 271 break; 272 }; 273 break; |
274 case GATT_NOTIFICATION: | 274 case GATT_EVENT_NOTIFICATION: |
275 if (gattCharacteristicNotificationCallback) { 276 value_handle = READ_BT_16(packet, 4); 277 value_length = READ_BT_16(packet, 6); 278 value = &packet[8]; 279 (*gattCharacteristicNotificationCallback)(&device, value_handle, value, value_length); 280 } 281 break; | 275 if (gattCharacteristicNotificationCallback) { 276 value_handle = READ_BT_16(packet, 4); 277 value_length = READ_BT_16(packet, 6); 278 value = &packet[8]; 279 (*gattCharacteristicNotificationCallback)(&device, value_handle, value, value_length); 280 } 281 break; |
282 case GATT_INDICATION: | 282 case GATT_EVENT_INDICATION: |
283 if (gattCharacteristicIndicationCallback) { 284 value_handle = READ_BT_16(packet, 4); 285 value_length = READ_BT_16(packet, 6); 286 value = &packet[8]; 287 (*gattCharacteristicIndicationCallback)(&device, value_handle, value, value_length); 288 } 289 break; | 283 if (gattCharacteristicIndicationCallback) { 284 value_handle = READ_BT_16(packet, 4); 285 value_length = READ_BT_16(packet, 6); 286 value = &packet[8]; 287 (*gattCharacteristicIndicationCallback)(&device, value_handle, value, value_length); 288 } 289 break; |
290 case GATT_CHARACTERISTIC_VALUE_QUERY_RESULT: | 290 case GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT: |
291 if (gattCharacteristicReadCallback) { 292 value_handle = READ_BT_16(packet, 4); 293 value_length = READ_BT_16(packet, 6); 294 value = &packet[8]; 295 (*gattCharacteristicReadCallback)(BLE_STATUS_OK, &device, value, value_length); 296 } 297 break; 298 default: --- 575 unchanged lines hidden --- | 291 if (gattCharacteristicReadCallback) { 292 value_handle = READ_BT_16(packet, 4); 293 value_length = READ_BT_16(packet, 6); 294 value = &packet[8]; 295 (*gattCharacteristicReadCallback)(BLE_STATUS_OK, &device, value, value_length); 296 } 297 break; 298 default: --- 575 unchanged lines hidden --- |