Raduino: Disabled CAT in the Raduino main loop. Fixed some split freq setting via I2C. TeensyDSP: Added a Keyer. Works ok, but I have to disable ADC during transmit (or all of CW?) in order to keep the timing good... need to use interrupts and/or continuous ADC at some point. Added the MD CAT command, and fixed other CAT commands. Split seems to work, but don't do split when using the keyer! Halted the Raduino.

This commit is contained in:
Rob French
2021-02-11 23:55:41 -06:00
parent 814fe6c733
commit d2213e34ff
8 changed files with 127 additions and 23 deletions

View File

@@ -138,17 +138,17 @@ TS590Error TS590Command::theError = NoError;
void TS590_FR::handleCommand(const char* cmd) {
if (strlen(cmd) == 3) {
switch (cmd[2]) {
case 0:
case '0':
rig()->selectVFOA(true);
rig()->splitOff(true);
break;
case 1:
case '1':
rig()->selectVFOB(true);
rig()->splitOff(true);
break;
case 2:
case '2':
// TODO: Need to add something for channel mode.
break;
@@ -175,7 +175,7 @@ void TS590_FR::sendResponse(const char* cmd) {
void TS590_FT::handleCommand(const char* cmd) {
if (strlen(cmd) == 3) {
switch (cmd[2]) {
case 0:
case '0':
if (rig()->isVFOA()) {
rig()->splitOff(true);
} else if (rig()->isVFOB()) {
@@ -185,7 +185,7 @@ void TS590_FT::handleCommand(const char* cmd) {
}
break;
case 1:
case '1':
if (rig()->isVFOA()) {
rig()->splitOn(true);
} else if (rig()->isVFOB()) {
@@ -215,16 +215,76 @@ void TS590_FT::sendResponse(const char* cmd) {
/**********************************************************************/
void TS590_MD::handleCommand(const char* cmd) {
if (strlen(cmd) == 3) {
switch (cmd[2]) {
case '0': // None (setting failure)
case '4': // FM - not supported
case '5': // AM - not supported
case '6': // FSK - not supported
case '8': // None (setting failure)
case '9': // FSK-R - not supported
setProcessError();
break;
case '1': // LSB
rig()->selectLSB(true);
rig()->cwOff(true);
break;
case '2': // USB
rig()->selectUSB(true);
rig()->cwOff(true);
break;
case '3': // CW
rig()->selectUSB(true);
rig()->cwOn(true);
break;
case '7': // CW-R
rig()->selectLSB(true);
rig()->cwOn(true);
break;
default:
setSyntaxError();
}
} else {
setSyntaxError();
}
}
void TS590_MD::sendResponse(const char* cmd) {
if (rig()->isCW()) {
if (rig()->isUSB()) {
ts590SendCommand("MD3");
} else {
ts590SendCommand("MD7");
}
} else {
if (rig()->isUSB()) {
ts590SendCommand("MD2");
} else {
ts590SendCommand("MD1");
}
}
}
/**********************************************************************/
TS590_FA cmdFA;
TS590_FB cmdFB;
TS590_FR cmdFR;
TS590_FT cmdFT;
TS590_MD cmdMD;
TS590Command* catCommands[] = {
&cmdFA,
&cmdFB,
&cmdFR,
&cmdFT
&cmdFT,
&cmdMD
};
int numCatCommands = sizeof(catCommands) / sizeof(catCommands[0]);