Run on TY51822r3 board with ACC sensor (LIS3DH or BMC050)

Dependencies:   BLE_API LIS3DH mbed nRF51822 BMC050 nRF51_LowPwr nRF51_Vdd

Fork of BLE_EddystoneBeacon_Service by Bluetooth Low Energy

Committer:
kenjiArai
Date:
Sat Jun 11 01:51:59 2016 +0000
Revision:
37:ea459e6c6a35
Parent:
34:f6d4a699a1ea
Added low power mode (use nRF51_LowPwr library) for reduce Idle Current

Who changed what in which revision?

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