diff --git a/src/keyer.cpp b/src/keyer.cpp index 95477de..d2734f0 100644 --- a/src/keyer.cpp +++ b/src/keyer.cpp @@ -21,9 +21,9 @@ void Keyer::run() { case State::Wait: if (left_paddle_pressed()) - state = State::LeftPaddlePressed; + state = State::Dit; break; - case State::LeftPaddlePressed: + case State::Dit: printf("."); if (left_paddle_pressed()) @@ -31,12 +31,24 @@ void Keyer::run() else state = State::Wait; break; + case State::Dah: + printf("-"); + ++numElements; + if (numElements == 3) + { + numElements = 0; + if (left_paddle_pressed()) + state = State::InterCharSpace; + else + state = State::Wait; + } + break; case State::InterCharSpace: printf("(.)"); if (left_paddle_pressed()) - state = State::LeftPaddlePressed; + state = State::Dit; else state = State::Wait; break; diff --git a/src/keyer.h b/src/keyer.h index 43b7c2c..622ed28 100644 --- a/src/keyer.h +++ b/src/keyer.h @@ -7,7 +7,8 @@ public: enum class State { Wait, - LeftPaddlePressed, + Dit, + Dah, InterCharSpace, };