Kenji Arai / TYBLE16_mbedlized_os5_EddystoneBeacon

Dependencies:  

Committer:
kenjiArai
Date:
Tue Apr 10 12:50:20 2018 +0000
Revision:
0:47dfd44d8b78
Eddystone Beacon only for TYBLE16 Module

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 0:47dfd44d8b78 1 /* mbed Microcontroller Library
kenjiArai 0:47dfd44d8b78 2 * Copyright (c) 2006-2015 ARM Limited
kenjiArai 0:47dfd44d8b78 3 *
kenjiArai 0:47dfd44d8b78 4 * Licensed under the Apache License, Version 2.0 (the "License");
kenjiArai 0:47dfd44d8b78 5 * you may not use this file except in compliance with the License.
kenjiArai 0:47dfd44d8b78 6 * You may obtain a copy of the License at
kenjiArai 0:47dfd44d8b78 7 *
kenjiArai 0:47dfd44d8b78 8 * http://www.apache.org/licenses/LICENSE-2.0
kenjiArai 0:47dfd44d8b78 9 *
kenjiArai 0:47dfd44d8b78 10 * Unless required by applicable law or agreed to in writing, software
kenjiArai 0:47dfd44d8b78 11 * distributed under the License is distributed on an "AS IS" BASIS,
kenjiArai 0:47dfd44d8b78 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
kenjiArai 0:47dfd44d8b78 13 * See the License for the specific language governing permissions and
kenjiArai 0:47dfd44d8b78 14 * limitations under the License.
kenjiArai 0:47dfd44d8b78 15 */
kenjiArai 0:47dfd44d8b78 16
kenjiArai 0:47dfd44d8b78 17 #ifndef __URLFRAME_H__
kenjiArai 0:47dfd44d8b78 18 #define __URLFRAME_H__
kenjiArai 0:47dfd44d8b78 19
kenjiArai 0:47dfd44d8b78 20 #include "EddystoneTypes.h"
kenjiArai 0:47dfd44d8b78 21 #include <string.h>
kenjiArai 0:47dfd44d8b78 22
kenjiArai 0:47dfd44d8b78 23 class URLFrame
kenjiArai 0:47dfd44d8b78 24 {
kenjiArai 0:47dfd44d8b78 25 public:
kenjiArai 0:47dfd44d8b78 26 URLFrame(void);
kenjiArai 0:47dfd44d8b78 27
kenjiArai 0:47dfd44d8b78 28 URLFrame(const char *urlDataIn);
kenjiArai 0:47dfd44d8b78 29
kenjiArai 0:47dfd44d8b78 30 URLFrame(UrlData_t urlDataIn, uint8_t urlDataLength);
kenjiArai 0:47dfd44d8b78 31
kenjiArai 0:47dfd44d8b78 32 void constructURLFrame(uint8_t* rawFrame, int8_t advPowerLevel);
kenjiArai 0:47dfd44d8b78 33
kenjiArai 0:47dfd44d8b78 34 size_t getRawFrameSize(void) const;
kenjiArai 0:47dfd44d8b78 35
kenjiArai 0:47dfd44d8b78 36 uint8_t* getEncodedURLData(void);
kenjiArai 0:47dfd44d8b78 37
kenjiArai 0:47dfd44d8b78 38 uint8_t getEncodedURLDataLength(void) const;
kenjiArai 0:47dfd44d8b78 39
kenjiArai 0:47dfd44d8b78 40 void setURLData(const char *urlDataIn);
kenjiArai 0:47dfd44d8b78 41
kenjiArai 0:47dfd44d8b78 42 void setEncodedURLData(const uint8_t* urlEncodedDataIn, const uint8_t urlEncodedDataLengthIn);
kenjiArai 0:47dfd44d8b78 43
kenjiArai 0:47dfd44d8b78 44 private:
kenjiArai 0:47dfd44d8b78 45 void encodeURL(const char *urlDataIn);
kenjiArai 0:47dfd44d8b78 46
kenjiArai 0:47dfd44d8b78 47 static const uint8_t FRAME_TYPE_URL = 0x10;
kenjiArai 0:47dfd44d8b78 48 /* Even if the URL is 0 bytes we still need to include the type and txPower i.e. 2 bytes */
kenjiArai 0:47dfd44d8b78 49 static const uint8_t FRAME_MIN_SIZE_URL = 2;
kenjiArai 0:47dfd44d8b78 50
kenjiArai 0:47dfd44d8b78 51 uint8_t urlDataLength;
kenjiArai 0:47dfd44d8b78 52 UrlData_t urlData;
kenjiArai 0:47dfd44d8b78 53
kenjiArai 0:47dfd44d8b78 54 };
kenjiArai 0:47dfd44d8b78 55
kenjiArai 0:47dfd44d8b78 56 #endif /* __URLFRAME_H__ */