Rodrigo Miguez / Mbed 2 deprecated i2c_acelerometro

Dependencies:   BLE_API mbed nRF51822 circular_buffer

Committer:
agufal
Date:
Wed May 25 13:35:41 2016 +0000
Revision:
13:e4c3b3e00e3d
Parent:
12:172acb80fcab
implementado bucle principal con un sleep

Who changed what in which revision?

UserRevisionLine numberNew contents of line
agufal 9:3708b94b2312 1 #include "AccelService.h"
agufal 9:3708b94b2312 2
agufal 13:e4c3b3e00e3d 3 AccelService::AccelService() :
agufal 13:e4c3b3e00e3d 4 _accelState( CHARACTERISTIC_UUID, _values, 6, 6, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ)
agufal 9:3708b94b2312 5 {
agufal 9:3708b94b2312 6
agufal 10:8c5a246b9045 7 const static char DEVICE_NAME[] = "AccelBike";
agufal 10:8c5a246b9045 8 const uint16_t uuid16_list[] = { SERVICE_UUID };
agufal 10:8c5a246b9045 9
agufal 10:8c5a246b9045 10 // Segun la documentacion, a BLE hay que tratarlo como un singleton
agufal 9:3708b94b2312 11 BLE::Instance().init();
agufal 9:3708b94b2312 12 BLE::Instance().gap().onDisconnection(disconnectionCallback);
agufal 9:3708b94b2312 13 BLE::Instance().gap().onConnection(connectionCallback);
agufal 9:3708b94b2312 14
agufal 9:3708b94b2312 15 /* setup advertising */
agufal 9:3708b94b2312 16 BLE::Instance().gap().accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE);
agufal 9:3708b94b2312 17 BLE::Instance().gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_16BIT_SERVICE_IDS, (uint8_t *)uuid16_list, sizeof(uuid16_list));
agufal 9:3708b94b2312 18 BLE::Instance().gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LOCAL_NAME, (uint8_t *)DEVICE_NAME, sizeof(DEVICE_NAME));
agufal 9:3708b94b2312 19
agufal 9:3708b94b2312 20 BLE::Instance().gap().setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED);
agufal 9:3708b94b2312 21 BLE::Instance().gap().setAdvertisingInterval(1000); /* 1000ms. */
agufal 9:3708b94b2312 22 BLE::Instance().gap().startAdvertising();
agufal 9:3708b94b2312 23
agufal 9:3708b94b2312 24 /* setup service */
agufal 9:3708b94b2312 25 GattCharacteristic *charTable[] = { &_accelState };
agufal 9:3708b94b2312 26 GattService accelService ( SERVICE_UUID, charTable, sizeof(charTable) / sizeof(GattCharacteristic *) );
agufal 9:3708b94b2312 27 BLE::Instance().gattServer().addService(accelService);
agufal 9:3708b94b2312 28
agufal 9:3708b94b2312 29 }
agufal 9:3708b94b2312 30
agufal 9:3708b94b2312 31 void AccelService::updateAccelState(Vector v)
agufal 9:3708b94b2312 32 {
agufal 10:8c5a246b9045 33 // Partimos los ejes en dos bytes para mandarlos
agufal 10:8c5a246b9045 34 _values[0] = (uint8_t)(v.x >> 8); // MSB
agufal 10:8c5a246b9045 35 _values[1] = (uint8_t)(v.x & 0x00FF); // LSB
agufal 9:3708b94b2312 36
agufal 10:8c5a246b9045 37 _values[2] = (uint8_t)(v.y >> 8); // MSB
agufal 10:8c5a246b9045 38 _values[3] = (uint8_t)(v.y & 0x00FF); // LSB
agufal 9:3708b94b2312 39
agufal 10:8c5a246b9045 40 _values[4] = (uint8_t)(v.z >> 8); // MSB
agufal 10:8c5a246b9045 41 _values[5] = (uint8_t)(v.z & 0x00FF); // LSB
agufal 10:8c5a246b9045 42
agufal 10:8c5a246b9045 43 BLE::Instance().gattServer().write(_accelState.getValueHandle(), _values, 6);
agufal 9:3708b94b2312 44
agufal 9:3708b94b2312 45 }