micro:bit UART Terminal

резреж┬ард╣+
рдбрд╛рдЙрдирд▓реЛрдб
рдЖрд╢рдп рд░реЗрдЯрд┐рдВрдЧ
рдкреНрд░рддреНрдпреЗрдХрдЬрдг
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЗрдореЗрдЬ
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЗрдореЗрдЬ
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЗрдореЗрдЬ
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЗрдореЗрдЬ

рдпрд╛ рдЕтАНреЕрдкрд╡рд┐рд╖рдпреА

рд╣рд╛ рдЕреЕрдк Android рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ: рдмрд┐рдЯ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рджрд░рдореНрдпрд╛рди рд╕рдВрдкреНрд░реЗрд╖рдг рдХрд░рддреЛ. рдЖрдкрдг 'рд╕реВрдЪрдирд╛' рдХрд┐рдВрд╡рд╛ 'рд╕рдВрдХреЗрдд' рдореЛрдбрдордзреНрдпреЗ рдордЬрдХреВрд░ рдкрд╛рдард╡реВ рдЖрдгрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реВ рд╢рдХрддрд╛. рдорд╛рдпрд░реНрдЯ: рдмрд┐рдЯ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ (рдмреНрд▓реЙрдХ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдПрдордмреАрдИрдбреА) рд╡рд░ рдпреВрдПрдЯреА рд╕рдВрд╡рд╛рдж рджреЗрдЦреАрд▓ рд▓рд╛рдЧреВ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдкрд╛рд╣рд┐рдЬреЗ.

рдкрд░реНрдпрд╛рдпрдГ
- рдирд┐рд░реНрджреЗрд╢: рдбреАрдлреЙрд▓реНрдЯ рдорд╛рдпрдХреНрд░реЛ: рдмрд┐рдЯ рдореЛрдб (рдЕрдиреНрдпрдерд╛ рд╕реВрдЪрдирд╛ рдореЛрдб)
- рдПрд▓рдПрдлрдГ рд▓рд╛рдЗрдирдлреЗрдб рдЬреЛрдбрд▓рд╛
- рд╕реАрдЖрд░: рдХреЕрд░реЗрдЬ рд░рд┐рдЯрд░реНрди рдЬреЛрдбрд▓рд╛

рдЖрд╡рд╢реНрдпрдХрддрд╛рдГ
- рдХрд┐рдорд╛рди Android 5
- рдмреНрд▓реВрдЯреВрде рд▓реЛ рдПрдирд░реНрдЬреА (рдмреАрдПрд▓рдИ)
- рдЬреЛрдбрд▓реЗрд▓реЗ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕
- рд╕реВрдХреНрд╖реНрдо: рдмрд┐рдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо (рд╕реНрд╡рддрдГрджреНрд╡рд╛рд░реЗ рд╡рд┐рдХрд╕рд┐рдд)

рд╡реНрд╣реА 2.1: рдХреНрд▓рд┐рдкрдмреЛрд░реНрдбрд╡рд░ рдХреЙрдкреА рдХрд░рд╛ (рдкрд░реНрдпрд╛рдп рдореЗрдиреВ)
рд╡реНрд╣реА 2.2: рдХреНрд▓реАрдЕрд░ рд▓рд┐рд╕реНрдЯ (рдСрдкреНрд╢рди рдореЗрдиреВ), рдиреЛ рд▓реЙрдЧ рдСрдкреНрд╢рди
рд╡реНрд╣реА 2.5: рд╣реЗрдХреНрд╕ рдореЛрдб

рдПрдордмреАрдПрдб рдЙрджрд╛рд╣рд░рдгрдГ

# "рдорд╛рдпрдХреНрд░реЛрдмреАрдЯ." рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рд╛
# "рдорд╛рдпрдХреНрд░реЛрдмрд┐рдЯрдЙрд░реНрдЯ рд╕рд░реНрд╡реНрд╣рд┐рд╕.h" рдЕрдВрддрд░реНрднреВрдд рдХрд░рд╛
# "рдмреАрдПрдордкреА 180.h" рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рд╛

