From a42f5beb9bc5c79ede6b5cac4b5d2719fb921d43 Mon Sep 17 00:00:00 2001 From: furrtek Date: Tue, 10 May 2016 07:20:24 +0200 Subject: [PATCH] Handwriting recognition --- firmware/application/main.cpp | 7 +- firmware/application/ui_handwrite.cpp | 289 +++++++++---------------- firmware/application/ui_handwrite.hpp | 19 +- firmware/application/ui_navigation.cpp | 5 +- firmware/application/unistroke.hpp | 73 ++++--- firmware/portapack-h1-firmware.bin | Bin 462472 -> 459128 bytes 6 files changed, 159 insertions(+), 234 deletions(-) diff --git a/firmware/application/main.cpp b/firmware/application/main.cpp index 36a81e1c..ac1c0108 100755 --- a/firmware/application/main.cpp +++ b/firmware/application/main.cpp @@ -21,6 +21,10 @@ //BUG: No audio in about when shown second time //BUG: Description doesn't show up first time going to system>module info (UI drawn on top) +//TODO: Setting: Prefered input method +//TODO: LCR emergency clear all +//TODO: LCR receiver +//TODO: Xylos receiver //TODO: Morse coder //TODO: Playdead amnesia and login //TODO: Touch screen calibration @@ -33,8 +37,7 @@ //TODO: SIGFOX RX/TX //TODO: Reset baseband if module not found (instead of lockup in RAM loop) //TODO: Module name/filename in modules.hpp to indicate requirement in case it's not found ui_loadmodule -//TODO: LCD backlight PWM -//TODO: BUG: Crash after TX stop (unregister message !) +//BUG: Crash after TX stop (unregister message !) //TODO: Check bw setting in LCR TX //TODO: BUG: Crash after PSN entry in RDS TX //TODO: Bodet :) diff --git a/firmware/application/ui_handwrite.cpp b/firmware/application/ui_handwrite.cpp index fd67019a..f5b0e987 100644 --- a/firmware/application/ui_handwrite.cpp +++ b/firmware/application/ui_handwrite.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek * * This file is part of PortaPack. * @@ -98,47 +99,7 @@ HandWriteView::HandWriteView( //update_text(); } -bool HandWriteView::MM(uint8_t idx, char cmp) { - if (idx < move_index) { - if ((cmp == 'U') && ((move_list[idx] & 0xF0) == 0x00)) return true; - if ((cmp == 'D') && ((move_list[idx] & 0xF0) == 0x10)) return true; - if ((cmp == 'L') && ((move_list[idx] & 0x0F) == 0x00)) return true; - if ((cmp == 'R') && ((move_list[idx] & 0x0F) == 0x01)) return true; - } - return false; -} - -bool HandWriteView::MM(uint8_t idx, char cmpud, char cmplr) { - if (idx < move_index) { - if (cmpud == 'U') cmpud = 0; - if (cmpud == 'D') cmpud = 1; - if (cmpud == '?') cmpud = 2; - if (cmplr == 'L') cmplr = 0; - if (cmplr == 'R') cmplr = 1; - if (cmplr == '?') cmplr = 2; - if (((move_list[idx] >> 4) == cmpud) && ((move_list[idx] & 0x0F) == cmplr)) return true; - } - return false; -} - -bool HandWriteView::MI(uint8_t idx) { - if (move_index - 1 < idx) - return true; - else - return false; -} - -bool HandWriteView::MLAST(char cmp) { - if ((cmp == 'U') && ((move_list[move_index - 1] & 0xF0) == 0x00)) return true; - if ((cmp == 'D') && ((move_list[move_index - 1] & 0xF0) == 0x10)) return true; - if ((cmp == 'L') && ((move_list[move_index - 1] & 0x0F) == 0x00)) return true; - if ((cmp == 'R') && ((move_list[move_index - 1] & 0x0F) == 0x01)) return true; - return false; -} - bool HandWriteView::on_touch(const TouchEvent event) { - char guess; - if (event.type == ui::TouchEvent::Type::Start) { move_index = 0; move_wait = 4; @@ -146,92 +107,7 @@ bool HandWriteView::on_touch(const TouchEvent event) { } if (event.type == ui::TouchEvent::Type::End) { tracing = false; - - display.fill_rectangle( - {{0, 16}, {240, 230}}, - Color::black() - ); - - // Letter guessing - guess = ' '; - - if (MM(0, 'U')) { - if (MM(0, 'U', '?')) { - if (MI(1)) - guess = 'A'; - else - guess = 'F'; - } else if (MM(0, 'U', 'R')) { - if (MI(1)) { - guess = 'K'; - } else { - if (MM(1, 'L')) { - if (txtidx > 0) { - txtinput[--txtidx] = 0; // Erase - guess = '!'; - } - } else { - guess = 'N'; - } - } - } else if (MM(0, 'U', 'L')) { - if (MM(1, 'U', 'R')) guess = 'C'; - if (MM(1, 'D', 'L')) guess = 'M'; - } - } else if (MM(0, 'D')) { - if (MM(0, 'D', 'R') || MM(1, 'R')) - guess = 'P'; - else - guess = 'Q'; - if (MM(0, 'D', '?')) { - if (MI(1)) { - guess = 'I'; - } else { - if (MM(1, 'R') && MI(2)) { - guess = 'L'; - } else if (MM(1, 'L')) { - if (MI(2)) guess = 'J'; - } else if (MM(1, 'U', 'R')) { - if (MM(2, 'D')) guess = 'W'; - } - } - } - if (MM(0, 'D', 'R')) { - if (MI(1)) guess = 'R'; - if (MM(1, 'U', 'R') && MI(2)) guess = 'V'; - if (MM(1, 'D', 'L')) guess = 'B'; - } else if (MM(0, 'D', 'L')) { - if (MI(1)) guess = 'Y'; - if (MM(1, 'U', 'L') && MI(2)) guess = 'U'; - if (MM(1, 'D', 'R')) guess = 'D'; - } - } - - if (MM(0, 'L')) { - if (!MI(2) && (MLAST('U') || MLAST('L'))) guess = 'O'; - if (MM(0, '?', 'L')) { - if (MI(1)) - guess = 'E'; - else - if (MM(1, 'R')) guess = 'S'; - } - } else if (MM(0, 'R')) { - if (!MI(2) && (MLAST('U') || MLAST('R'))) guess = 'X'; - if (MM(0, '?', 'R')) { - if (MM(1, 'U') && MI(2)) { - guess = 'G'; - } else if (MM(1, 'D', '?') && MI(2)) { - guess = 'H'; - } else if (MM(1, 'L')) { - guess = 'Z'; - } else if (MI(1)) { - guess = 'T'; - } - } - } - - if (guess != '!') txtinput[txtidx++] = guess; - update_text(); + guess_letter(); } if (event.type == ui::TouchEvent::Type::Move) { if (tracing) { @@ -241,9 +117,90 @@ bool HandWriteView::on_touch(const TouchEvent event) { return true; } +void HandWriteView::guess_letter() { + uint8_t symbol, match, count, stroke_idx, stroke_data; + Condition cond; + Direction dir; + bool matched; + + // Clear drawing zone + display.fill_rectangle( + {{0, 16}, {240, 240}}, + Color::black() + ); + + // Letter guessing + if (move_index) { + for (symbol = 0; symbol < handwriting_unistroke.letter_count; symbol++) { + count = handwriting_unistroke.letter[symbol].count; + matched = false; + if (count) { + // We have a count match to do + if ((count == 1) && (move_index == 1)) matched = true; + if ((count == 2) && (move_index == 2)) matched = true; + if ((count == 3) && (move_index > 2)) matched = true; + } else { + matched = true; + } + if (matched) { + for (match = 0; match < 3; match++) { + cond = handwriting_unistroke.letter[symbol].match[match].cond; + dir = handwriting_unistroke.letter[symbol].match[match].dir; + if ((cond != cond_empty) && (dir != dir_empty)) { + if (cond == last) { + if (move_index) + stroke_idx = move_index - 1; + else + stroke_idx = 0; + } else if (cond == stroke_a) + stroke_idx = 0; + else if (cond == stroke_b) + stroke_idx = 1; + else if (cond == stroke_c) + stroke_idx = 2; + else + stroke_idx = 3; + stroke_data = move_list[stroke_idx]; + if ((dir & 0xF0) == 0xF0) { + if ((dir & 0x0F) != (stroke_data & 0x0F)) break; + } else if ((dir & 0x0F) == 0x0F) { + if ((dir & 0xF0) != (stroke_data & 0xF0)) break; + } else { + if (dir != stroke_data) break; + } + } + } + if (match == 3) + break; + else + matched = false; + } + } + if (matched) { + if (symbol) + txtinput[txtidx++] = 'A' + symbol - 1; + else + txtinput[--txtidx] = 0; // Erase + } + } else { + txtinput[txtidx++] = ' '; + } + update_text(); + move_index = 0; +} + +void HandWriteView::add_stroke(uint8_t dir) { + if (move_index < 8) { + move_list[move_index] = dir; + move_index++; + } else { + guess_letter(); + } +} + void HandWriteView::sample_pen() { int16_t diff_x, diff_y; - uint8_t dir; + uint8_t dir, dir_ud, dir_lr; // Blink cursor if (!(sample_skip & 15)) { @@ -277,10 +234,12 @@ void HandWriteView::sample_pen() { text_debug_x.set(to_string_dec_int(diff_x)); text_debug_y.set(to_string_dec_int(diff_y)); - display.fill_rectangle( - {{current_pos.x, current_pos.y}, {4, 4}}, - Color::grey() - ); + if (current_pos.y <= 240) { + display.fill_rectangle( + {{current_pos.x, current_pos.y}, {4, 4}}, + Color::grey() + ); + } dir = 0; if (abs(diff_x) > 7) { @@ -308,67 +267,40 @@ void HandWriteView::sample_pen() { dir_cnt = 0; if (move_index) { if ((move_list[move_index - 1] != dir) && (dir != 0x22)) { - if ((dir & 0xF0) == 0x20) { - if ((move_list[move_index - 1] & 0x0F) != (dir & 0x0F)) { - move_list[move_index] = dir; - move_index++; - } - } else if ((dir & 0x0F) == 0x02) { - if ((move_list[move_index - 1] & 0xF0) != (dir & 0xF0)) { - move_list[move_index] = dir; - move_index++; - } + dir_ud = (dir & 0xF0); + dir_lr = (dir & 0x0F); + if (dir_ud == 0x20) { + if ((move_list[move_index - 1] & 0x0F) != dir_lr) add_stroke(dir); + } else if (dir_lr == 0x02) { + if ((move_list[move_index - 1] & 0xF0) != dir_ud) add_stroke(dir); } else { // Replacement ? - if (((move_list[move_index - 1] & 0xF0) == 0x20) && ((dir & 0xF0) != 0x20)) { - if ((move_list[move_index - 1] & 0x0F) == (dir & 0x0F)) { + if (((move_list[move_index - 1] & 0xF0) == 0x20) && (dir_ud != 0x20)) { + if ((move_list[move_index - 1] & 0x0F) == dir_lr) { move_list[move_index - 1] = dir; } else if ((dir & 0x0F) == 0x02) { // Merge - move_list[move_index - 1] = (dir & 0xF0) | (move_list[move_index - 1] & 0x0F); + move_list[move_index - 1] = dir_ud | (move_list[move_index - 1] & 0x0F); } else { - move_list[move_index] = dir; - move_index++; + add_stroke(dir); } - } else if (((move_list[move_index - 1] & 0x0F) == 0x02) && ((dir & 0x0F) != 0x02)) { - if ((move_list[move_index - 1] & 0xF0) == (dir & 0xF0)) { + } else if (((move_list[move_index - 1] & 0x0F) == 0x02) && (dir_lr != 0x02)) { + if ((move_list[move_index - 1] & 0xF0) == dir_ud) { move_list[move_index - 1] = dir; - } else if ((dir & 0xF0) == 0x20) { + } else if (dir_ud == 0x20) { // Merge - move_list[move_index - 1] = (dir & 0x0F) | (move_list[move_index - 1] & 0xF0); + move_list[move_index - 1] = dir_lr | (move_list[move_index - 1] & 0xF0); } else { - move_list[move_index] = dir; - move_index++; + add_stroke(dir); } } else { - move_list[move_index] = dir; - move_index++; + add_stroke(dir); } } } } else { - if (dir != 0x22) { - move_list[move_index] = dir; - move_index++; - } + if (dir != 0x22) add_stroke(dir); } - - // DEBUG - /*if (move_index) { - memset(txtinput, 0, 20); - txtidx = 0; - for (i = 0; i < move_index; i++) { - if ((move_list[i] & 0x03) == 0) char_add('L'); - if ((move_list[i] & 0x03) == 1) char_add('R'); - if ((move_list[i] & 0x03) == 2) char_add('?'); - if ((move_list[i] >> 4) == 0) char_add('U'); - if ((move_list[i] >> 4) == 1) char_add('D'); - if ((move_list[i] >> 4) == 2) char_add('?'); - char_add(' '); - } - update_text(); - }*/ - } } @@ -405,13 +337,6 @@ void HandWriteView::char_add(const char c) { } } -void HandWriteView::char_delete() { - if (txtidx) { - txtidx--; - txtinput[txtidx] = ' '; - } -} - void HandWriteView::update_text() { text_input.set(txtinput); } diff --git a/firmware/application/ui_handwrite.hpp b/firmware/application/ui_handwrite.hpp index eedb7d23..46e9b036 100644 --- a/firmware/application/ui_handwrite.hpp +++ b/firmware/application/ui_handwrite.hpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek * * This file is part of PortaPack. * @@ -42,32 +43,26 @@ public: char * value(); - uint8_t txtidx; - void char_add(const char c); - void char_delete(); private: uint8_t _max_len; uint8_t dir_cnt = 0; uint8_t dir_prev; + uint8_t txtidx; bool cursor = false; bool tracing = false; uint8_t move_index; uint8_t sample_skip, move_wait; - uint8_t move_list[32]; // TODO: Cap ! + uint8_t move_list[8]; Point start_pos, current_pos, last_pos; bool _lowercase = false; static constexpr size_t button_w = 240 / 5; static constexpr size_t button_h = 28; - char txtinput[21] = {0}; // DEBUG - - bool MM(uint8_t idx, char cmp); - bool MM(uint8_t idx, char cmpud, char cmplr); - bool MI(uint8_t idx); - bool MLAST(char cmp); - + char txtinput[25] = {0}; void sample_pen(); + void add_stroke(uint8_t dir); + void guess_letter(); Text text_input { { 8, 0, 224, 16 } @@ -81,7 +76,7 @@ private: }; std::array num_buttons; - Button button_lowercase { + Button button_case { { 88+64+16, 270, 32, 24 }, "UC" }; diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index 6391690d..0a7133e4 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -229,7 +229,6 @@ SystemView::SystemView( set_style(&style_default); constexpr ui::Dim status_view_height = 16; - char debugtxt[21] = {0}; add_child(&status_view); status_view.set_parent_rect({ @@ -262,8 +261,8 @@ SystemView::SystemView( navigation_view.push(); else //navigation_view.push(); - //navigation_view.push(); - navigation_view.push(debugtxt, 20); + //navigation_view.push(debugtxt, 20); + navigation_view.push(); } Context& SystemView::context() const { diff --git a/firmware/application/unistroke.hpp b/firmware/application/unistroke.hpp index 1e19e9c3..03eb6161 100644 --- a/firmware/application/unistroke.hpp +++ b/firmware/application/unistroke.hpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek * * This file is part of PortaPack. * @@ -19,9 +20,6 @@ * Boston, MA 02110-1301, USA. */ -#define HWDIR_TWO 0x40 -#define HWDIR_ONLY 0x80 - enum Condition { cond_empty = -1, stroke_a = 0, @@ -33,55 +31,60 @@ enum Condition { enum Direction { dir_empty = -1, - Uw = 0x00, - Dw = 0x10, - Lw = 0x00, - Rw = 0x01, - U = 0x00 | HWDIR_ONLY, - D = 0x10 | HWDIR_ONLY, - L = 0x00 | HWDIR_ONLY, - R = 0x01 | HWDIR_ONLY, - UL = 0x00 | HWDIR_TWO, - DL = 0x10 | HWDIR_TWO, - UR = 0x01 | HWDIR_TWO, - DR = 0x11 | HWDIR_TWO + Uw = 0x0F, // 0x + Dw = 0x1F, // 1x + Lw = 0xF0, // x0 + Rw = 0xF1, // x1 + U = 0x02, + D = 0x12, + L = 0x20, + R = 0x21, + UL = 0x00, + DL = 0x10, + UR = 0x01, + DR = 0x11 }; struct HandWriting { + uint8_t letter_count; struct HandWritingLetter { - Condition cond; - Direction dir; - } letter[3]; - int8_t count; + struct HandWritingMatch { + Condition cond; + Direction dir; + } match[3]; + uint8_t count; + } letter[32]; }; -const HandWriting handwriting_unistroke[32] = { +const HandWriting handwriting_unistroke = { + 27, + { + {{{stroke_a, UL}, {cond_empty, dir_empty}, {cond_empty, dir_empty}}, 1}, // BS< 0=UL MI=1 {{{stroke_a, U}, {cond_empty, dir_empty}, {cond_empty, dir_empty}}, 1}, // A 0=U MI=1 - {{{stroke_a, DR}, {stroke_b, DL}, {cond_empty, dir_empty}}, 0}, // B 0=DR 1=DL + {{{stroke_a, DR}, {stroke_b, DL}, {cond_empty, dir_empty}}, 2}, // B 0=DR 1=DL MI=2 {{{stroke_a, UL}, {stroke_b, UR}, {cond_empty, dir_empty}}, 0}, // C 0=UL 1=UR {{{stroke_a, DL}, {stroke_b, DR}, {cond_empty, dir_empty}}, 0}, // D 0=DL 1=DR {{{stroke_a, L}, {cond_empty, dir_empty}, {cond_empty, dir_empty}}, 1}, // E 0=L MI=1 {{{stroke_a, U}, {stroke_b, R}, {cond_empty, dir_empty}}, 0}, // F 0=U 1=R {{{stroke_a, R}, {stroke_b, U}, {cond_empty, dir_empty}}, 0}, // G 0=R 1=U - {{{stroke_a, R}, {stroke_b, D}, {cond_empty, dir_empty}}, 0}, // H 0=R 1=D + {{{stroke_a, R}, {stroke_b, D}, {cond_empty, dir_empty}}, 2}, // H 0=R 1=D MI=2 {{{stroke_a, D}, {cond_empty, dir_empty}, {cond_empty, dir_empty}}, 1}, // I 0=D MI=1 - {{{stroke_a, D}, {stroke_b, L}, {cond_empty, dir_empty}}, 0}, // J 0=D 1=L + {{{stroke_a, D}, {stroke_b, L}, {cond_empty, dir_empty}}, 2}, // J 0=D 1=L MI=2 {{{stroke_a, UR}, {cond_empty, dir_empty}, {cond_empty, dir_empty}}, 1}, // K 0=UR MI=1 - {{{stroke_a, D}, {stroke_b, R}, {cond_empty, dir_empty}}, 0}, // L 0=D 1=R - {{{stroke_a, UL}, {stroke_b, DL}, {cond_empty, dir_empty}}, 0}, // M 0=UL 1=DL - {{{stroke_a, UR}, {stroke_b, DR}, {cond_empty, dir_empty}}, 0}, // N 0=UR 1=DR - {{{stroke_a, Lw}, {last, Lw}, {cond_empty, dir_empty}}, 2}, // O 0=Lw MI>2 -=Lw !!! - {{{stroke_a, Dw}, {last, Dw}, {cond_empty, dir_empty}}, 2}, // P 0=Dw MI>2 -=Dw !!! - {{{stroke_a, Dw}, {stroke_b, Lw}, {cond_empty, dir_empty}}, 2}, // Q 0=Dw MI>2 1=Lw + {{{stroke_a, D}, {stroke_b, R}, {cond_empty, dir_empty}}, 2}, // L 0=D 1=R MI=2 + {{{stroke_a, UL}, {stroke_b, DL}, {cond_empty, dir_empty}}, 2}, // M 0=UL 1=DL MI=2 + {{{stroke_a, UR}, {stroke_b, DR}, {cond_empty, dir_empty}}, 2}, // N 0=UR 1=DR MI=2 + {{{stroke_a, DL}, {last, Lw}, {cond_empty, dir_empty}}, 3}, // O 0=DL MI>2 -=Uw + {{{stroke_a, DR}, {last, Dw}, {cond_empty, dir_empty}}, 3}, // P 0=DR MI>2 -=Dw + {{{stroke_a, DL}, {last, Dw}, {cond_empty, dir_empty}}, 3}, // Q 0=DL MI>2 -=Dw {{{stroke_a, DR}, {cond_empty, dir_empty}, {cond_empty, dir_empty}}, 1}, // R 0=DR MI=1 - {{{stroke_a, Lw}, {stroke_b, Rw}, {cond_empty, dir_empty}}, 0}, // S 0=Lw 1=Rw + {{{stroke_a, Lw}, {stroke_b, DR}, {cond_empty, dir_empty}}, 0}, // S 0=Lw 1=DR {{{stroke_a, R}, {cond_empty, dir_empty}, {cond_empty, dir_empty}}, 1}, // T 0=R MI=1 - {{{stroke_a, DL}, {stroke_b, UL}, {cond_empty, dir_empty}}, 2}, // U 0=DL 1=UL MI=2 - {{{stroke_a, DR}, {stroke_b, UR}, {cond_empty, dir_empty}}, 2}, // V 0=DR 1=UR MI=2 + {{{stroke_a, DL}, {stroke_b, UL}, {cond_empty, dir_empty}}, 2}, // U 0=DL 1=UL + {{{stroke_a, DR}, {stroke_b, UR}, {cond_empty, dir_empty}}, 2}, // V 0=DR 1=UR {{{stroke_a, D}, {stroke_b, UR}, {stroke_c, D}}, 0}, // W 0=D 1=UR 2=D - {{{stroke_a, Rw}, {last, Rw}, {cond_empty, dir_empty}}, 0}, // X 0=Rw MI>2 -=Rw + {{{stroke_a, DR}, {last, Uw}, {cond_empty, dir_empty}}, 3}, // X 0=DR MI>2 -=Uw {{{stroke_a, DL}, {cond_empty, dir_empty}, {cond_empty, dir_empty}}, 1}, // Y 0=DL MI=1 {{{stroke_a, Rw}, {stroke_b, DL}, {cond_empty, dir_empty}}, 0}, // Z 0=Rw 1=DL - - // Erase 0=UR MI!1 1=L + } }; diff --git a/firmware/portapack-h1-firmware.bin b/firmware/portapack-h1-firmware.bin index ff7dd341861aca0f560431a6d55411571312df03..d131f1db67f5cb43053f489b336910726474b477 100644 GIT binary patch delta 35302 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 XJWq}!3(3nI?!S^93zWG#1n&O;UozPW delta 38534 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 UVfe(X@s}NB#~km3PZh%d1L~`3Pyhe`