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
EddystoneTypes.h@37:ea459e6c6a35, 2016-06-11 (annotated)
- 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?
User | Revision | Line number | New 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__ */ |