Added [ character as prosign AS for K1EL Winkeyer / N1MM+ compatibility (Thanks, Mark WH7W)
pull/98/head
Anthony Good 2020-06-14 09:40:45 -04:00
rodzic 428ce8d673
commit 5425d5247a
2 zmienionych plików z 67 dodań i 53 usunięć

Wyświetl plik

@ -28,6 +28,8 @@ For help, please post on the Radio Artisan group: https://groups.io/g/radioartis
YouTube Channel: https://www.youtube.com/channel/UC5o8UM1-heT5kJbwnJRkUYg YouTube Channel: https://www.youtube.com/channel/UC5o8UM1-heT5kJbwnJRkUYg
2020 Recipient of the Amateur Radio Software Award https://amateurradiosoftwareaward.github.io/
Wordsworth CW training method created by George Allison, K1IG Wordsworth CW training method created by George Allison, K1IG
English code training word lists from gen_cw_words.pl by Andy Stewart, KB1OIQ English code training word lists from gen_cw_words.pl by Andy Stewart, KB1OIQ
@ -1253,6 +1255,11 @@ Recent Update History
Fixed issue with paddle interruption of stacked memories not being consistent (Thanks, Marcin SP5IOU) Fixed issue with paddle interruption of stacked memories not being consistent (Thanks, Marcin SP5IOU)
\S memory macro now prints space on CLI and LCD display \S memory macro now prints space on CLI and LCD display
2020.06.13.01
HARDWARE_GENERIC_STM32F103C - hard code EEPROM length to account for length() method not being available on this platform
2020.06.14.01
Added [ character as prosign AS for K1EL Winkeyer / N1MM+ compatibility (Thanks, Mark WH7W)
Documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki Documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki
@ -1281,7 +1288,7 @@ If you offer a hardware kit using this software, show your appreciation by sendi
*/ */
#define CODE_VERSION "2020.06.03.03" #define CODE_VERSION "2020.06.14.01"
#define eeprom_magic_number 40 // you can change this number to have the unit re-initialize EEPROM #define eeprom_magic_number 40 // you can change this number to have the unit re-initialize EEPROM
#include <stdio.h> #include <stdio.h>
@ -9245,32 +9252,32 @@ void send_char(byte cw_char, byte omit_letterspace)
if (char_send_mode == CW) { if (char_send_mode == CW) {
switch (cw_char) { switch (cw_char) {
case 'A': send_the_dits_and_dahs(".-");break; case 'A': send_the_dits_and_dahs(".-"); break;
case 'B': send_the_dits_and_dahs("-...");break; case 'B': send_the_dits_and_dahs("-..."); break;
case 'C': send_the_dits_and_dahs("-.-.");break; case 'C': send_the_dits_and_dahs("-.-."); break;
case 'D': send_the_dits_and_dahs("-..");break; case 'D': send_the_dits_and_dahs("-.."); break;
case 'E': send_the_dits_and_dahs(".");break; case 'E': send_the_dits_and_dahs("."); break;
case 'F': send_the_dits_and_dahs("..-.");break; case 'F': send_the_dits_and_dahs("..-."); break;
case 'G': send_the_dits_and_dahs("--.");break; case 'G': send_the_dits_and_dahs("--."); break;
case 'H': send_the_dits_and_dahs("....");break; case 'H': send_the_dits_and_dahs("...."); break;
case 'I': send_the_dits_and_dahs("..");break; case 'I': send_the_dits_and_dahs(".."); break;
case 'J': send_the_dits_and_dahs(".---");break; case 'J': send_the_dits_and_dahs(".---"); break;
case 'K': send_the_dits_and_dahs("-.-");break; case 'K': send_the_dits_and_dahs("-.-"); break;
case 'L': send_the_dits_and_dahs(".-..");break; case 'L': send_the_dits_and_dahs(".-.."); break;
case 'M': send_the_dits_and_dahs("--");break; case 'M': send_the_dits_and_dahs("--"); break;
case 'N': send_the_dits_and_dahs("-.");break; case 'N': send_the_dits_and_dahs("-."); break;
case 'O': send_the_dits_and_dahs("---");break; case 'O': send_the_dits_and_dahs("---"); break;
case 'P': send_the_dits_and_dahs(".--.");break; case 'P': send_the_dits_and_dahs(".--."); break;
case 'Q': send_the_dits_and_dahs("--.-");break; case 'Q': send_the_dits_and_dahs("--.-"); break;
case 'R': send_the_dits_and_dahs(".-.");break; case 'R': send_the_dits_and_dahs(".-."); break;
case 'S': send_the_dits_and_dahs("...");break; case 'S': send_the_dits_and_dahs("..."); break;
case 'T': send_the_dits_and_dahs("-");break; case 'T': send_the_dits_and_dahs("-"); break;
case 'U': send_the_dits_and_dahs("..-");break; case 'U': send_the_dits_and_dahs("..-"); break;
case 'V': send_the_dits_and_dahs("...-");break; case 'V': send_the_dits_and_dahs("...-"); break;
case 'W': send_the_dits_and_dahs(".--");break; case 'W': send_the_dits_and_dahs(".--"); break;
case 'X': send_the_dits_and_dahs("-..-");break; case 'X': send_the_dits_and_dahs("-..-"); break;
case 'Y': send_the_dits_and_dahs("-.--");break; case 'Y': send_the_dits_and_dahs("-.--"); break;
case 'Z': send_the_dits_and_dahs("--..");break; case 'Z': send_the_dits_and_dahs("--.."); break;
case '0': send_the_dits_and_dahs("-----");break; case '0': send_the_dits_and_dahs("-----");break;
case '1': send_the_dits_and_dahs(".----");break; case '1': send_the_dits_and_dahs(".----");break;
@ -9283,31 +9290,33 @@ void send_char(byte cw_char, byte omit_letterspace)
case '8': send_the_dits_and_dahs("---..");break; case '8': send_the_dits_and_dahs("---..");break;
case '9': send_the_dits_and_dahs("----.");break; case '9': send_the_dits_and_dahs("----.");break;
case '=': send_the_dits_and_dahs("-...-");break; case '=': send_the_dits_and_dahs("-...-"); break;
case '/': send_the_dits_and_dahs("-..-.");break; case '/': send_the_dits_and_dahs("-..-."); break;
case '*': send_the_dits_and_dahs("-...-.-"); break;
case '.': send_the_dits_and_dahs(".-.-.-"); break;
case ',': send_the_dits_and_dahs("--..--"); break;
case '!': send_the_dits_and_dahs("--..--"); break; //sp5iou 20180328
//case '!': send_the_dits_and_dahs("-.-.--");break;//sp5iou 20180328
case '\'': send_the_dits_and_dahs(".----."); break; // apostrophe
case '(': send_the_dits_and_dahs("-.--."); break;
case ')': send_the_dits_and_dahs("-.--.-"); break;
case '&': send_the_dits_and_dahs(".-..."); break;
//case '&': send_dit(); loop_element_lengths(3); send_dits(3); break;
case ':': send_the_dits_and_dahs("---..."); break;
case ';': send_the_dits_and_dahs("-.-.-."); break;
case '+': send_the_dits_and_dahs(".-.-."); break;
case '-': send_the_dits_and_dahs("-....-"); break;
case '_': send_the_dits_and_dahs("..--.-"); break;
case '"': send_the_dits_and_dahs(".-..-."); break;
case '$': send_the_dits_and_dahs("...-..-"); break;
case '@': send_the_dits_and_dahs(".--.-."); break;
case '<': send_the_dits_and_dahs(".-.-."); break; // AR
case '>': send_the_dits_and_dahs("...-.-"); break; // SK
case '[': send_the_dits_and_dahs(".-..."); break; // AS (K1EL Winkeyer compability)
case ' ': case ' ':
loop_element_lengths((configuration.length_wordspace-length_letterspace-2),0,configuration.wpm); loop_element_lengths((configuration.length_wordspace-length_letterspace-2),0,configuration.wpm);
break; break;
case '*': send_the_dits_and_dahs("-...-.-");break;
//case '&': send_dit(); loop_element_lengths(3); send_dits(3); break;
case '.': send_the_dits_and_dahs(".-.-.-");break;
case ',': send_the_dits_and_dahs("--..--");break;
case '!': send_the_dits_and_dahs("--..--");break;//sp5iou 20180328
case '\'': send_the_dits_and_dahs(".----.");break;// apostrophe
// case '!': send_the_dits_and_dahs("-.-.--");break;//sp5iou 20180328
case '(': send_the_dits_and_dahs("-.--.");break;
case ')': send_the_dits_and_dahs("-.--.-");break;
case '&': send_the_dits_and_dahs(".-...");break;
case ':': send_the_dits_and_dahs("---...");break;
case ';': send_the_dits_and_dahs("-.-.-.");break;
case '+': send_the_dits_and_dahs(".-.-.");break;
case '-': send_the_dits_and_dahs("-....-");break;
case '_': send_the_dits_and_dahs("..--.-");break;
case '"': send_the_dits_and_dahs(".-..-.");break;
case '$': send_the_dits_and_dahs("...-..-");break;
case '@': send_the_dits_and_dahs(".--.-.");break;
case '<': send_the_dits_and_dahs(".-.-.");break; // AR
case '>': send_the_dits_and_dahs("...-.-");break; // SK
#ifdef OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Contributed by Павел Бирюков, UA1AQC #ifdef OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Contributed by Павел Бирюков, UA1AQC
case 192: send_the_dits_and_dahs(".-");break; //А case 192: send_the_dits_and_dahs(".-");break; //А
@ -17735,8 +17744,14 @@ void initialize_keyer_state(){
switch_to_tx_silent(1); switch_to_tx_silent(1);
#endif #endif
#if !defined(ARDUINO_SAM_DUE) || (defined(ARDUINO_SAM_DUE) && defined(FEATURE_EEPROM_E24C1024)) #if (!defined(ARDUINO_SAM_DUE) || (defined(ARDUINO_SAM_DUE) && defined(FEATURE_EEPROM_E24C1024))) && !defined(HARDWARE_GENERIC_STM32F103C)
memory_area_end = EEPROM.length() - 1; memory_area_end = EEPROM.length() - 1;
#else
#if defined(HARDWARE_GENERIC_STM32F103C)
memory_area_end = 254;
#else
memory_area_end = 1024; // not sure if this is a valid assumption
#endif
#endif #endif
} }

Wyświetl plik

@ -17,7 +17,7 @@
#define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality #define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
#define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this #define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
#define FEATURE_MEMORY_MACROS #define FEATURE_MEMORY_MACROS
// #define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation) #define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
// #define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up // #define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
// #define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command) // #define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
// #define FEATURE_TRAINING_COMMAND_LINE_INTERFACE // #define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
@ -45,7 +45,6 @@
// #define FEATURE_SLEEP // go to sleep after x minutes to conserve battery power (not compatible with Arduino DUE, may have mixed results with Mega and Mega ADK) // #define FEATURE_SLEEP // go to sleep after x minutes to conserve battery power (not compatible with Arduino DUE, may have mixed results with Mega and Mega ADK)
// #define FEATURE_ROTARY_ENCODER // rotary encoder speed control // #define FEATURE_ROTARY_ENCODER // rotary encoder speed control
// #define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING // #define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
// #define FEATURE_HI_PRECISION_LOOP_TIMING
// #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines) // #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles // #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support // #define FEATURE_LED_RING // Mayhew Labs Led Ring support
@ -77,7 +76,7 @@
// #define FEATURE_SINEWAVE_SIDETONE_USING_TIMER_3 // Arduino Mega: sidetone_line = 2, 3, or 5 (Further info: https://www.pjrc.com/teensy/td_libs_TimerOne.html) // #define FEATURE_SINEWAVE_SIDETONE_USING_TIMER_3 // Arduino Mega: sidetone_line = 2, 3, or 5 (Further info: https://www.pjrc.com/teensy/td_libs_TimerOne.html)
//#define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port #define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE #define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
// simultaneously. This will make Winkey emulation be the default at boot up; // simultaneously. This will make Winkey emulation be the default at boot up;
// hold command button down at boot up to activate CLI mode // hold command button down at boot up to activate CLI mode