The eddystone config service allows you to configure the eddystone frame data over BLE for a set period of time and then starts an eddystone beacon. This example defaults to 30 seconds of config time.

Dependencies:   BLE_API mbed nRF51822 X_NUCLEO_IDB0XA1

Fork of BLE_EddystoneBeaconConfigServiceRelease by Austin Blackstone

This is the eddystone config service. This code starts up and for a user configured time period (default 30 seconds) will advertise the configuration service.

The configuration service allows for modifying various frames of the eddystone specification.

For more details on the Configuration Service please see : https://github.com/google/eddystone/blob/master/eddystone-url/docs/config-service-spec.md

Committer:
andresag
Date:
Tue Nov 24 10:04:38 2015 +0000
Revision:
3:d0f3e00cbfdf
Update example to use new Eddystone implementation NOT included in ble/services.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
andresag 3:d0f3e00cbfdf 1 /* mbed Microcontroller Library
andresag 3:d0f3e00cbfdf 2 * Copyright (c) 2006-2015 ARM Limited
andresag 3:d0f3e00cbfdf 3 *
andresag 3:d0f3e00cbfdf 4 * Licensed under the Apache License, Version 2.0 (the "License");
andresag 3:d0f3e00cbfdf 5 * you may not use this file except in compliance with the License.
andresag 3:d0f3e00cbfdf 6 * You may obtain a copy of the License at
andresag 3:d0f3e00cbfdf 7 *
andresag 3:d0f3e00cbfdf 8 * http://www.apache.org/licenses/LICENSE-2.0
andresag 3:d0f3e00cbfdf 9 *
andresag 3:d0f3e00cbfdf 10 * Unless required by applicable law or agreed to in writing, software
andresag 3:d0f3e00cbfdf 11 * distributed under the License is distributed on an "AS IS" BASIS,
andresag 3:d0f3e00cbfdf 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
andresag 3:d0f3e00cbfdf 13 * See the License for the specific language governing permissions and
andresag 3:d0f3e00cbfdf 14 * limitations under the License.
andresag 3:d0f3e00cbfdf 15 */
andresag 3:d0f3e00cbfdf 16
andresag 3:d0f3e00cbfdf 17 #ifndef __TLMFRAME_H__
andresag 3:d0f3e00cbfdf 18 #define __TLMFRAME_H__
andresag 3:d0f3e00cbfdf 19
andresag 3:d0f3e00cbfdf 20 #include "EddystoneTypes.h"
andresag 3:d0f3e00cbfdf 21
andresag 3:d0f3e00cbfdf 22 class TLMFrame
andresag 3:d0f3e00cbfdf 23 {
andresag 3:d0f3e00cbfdf 24 public:
andresag 3:d0f3e00cbfdf 25 TLMFrame(uint8_t tlmVersionIn = 0,
andresag 3:d0f3e00cbfdf 26 uint16_t tlmBatteryVoltageIn = 0,
andresag 3:d0f3e00cbfdf 27 uint16_t tlmBeaconTemperatureIn = 0x8000,
andresag 3:d0f3e00cbfdf 28 uint32_t tlmPduCountIn = 0,
andresag 3:d0f3e00cbfdf 29 uint32_t tlmTimeSinceBootIn = 0);
andresag 3:d0f3e00cbfdf 30
andresag 3:d0f3e00cbfdf 31 void setTLMData(uint8_t tlmVersionIn = 0);
andresag 3:d0f3e00cbfdf 32
andresag 3:d0f3e00cbfdf 33 void constructTLMFrame(uint8_t *rawFrame);
andresag 3:d0f3e00cbfdf 34
andresag 3:d0f3e00cbfdf 35 size_t getRawFrameSize(void) const;
andresag 3:d0f3e00cbfdf 36
andresag 3:d0f3e00cbfdf 37 void updateTimeSinceBoot(uint32_t nowInMillis);
andresag 3:d0f3e00cbfdf 38
andresag 3:d0f3e00cbfdf 39 void updateBatteryVoltage(uint16_t tlmBatteryVoltageIn);
andresag 3:d0f3e00cbfdf 40
andresag 3:d0f3e00cbfdf 41 void updateBeaconTemperature(uint16_t tlmBeaconTemperatureIn);
andresag 3:d0f3e00cbfdf 42
andresag 3:d0f3e00cbfdf 43 void updatePduCount(void);
andresag 3:d0f3e00cbfdf 44
andresag 3:d0f3e00cbfdf 45 uint16_t getBatteryVoltage(void) const;
andresag 3:d0f3e00cbfdf 46
andresag 3:d0f3e00cbfdf 47 uint16_t getBeaconTemperature(void) const;
andresag 3:d0f3e00cbfdf 48
andresag 3:d0f3e00cbfdf 49 uint8_t getTLMVersion(void) const;
andresag 3:d0f3e00cbfdf 50
andresag 3:d0f3e00cbfdf 51 private:
andresag 3:d0f3e00cbfdf 52 static const uint8_t FRAME_TYPE_TLM = 0x20;
andresag 3:d0f3e00cbfdf 53 static const uint8_t FRAME_SIZE_TLM = 14;
andresag 3:d0f3e00cbfdf 54
andresag 3:d0f3e00cbfdf 55 uint8_t tlmVersion;
andresag 3:d0f3e00cbfdf 56 uint32_t lastTimeSinceBootRead;
andresag 3:d0f3e00cbfdf 57 uint16_t tlmBatteryVoltage;
andresag 3:d0f3e00cbfdf 58 uint16_t tlmBeaconTemperature;
andresag 3:d0f3e00cbfdf 59 uint32_t tlmPduCount;
andresag 3:d0f3e00cbfdf 60 uint32_t tlmTimeSinceBoot;
andresag 3:d0f3e00cbfdf 61 };
andresag 3:d0f3e00cbfdf 62
andresag 3:d0f3e00cbfdf 63 #endif /* __TLMFRAME_H__ */