Microbug / MicroBitDAL_SB2_TEST

Fork of MicroBitDALImageRewrite by Joe Finney

Committer:
finneyj
Date:
Sat May 16 22:28:56 2015 +0000
Revision:
5:8bf639bbedb5
Parent:
4:f998ee705a20
Heap corruption bugfix... fixed:; ; - Heap corruption from BLE stack (hangover from BETA online build?); - BLEDevice can't be brought up in static context; - Calling scheduler callback when scheduler not initialised; - Rewrite of MicroBitImage linear bufs

Who changed what in which revision?

UserRevisionLine numberNew contents of line
finneyj 0:47d8ba08580f 1 #include "inc/MicroBit.h"
finneyj 4:f998ee705a20 2 #include "URIBeaconConfigService.h"
finneyj 0:47d8ba08580f 3
finneyj 4:f998ee705a20 4 char MICROBIT_BLE_DEVICE_NAME[] = "BBC MicroBit Prototype";
finneyj 4:f998ee705a20 5 char MICROBIT_BLE_MANUFACTURER[] = "The Cast of W1A";
finneyj 4:f998ee705a20 6 char MICROBIT_BLE_MODEL[] = "Microbit SB2";
finneyj 4:f998ee705a20 7 char MICROBIT_BLE_SERIAL[] = "SN1";
finneyj 4:f998ee705a20 8 char MICROBIT_BLE_HARDWARE_VERSION[] = "0.2";
finneyj 4:f998ee705a20 9 char MICROBIT_BLE_FIRMWARE_VERSION[] = "1.1";
finneyj 4:f998ee705a20 10 char MICROBIT_BLE_SOFTWARE_VERSION[] = "1.0";
finneyj 0:47d8ba08580f 11
finneyj 0:47d8ba08580f 12 /**
finneyj 0:47d8ba08580f 13 * Constructor.
finneyj 0:47d8ba08580f 14 * Create a representation of a MicroBit device.
finneyj 0:47d8ba08580f 15 * @param messageBus callback function to receive MicroBitMessageBus events.
finneyj 0:47d8ba08580f 16 */
finneyj 4:f998ee705a20 17 MicroBit::MicroBit() //:display(MICROBIT_ID_DISPLAY, 5, 5)
finneyj 4:f998ee705a20 18 //leftButton(MICROBIT_ID_LEFT_BUTTON,MICROBIT_PIN_LEFT_BUTTON)
finneyj 4:f998ee705a20 19 //i2c(MICROBIT_PIN_SDA, MICROBIT_PIN_SCL)
finneyj 5:8bf639bbedb5 20 {
finneyj 5:8bf639bbedb5 21 }
finneyj 4:f998ee705a20 22
finneyj 5:8bf639bbedb5 23 void MicroBit::initDisplay()
finneyj 5:8bf639bbedb5 24 {
finneyj 5:8bf639bbedb5 25 // Set up LED Matrix Display.
finneyj 5:8bf639bbedb5 26 display = new MicroBitDisplay(MICROBIT_ID_DISPLAY, 5, 5);
finneyj 5:8bf639bbedb5 27 display->startDisplay();
finneyj 5:8bf639bbedb5 28 }
finneyj 4:f998ee705a20 29
finneyj 5:8bf639bbedb5 30 void MicroBit::initBLE()
finneyj 5:8bf639bbedb5 31 {
finneyj 5:8bf639bbedb5 32 // Set up BLE stack.
finneyj 4:f998ee705a20 33 ble = new BLEDevice();
finneyj 4:f998ee705a20 34 ble->init();
finneyj 5:8bf639bbedb5 35
finneyj 4:f998ee705a20 36 /* Setup auxiliary services. */
finneyj 4:f998ee705a20 37 ble_firmware_update_service = new DFUService(*ble);
finneyj 4:f998ee705a20 38 ble_device_information_service = new DeviceInformationService(*ble, MICROBIT_BLE_MANUFACTURER, MICROBIT_BLE_MODEL, MICROBIT_BLE_SERIAL, MICROBIT_BLE_HARDWARE_VERSION, MICROBIT_BLE_FIRMWARE_VERSION, MICROBIT_BLE_SOFTWARE_VERSION);
finneyj 4:f998ee705a20 39
finneyj 4:f998ee705a20 40 /* Setup advertising. */
finneyj 4:f998ee705a20 41 ble->accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE);
finneyj 4:f998ee705a20 42 ble->accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LOCAL_NAME, (uint8_t *)MICROBIT_BLE_DEVICE_NAME, sizeof(MICROBIT_BLE_DEVICE_NAME));
finneyj 4:f998ee705a20 43 ble->setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED);
finneyj 4:f998ee705a20 44 ble->setAdvertisingInterval(Gap::MSEC_TO_ADVERTISEMENT_DURATION_UNITS(1000));
finneyj 5:8bf639bbedb5 45 ble->startAdvertising();
finneyj 0:47d8ba08580f 46 }