рдорд╛рдпрдХреНрд░реЛрдмрд┐рдЯ uBit;
рдорд╛рдпрдХреНрд░реЛрдмрд┐рдЯрдЙрд░реНрдЯ рд╕рд░реНрд╡реНрд╣рд┐рд╕ * рдпреВрдЖрд░рдЯреА;
рдмреАрдПрдордкреА 180 рдмреАрдПрдордкреА 180 (рдкреА0_30, рдкреА0_0);
рдЪрд╛рд░ рдмрдлрд░ [80];
рдлреНрд▓реЛрдЯ рджрд╛рдм, рддрдкрдорд╛рди;
┬а┬а┬а┬а┬а┬а┬а┬а
int рдХрдиреЗрдХреНрдЯ = 0;

рд░рджреНрдж рдХреЗрд▓реЗрд▓реЗ (рдорд╛рдпрдХреНрд░реЛрдмрд┐рдЯ рдЗрд╡реНрд╣реЗрдВрдЯ)
{
┬а┬а┬а┬аuBit.display.scroll ("рд╕реА");
┬а┬а┬а┬ардЬреЛрдбрд▓реЗрд▓реЗ = 1;
}

рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ (рдорд╛рдпрдХреНрд░реЛрдмрд┐рдЯ рдЗрд╡реНрд╣реЗрдВрдЯ)
{
┬а┬а┬а┬аuBit.display.scroll ("рдбреА");
┬а┬а┬а┬ардЬреЛрдбрд▓реЗрд▓реЗ = 0;
}


рд╡реНрд╣реЙрдб рдСрдирдмрдЯрди рдП (рдорд╛рдпрдХреНрд░реЛрдмрд┐рдЯ рдЗрд╡реНрд╣реЗрдВрдЯ)
{
┬а┬а┬а┬аuBit.display.scroll (рдмрдлрд░);
}

рд╡реНрд╣реЙрдиреНрдб рдСрдирдмрдЯрди рдмреА (рдорд╛рдпрдХреНрд░реЛрдмрд┐рдЯ рдЗрд╡реНрд╣реЗрдВрдЯ)
{
┬а┬а┬а┬аuBit.display.scroll ("SK");
}

/ *
рдорд╣рддреНрд╡рд╛рдЪреЗ !!!
рдУрд╣реЗрд░рд╡рд╛рдЗрд╡реНрд╣ рддреБрдореНрд╣реА рдореЗрдорд░реА рд╕рдВрдкрд╡рд╛рд▓!

MicroBitConfig.h рдордзреНрдпреЗ DFU рдЖрдгрд┐ рдЗрд╡реНрд╣реЗрдВрдЯ рд╕реЗрд╡рд╛ рдЕрдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рд╛ рдХрд╛рд░рдг рддреНрдпрд╛рдВрдЪреА рдпреЗрдереЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА:
рдорд╛рдпрдХреНрд░реЛрдмрд┐рдЯ-> рдорд╛рдпрдХреНрд░реЛрдмрд┐рдЯ-рдбрд╛рд▓-> рдЗрдиреНрдХ-> рдХреЛрд░-> рдорд╛рдпрдХреНрд░реЛрдмрд┐рдЯрдХреЙрдирдлрд┐рдЧ

# рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рд╛ MICROBIT_BLE_DFU_SERVICE 0
# рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рд╛ MICROBIT_BLE_EVENT_SERVICE 0
# рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рд╛ MICROBIT_SD_GATT_TABLE_SIZE 0x500
* /

