Eugene Mwangi
/
mbed-os-example-ble-LED5
3rd revision of my mbedOs ble weight program
source/LEDService.h
- Committer:
- Eugene0469
- Date:
- 2019-06-24
- Revision:
- 79:8ea0d8374ab6
- Parent:
- 74:51fde11a771f
File content as of revision 79:8ea0d8374ab6:
/* mbed Microcontroller Library * Copyright (c) 2006-2013 ARM Limited * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __BLE_LED_SERVICE_H__ #define __BLE_LED_SERVICE_H__ typedef struct { uint16_t integer; uint8_t decimal; }WeightType_t; class LEDService { public: const static uint16_t LED_SERVICE_UUID = 0xA000; const static uint16_t LED_STATE_CHARACTERISTIC_UUID = 0xA001; LEDService(BLEDevice &_ble, WeightType_t initialValueForLEDCharacteristic) : ble(_ble), ledState(LED_STATE_CHARACTERISTIC_UUID, &initialValueForLEDCharacteristic) { GattCharacteristic *charTable[] = {&ledState}; GattService ledService(LED_SERVICE_UUID, charTable, sizeof(charTable) / sizeof(GattCharacteristic *)); ble.gattServer().addService(ledService); } // GattAttribute::Handle_t getValueHandle() const // { // return ledState.getValueHandle(); // } void updateWeight(float newValue) { // float newWeight = (float) newValue; // ble.gattServer().write(ledState.getValueHandle(), // (uint8_t *)&newWeight, sizeof(float)); WeightType_t *weight; weight->integer = (uint16_t)newValue; float f_decimal = newValue - weight->integer; weight->decimal = (uint8_t)(f_decimal* 100.0f); ble.gattServer().write(ledState.getValueHandle(), (uint8_t *)weight, sizeof(WeightType_t)); } private: BLEDevice &ble; ReadOnlyGattCharacteristic<WeightType_t> ledState; }; #endif /* #ifndef __BLE_LED_SERVICE_H__ */