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 __EDDYSTONETYPES_H__
andresag 34:f6d4a699a1ea 18 #define __EDDYSTONETYPES_H__
andresag 34:f6d4a699a1ea 19
andresag 34:f6d4a699a1ea 20 #include <stdint.h>
andresag 34:f6d4a699a1ea 21 #include <stddef.h>
andresag 34:f6d4a699a1ea 22
andresag 34:f6d4a699a1ea 23 #define UUID_URL_BEACON(FIRST, SECOND) { \
andresag 34:f6d4a699a1ea 24 0xee, 0x0c, FIRST, SECOND, 0x87, 0x86, 0x40, 0xba, \
andresag 34:f6d4a699a1ea 25 0xab, 0x96, 0x99, 0xb9, 0x1a, 0xc9, 0x81, 0xd8, \
andresag 34:f6d4a699a1ea 26 }
andresag 34:f6d4a699a1ea 27
andresag 34:f6d4a699a1ea 28 const uint8_t EDDYSTONE_UUID[] = {0xAA, 0xFE};
andresag 34:f6d4a699a1ea 29
andresag 34:f6d4a699a1ea 30 const uint8_t UUID_URL_BEACON_SERVICE[] = UUID_URL_BEACON(0x20, 0x80);
andresag 34:f6d4a699a1ea 31 const uint8_t UUID_LOCK_STATE_CHAR[] = UUID_URL_BEACON(0x20, 0x81);
andresag 34:f6d4a699a1ea 32 const uint8_t UUID_LOCK_CHAR[] = UUID_URL_BEACON(0x20, 0x82);
andresag 34:f6d4a699a1ea 33 const uint8_t UUID_UNLOCK_CHAR[] = UUID_URL_BEACON(0x20, 0x83);
andresag 34:f6d4a699a1ea 34 const uint8_t UUID_URL_DATA_CHAR[] = UUID_URL_BEACON(0x20, 0x84);
andresag 34:f6d4a699a1ea 35 const uint8_t UUID_FLAGS_CHAR[] = UUID_URL_BEACON(0x20, 0x85);
andresag 34:f6d4a699a1ea 36 const uint8_t UUID_ADV_POWER_LEVELS_CHAR[] = UUID_URL_BEACON(0x20, 0x86);
andresag 34:f6d4a699a1ea 37 const uint8_t UUID_TX_POWER_MODE_CHAR[] = UUID_URL_BEACON(0x20, 0x87);
andresag 34:f6d4a699a1ea 38 const uint8_t UUID_BEACON_PERIOD_CHAR[] = UUID_URL_BEACON(0x20, 0x88);
andresag 34:f6d4a699a1ea 39 const uint8_t UUID_RESET_CHAR[] = UUID_URL_BEACON(0x20, 0x89);
andresag 34:f6d4a699a1ea 40
andresag 34:f6d4a699a1ea 41 const char DEVICE_NAME[] = "EDDYSTONE CONFIG";
andresag 34:f6d4a699a1ea 42
andresag 34:f6d4a699a1ea 43 const char DEFAULT_URL[] = "http://www.mbed.com/";
andresag 34:f6d4a699a1ea 44
andresag 34:f6d4a699a1ea 45 enum PowerModes {
andresag 34:f6d4a699a1ea 46 TX_POWER_MODE_LOWEST,
andresag 34:f6d4a699a1ea 47 TX_POWER_MODE_LOW,
andresag 34:f6d4a699a1ea 48 TX_POWER_MODE_MEDIUM,
andresag 34:f6d4a699a1ea 49 TX_POWER_MODE_HIGH,
andresag 34:f6d4a699a1ea 50 NUM_POWER_MODES
andresag 34:f6d4a699a1ea 51 };
andresag 34:f6d4a699a1ea 52
andresag 34:f6d4a699a1ea 53 /* 128 bits of lock */
andresag 34:f6d4a699a1ea 54 typedef uint8_t Lock_t[16];
andresag 34:f6d4a699a1ea 55 typedef int8_t PowerLevels_t[NUM_POWER_MODES];
andresag 34:f6d4a699a1ea 56
andresag 34:f6d4a699a1ea 57 const uint16_t URL_DATA_MAX = 18;
andresag 34:f6d4a699a1ea 58 typedef uint8_t UrlData_t[URL_DATA_MAX];
andresag 34:f6d4a699a1ea 59
andresag 34:f6d4a699a1ea 60 /* UID Frame Type subfields */
andresag 34:f6d4a699a1ea 61 const size_t UID_NAMESPACEID_SIZE = 10;
andresag 34:f6d4a699a1ea 62 typedef uint8_t UIDNamespaceID_t[UID_NAMESPACEID_SIZE];
andresag 34:f6d4a699a1ea 63 const size_t UID_INSTANCEID_SIZE = 6;
andresag 34:f6d4a699a1ea 64 typedef uint8_t UIDInstanceID_t[UID_INSTANCEID_SIZE];
andresag 34:f6d4a699a1ea 65
andresag 34:f6d4a699a1ea 66 /* Callbacks for updating BateryVoltage and Temperature */
andresag 34:f6d4a699a1ea 67 typedef uint16_t (*TlmUpdateCallback_t) (uint16_t);
andresag 34:f6d4a699a1ea 68
andresag 34:f6d4a699a1ea 69 /* Size of Eddystone UUID needed for all frames */
andresag 34:f6d4a699a1ea 70 const uint16_t EDDYSTONE_UUID_SIZE = sizeof(EDDYSTONE_UUID);
andresag 34:f6d4a699a1ea 71
andresag 34:f6d4a699a1ea 72 #endif /* __EDDYSTONETYPES_H__ */