Sending chars via WKdemo

This commit is contained in:
Martin Brodbeck 2024-02-26 15:57:13 +01:00
parent 701bf8f6b4
commit df85ca4267
4 changed files with 27 additions and 31 deletions

View file

@ -37,7 +37,7 @@ struct KeyerQueueData {
KeyerQueueCommand cmd;
uint8_t wpm;
Mode mode;
std::string message;
char message;
};
queue_t keyerQueue;
@ -93,8 +93,7 @@ void core1_main()
data.cmd = KeyerQueueCommand::Run;
break;
case KeyerQueueCommand::SendMessage:
printf("Sending: %s\n", data.message.c_str());
keyer.sendMessage(data.message);
keyer.sendCharacter(data.message);
data.cmd = KeyerQueueCommand::Run;
break;
case KeyerQueueCommand::Wait:
@ -150,9 +149,7 @@ void cdc_task()
[[fallthrough]];
case '.':
{
printf("TODO: Send it: %c\n", buf[0]);
std::string msg(1, buf[0]);
KeyerQueueData keyerQueueData {KeyerQueueCommand::SendMessage, 0, Mode::IambicB, msg};
KeyerQueueData keyerQueueData {KeyerQueueCommand::SendMessage, 0, Mode::IambicB, buf[0]};
queue_add_blocking(&keyerQueue, &keyerQueueData);
break;
}
@ -221,29 +218,20 @@ int main()
}
lastWpm = currentWpm;
KeyerQueueData keyerQueueData {KeyerQueueCommand::Run, currentWpm, settings.mode, ""};
KeyerQueueData keyerQueueData {KeyerQueueCommand::Run, currentWpm, settings.mode, 0};
queue_add_blocking(&keyerQueue, &keyerQueueData);
static bool used = false;
while (true) {
currentWpm = calcWPM(potiRead(), settings.wpmPotiMin, settings.wpmPotiMax);
// If WPM in settings is set to 0 -> take speed from poti
if (settings.wpm == 0 && (currentWpm != lastWpm)) {
KeyerQueueData keyerQueueData {KeyerQueueCommand::Config, currentWpm, settings.mode, ""};
KeyerQueueData keyerQueueData {KeyerQueueCommand::Config, currentWpm, settings.mode, 0};
queue_add_blocking(&keyerQueue, &keyerQueueData);
printf("WPM has changed to: %d\n", currentWpm);
lastWpm = currentWpm;
}
// busy_wait_ms(5000);
if (!used) {
// KeyerQueueData keyerQueueData {KeyerQueueCommand::SendMessage, 0, settings.mode, "cq cq de dg2smb dg2smb
// pse k"}; queue_add_blocking(&keyerQueue, &keyerQueueData);
used = true;
}
tud_task();
cdc_task();
}