int рдореБрдЦреНрдп ()
{
┬а┬а┬а┬ардмреАрдПрдордкреА 180. рдЖрд░рдВрдн рдХрд░рд╛ (64, рдмреАрдПрдордкреА 180_рдУрдПрд╕рдПрд╕_ULTRA_LOW_POWER);
┬а┬а┬а┬арджрд╛рдм = -1;
┬а┬а┬а┬арддрд╛рдкрдорд╛рди = -1;
┬а┬а┬а┬ардЬрд░ (рдмреАрдПрдордкреА 180. рд░реАрдбрдбреЗрдЯрд╛ (рдЖрдгрд┐ рддрд╛рдкрдорд╛рди, рдЖрдгрд┐ рджрд╛рдм))
┬а┬а┬а┬а┬а┬а┬а┬аsprintf (рдмрдлрд░, "% .2 рдПрдл рд╕реА% 4.0 рдПрдл рдПрдЪрдкреАрдП", рддрд╛рдкрдорд╛рди, рджрд╛рдм);
┬а┬а┬а┬ардирд╛рд╣реАрддрд░
┬а┬а┬а┬а┬а┬а┬а┬аsprintf (рдмрдлрд░, "рдПрдирдУрдХреЗ");
┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а
┬а┬а┬а┬а// рдорд╛рдпрдХреНрд░реЛ: рдмрд┐рдЯ рд░рдирдЯрд╛рдЗрдо рдкреНрд░рд╛рд░рдВрдн рдХрд░рд╛.
┬а┬а┬а┬аuBit.init ();

┬а┬а┬а┬аuBit.messageBus.listen (MICROBIT_ID_BLE, MICROBIT_BLE_EVT_CONNECTED, рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ);
┬а┬а┬а┬аuBit.messageBus.listen (MICROBIT_ID_BLE, MICROBIT_BLE_EVT_DISCONNECTED, рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ);
┬а┬а┬а┬аuBit.messageBus.listen (MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, рдмрдЯрди рдП);
┬а┬а┬а┬аuBit.messageBus.listen (MICROBIT_ID_BUTTON_B, MICROBIT_BUTTON_EVT_CLICK, рдмрдЯрди рдмреА);

┬а┬а┬а┬ардпреВрдЖрд░рдЯреА = рдирд╡реАрди рдорд╛рдпрдХреНрд░реЛрдмрд╛рдЗрдЯрдпреВрдПрдЖрд░рдЯреА рд╕рд░реНрд╡реНрд╣рд┐рд╕ (* рдпреВрдмреАрдЯ.рдмреЗрд▓, 32, 32);
┬а┬а┬а┬аuBit.display.scroll (":)");
┬а
┬а┬а┬а┬ардХрд░рддрд╛рдирд╛ (1)
┬а┬а┬а┬а{
┬а┬а┬а┬а┬а┬а┬а┬арджрд╛рдм = -1;
┬а┬а┬а┬а┬а┬а┬а┬арддрд╛рдкрдорд╛рди = -1;
┬а┬а┬а┬а┬а┬а┬а┬ардЬрд░ (рдмреАрдПрдордкреА 180. рд░реАрдбрдбреЗрдЯрд╛ (рдЖрдгрд┐ рддрд╛рдкрдорд╛рди, рдЖрдгрд┐ рджрд╛рдм))
┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а┬аsprintf (рдмрдлрд░, "% .2 рдПрдл рд╕реА% 4.0 рдПрдл рдПрдЪрдкреАрдП", рддрд╛рдкрдорд╛рди, рджрд╛рдм);
┬а┬а┬а┬а┬а┬а┬а┬ардирд╛рд╣реАрддрд░
┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а┬аsprintf (рдмрдлрд░, "рдПрдирдУрдХреЗ");
┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а
┬а┬а┬а┬а┬а┬а┬а┬ардЬрд░ (! рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ) {
┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а┬аuBit.sleep (500);
┬а┬а┬а┬а┬а┬а┬а┬а}
┬а┬а┬а┬а┬а┬а┬а┬ардирд╛рд╣реАрддрд░
┬а┬а┬а┬а┬а┬а┬а┬а{
┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а┬аuart-> рдкрд╛рдард╡рд╛ (рдмрдлрд░);
┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а┬а┬аuBit.sleep (1000);
┬а┬а┬а┬а┬а┬а┬а┬а}
┬а
┬а┬а┬а┬а}
┬а┬а┬а┬а
┬а┬а┬а┬аrelease_fiber ();
}
рдпрд╛ рд░реЛрдЬреА рдЕрдкрдбреЗрдЯ рдХреЗрд▓реЗ
реирем рдореЗ, реирежрезреп

