![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Bluetooth Low Energy for Smart Plug
Dependencies: BLE_API mbed nRF51822
Diff: Services/SmartPlugService.h
- Revision:
- 0:25ad6eba7916
- Child:
- 1:e036e77762fa
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Services/SmartPlugService.h Tue Jul 07 04:02:14 2015 +0000 @@ -0,0 +1,68 @@ +#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 \ No newline at end of file