BLE_iBeacon / beacon.h /
772169e a year ago
1 contributor
61 lines | 1.879kb
#ifndef _BEACON_H
#define _BEACON_H

#define BEACON_SLEEP_ADV 2000 //2.0s between uptime
#define BEACON_ADV_DURATION 500 //500ms
#define BEACON_UUID         "7c8a68a6-ddd0-11e9-8a34-2a2ae2dbcce4"
#define BEACON_SERVICE_UUID "feaa"
#ifndef ARDUINO_ESP32C3_DEV
  #define BEACON_NAME         "Eddy"
#else
  #define BEACON_NAME         "TrackerPA"
#endif 
enum EN_BEACON_TYPE {
  EN_BEACON_TYPE_entry = 0x01,
  EN_BEACON_TYPE_exit = 0x02,
  EN_BEACON_TYPE_hazard = 0x03,
  EN_BEACON_TYPE_safe = 0x04,
  EN_BEACON_TYPE_other = 0x05,
  EN_BEACON_TYPE_num = 5
};

uint8_t beacon_type = EN_BEACON_TYPE_safe;
uint8_t beacon_changed = false;
String beaconTypeStr = "";

// Fake Complete Instance
uint8_t advert_instance[7] = {0x54, 0x43, 0x4c, 0x03, 0x00, 0x00, 0x0a};
// Fake Complete Namespace
uint8_t beacon_namespace[10] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99};

// Fake Partial Instance
// 0x54434cXXYYYY
// XX : Beacon Type
// YY : Beacon Number
#define NEWPAYLOAD

uint8_t beacon_inst[3] = { 0x54, 0x43, 0x4c };//Instance ID on 3 bytes
uint8_t beacon_num[2] = { 0x00, 0x0b };//11th beacon


//#define ADVERT_SZ 22
//char  advertising_data[ADVERT_SZ]={ 0x15, 0x16, 0xAA, 0xFE, 0x00, 0xE8, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0x54, 0x43, 0x4C, 0x04, 0x00, 0x0b };
//#define AD_IDX_NAMESPACE 6
//#define AD_IDX_INSTANCE 16
//#define AD_IDX_TYPE 19
//#define AD_IDX_NUM 20

#define ADVERT_SZ 18
char  advertising_data[ADVERT_SZ]={ 0x00, 0xE8, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0x54, 0x43, 0x4C, 0x04, 0x00, 0x0b };
#define AD_IDX_NAMESPACE 2
#define AD_IDX_INSTANCE_ALL 9
#define AD_IDX_INSTANCE 12
#ifndef NEWPAYLOAD
#define AD_IDX_TYPE 15
#else
#define AD_IDX_TYPE 14
#endif //NEWPAYLOAD
#define AD_IDX_NUM 16
#define AD_SHIFT 3 

#endif //_BEACON_H