рдбреЗрдЯрд╛рд╕рдВрдмрдВрдзрд┐рдд рд╕реБрд░рдХреНрд╖рд┐рддрддрд╛

рдбреЗрд╡реНрд╣рд▓рдкрд░ рддреБрдордЪрд╛ рдбреЗрдЯрд╛ рдХрд╕рд╛ рдЧреЛрд│рд╛ рдХрд░рддрд╛рдд рдЖрдгрд┐ рд╢реЗрдЕрд░ рдХрд░рддрд╛рдд рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рдкрд╛рд╕реВрди рд╕реБрд░рдХреНрд╖рд┐рддрддрд╛ рд╕реБрд░реВ рд╣реЛрддреЗ. рддреБрдордЪрд╛ рд╡рд╛рдкрд░, рдкреНрд░рджреЗрд╢ рдЖрдгрд┐ рд╡рдп рдпрд╛рдВрдЪреНрдпрд╛ рдЖрдзрд╛рд░реЗ рдбреЗрдЯрд╛ рдЧреЛрдкрдиреАрдпрддрд╛ рд╡ рд╕реБрд░рдХреНрд╖реЗрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдкрджреНрдзрддреА рдмрджрд▓реВ рд╢рдХрддрд╛рдд. рдбреЗрд╡реНрд╣рд▓рдкрд░рдиреЗ рд╣реА рдорд╛рд╣рд┐рддреА рдкреБрд░рд╡рд▓реА рдЖрд╣реЗ рдЖрдгрд┐ рддреА рдХрд╛рд▓рд╛рдВрддрд░рд╛рдиреЗ рдЕрдкрдбреЗрдЯ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ.
рддреГрддреАрдп рдкрдХреНрд╖рд╛рдВрд╕реЛрдмрдд рдХреЛрдгрддрд╛рд╣реА рдбреЗрдЯрд╛ рд╢реЗрдЕрд░ рдХреЗрд▓реЗрд▓рд╛ рдирд╛рд╣реА
рдбреЗрд╡реНрд╣рд▓рдкрд░ рд╢реЗрдЕрд░ рдХрд░рдгреНрдпрд╛рд╡рд┐рд╖рдпреА рдорд╛рд╣рд┐рддреА рдХрд╢реА рдШреЛрд╖рд┐рдд рдХрд░рддрд╛рдд рдпрд╛рд╡рд┐рд╖рдпреА рдЕрдзрд┐рдХ рдЬрд╛рдгреВрди рдШреНрдпрд╛
рдХреЛрдгрддрд╛рд╣реА рдбреЗрдЯрд╛ рдЧреЛрд│рд╛ рдХреЗрд▓реЗрд▓рд╛ рдирд╛рд╣реА
рдбреЗрд╡реНрд╣рд▓рдкрд░ рдбреЗрдЯрд╛ рдЧреЛрд│рд╛ рдХрд░рдгреНрдпрд╛рд╡рд┐рд╖рдпреА рдорд╛рд╣рд┐рддреА рдХрд╢реА рдШреЛрд╖рд┐рдд рдХрд░рддрд╛рдд рдпрд╛рд╡рд┐рд╖рдпреА рдЕрдзрд┐рдХ рдЬрд╛рдгреВрди рдШреНрдпрд╛
Play рдХреБрдЯреБрдВрдмрд╛рдВрдЪреЗ рдзреЛрд░рдг рдпрд╛рдЪреЗ рдкрд╛рд▓рди рдХрд░рдгреНрдпрд╛рд╕ рд╡рдЪрдирдмрджреНрдз рдЖрд╣реЗ

рдирд╡реАрди рдХрд╛рдп рдЖрд╣реЗ

HEX mode