This repository is for Bluetooth Asia 2018 developer training, beacon session.
Fork of BluetoothAsiaBeaconClass by
beacon_src.txt
- Committer:
- krenbluetoothsig
- Date:
- 2018-05-17
- Revision:
- 24:bfc7acc13cb4
- Parent:
- 22:4f919611ff42
File content as of revision 24:bfc7acc13cb4:
#include "MicroBit.h"
MicroBit uBit;
char URL[] = "http://www.bluetooth.com";
// lvl : Pwr@ 1m : Pwr@ 0m
// 0 : -90 : -49
// 1 : -78 : -37
// 2 : -74 : -33
// 3 : -69 : -28
// 4 : -66 : -25
// 5 : -61 : -20
// 6 : -56 : -15
// 7 : -51 : -10
const int8_t CALIBRATED_POWERS[] = {-49, -37, -33, -28, -25, -20, -15, -10};
uint8_t advertising = 0;
uint8_t tx_power_level = 6;
void startAdvertising() {
uBit.bleManager.advertiseEddystoneUrl(URL, CALIBRATED_POWERS[tx_power_level-1], false);
uBit.bleManager.setTransmitPower(tx_power_level);
uBit.display.scroll("ADV");
advertising = 1;
}
void stopAdvertising() {
uBit.bleManager.stopAdvertising();
uBit.display.scroll("OFF");
advertising = 0;
}
void onButtonA(MicroBitEvent)
{
if (advertising == 1) {
return;
}
startAdvertising();
}
void onButtonB(MicroBitEvent)
{
if (advertising == 0) {
return;
}
stopAdvertising();
}
int main()
{
// Initialise the micro:bit runtime.
uBit.init();
uBit.bleManager.setTransmitPower(tx_power_level);
uBit.bleManager.advertise();
uBit.display.scroll("ON");
uBit.messageBus.listen(MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, onButtonA);
uBit.messageBus.listen(MICROBIT_ID_BUTTON_B, MICROBIT_BUTTON_EVT_CLICK, onButtonB);
//startAdvertising();
release_fiber();
}
