Bluetooth Low Energy for Smart Plug
Dependencies: BLE_API mbed nRF51822
Services/SmartPlugService.h
- Committer:
- Slepnir
- Date:
- 2015-07-07
- Revision:
- 0:25ad6eba7916
- Child:
- 1:e036e77762fa
File content as of revision 0:25ad6eba7916:
#ifndef SP_SERVICE_H #define SP_SERVICE_H #include "ble/BLE.h" #include "MVC.h" #include "mbed.h" #include "SmartPlugBLE.h" #define FULL_UUID(uuid_16) { \ 0x9B,0x3F,uuid_16>>16,uuid_16&0xFF,0x65,0x80,0x47,0x51, \ 0xB0,0x2F,0xA7,0xB5,0x19,0x4C,0x7F,0x23 \ } static const uint16_t SPS_UUID_SERVICE = 0x1522; static const uint16_t SPS_UUID_VOLTAGE_CHAR = 0x1523; static const uint16_t SPS_UUID_CURERNT_CHAR = 0x1524; static const uint16_t SPS_UUID_POWER_CHAR = 0x1525; static const uint16_t SPS_UUID_POWER_FACTOR_CHAR = 0x1526; static const uint16_t SPS_UUID_ENERGY_CHAR = 0x1527; static const uint16_t SPS_UUID_RELAY_CHAR = 0x1528; static const uint16_t SPS_UUID_UPDATE_CHAR = 0x1529; static const uint8_t SPS_UUID_SERVICE_FULL[] = FULL_UUID(SPS_UUID_SERVICE); static const uint8_t SPS_UUID_VOLTAGE_CHAR_FULL[] = FULL_UUID(SPS_UUID_VOLTAGE_CHAR); static const uint8_t SPS_UUID_CURERNT_CHAR_FULL[] = FULL_UUID(SPS_UUID_CURERNT_CHAR); static const uint8_t SPS_UUID_POWER_CHAR_FULL[] = FULL_UUID(SPS_UUID_POWER_CHAR); static const uint8_t SPS_UUID_POWER_FACTOR_CHAR_FULL[] = FULL_UUID(SPS_UUID_POWER_FACTOR_CHAR); static const uint8_t SPS_UUID_ENERGY_CHAR_FULL[] = FULL_UUID(SPS_UUID_ENERGY_CHAR); static const uint8_t SPS_UUID_RELAY_CHAR_FULL[] = FULL_UUID(SPS_UUID_RELAY_CHAR); static const uint8_t SPS_UUID_UPDATE_CHAR_FULL[] = FULL_UUID(SPS_UUID_UPDATE_CHAR); class SmartPlugService: public Observer { public: SmartPlugService(BLE &_ble, SmartPlugBLE &sys); void updateVoltage(unsigned long value); void updateCurrent(unsigned long value); void updatePower(unsigned long value); void updatePowerFactor(unsigned long value); void onDataWritten(const GattWriteCallbackParams *params); void update(void* data); void updateData(SmartPlug* data); void setupService(void); private: BLE ble; uint8_t voltage[4]; uint8_t current[4]; uint8_t power[4]; uint8_t powerFactor[4]; uint8_t energy[4]; uint8_t relayValue[3]; //uint8_t updateValue; SmartPlugBLE& system; ReadOnlyGattCharacteristic<uint8_t> voltageChar; ReadOnlyGattCharacteristic<uint8_t> currentChar; ReadOnlyGattCharacteristic<uint8_t> powerChar; ReadOnlyGattCharacteristic<uint8_t> powerFactorChar; ReadOnlyGattCharacteristic<uint8_t> energyChar; ReadWriteGattCharacteristic<uint8_t> relayChar; WriteOnlyGattCharacteristic<uint8_t> updateChar; }; #endif