Использование файла config.json с BBC Micro: бит Mbed онлайн-компилятор

Кто-нибудь получил онлайн-компилятор Mbed C / C ++ для использования файлов config.json с BBC Micro: bit? Если да, то где в файловой системе вы разместили файл config.json?

Когда я использую онлайновый компилятор C / C ++ Mbed для создания примеров радиопрограмм, называемых microbit-simple-radio-rx и microbit-simple-radio-tx, я не получаю никакого ответа от бит Micro: после загрузки шестнадцатеричных файлов. Однако, когда я использую автономную командную строку yotta для компиляции тех же примеров для бита Micro: с теми же файлами config.json и загрузки шестнадцатеричных файлов, примеры работают правильно.

Мне кажется, что файлы config.json игнорируются онлайн-компилятором Mbed. Содержимое этого файла отключает Bluetooth, поскольку Micro: битное радио использует собственный стек, который не может работать одновременно с Bluetooth. Я также могу отключить библиотеку Bluetooth, добавив эту строку в библиотеку MicroBit.h:

#define MICROBIT_BLE_ENABLED 0

Затем это позволяет примерам компилироваться и корректно работать с онлайн-компилятором Mbed.

файл config.json:

{
microbit-dal:{
bluetooth:{
enabled: 0
}
}
}

microbit_simple_radio_rx:

#include "MicroBit.h"
MicroBit    uBit;

void onData(MicroBitEvent)
{
ManagedString s = uBit.radio.datagram.recv();

if (s == "1")
uBit.display.print("A");

if (s == "2")
Bit.display.print("B");
}

int main()
{
// Initialise the micro:bit runtime.
uBit.init();

uBit.messageBus.listen(MICROBIT_ID_RADIO,
MICROBIT_RADIO_EVT_DATAGRAM, onData);
uBit.radio.enable();

while(1)
uBit.sleep(1000);
}

microbit_simple_radio_tx:

#include "MicroBit.h"
MicroBit    uBit;

int main()
{
// Initialise the micro:bit runtime.
uBit.init();
uBit.radio.enable();

while(1)
{
uBit.display.print("t");
if (uBit.buttonA.isPressed())
{
uBit.radio.datagram.send("1");
uBit.display.print("1");
}
else if (uBit.buttonB.isPressed())
{
uBit.radio.datagram.send("2");
uBit.display.print("2");
}
uBit.sleep(200);
}
}

2

Решение

Онлайн-компилятор Mbed использует mbed_app.json, вместо config.json, Вы можете сделать то же самое, что и сейчас, через:

{
"macros": [ "MICROBIT_BLE_ENABLED=0" ]
}

Просто вставьте это в mbed_app.json и поместите в корень вашего проекта.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]