first attempt to send messages
This commit is contained in:
parent
e8901e514d
commit
b6ca08f32f
2 changed files with 21 additions and 19 deletions
|
@ -58,10 +58,10 @@ void Keyer::run()
|
|||
{
|
||||
auto timestamp = get_absolute_time();
|
||||
|
||||
// If there is something to send …
|
||||
// If there is some message to send …
|
||||
if (!m_messageQueue.empty() || m_messageKeyingState != MessageState::Wait) {
|
||||
// Stop all paddle keying, if necessary
|
||||
if (m_PaddleKeyingState != State::Wait) {
|
||||
if (m_paddleKeyingState != State::Wait) {
|
||||
gpio_put(LED_PIN, 0);
|
||||
gpio_put(CW_OUT_PIN, 0);
|
||||
m_buzzer.off();
|
||||
|
@ -69,12 +69,13 @@ void Keyer::run()
|
|||
m_currentlyPausing = false;
|
||||
m_currentlyKeying = false;
|
||||
m_previousState = State::Abort;
|
||||
m_PaddleKeyingState = State::Wait;
|
||||
m_paddleKeyingState = State::Wait;
|
||||
}
|
||||
|
||||
switch (m_messageKeyingState) {
|
||||
case MessageState::Wait:
|
||||
m_messageChar = m_messageQueue.front();
|
||||
m_messageQueue.pop();
|
||||
|
||||
switch (m_messageChar) {
|
||||
case '.':
|
||||
|
@ -181,6 +182,7 @@ void Keyer::run()
|
|||
m_currentlyKeying = false;
|
||||
std::queue<char> emptyQueue;
|
||||
std::swap(m_messageQueue, emptyQueue);
|
||||
m_messageKeyingState = MessageState::Wait;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
@ -206,20 +208,20 @@ void Keyer::run()
|
|||
}
|
||||
|
||||
// If we are in IambicA or IambicB-Mode …
|
||||
switch (m_PaddleKeyingState) {
|
||||
switch (m_paddleKeyingState) {
|
||||
case State::Wait:
|
||||
if (left_paddle_pressed()) {
|
||||
m_keyNextIambicB = false;
|
||||
m_PaddleKeyingState = State::Dit;
|
||||
m_paddleKeyingState = State::Dit;
|
||||
} else if (right_paddle_pressed()) {
|
||||
m_keyNextIambicB = false;
|
||||
m_PaddleKeyingState = State::Dah;
|
||||
m_paddleKeyingState = State::Dah;
|
||||
} else {
|
||||
if (m_mode == Mode::IambicB && m_keyNextIambicB) {
|
||||
if (m_previousState == State::Dit)
|
||||
m_PaddleKeyingState = State::Dah;
|
||||
m_paddleKeyingState = State::Dah;
|
||||
else
|
||||
m_PaddleKeyingState = State::Dit;
|
||||
m_paddleKeyingState = State::Dit;
|
||||
|
||||
m_keyNextIambicB = false;
|
||||
}
|
||||
|
@ -246,7 +248,7 @@ void Keyer::run()
|
|||
m_buzzer.off();
|
||||
// m_audioOut.off();
|
||||
m_previousState = State::Dit;
|
||||
m_PaddleKeyingState = State::DitPause;
|
||||
m_paddleKeyingState = State::DitPause;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -271,7 +273,7 @@ void Keyer::run()
|
|||
m_buzzer.off();
|
||||
// m_audioOut.off();
|
||||
m_previousState = State::Dah;
|
||||
m_PaddleKeyingState = State::DahPause;
|
||||
m_paddleKeyingState = State::DahPause;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -284,13 +286,13 @@ void Keyer::run()
|
|||
m_currentlyPausing = false;
|
||||
|
||||
if (right_paddle_pressed()) {
|
||||
m_PaddleKeyingState = State::Dah;
|
||||
m_paddleKeyingState = State::Dah;
|
||||
m_keyNextIambicB = false;
|
||||
} else if (left_paddle_pressed()) {
|
||||
m_PaddleKeyingState = State::Dit;
|
||||
m_paddleKeyingState = State::Dit;
|
||||
m_keyNextIambicB = false;
|
||||
} else {
|
||||
m_PaddleKeyingState = State::Wait;
|
||||
m_paddleKeyingState = State::Wait;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -304,13 +306,13 @@ void Keyer::run()
|
|||
m_currentlyPausing = false;
|
||||
|
||||
if (left_paddle_pressed()) {
|
||||
m_PaddleKeyingState = State::Dit;
|
||||
m_paddleKeyingState = State::Dit;
|
||||
m_keyNextIambicB = false;
|
||||
} else if (right_paddle_pressed()) {
|
||||
m_PaddleKeyingState = State::Dah;
|
||||
m_paddleKeyingState = State::Dah;
|
||||
m_keyNextIambicB = false;
|
||||
} else {
|
||||
m_PaddleKeyingState = State::Wait;
|
||||
m_paddleKeyingState = State::Wait;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -324,11 +326,11 @@ void Keyer::run()
|
|||
m_currentlyPausing = false;
|
||||
m_currentlyKeying = false;
|
||||
m_previousState = State::Abort;
|
||||
m_PaddleKeyingState = State::Wait;
|
||||
m_paddleKeyingState = State::Wait;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Keyer::stop() { m_PaddleKeyingState = State::Abort; }
|
||||
void Keyer::stop() { m_paddleKeyingState = State::Abort; }
|
|
@ -48,7 +48,7 @@ class Keyer final
|
|||
Sidetone m_buzzer;
|
||||
// Sidetone m_audioOut;
|
||||
|
||||
State m_PaddleKeyingState {State::Wait};
|
||||
State m_paddleKeyingState {State::Wait};
|
||||
State m_previousState {State::Wait};
|
||||
|
||||
std::queue<char> m_messageQueue;
|
||||
|
|
Loading…
Reference in a new issue