2.0.2015090402

#include "rotator_language.h"
        OPTION_SAVE_MEMORY_EXCLUDE_REMOTE_CMDS
        /?FS command - Full Status Report
This commit is contained in:
Anthony Good 2015-09-05 07:56:53 -04:00
parent f0fa78eb14
commit d31491476f
16 changed files with 755 additions and 2732 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
#ifndef K3NG_DISPLAY_H
#define K3NG_DISPLAY_H
// K3NG_DISPLAY_LIBRARY_VERSION "1.0.2015071201"
// K3NG_DISPLAY_LIBRARY_VERSION "1.0.2015090401"
#if defined(ARDUINO) && ARDUINO >= 100
@ -80,8 +80,6 @@ unsigned long next_blink_state_transition_time = TEXT_BLINK_MS;
//-----------------------------------------------------------------------------------------------------
K3NGdisplay::K3NGdisplay(int _display_columns, int _display_rows, int _update_time = 1000){
display_columns = _display_columns;
display_rows = _display_rows;

View File

@ -5,7 +5,7 @@
#include "WProgram.h"
#endif
#include "rotator_hardware.h"
#ifdef HARDWARE_EA4TX_ARS_USB
#include "rotator_features_ea4tx_ars_usb.h"
@ -30,7 +30,6 @@
#include "rotator_pins_m0upu.h"
#endif
#ifdef HARDWARE_WB6KCN
//#include "rotator_pins_wb6kcn_az_test_setup.h"
#include "rotator_pins_wb6kcn.h"
#endif
#ifdef HARDWARE_TEST
@ -40,7 +39,7 @@
#include "rotator_pins.h"
#endif
#define K3NG_DISPLAY_LIBRARY_VERSION "1.0.2015071201"
#define K3NG_DISPLAY_LIBRARY_VERSION "1.0.2015090401"
#define MAX_SCREEN_BUFFER_COLUMNS 20
#define MAX_SCREEN_BUFFER_ROWS 4

View File

@ -6,14 +6,14 @@ byte process_backslash_command(byte input_buffer[], int input_buffer_index, byte
static unsigned long serial_led_time = 0;
float tempfloat = 0;
#ifdef UNDER_DEVELOPMENT_REMOTE_UNIT_COMMANDS
#if !defined(OPTION_SAVE_MEMORY_EXCLUDE_REMOTE_CMDS)
float heading = 0;
#endif
#if !defined(FEATURE_AZ_POSITION_ROTARY_ENCODER) && !defined(FEATURE_AZ_POSITION_PULSE_INPUT)
//#if !defined(FEATURE_AZ_POSITION_ROTARY_ENCODER) && !defined(FEATURE_AZ_POSITION_PULSE_INPUT)
long place_multiplier = 0;
byte decimalplace = 0;
#endif
//#endif
#ifdef FEATURE_CLOCK
int temp_year = 0;
@ -472,136 +472,207 @@ byte process_backslash_command(byte input_buffer[], int input_buffer_index, byte
// TODO : one big status query command (get rid of all these little commands)
#ifdef UNDER_DEVELOPMENT_REMOTE_UNIT_COMMANDS
#if !defined(OPTION_SAVE_MEMORY_EXCLUDE_REMOTE_CMDS)
case '?':
strcpy(return_string, "\\!??"); // \\??xxyy - failed response back
if (input_buffer_index == 4){
if ((input_buffer[2] == 'A') && (input_buffer[3] == 'Z')) { // \\AZ - query AZ
if ((input_buffer[2] == 'F') && (input_buffer[3] == 'S')) { // \?FS - Full Status
strcpy(return_string, "\\!OKFS");
// AZ
if ((raw_azimuth/HEADING_MULTIPLIER) < 100) {
strcat(return_string,"0");
}
if ((raw_azimuth/HEADING_MULTIPLIER) < 10) {
strcat(return_string,"0");
}
dtostrf(float(raw_azimuth/(float)HEADING_MULTIPLIER),0,6,temp_string);
strcat(return_string,temp_string);
strcat(return_string,",");
// EL
#if defined(FEATURE_ELEVATION_CONTROL)
if ((elevation/HEADING_MULTIPLIER) >= 0) {
strcat(return_string,"+");
} else {
strcat(return_string,"-");
}
if (abs(elevation/HEADING_MULTIPLIER) < 100) {
strcat(return_string,"0");
}
if (abs(elevation/HEADING_MULTIPLIER) < 10) {
strcat(return_string,"0");
}
dtostrf(float(abs(elevation/(float)HEADING_MULTIPLIER)),0,6,temp_string);
strcat(return_string,temp_string);
#endif // FEATURE_ELEVATION_CONTROL
strcat(return_string,",");
// AS
dtostrf(az_state, 0, 0, temp_string);
strcat(return_string, temp_string);
strcat(return_string,",");
// ES
#if defined(FEATURE_ELEVATION_CONTROL)
dtostrf(el_state, 0, 0, temp_string);
strcat(return_string, temp_string);
#endif
strcat(return_string,",");
// RC
#ifdef FEATURE_GPS
if (latitude < 0){strcat(return_string,"-");} else {strcat(return_string,"+");}
dtostrf(abs(latitude),0,4,temp_string);
strcat(return_string,temp_string);
strcat(return_string,",");
if (longitude < 0){strcat(return_string,"-");} else {strcat(return_string,"+");}
if (longitude < 100){strcat(return_string,"0");}
dtostrf(abs(longitude),0,4,temp_string);
strcat(return_string,temp_string);
#endif //FEATURE_GPS
strcat(return_string,",");
// GS
#ifdef FEATURE_CLOCK
if (clock_status == GPS_SYNC){
strcat(return_string,"1");
} else {
strcat(return_string,"0");
}
#endif //FEATURE_CLOCK
strcat(return_string,",");
#ifdef FEATURE_CLOCK
update_time();
strcat(return_string,clock_string());
#endif //FEATURE_CLOCK
strcat(return_string,";");
}
if ((input_buffer[2] == 'A') && (input_buffer[3] == 'Z')) { // \?AZ - query AZ
strcpy(return_string, "\\!OKAZ");
if ((raw_azimuth/HEADING_MULTIPLIER) < 100) {
strcat(return_string,"0");
}
if ((raw_azimuth/HEADING_MULTIPLIER) < 10) {
strcat(return_string,"0");
}
dtostrf(float(raw_azimuth/(float)HEADING_MULTIPLIER),0,6,temp_string);
strcat(return_string,temp_string);
}
if ((input_buffer[2] == 'E') && (input_buffer[3] == 'L')) { // \?EL - query EL
#ifdef FEATURE_ELEVATION_CONTROL
strcpy(return_string, "\\!OKEL");
if ((elevation/HEADING_MULTIPLIER) >= 0) {
strcat(return_string,"+");
} else {
strcat(return_string,"-");
}
if ((raw_azimuth/HEADING_MULTIPLIER) < 10) {
if (abs(elevation/HEADING_MULTIPLIER) < 100) {
strcat(return_string,"0");
}
dtostrf(float(raw_azimuth/(float)HEADING_MULTIPLIER),0,6,temp_string);
if (abs(elevation/HEADING_MULTIPLIER) < 10) {
strcat(return_string,"0");
}
dtostrf(float(abs(elevation/(float)HEADING_MULTIPLIER)),0,6,temp_string);
strcat(return_string,temp_string);
#else // FEATURE_ELEVATION_CONTROL
strcpy(return_string, "\\!??EL");
#endif //FEATURE_ELEVATION_CONTROL
}
if ((input_buffer[2] == 'A') && (input_buffer[3] == 'S')) { // \?AS - AZ status
strcpy(return_string, "\\!OKAS");
dtostrf(az_state, 0, 0, temp_string);
strcat(return_string, temp_string);
}
if ((input_buffer[2] == 'E') && (input_buffer[3] == 'S')) { // \?ES - EL Status
#ifdef FEATURE_ELEVATION_CONTROL
strcpy(return_string, "\\!OKES");
dtostrf(el_state, 0, 0, temp_string);
strcat(return_string, temp_string);
#else // FEATURE_ELEVATION_CONTROL
strcpy(return_string, "\\!??ES");
#endif //FEATURE_ELEVATION_CONTROL
}
if ((input_buffer[2] == 'P') && (input_buffer[3] == 'G')) { // \?PG - Ping
strcpy(return_string, "\\!OKPG");
}
if ((input_buffer[2] == 'R') && (input_buffer[3] == 'L')) { // \?RL - rotate left
submit_request(AZ, REQUEST_CCW, 0, 121);
strcpy(return_string, "\\!OKRL");
}
if ((input_buffer[2] == 'R') && (input_buffer[3] == 'R')) { // \?RR - rotate right
submit_request(AZ, REQUEST_CW, 0, 122);
strcpy(return_string, "\\!OKRR");
}
if ((input_buffer[2] == 'R') && (input_buffer[3] == 'U')) { // \?RU - elevate up
submit_request(EL, REQUEST_UP, 0, 129);
strcpy(return_string, "\\!OKRU");
}
if ((input_buffer[2] == 'R') && (input_buffer[3] == 'D')) { // \?RD - elevate down
submit_request(EL, REQUEST_DOWN, 0, 130);
strcpy(return_string, "\\!OKRD");
}
#ifdef FEATURE_GPS
if ((input_buffer[2] == 'R') && (input_buffer[3] == 'C')) { // \?RC - Read coordinates
strcpy(return_string,"\\!OKRC");
if (latitude < 0){strcat(return_string,"-");} else {strcat(return_string,"+");}
dtostrf(abs(latitude),0,4,temp_string);
strcat(return_string,temp_string);
strcat(return_string," ");
if (longitude < 0){strcat(return_string,"-");} else {strcat(return_string,"+");}
if (longitude < 100){strcat(return_string,"0");}
dtostrf(abs(longitude),0,4,temp_string);
strcat(return_string,temp_string);
}
if ((input_buffer[2] == 'E') && (input_buffer[3] == 'L')) { // \\EL - query EL
#ifdef FEATURE_ELEVATION_CONTROL
strcpy(return_string, "\\!OKEL");
if ((elevation/HEADING_MULTIPLIER) >= 0) {
strcat(return_string,"+");
} else {
strcat(return_string,"-");
}
if (abs(elevation/HEADING_MULTIPLIER) < 100) {
strcat(return_string,"0");
}
if (abs(elevation/HEADING_MULTIPLIER) < 10) {
strcat(return_string,"0");
}
dtostrf(float(abs(elevation/(float)HEADING_MULTIPLIER)),0,6,temp_string);
strcat(return_string,temp_string);
#else // FEATURE_ELEVATION_CONTROL
strcpy(return_string, "\\!??EL");
#endif //FEATURE_ELEVATION_CONTROL
#endif //FEATURE_GPS
#ifdef FEATURE_CLOCK
if ((input_buffer[2] == 'G') && (input_buffer[3] == 'S')) { // \?GS - query GPS sync
strcpy(return_string,"\\!OKGS");
if (clock_status == GPS_SYNC){
strcat(return_string,"1");
} else {
strcat(return_string,"0");
}
}
if ((input_buffer[2] == 'A') && (input_buffer[3] == 'S')) { // \\AS - AZ status
strcpy(return_string, "\\!OKAS");
dtostrf(az_state, 0, 0, temp_string);
strcat(return_string, temp_string);
}
if ((input_buffer[2] == 'E') && (input_buffer[3] == 'S')) { // \\ES - EL Status
#ifdef FEATURE_ELEVATION_CONTROL
strcpy(return_string, "\\!OKES");
dtostrf(el_state, 0, 0, temp_string);
strcat(return_string, temp_string);
#else // FEATURE_ELEVATION_CONTROL
strcpy(return_string, "\\!??ES");
#endif //FEATURE_ELEVATION_CONTROL
}
if ((input_buffer[2] == 'P') && (input_buffer[3] == 'G')) { // \\PG - Ping
strcpy(return_string, "\\!OKPG");
}
if ((input_buffer[2] == 'R') && (input_buffer[3] == 'L')) { // \\RL - rotate left
submit_request(AZ, REQUEST_CCW, 0, 121);
strcpy(return_string, "\\!OKRL");
}
if ((input_buffer[2] == 'R') && (input_buffer[3] == 'R')) { // \\RR - rotate right
submit_request(AZ, REQUEST_CW, 0, 122);
strcpy(return_string, "\\!OKRL");
}
if ((input_buffer[2] == 'R') && (input_buffer[3] == 'U')) { // \\RU - elevate up
submit_request(EL, REQUEST_UP, 0, 129);
strcpy(return_string, "\\!OKRU");
}
if ((input_buffer[2] == 'R') && (input_buffer[3] == 'D')) { // \\RD - elevate down
submit_request(EL, REQUEST_DOWN, 0, 130);
strcpy(return_string, "\\!OKRD");
}
#ifdef FEATURE_GPS
if ((input_buffer[2] == 'R') && (input_buffer[3] == 'C')) { // \\RC - Read coordinates
strcpy(return_string,"\\!OKRC");
if (latitude < 0){strcat(return_string,"-");} else {strcat(return_string,"+");}
dtostrf(abs(latitude),0,4,temp_string);
strcat(return_string,temp_string);
strcat(return_string," ");
if (longitude < 0){strcat(return_string,"-");} else {strcat(return_string,"+");}
if (longitude < 100){strcat(return_string,"0");}
dtostrf(abs(longitude),0,4,temp_string);
strcat(return_string,temp_string);
}
#endif //FEATURE_GPS
#endif //FEATURE_CLOCK
if ((input_buffer[2] == 'S') && (input_buffer[3] == 'A')) { // \?SA - stop azimuth rotation
submit_request(AZ, REQUEST_STOP, 0, 124);
strcpy(return_string,"\\!OKSA");
}
if ((input_buffer[2] == 'S') && (input_buffer[3] == 'E')) { // \?SE - stop elevation rotation
#ifdef FEATURE_ELEVATION_CONTROL
submit_request(EL, REQUEST_STOP, 0, 125);
#endif
strcpy(return_string,"\\!OKSE");
}
if ((input_buffer[2] == 'S') && (input_buffer[3] == 'S')) { // \?SS - stop all rotation
submit_request(AZ, REQUEST_STOP, 0, 124);
#ifdef FEATURE_ELEVATION_CONTROL
submit_request(EL, REQUEST_STOP, 0, 125);
#endif
strcpy(return_string,"\\!OKSS");
}
if ((input_buffer[2] == 'C') && (input_buffer[3] == 'L')) { // \?CL - read the clock
#ifdef FEATURE_CLOCK
if ((input_buffer[2] == 'G') && (input_buffer[3] == 'S')) { // \\GS - query GPS sync
strcpy(return_string,"\\!OKGS");
if (clock_status == GPS_SYNC){
strcat(return_string,"1");
} else {
strcat(return_string,"0");
}
}
#endif //FEATURE_CLOCK
strcpy(return_string,"\\!OKCL");
update_time();
strcat(return_string,clock_string());
#else //FEATURE_CLOCK
strcpy(return_string,"\\!??CL");
#endif //FEATURE_CLOCK
}
if ((input_buffer[2] == 'S') && (input_buffer[3] == 'A')) { // \\SA - stop azimuth rotation
submit_request(AZ, REQUEST_STOP, 0, 124);
strcpy(return_string,"\\!OKSA");
}
if ((input_buffer[2] == 'S') && (input_buffer[3] == 'E')) { // \\SE - stop elevation rotation
#ifdef FEATURE_ELEVATION_CONTROL
submit_request(EL, REQUEST_STOP, 0, 125);
#endif
strcpy(return_string,"\\!OKSE");
}
if ((input_buffer[2] == 'S') && (input_buffer[3] == 'S')) { // \\SS - stop all rotation
submit_request(AZ, REQUEST_STOP, 0, 124);
#ifdef FEATURE_ELEVATION_CONTROL
submit_request(EL, REQUEST_STOP, 0, 125);
#endif
strcpy(return_string,"\\!OKSS");
}
if ((input_buffer[2] == 'C') && (input_buffer[3] == 'L')) { // \\CL - read the clock
#ifdef FEATURE_CLOCK
strcpy(return_string,"\\!OKCL");
update_time();
strcat(return_string,clock_string());
#else //FEATURE_CLOCK
strcpy(return_string,"\\!??CL");
#endif //FEATURE_CLOCK
}
if ((input_buffer[2] == 'R') && (input_buffer[3] == 'B')) { // \\RB - reboot
wdt_enable(WDTO_30MS); while (1) {} //ZZZZZZ - TODO - change to reboot flag
}
if ((input_buffer[2] == 'R') && (input_buffer[3] == 'B')) { // \?RB - reboot
wdt_enable(WDTO_30MS); while (1) {} //ZZZZZZ - TODO - change to reboot flag
}
} //if (input_buffer_index == 4)
} //if (input_buffer_index == 4)
if (input_buffer_index == 6){
if ((input_buffer[2] == 'D') && (input_buffer[3] == 'O')) { // \\DOxx - digital pin initialize as output; xx = pin # (01, 02, A0,etc.)
if ((input_buffer[2] == 'D') && (input_buffer[3] == 'O')) { // \?DOxx - digital pin initialize as output; xx = pin # (01, 02, A0,etc.)
if ((((input_buffer[4] > 47) && (input_buffer[4] < 58)) || (toupper(input_buffer[4]) == 'A')) && (input_buffer[5] > 47) && (input_buffer[5] < 58)) {
byte pin_value = 0;
if (toupper(input_buffer[4]) == 'A') {
@ -614,7 +685,7 @@ byte process_backslash_command(byte input_buffer[], int input_buffer_index, byte
}
}
if ((input_buffer[2] == 'D') && ((input_buffer[3] == 'H') || (input_buffer[3] == 'L'))) { // \\DLxx - digital pin write low; xx = pin # \\DHxx - digital pin write high; xx = pin #
if ((input_buffer[2] == 'D') && ((input_buffer[3] == 'H') || (input_buffer[3] == 'L'))) { // \?DLxx - digital pin write low; xx = pin # \\DHxx - digital pin write high; xx = pin #
if ((((input_buffer[4] > 47) && (input_buffer[4] < 58)) || (toupper(input_buffer[4]) == 'A')) && (input_buffer[5] > 47) && (input_buffer[5] < 58)) {
byte pin_value = 0;
if (toupper(input_buffer[4]) == 'A') {
@ -647,7 +718,7 @@ Not implemented yet:
*/
if ((input_buffer[2] == 'D') && (input_buffer[3] == 'I')) { // \\DIxx - digital pin initialize as input; xx = pin #
if ((input_buffer[2] == 'D') && (input_buffer[3] == 'I')) { // \?DIxx - digital pin initialize as input; xx = pin #
if ((((input_buffer[4] > 47) && (input_buffer[4] < 58)) || (toupper(input_buffer[4]) == 'A')) && (input_buffer[5] > 47) && (input_buffer[5] < 58)) {
byte pin_value = 0;
if (toupper(input_buffer[4]) == 'A') {
@ -660,7 +731,7 @@ Not implemented yet:
}
}
if ((input_buffer[2] == 'D') && (input_buffer[3] == 'P')) { // \\DPxx - digital pin initialize as input with pullup; xx = pin #
if ((input_buffer[2] == 'D') && (input_buffer[3] == 'P')) { // \?DPxx - digital pin initialize as input with pullup; xx = pin #
if ((((input_buffer[4] > 47) && (input_buffer[4] < 58)) || (toupper(input_buffer[4]) == 'A')) && (input_buffer[5] > 47) && (input_buffer[5] < 58)) {
byte pin_value = 0;
if (toupper(input_buffer[4]) == 'A') {
@ -674,7 +745,7 @@ Not implemented yet:
}
}
if ((input_buffer[2] == 'D') && (input_buffer[3] == 'R')) { // \\DRxx - digital pin read; xx = pin #
if ((input_buffer[2] == 'D') && (input_buffer[3] == 'R')) { // \?DRxx - digital pin read; xx = pin #
if ((((input_buffer[4] > 47) && (input_buffer[4] < 58)) || (toupper(input_buffer[4]) == 'A')) && (input_buffer[5] > 47) && (input_buffer[5] < 58)) {
byte pin_value = 0;
if (toupper(input_buffer[4]) == 'A') {
@ -695,7 +766,7 @@ Not implemented yet:
}
}
}
if ((input_buffer[2] == 'A') && (input_buffer[3] == 'R')) { // \\ARxx - analog pin read; xx = pin #
if ((input_buffer[2] == 'A') && (input_buffer[3] == 'R')) { // \?ARxx - analog pin read; xx = pin #
if ((((input_buffer[4] > 47) && (input_buffer[4] < 58)) || (toupper(input_buffer[4]) == 'A')) && (input_buffer[5] > 47) && (input_buffer[5] < 58)) {
byte pin_value = 0;
if (toupper(input_buffer[4]) == 'A') {
@ -728,7 +799,7 @@ Not implemented yet:
}
}
if ((input_buffer[2] == 'N') && (input_buffer[3] == 'T')) { // \\NTxx - no tone; xx = pin #
if ((input_buffer[2] == 'N') && (input_buffer[3] == 'T')) { // \?NTxx - no tone; xx = pin #
byte pin_value = 0;
if (toupper(input_buffer[4]) == 'A') {
pin_value = get_analog_pin(input_buffer[5] - 48);
@ -745,7 +816,7 @@ Not implemented yet:
if (input_buffer_index == 9) {
if ((input_buffer[2] == 'G') && (input_buffer[3] == 'A')) { // \\GAxxx.x - go to AZ xxx.x
if ((input_buffer[2] == 'G') && (input_buffer[3] == 'A')) { // \?GAxxx.x - go to AZ xxx.x
heading = ((input_buffer[4] - 48) * 100.) + ((input_buffer[5] - 48) * 10.) + (input_buffer[6] - 48.) + ((input_buffer[8] - 48) / 10.);
if (((heading >= 0) && (heading < 451)) && (input_buffer[7] == '.')) {
submit_request(AZ, REQUEST_AZIMUTH, (heading * HEADING_MULTIPLIER), 136);
@ -754,7 +825,7 @@ Not implemented yet:
strcpy(return_string,"\\!??GA");
}
}
if ((input_buffer[2] == 'G') && (input_buffer[3] == 'E')) { // \\GExxx.x - go to EL
if ((input_buffer[2] == 'G') && (input_buffer[3] == 'E')) { // \?GExxx.x - go to EL
#ifdef FEATURE_ELEVATION_CONTROL
heading = ((input_buffer[4] - 48) * 100.) + ((input_buffer[5] - 48) * 10.) + (input_buffer[5] - 48) + ((input_buffer[8] - 48) / 10.);
if (((heading >= 0) && (heading < 181)) && (input_buffer[7] == '.')) {
@ -769,7 +840,7 @@ Not implemented yet:
}
if ((input_buffer[2] == 'A') && (input_buffer[3] == 'W')) { // \\AWxxyyy - analog pin write; xx = pin #, yyy = value to write (0 - 255)
if ((input_buffer[2] == 'A') && (input_buffer[3] == 'W')) { // \?AWxxyyy - analog pin write; xx = pin #, yyy = value to write (0 - 255)
if ((((input_buffer[4] > 47) && (input_buffer[4] < 58)) || (toupper(input_buffer[4]) == 'A')) && (input_buffer[5] > 47) && (input_buffer[5] < 58)) {
byte pin_value = 0;
if (toupper(input_buffer[4]) == 'A') {
@ -787,7 +858,7 @@ Not implemented yet:
} //if (input_buffer_index == 9)
if (input_buffer_index == 10) {
if ((input_buffer[2] == 'D') && (input_buffer[3] == 'T')) { // \\DTxxyyyy - digital pin tone output; xx = pin #, yyyy = frequency
if ((input_buffer[2] == 'D') && (input_buffer[3] == 'T')) { // \?DTxxyyyy - digital pin tone output; xx = pin #, yyyy = frequency
if ((((input_buffer[4] > 47) && (input_buffer[4] < 58)) || (toupper(input_buffer[4]) == 'A')) && (input_buffer[5] > 47) && (input_buffer[5] < 58)) {
byte pin_value = 0;
if (toupper(input_buffer[4]) == 'A') {
@ -812,15 +883,15 @@ Not implemented yet:
#endif //UNDER_DEVELOPMENT_REMOTE_UNIT_COMMANDS
#endif //!defined(OPTION_SAVE_MEMORY_EXCLUDE_REMOTE_CMDS)
default: strcpy(return_string, "Error.");
} /* switch */
} /* process_backslash_command */
} // switch
} // process_backslash_command
//-----------------------------------------------------------------------

View File

@ -11,7 +11,7 @@ void service_ethernet(){
static long last_received_byte0 = 0;
#ifdef FEATURE_REMOTE_UNIT_SLAVE
static byte preamble_received = 0;
static byte preamble_received = 0;
#endif //FEATURE_REMOTE_UNIT_SLAVE
/* this is the server side (receiving bytes from a client such as a master unit receiving commands from a computer
@ -24,7 +24,7 @@ void service_ethernet(){
if ((ethernet_port_buffer_index0) && ((millis()-last_received_byte0) > ETHERNET_MESSAGE_TIMEOUT_MS)){
ethernet_port_buffer_index0 = 0;
#ifdef FEATURE_REMOTE_UNIT_SLAVE
preamble_received = 0;
preamble_received = 0;
#endif //FEATURE_REMOTE_UNIT_SLAVE
}
@ -58,27 +58,27 @@ void service_ethernet(){
char ethernet_preamble[] = ETHERNET_PREAMBLE;
#ifdef FEATURE_REMOTE_UNIT_SLAVE
if (preamble_received < 254){ // the master/slave ethernet link has each message prefixed with a preamble
if (ethernet_preamble[preamble_received] == 0){
preamble_received = 254;
} else {
if (incoming_byte == ethernet_preamble[preamble_received]){
preamble_received++;
if (preamble_received < 254){ // the master/slave ethernet link has each message prefixed with a preamble
if (ethernet_preamble[preamble_received] == 0){
preamble_received = 254;
} else {
preamble_received = 0;
if (incoming_byte == ethernet_preamble[preamble_received]){
preamble_received++;
} else {
preamble_received = 0;
}
}
}
}
// add it to the buffer if it's not a line feed or carriage return and we've received the preamble
if ((incoming_byte != 10) && (incoming_byte != 13) && (preamble_received == 254)) {
ethernet_port_buffer0[ethernet_port_buffer_index0] = incoming_byte;
ethernet_port_buffer_index0++;
// add it to the buffer if it's not a line feed or carriage return and we've received the preamble
if ((incoming_byte != 10) && (incoming_byte != 13) && (preamble_received == 254)) {
ethernet_port_buffer0[ethernet_port_buffer_index0] = incoming_byte;
ethernet_port_buffer_index0++;
}
#else
if ((incoming_byte != 10) && (incoming_byte != 13)) { // add it to the buffer if it's not a line feed or carriage return
ethernet_port_buffer0[ethernet_port_buffer_index0] = incoming_byte;
ethernet_port_buffer_index0++;
}
if ((incoming_byte != 10) && (incoming_byte != 13)) { // add it to the buffer if it's not a line feed or carriage return
ethernet_port_buffer0[ethernet_port_buffer_index0] = incoming_byte;
ethernet_port_buffer_index0++;
}
#endif //FEATURE_REMOTE_UNIT_SLAVE

View File

@ -5,21 +5,22 @@
*/
/* main features */
#define FEATURE_ELEVATION_CONTROL // uncomment this for AZ/EL rotators
#define FEATURE_YAESU_EMULATION // uncomment this for Yaesu GS-232 emulation on control port
//#define FEATURE_EASYCOM_EMULATION // Easycom protocol emulation on control port (undefine FEATURE_YAESU_EMULATION above)
#define FEATURE_MOON_TRACKING
#define FEATURE_SUN_TRACKING
#define FEATURE_CLOCK
#define FEATURE_GPS
#define FEATURE_RTC_DS1307
//#define FEATURE_ELEVATION_CONTROL // uncomment this for AZ/EL rotators
#define FEATURE_YAESU_EMULATION // uncomment this for Yaesu GS-232 emulation on control port
//#define FEATURE_EASYCOM_EMULATION // Easycom protocol emulation on control port (undefine FEATURE_YAESU_EMULATION above)
//#define FEATURE_MOON_TRACKING
//#define FEATURE_SUN_TRACKING
//#define FEATURE_CLOCK
//#define FEATURE_GPS
//#define FEATURE_RTC_DS1307
//#define FEATURE_RTC_PCF8583
#define FEATURE_ETHERNET
#define FEATURE_STEPPER_MOTOR // requires Mega or an AVR with Timer 5 support
//#define FEATURE_ETHERNET
//#define FEATURE_STEPPER_MOTOR // requires Mega or an AVR with Timer 5 support
//#define FEATURE_AUTOCORRECT
#define LANGUAGE_ENGLISH
#define LANGUAGE_ENGLISH // all languages customized in rotator_language.h
//#define LANGUAGE_SPANISH
//#define LANGUAGE_CZECH
//#define LANGUAGE_ITALIAN
@ -45,7 +46,7 @@
//#define FEATURE_AZ_POSITION_INCREMENTAL_ENCODER
//#define FEATURE_AZ_POSITION_A2_ABSOLUTE_ENCODER
#define FEATURE_EL_POSITION_POTENTIOMETER
//#define FEATURE_EL_POSITION_POTENTIOMETER
//#define FEATURE_EL_POSITION_ROTARY_ENCODER
//#define FEATURE_EL_POSITION_PULSE_INPUT
//#define FEATURE_EL_POSITION_ADXL345_USING_LOVE_ELECTRON_LIB // Uncomment for elevation ADXL345 accelerometer support using ADXL345 library
@ -58,7 +59,8 @@
//#define FEATURE_EL_POSITION_MEMSIC_2125
//#define FEATURE_EL_POSITION_A2_ABSOLUTE_ENCODER
#define FEATURE_4_BIT_LCD_DISPLAY //Uncomment for classic 4 bit LCD display (most common)
// All displays require k3ngdisplay.h and k3ngdisplay.cpp in the ino directory!
//#define FEATURE_4_BIT_LCD_DISPLAY // Uncomment for classic 4 bit LCD display (most common)
//#define FEATURE_ADAFRUIT_I2C_LCD
//#define FEATURE_ADAFRUIT_BUTTONS // Uncomment this to use Adafruit I2C LCD buttons for manual AZ/EL instead of normal buttons
//#define FEATURE_YOURDUINO_I2C_LCD
@ -112,6 +114,8 @@
//#define OPTION_BUTTON_RELEASE_NO_SLOWDOWN // disables slowdown when CW or CCW button is released, or stop button is depressed
#define OPTION_SYNC_RTC_TO_GPS // if both realtime clock and GPS are present, synchronize realtime clock to GPS
#define OPTION_DISPLAY_STATUS
#define OPTION_DISPLAY_HEADING
#define OPTION_DISPLAY_HHMM_CLOCK // display HH:MM clock (set position with #define LCD_HHMM_CLOCK_POSITION)
//#define OPTION_DISPLAY_HHMMSS_CLOCK // display HH:MM:SS clock (set position with #define LCD_HHMMSS_CLOCK_POSITION)
//#define OPTION_DISPLAY_ALT_HHMM_CLOCK_AND_MAIDENHEAD // display alternating HH:MM clock and maidenhead on LCD row 1 (set position with #define LCD_HHMMCLOCK_POSITION)
@ -124,6 +128,7 @@
#define OPTION_DISPLAY_SUN_TRACKING_CONTINUOUSLY
//#define OPTION_DISPLAY_MOON_OR_SUN_TRACKING_CONDITIONAL
#define OPTION_DISPLAY_VERSION_ON_STARTUP //code provided by Paolo, IT9IPQ
//#define OPTION_LCD_HEADING_FIELD_FIXED_DECIMAL_PLACE
//#define FEATURE_POWER_SWITCH
//#define OPTION_EXTERNAL_ANALOG_REFERENCE //Activate external analog voltage reference (needed for RemoteQTH.com unit)
@ -137,39 +142,7 @@
//#define OPTION_EL_PULSE_DEBOUNCE
//#define OPTION_SCANCON_2RMHF3600_INC_ENCODER // use with FEATURE_AZ_POSITION_INCREMENTAL_ENCODER and/or FEATURE_EL_POSITION_INCREMENTAL_ENCODER if using the ScanCon 2RMHF3600 incremental encoder
//#define OPTION_RESET_METHOD_JMP_ASM_0
/**************** this section is for code under development ********************************/
//#define UNDER_DEVELOPMENT_REMOTE_UNIT_COMMANDS
#define UNDER_DEVELOPMENT_K3NGDISPLAY_LIBRARY
#define OPTION_DISPLAY_STATUS
#define OPTION_DISPLAY_HEADING
#define LCD_HEADING_ROW 2
#define LCD_HEADING_FIELD_SIZE 20
//#define OPTION_LCD_HEADING_FIELD_FIXED_DECIMAL_PLACE
#define LCD_STATUS_ROW 1
#define LCD_STATUS_FIELD_SIZE 20
#define LCD_DIRECTION_ROW 1
#define LCD_HHMMSS_CLOCK_ROW 1
#define LCD_HHMM_CLOCK_ROW 1
#define PARKING_STRING "PARKING"
#define PARKED_STRING "PARKED"
#define PARKING_STATUS_DISPLAY_TIME_MS 5000
// TODO - eliminate unused strings from settings files
/**************** end of section for code under development ********************************/
/*
Note:
Ham Radio Deluxe expects AZ and EL in output for Yaesu C command in AZ/EL mode. I'm not sure if this is default behavior for
the Yaesu interface since the C2 command is supposed to be for AZ and EL. If you have problems with other software with this code in AZ/EL mode,
uncomment #define OPTION_C_COMMAND_SENDS_AZ_AND_EL.
*/
//#define OPTION_SAVE_MEMORY_EXCLUDE_REMOTE_CMDS
/* ---------------------- debug stuff - don't touch unless you know what you are doing --------------------------- */

View File

@ -38,21 +38,11 @@
//#define FEATURE_POWER_SWITCH
//#define OPTION_EXTERNAL_ANALOG_REFERENCE //Activate external analog voltage reference (needed for RemoteQTH.com unit)
#define OPTION_DISPLAY_DIRECTION_STATUS
#define OPTION_SAVE_MEMORY_EXCLUDE_REMOTE_CMDS
/*
Note:
Ham Radio Deluxe expects AZ and EL in output for Yaesu C command in AZ/EL mode. I'm not sure if this is default behavior for
the Yaesu interface since the C2 command is supposed to be for AZ and EL. If you have problems with other software with this code in AZ/EL mode,
uncomment #define OPTION_C_COMMAND_SENDS_AZ_AND_EL.
*/
/* ---------------------- debug stuff - don't touch unless you know what you are doing --------------------------- */

View File

@ -132,33 +132,7 @@
//#define OPTION_EL_PULSE_DEBOUNCE
//#define OPTION_SCANCON_2RMHF3600_INC_ENCODER // use with FEATURE_AZ_POSITION_INCREMENTAL_ENCODER and/or FEATURE_EL_POSITION_INCREMENTAL_ENCODER if using the ScanCon 2RMHF3600 incremental encoder
//#define OPTION_RESET_METHOD_JMP_ASM_0
//#define UNDER_DEVELOPMENT_REMOTE_UNIT_COMMANDS
#define UNDER_DEVELOPMENT_K3NGDISPLAY_LIBRARY
//#define OPTION_DISPLAY_STATUS_TERSE // TODO - rename this
#define OPTION_DISPLAY_HEADING
#define LCD_HEADING_ROW 2
#define LCD_HEADING_FIELD_SIZE 20
//#define OPTION_LCD_HEADING_FIELD_FIXED_DECIMAL_PLACE
#define LCD_STATUS_ROW 1
#define LCD_STATUS_FIELD_SIZE 20
#define LCD_DIRECTION_ROW 1
#define LCD_HHMMSS_CLOCK_ROW 1
#define LCD_HHMM_CLOCK_ROW 1
#define PARKING_STRING "PARKING"
#define PARKED_STRING "PARKED"
#define PARKING_STATUS_DISPLAY_TIME_MS 5000
/*
Note:
Ham Radio Deluxe expects AZ and EL in output for Yaesu C command in AZ/EL mode. I'm not sure if this is default behavior for
the Yaesu interface since the C2 command is supposed to be for AZ and EL. If you have problems with other software with this code in AZ/EL mode,
uncomment #define OPTION_C_COMMAND_SENDS_AZ_AND_EL.
*/
#define OPTION_SAVE_MEMORY_EXCLUDE_REMOTE_CMDS
/* ---------------------- debug stuff - don't touch unless you know what you are doing --------------------------- */

View File

@ -1,30 +1,30 @@
/*
TEST Hardware !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! TEST Hardware !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
*/
/* main features */
#define FEATURE_ELEVATION_CONTROL // uncomment this for AZ/EL rotators
#define FEATURE_YAESU_EMULATION // uncomment this for Yaesu GS-232 emulation on control port
//#define FEATURE_EASYCOM_EMULATION // Easycom protocol emulation on control port (undefine FEATURE_YAESU_EMULATION above)
//#define FEATURE_MOON_TRACKING
//#define FEATURE_SUN_TRACKING
//#define FEATURE_CLOCK
//#define FEATURE_GPS
//#define FEATURE_RTC_DS1307
#define FEATURE_MOON_TRACKING
#define FEATURE_SUN_TRACKING
#define FEATURE_CLOCK
#define FEATURE_GPS
#define FEATURE_RTC_DS1307
//#define FEATURE_RTC_PCF8583
//#define FEATURE_ETHERNET
//#define FEATURE_STEPPER_MOTOR // requires Mega or an AVR with Timer 5 support
//#define FEATURE_AUTOCORRECT
#define LANGUAGE_ENGLISH
#define LANGUAGE_ENGLISH // all languages customized in rotator_language.h
//#define LANGUAGE_SPANISH
//#define LANGUAGE_CZECH
//#define LANGUAGE_ITALIAN
//#define LANGUAGE_PORTUGUESE_BRASIL
//#define LANGUAGE_GERMAN
/* master and remote slave unit functionality */
//#define FEATURE_REMOTE_UNIT_SLAVE // uncomment this to make this unit a remote unit controlled by a host unit
@ -43,6 +43,7 @@
//#define FEATURE_AZ_POSITION_POLOLU_LSM303 // Uncomment for azimuth using LSM303 compass and Polulu library
//#define FEATURE_AZ_POSITION_HH12_AS5045_SSI
//#define FEATURE_AZ_POSITION_INCREMENTAL_ENCODER
//#define FEATURE_AZ_POSITION_A2_ABSOLUTE_ENCODER
#define FEATURE_EL_POSITION_POTENTIOMETER
//#define FEATURE_EL_POSITION_ROTARY_ENCODER
@ -55,21 +56,24 @@
//#define FEATURE_EL_POSITION_HH12_AS5045_SSI
//#define FEATURE_EL_POSITION_INCREMENTAL_ENCODER
//#define FEATURE_EL_POSITION_MEMSIC_2125
//#define FEATURE_EL_POSITION_A2_ABSOLUTE_ENCODER
#define FEATURE_4_BIT_LCD_DISPLAY //Uncomment for classic 4 bit LCD display (most common)
// All displays require k3ngdisplay.h and k3ngdisplay.cpp in the ino directory!
#define FEATURE_4_BIT_LCD_DISPLAY // Uncomment for classic 4 bit LCD display (most common)
//#define FEATURE_ADAFRUIT_I2C_LCD
//#define FEATURE_ADAFRUIT_BUTTONS // Uncomment this to use Adafruit I2C LCD buttons for manual AZ/EL instead of normal buttons
//#define FEATURE_YOURDUINO_I2C_LCD
//#define FEATURE_RFROBOT_I2C_DISPLAY
//#define FEATURE_ANALOG_OUTPUT_PINS
//#define FEATURE_YWROBOT_I2C_DISPLAY
//#define FEATURE_ANALOG_OUTPUT_PINS
//#define FEATURE_SUN_PUSHBUTTON_AZ_EL_CALIBRATION
//#define FEATURE_MOON_PUSHBUTTON_AZ_EL_CALIBRATION
/* preset rotary encoder features and options */
//#define FEATURE_AZ_PRESET_ENCODER // Uncomment for Rotary Encoder Azimuth Preset support
//#define FEATURE_EL_PRESET_ENCODER // Uncomment for Rotary Encoder Elevation Preset support (requires FEATURE_AZ_PRESET_ENCODER above)
#define FEATURE_AZ_PRESET_ENCODER // Uncomment for Rotary Encoder Azimuth Preset support
#define FEATURE_EL_PRESET_ENCODER // Uncomment for Rotary Encoder Elevation Preset support (requires FEATURE_AZ_PRESET_ENCODER above)
#define OPTION_ENCODER_HALF_STEP_MODE
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups on rotary encoder pins
#define OPTION_INCREMENTAL_ENCODER_PULLUPS // define to enable weak pullups on 3 phase incremental rotary encoder pins
@ -108,18 +112,23 @@
//#define OPTION_PULSE_IGNORE_AMBIGUOUS_PULSES // for azimuth and elevation position pulse input feature, ignore pulses that arrive when no rotation is active
//#define OPTION_BUTTON_RELEASE_NO_SLOWDOWN // disables slowdown when CW or CCW button is released, or stop button is depressed
#define OPTION_SYNC_RTC_TO_GPS // if both realtime clock and GPS are present, synchronize realtime clock to GPS
//#define OPTION_DISPLAY_HHMM_CLOCK // display HH:MM clock on LCD row 1 (set position with #define LCD_HHMM_CLOCK_POSITION)
//#define OPTION_DISPLAY_HHMMSS_CLOCK // display HH:MM:SS clock on LCD row 1 (set position with #define LCD_HHMMSS_CLOCK_POSITION)
#define OPTION_DISPLAY_STATUS
#define OPTION_DISPLAY_HEADING
#define OPTION_DISPLAY_HHMM_CLOCK // display HH:MM clock (set position with #define LCD_HHMM_CLOCK_POSITION)
//#define OPTION_DISPLAY_HHMMSS_CLOCK // display HH:MM:SS clock (set position with #define LCD_HHMMSS_CLOCK_POSITION)
//#define OPTION_DISPLAY_ALT_HHMM_CLOCK_AND_MAIDENHEAD // display alternating HH:MM clock and maidenhead on LCD row 1 (set position with #define LCD_HHMMCLOCK_POSITION)
//#define OPTION_DISPLAY_CONSTANT_HHMMSS_CLOCK_AND_MAIDENHEAD // display constant HH:MM:SS clock and maidenhead on LCD row 1 (set position with #define LCD_CONSTANT_HHMMSSCLOCK_MAIDENHEAD_POSITION)
//#define OPTION_DISPLAY_BIG_CLOCK // display date & time clock (set row with #define LCD_BIG_CLOCK_ROW)
//#define OPTION_CLOCK_ALWAYS_HAVE_HOUR_LEADING_ZERO
//#define OPTION_DISPLAY_GPS_INDICATOR // display GPS indicator on LCD - set position with LCD_GPS_INDICATOR_POSITION and LCD_GPS_INDICATOR_ROW
//#define OPTION_DISPLAY_MOON_TRACKING_CONTINUOUSLY
//#define OPTION_DISPLAY_DIRECTION_STATUS // N, W, E, S, NW, etc. direction indicator in row 1 center
//#define OPTION_DISPLAY_SUN_TRACKING_CONTINUOUSLY
#define OPTION_DISPLAY_GPS_INDICATOR // display GPS indicator on LCD - set position with LCD_GPS_INDICATOR_POSITION and LCD_GPS_INDICATOR_ROW
#define OPTION_DISPLAY_MOON_TRACKING_CONTINUOUSLY
//#define OPTION_DISPLAY_DIRECTION_STATUS // N, W, E, S, NW, etc. direction indicator
#define OPTION_DISPLAY_SUN_TRACKING_CONTINUOUSLY
//#define OPTION_DISPLAY_MOON_OR_SUN_TRACKING_CONDITIONAL
//#define OPTION_DISPLAY_VERSION_ON_STARTUP //code provided by Paolo, IT9IPQ
#define OPTION_DISPLAY_VERSION_ON_STARTUP //code provided by Paolo, IT9IPQ
//#define OPTION_LCD_HEADING_FIELD_FIXED_DECIMAL_PLACE
//#define FEATURE_POWER_SWITCH
//#define OPTION_EXTERNAL_ANALOG_REFERENCE //Activate external analog voltage reference (needed for RemoteQTH.com unit)
//#define OPTION_SYNC_MASTER_CLOCK_TO_SLAVE // use when GPS unit is connected to slave unit and you want to synchronize the master unit clock to the slave unit GPS clock
@ -132,36 +141,8 @@
//#define OPTION_EL_PULSE_DEBOUNCE
//#define OPTION_SCANCON_2RMHF3600_INC_ENCODER // use with FEATURE_AZ_POSITION_INCREMENTAL_ENCODER and/or FEATURE_EL_POSITION_INCREMENTAL_ENCODER if using the ScanCon 2RMHF3600 incremental encoder
//#define OPTION_RESET_METHOD_JMP_ASM_0
//#define OPTION_SAVE_MEMORY_EXCLUDE_REMOTE_CMDS
/**************** this section is for code under development ********************************/
//#define UNDER_DEVELOPMENT_REMOTE_UNIT_COMMANDS
#define UNDER_DEVELOPMENT_K3NGDISPLAY_LIBRARY
#define OPTION_DISPLAY_STATUS
#define OPTION_DISPLAY_HEADING
#define LCD_HEADING_ROW 2
#define LCD_HEADING_FIELD_SIZE 16//20
//#define OPTION_LCD_HEADING_FIELD_FIXED_DECIMAL_PLACE
#define LCD_STATUS_ROW 1
#define LCD_STATUS_FIELD_SIZE 16//20
#define LCD_DIRECTION_ROW 1
#define LCD_HHMMSS_CLOCK_ROW 1
#define LCD_HHMM_CLOCK_ROW 1
#define PARKING_STRING "PARKING"
#define PARKED_STRING "PARKED"
#define PARKING_STATUS_DISPLAY_TIME_MS 5000
// TODO - eliminate unused strings from settings files
/**************** end of section for code under development ********************************/
/*
Note:
Ham Radio Deluxe expects AZ and EL in output for Yaesu C command in AZ/EL mode. I'm not sure if this is default behavior for
the Yaesu interface since the C2 command is supposed to be for AZ and EL. If you have problems with other software with this code in AZ/EL mode,
uncomment #define OPTION_C_COMMAND_SENDS_AZ_AND_EL.
*/
/* ---------------------- debug stuff - don't touch unless you know what you are doing --------------------------- */
@ -170,6 +151,7 @@
#define DEFAULT_DEBUG_STATE 0 // 1 = activate debug mode at startup; this should be set to zero unless you're debugging something at startup
#define DEBUG_DUMP // normally compile with this activated unless you're really trying to save memory
// #define DEBUG_LOOP
// #define DEBUG_MEMORY
// #define DEBUG_BUTTONS
// #define DEBUG_SERIAL
@ -220,6 +202,8 @@
// #define DEBUG_POLOLU_LSM303_CALIBRATION
// #define DEBUG_STEPPER
// #define DEBUG_AUTOCORRECT
// #define DEBUG_A2_ENCODER
// #define DEBUG_A2_ENCODER_LOOPBACK_TEST

270
rotator_language.h Normal file
View File

@ -0,0 +1,270 @@
#ifdef LANGUAGE_ENGLISH // English language support (copy leading and trailing spaces when making your own language section)
#define MOON_STRING "moon "
#define SUN_STRING "sun "
#define AZ_TARGET_STRING "Az Target "
#define EL_TARGET_STRING "El Target "
#define TARGET_STRING "Target "
#define PARKING_STRING "Parking"
#define PARKED_STRING "Parked"
/*
#define ROTATING_CW_STRING "Rotating CW" // depricated in 2015090402
#define ROTATING_CCW_STRING "Rotating CCW"
#define ROTATING_TO_STRING "Rotating to "
#define ELEVATING_TO_STRING "Elevating to "
#define ELEVATING_UP_STRING "Elevating Up"
#define ELEVATING_DOWN_STRING "Elevating Down"
#define ROTATING_STRING "Rotating "
*/
#define CW_STRING "CW"
#define CCW_STRING "CCW"
#define UP_STRING "UP"
#define DOWN_STRING "DOWN"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "W"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NW"
#define SW_STRING "SW"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNW"
#define WNW_STRING "WNW"
#define WSW_STRING "WSW"
#define SSW_STRING "SSW"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_ENGLISH
#ifdef LANGUAGE_SPANISH // Courtesy of Maximo, EA1DDO
#define MOON_STRING "Luna "
#define SUN_STRING "Sol "
#define AZ_TARGET_STRING "Az Objetivo "
#define EL_TARGET_STRING "El Objetivo "
#define TARGET_STRING "Objetivo "
#define PARKING_STRING "Parking"
#define PARKED_STRING "Aparcado"
/*
#define ROTATING_CW_STRING "Girando Dcha"
#define ROTATING_CCW_STRING "Girando Izq"
#define ROTATING_TO_STRING "Girando a "
#define ELEVATING_TO_STRING "Elevando a "
#define ELEVATING_UP_STRING "Subiendo"
#define ELEVATING_DOWN_STRING "Bajando"
#define ROTATING_STRING "Girando "
*/
#define CW_STRING "Dcha"
#define CCW_STRING "Izq"
#define UP_STRING "Arriba"
#define DOWN_STRING "Abajo"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "O"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NO"
#define SW_STRING "SO"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNO"
#define WNW_STRING "ONO"
#define WSW_STRING "OSO"
#define SSW_STRING "SSO"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_SPANISH
#ifdef LANGUAGE_CZECH // courtesy of Jan, OK2ZAW
#define MOON_STRING "mesic "
#define SUN_STRING "slunce "
#define AZ_TARGET_STRING "Az cíl "
#define EL_TARGET_STRING "El cíl "
#define TARGET_STRING "Cil "
#define PARKING_STRING "Parking"
#define PARKED_STRING "Parkovat"
/*
#define ROTATING_CW_STRING "Otacim CW"
#define ROTATING_CCW_STRING "Otacim CCW"
#define ROTATING_TO_STRING "Otacim na "
#define ELEVATING_TO_STRING "Elevovat na "
#define ELEVATING_UP_STRING "Elevovat nahoru"
#define ELEVATING_DOWN_STRING "Elevovat dolu"
#define ROTATING_STRING "Otacet "
*/
#define CW_STRING "CW"
#define CCW_STRING "CCW"
#define UP_STRING "Nahoru"
#define DOWN_STRING "Dolu"
#define AZIMUTH_STRING "Azimut "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "smer ^ KL"
#define W_STRING "smer < HK"
#define S_STRING "smer v ZS"
#define E_STRING "smer > VK"
#define NW_STRING "smer < W"
#define SW_STRING "smer v VP8"
#define SE_STRING "smer > HZ"
#define NE_STRING "smer ^ JA"
#define NNW_STRING "smer ^ VE"
#define WNW_STRING "smer < CO"
#define WSW_STRING "smer < PY"
#define SSW_STRING "smer v ZD9"
#define SSE_STRING "smer v 5R"
#define ESE_STRING "smer > 8Q"
#define ENE_STRING "smer > ZL"
#define NNE_STRING "smer ^ UA0"
#endif //LANGUAGE_CZECH
#ifdef LANGUAGE_ITALIAN // courtesy of Paolo, IT9IPQ
#define MOON_STRING "luna"
#define SUN_STRING "sole "
#define AZ_TARGET_STRING "Punta Az "
#define EL_TARGET_STRING "Punta El "
#define TARGET_STRING "Punta "
#define PARKING_STRING "Parking"
#define PARKED_STRING "Posa "
/*
#define ROTATING_CW_STRING "Ruota DX > "
#define ROTATING_CCW_STRING "Ruota SX < "
#define ROTATING_TO_STRING "Ruota verso "
#define ELEVATING_TO_STRING "Alza verso "
#define ELEVATING_UP_STRING "Alzo Su "
#define ELEVATING_DOWN_STRING "Abbasso Giu' "
#define ROTATING_STRING "Ruota "
*/
#define CW_STRING "DX"
#define CCW_STRING "SX "
#define UP_STRING "SU"
#define DOWN_STRING "GIU'"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "W"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NW"
#define SW_STRING "SW"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNW"
#define WNW_STRING "WNW"
#define WSW_STRING "WSW"
#define SSW_STRING "SSW"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_ITALIAN
#ifdef LANGUAGE_PORTUGUESE_BRASIL // courtesy of Ismael, PY4PI
#define MOON_STRING "lua "
#define SUN_STRING "sol "
#define AZ_TARGET_STRING "Objetivo Az "
#define EL_TARGET_STRING "Objetivo El "
#define TARGET_STRING "Objetivo "
#define PARKING_STRING "Parking"
#define PARKED_STRING "Estacionado"
/*
#define ROTATING_CW_STRING "Rodando DIR"
#define ROTATING_CCW_STRING "Rodando ESQ"
#define ROTATING_TO_STRING "Rodando para "
#define ELEVATING_TO_STRING "Elevando para "
#define ELEVATING_UP_STRING "Subindo"
#define ELEVATING_DOWN_STRING "Descendo"
#define ROTATING_STRING "Rodando "
*/
#define CW_STRING "DIR"
#define CCW_STRING "ESQ"
#define UP_STRING "SOBE"
#define DOWN_STRING "DESCE"
#define AZIMUTH_STRING "Azimute "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "O"
#define S_STRING "S"
#define E_STRING "L"
#define NW_STRING "NO"
#define SW_STRING "SO"
#define SE_STRING "SL"
#define NE_STRING "NL"
#define NNW_STRING "NNO"
#define WNW_STRING "ONO"
#define WSW_STRING "OSO"
#define SSW_STRING "SSO"
#define SSE_STRING "SSL"
#define ESE_STRING "LSL"
#define ENE_STRING "LNL"
#define NNE_STRING "NNL"
#endif //LANGUAGE_PORTUGUESE_BRASIL
#ifdef LANGUAGE_GERMAN // courtesy of Ronny DM2RM
#define MOON_STRING "MOND "
#define SUN_STRING "SONNE "
#define AZ_TARGET_STRING "Az Ziel "
#define EL_TARGET_STRING "El Ziel "
#define TARGET_STRING "Ziel "
#define PARKING_STRING "Parking"
#define PARKED_STRING "Parken"
/*
#define ROTATING_CW_STRING "Drehen CW"
#define ROTATING_CCW_STRING "Drehen CCW"
#define ROTATING_TO_STRING "Drehen nach "
#define ELEVATING_TO_STRING "Elevation nach "
#define ELEVATING_UP_STRING "Elevation Auf"
#define ELEVATING_DOWN_STRING "Elevation Ab"
#define ROTATING_STRING "Drehen "
*/
#define CW_STRING "CW"
#define CCW_STRING "CCW"
#define UP_STRING "AUF"
#define DOWN_STRING "AB"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N (KL)"
#define W_STRING "W (HK)"
#define S_STRING "S (ZS)"
#define E_STRING "O (YB)"
#define NW_STRING "NW (W8)"
#define SW_STRING "SW (PY)"
#define SE_STRING "SO (HZ)"
#define NE_STRING "NO (JA"
#define NNW_STRING "NNW (VE)"
#define WNW_STRING "WNW (XE)"
#define WSW_STRING "WSW (OA)"
#define SSW_STRING "SSW (ZD7)"
#define SSE_STRING "SSO (5R)"
#define ESE_STRING "OSO (8Q)"
#define ENE_STRING "ONO (ZL)"
#define NNE_STRING "NNO (UA0)"
#endif //LANGUAGE_GERMAN

View File

@ -1,3 +1,12 @@
/*
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! TEST Hardware !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
*/
/* LEDs left to right
6 - PWM
7 - NO PWM

View File

@ -123,6 +123,15 @@ You can tweak these, but read the online documentation!
#define LCD_MOON_OR_SUN_TRACKING_CONDITIONAL_ROW 3 // LCD display row for OPTION_DISPLAY_MOON_OR_SUN_TRACKING_CONDITIONAL
#define SPLASH_SCREEN_TIME 3000
#define LCD_HEADING_ROW 2
#define LCD_HEADING_FIELD_SIZE 20
#define LCD_STATUS_ROW 1
#define LCD_STATUS_FIELD_SIZE 20
#define LCD_DIRECTION_ROW 1
#define LCD_HHMMSS_CLOCK_ROW 1
#define LCD_HHMM_CLOCK_ROW 1
#define PARKING_STATUS_DISPLAY_TIME_MS 5000
#define AZ_BRAKE_DELAY 3000 // in milliseconds
#define EL_BRAKE_DELAY 3000 // in milliseconds
@ -206,258 +215,6 @@ You can tweak these, but read the online documentation!
#define SUN_AOS_ELEVATION_MIN 0
#define SUN_AOS_ELEVATION_MAX 180
#ifdef LANGUAGE_ENGLISH // English language support (copy leading and trailing spaces when making your own language section)
#define MOON_STRING "moon "
#define SUN_STRING "sun "
#define AZ_TARGET_STRING "Az Target "
#define EL_TARGET_STRING "El Target "
#define TARGET_STRING "Target "
#define PARKED_STRING "Parked"
#define ROTATING_CW_STRING "Rotating CW"
#define ROTATING_CCW_STRING "Rotating CCW"
#define ROTATING_TO_STRING "Rotating to "
#define ELEVATING_TO_STRING "Elevating to "
#define ELEVATING_UP_STRING "Elevating Up"
#define ELEVATING_DOWN_STRING "Elevating Down"
#define ROTATING_STRING "Rotating "
#define CW_STRING "CW"
#define CCW_STRING "CCW"
#define UP_STRING "UP"
#define DOWN_STRING "DOWN"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "W"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NW"
#define SW_STRING "SW"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNW"
#define WNW_STRING "WNW"
#define WSW_STRING "WSW"
#define SSW_STRING "SSW"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_ENGLISH
#ifdef LANGUAGE_SPANISH // Courtesy of Maximo, EA1DDO
#define MOON_STRING "Luna "
#define SUN_STRING "Sol "
#define AZ_TARGET_STRING "Az Objetivo "
#define EL_TARGET_STRING "El Objetivo "
#define TARGET_STRING "Objetivo "
#define PARKED_STRING "Aparcado"
#define ROTATING_CW_STRING "Girando Dcha"
#define ROTATING_CCW_STRING "Girando Izq"
#define ROTATING_TO_STRING "Girando a "
#define ELEVATING_TO_STRING "Elevando a "
#define ELEVATING_UP_STRING "Subiendo"
#define ELEVATING_DOWN_STRING "Bajando"
#define ROTATING_STRING "Girando "
#define CW_STRING "Dcha"
#define CCW_STRING "Izq"
#define UP_STRING "Arriba"
#define DOWN_STRING "Abajo"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "O"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NO"
#define SW_STRING "SO"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNO"
#define WNW_STRING "ONO"
#define WSW_STRING "OSO"
#define SSW_STRING "SSO"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_SPANISH
#ifdef LANGUAGE_CZECH // courtesy of Jan, OK2ZAW
#define MOON_STRING "mesic "
#define SUN_STRING "slunce "
#define AZ_TARGET_STRING "Az cíl "
#define EL_TARGET_STRING "El cíl "
#define TARGET_STRING "Cil "
#define PARKED_STRING "Parkovat"
#define ROTATING_CW_STRING "Otacim CW"
#define ROTATING_CCW_STRING "Otacim CCW"
#define ROTATING_TO_STRING "Otacim na "
#define ELEVATING_TO_STRING "Elevovat na "
#define ELEVATING_UP_STRING "Elevovat nahoru"
#define ELEVATING_DOWN_STRING "Elevovat dolu"
#define ROTATING_STRING "Otacet "
#define CW_STRING "CW"
#define CCW_STRING "CCW"
#define UP_STRING "Nahoru"
#define DOWN_STRING "Dolu"
#define AZIMUTH_STRING "Azimut "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "smer ^ KL"
#define W_STRING "smer < HK"
#define S_STRING "smer v ZS"
#define E_STRING "smer > VK"
#define NW_STRING "smer < W"
#define SW_STRING "smer v VP8"
#define SE_STRING "smer > HZ"
#define NE_STRING "smer ^ JA"
#define NNW_STRING "smer ^ VE"
#define WNW_STRING "smer < CO"
#define WSW_STRING "smer < PY"
#define SSW_STRING "smer v ZD9"
#define SSE_STRING "smer v 5R"
#define ESE_STRING "smer > 8Q"
#define ENE_STRING "smer > ZL"
#define NNE_STRING "smer ^ UA0"
#endif //LANGUAGE_CZECH
#ifdef LANGUAGE_ITALIAN // courtesy of Paolo, IT9IPQ
#define MOON_STRING "luna"
#define SUN_STRING "sole "
#define AZ_TARGET_STRING "Punta Az "
#define EL_TARGET_STRING "Punta El "
#define TARGET_STRING "Punta "
#define PARKED_STRING "Posa "
#define ROTATING_CW_STRING "Ruota DX > "
#define ROTATING_CCW_STRING "Ruota SX < "
#define ROTATING_TO_STRING "Ruota verso "
#define ELEVATING_TO_STRING "Alza verso "
#define ELEVATING_UP_STRING "Alzo Su "
#define ELEVATING_DOWN_STRING "Abbasso Giu' "
#define ROTATING_STRING "Ruota "
#define CW_STRING "DX"
#define CCW_STRING "SX "
#define UP_STRING "SU"
#define DOWN_STRING "GIU'"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "W"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NW"
#define SW_STRING "SW"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNW"
#define WNW_STRING "WNW"
#define WSW_STRING "WSW"
#define SSW_STRING "SSW"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_ITALIAN
#ifdef LANGUAGE_PORTUGUESE_BRASIL // courtesy of Ismael, PY4PI
#define MOON_STRING "lua "
#define SUN_STRING "sol "
#define AZ_TARGET_STRING "Objetivo Az "
#define EL_TARGET_STRING "Objetivo El "
#define TARGET_STRING "Objetivo "
#define PARKED_STRING "Estacionado"
#define ROTATING_CW_STRING "Rodando DIR"
#define ROTATING_CCW_STRING "Rodando ESQ"
#define ROTATING_TO_STRING "Rodando para "
#define ELEVATING_TO_STRING "Elevando para "
#define ELEVATING_UP_STRING "Subindo"
#define ELEVATING_DOWN_STRING "Descendo"
#define ROTATING_STRING "Rodando "
#define CW_STRING "DIR"
#define CCW_STRING "ESQ"
#define UP_STRING "SOBE"
#define DOWN_STRING "DESCE"
#define AZIMUTH_STRING "Azimute "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "O"
#define S_STRING "S"
#define E_STRING "L"
#define NW_STRING "NO"
#define SW_STRING "SO"
#define SE_STRING "SL"
#define NE_STRING "NL"
#define NNW_STRING "NNO"
#define WNW_STRING "ONO"
#define WSW_STRING "OSO"
#define SSW_STRING "SSO"
#define SSE_STRING "SSL"
#define ESE_STRING "LSL"
#define ENE_STRING "LNL"
#define NNE_STRING "NNL"
#endif //LANGUAGE_PORTUGUESE_BRASIL
#ifdef LANGUAGE_GERMAN // courtesy of Ronny DM2RM
#define MOON_STRING "MOND "
#define SUN_STRING "SONNE "
#define AZ_TARGET_STRING "Az Ziel "
#define EL_TARGET_STRING "El Ziel "
#define TARGET_STRING "Ziel "
#define PARKED_STRING "Parken"
#define ROTATING_CW_STRING "Drehen CW"
#define ROTATING_CCW_STRING "Drehen CCW"
#define ROTATING_TO_STRING "Drehen nach "
#define ELEVATING_TO_STRING "Elevation nach "
#define ELEVATING_UP_STRING "Elevation Auf"
#define ELEVATING_DOWN_STRING "Elevation Ab"
#define ROTATING_STRING "Drehen "
#define CW_STRING "CW"
#define CCW_STRING "CCW"
#define UP_STRING "AUF"
#define DOWN_STRING "AB"
#define AZIMUTH_STRING "Azimuth " //--------------------------------------------------------------------------------------------------------------
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N (KL)"
#define W_STRING "W (HK)"
#define S_STRING "S (ZS)"
#define E_STRING "O (YB)"
#define NW_STRING "NW (W8)"
#define SW_STRING "SW (PY)"
#define SE_STRING "SO (HZ)"
#define NE_STRING "NO (JA"
#define NNW_STRING "NNW (VE)"
#define WNW_STRING "WNW (XE)"
#define WSW_STRING "WSW (OA)"
#define SSW_STRING "SSW (ZD7)"
#define SSE_STRING "SSO (5R)"
#define ESE_STRING "OSO (8Q)"
#define ENE_STRING "ONO (ZL)"
#define NNE_STRING "NNO (UA0)"
#endif //LANGUAGE_GERMAN
#define TRACKING_ACTIVE_CHAR "*"
@ -563,68 +320,40 @@ You can tweak these, but read the online documentation!
*/
#if !defined(UNDER_DEVELOPMENT_K3NGDISPLAY_LIBRARY)
#if defined(FEATURE_4_BIT_LCD_DISPLAY)
LiquidCrystal lcd(lcd_4_bit_rs_pin, lcd_4_bit_enable_pin, lcd_4_bit_d4_pin, lcd_4_bit_d5_pin, lcd_4_bit_d6_pin, lcd_4_bit_d7_pin);
#endif //FEATURE_4_BIT_LCD_DISPLAY
#ifdef FEATURE_ADAFRUIT_I2C_LCD
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
#endif //FEATURE_ADAFRUIT_I2C_LCD
#ifdef FEATURE_YOURDUINO_I2C_LCD
#define I2C_ADDR 0x20
#define BACKLIGHT_PIN 3
#define LED_OFF 1
#define LED_ON 0
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
#endif //FEATURE_YOURDUINO_I2C_LCD
#ifdef FEATURE_RFROBOT_I2C_DISPLAY
LiquidCrystal_I2C lcd(0x27,16,2);
#endif //FEATURE_RFROBOT_I2C_DISPLAY
#ifdef FEATURE_YWROBOT_I2C_DISPLAY
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#endif //FEATURE_YWROBOT_I2C_DISPLAY
#else
K3NGdisplay k3ngdisplay(LCD_COLUMNS,LCD_ROWS,LCD_UPDATE_TIME);
#endif //!defined(UNDER_DEVELOPMENT_K3NGDISPLAY_LIBRARY)
#if defined(FEATURE_4_BIT_LCD_DISPLAY) || defined(FEATURE_ADAFRUIT_I2C_LCD) || defined(FEATURE_YOURDUINO_I2C_LCD) || defined(FEATURE_YWROBOT_I2C_DISPLAY)
K3NGdisplay k3ngdisplay(LCD_COLUMNS,LCD_ROWS,LCD_UPDATE_TIME);
#endif
#ifdef FEATURE_AZ_POSITION_HMC5883L
HMC5883L compass;
HMC5883L compass;
#endif //FEATURE_AZ_POSITION_HMC5883L
#ifdef FEATURE_EL_POSITION_ADXL345_USING_LOVE_ELECTRON_LIB
ADXL345 accel;
ADXL345 accel;
#endif //FEATURE_EL_POSITION_ADXL345_USING_LOVE_ELECTRON_LIB
#ifdef FEATURE_EL_POSITION_ADXL345_USING_ADAFRUIT_LIB
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
#endif //FEATURE_EL_POSITION_ADXL345_USING_ADAFRUIT_LIB
#if defined(FEATURE_EL_POSITION_ADAFRUIT_LSM303) || defined(FEATURE_AZ_POSITION_ADAFRUIT_LSM303)
Adafruit_LSM303 lsm;
Adafruit_LSM303 lsm;
#endif
#if defined(FEATURE_AZ_POSITION_POLOLU_LSM303) || defined(FEATURE_EL_POSITION_POLOLU_LSM303)
LSM303 compass;
LSM303::vector<int16_t> running_min = {32767, 32767, 32767}, running_max = {-32768, -32768, -32768};
char report[80];
LSM303 compass;
LSM303::vector<int16_t> running_min = {32767, 32767, 32767}, running_max = {-32768, -32768, -32768};
char report[80];
#endif //FEATURE_AZ_POSITION_POLOLU_LSM303
#ifdef FEATURE_AZ_POSITION_HH12_AS5045_SSI
#include "hh12.h"
hh12 azimuth_hh12;
#include "hh12.h"
hh12 azimuth_hh12;
#endif //FEATURE_AZ_POSITION_HH12_AS5045_SSI
#ifdef FEATURE_EL_POSITION_HH12_AS5045_SSI
#include "hh12.h"
hh12 elevation_hh12;
#include "hh12.h"
hh12 elevation_hh12;
#endif //FEATURE_EL_POSITION_HH12_AS5045_SSI
#ifdef FEATURE_GPS

View File

@ -123,6 +123,15 @@ You can tweak these, but read the online documentation!
#define LCD_MOON_OR_SUN_TRACKING_CONDITIONAL_ROW 3 // LCD display row for OPTION_DISPLAY_MOON_OR_SUN_TRACKING_CONDITIONAL
#define SPLASH_SCREEN_TIME 3000
#define LCD_HEADING_ROW 2
#define LCD_HEADING_FIELD_SIZE 20
#define LCD_STATUS_ROW 1
#define LCD_STATUS_FIELD_SIZE 20
#define LCD_DIRECTION_ROW 1
#define LCD_HHMMSS_CLOCK_ROW 1
#define LCD_HHMM_CLOCK_ROW 1
#define PARKING_STATUS_DISPLAY_TIME_MS 5000
#define AZ_BRAKE_DELAY 3000 // in milliseconds
#define EL_BRAKE_DELAY 3000 // in milliseconds
@ -206,216 +215,6 @@ You can tweak these, but read the online documentation!
#define SUN_AOS_ELEVATION_MIN 0
#define SUN_AOS_ELEVATION_MAX 180
#ifdef LANGUAGE_ENGLISH // English language support (copy leading and trailing spaces when making your own language section)
#define MOON_STRING "moon "
#define SUN_STRING "sun "
#define AZ_TARGET_STRING "Az Target "
#define EL_TARGET_STRING "El Target "
#define TARGET_STRING "Target "
#define PARKED_STRING "Parked"
#define ROTATING_CW_STRING "Rotating CW"
#define ROTATING_CCW_STRING "Rotating CCW"
#define ROTATING_TO_STRING "Rotating to "
#define ELEVATING_TO_STRING "Elevating to "
#define ELEVATING_UP_STRING "Elevating Up"
#define ELEVATING_DOWN_STRING "Elevating Down"
#define ROTATING_STRING "Rotating "
#define CW_STRING "CW"
#define CCW_STRING "CCW"
#define UP_STRING "UP"
#define DOWN_STRING "DOWN"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "W"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NW"
#define SW_STRING "SW"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNW"
#define WNW_STRING "WNW"
#define WSW_STRING "WSW"
#define SSW_STRING "SSW"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_ENGLISH
#ifdef LANGUAGE_SPANISH // Courtesy of Maximo, EA1DDO
#define MOON_STRING "Luna "
#define SUN_STRING "Sol "
#define AZ_TARGET_STRING "Az Objetivo "
#define EL_TARGET_STRING "El Objetivo "
#define TARGET_STRING "Objetivo "
#define PARKED_STRING "Aparcado"
#define ROTATING_CW_STRING "Girando Dcha"
#define ROTATING_CCW_STRING "Girando Izq"
#define ROTATING_TO_STRING "Girando a "
#define ELEVATING_TO_STRING "Elevando a "
#define ELEVATING_UP_STRING "Subiendo"
#define ELEVATING_DOWN_STRING "Bajando"
#define ROTATING_STRING "Girando "
#define CW_STRING "Dcha"
#define CCW_STRING "Izq"
#define UP_STRING "Arriba"
#define DOWN_STRING "Abajo"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "O"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NO"
#define SW_STRING "SO"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNO"
#define WNW_STRING "ONO"
#define WSW_STRING "OSO"
#define SSW_STRING "SSO"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_SPANISH
#ifdef LANGUAGE_CZECH // courtesy of Jan, OK2ZAW
#define MOON_STRING "mesic "
#define SUN_STRING "slunce "
#define AZ_TARGET_STRING "Az cíl "
#define EL_TARGET_STRING "El cíl "
#define TARGET_STRING "Cil "
#define PARKED_STRING "Parkovat"
#define ROTATING_CW_STRING "Otacim CW"
#define ROTATING_CCW_STRING "Otacim CCW"
#define ROTATING_TO_STRING "Otacim na "
#define ELEVATING_TO_STRING "Elevovat na "
#define ELEVATING_UP_STRING "Elevovat nahoru"
#define ELEVATING_DOWN_STRING "Elevovat dolu"
#define ROTATING_STRING "Otacet "
#define CW_STRING "CW"
#define CCW_STRING "CCW"
#define UP_STRING "Nahoru"
#define DOWN_STRING "Dolu"
#define AZIMUTH_STRING "Azimut "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "smer ^ KL"
#define W_STRING "smer < HK"
#define S_STRING "smer v ZS"
#define E_STRING "smer > VK"
#define NW_STRING "smer < W"
#define SW_STRING "smer v VP8"
#define SE_STRING "smer > HZ"
#define NE_STRING "smer ^ JA"
#define NNW_STRING "smer ^ VE"
#define WNW_STRING "smer < CO"
#define WSW_STRING "smer < PY"
#define SSW_STRING "smer v ZD9"
#define SSE_STRING "smer v 5R"
#define ESE_STRING "smer > 8Q"
#define ENE_STRING "smer > ZL"
#define NNE_STRING "smer ^ UA0"
#endif //LANGUAGE_CZECH
#ifdef LANGUAGE_ITALIAN // courtesy of Paolo, IT9IPQ
#define MOON_STRING "luna"
#define SUN_STRING "sole "
#define AZ_TARGET_STRING "Punta Az "
#define EL_TARGET_STRING "Punta El "
#define TARGET_STRING "Punta "
#define PARKED_STRING "Posa "
#define ROTATING_CW_STRING "Ruota DX > "
#define ROTATING_CCW_STRING "Ruota SX < "
#define ROTATING_TO_STRING "Ruota verso "
#define ELEVATING_TO_STRING "Alza verso "
#define ELEVATING_UP_STRING "Alzo Su "
#define ELEVATING_DOWN_STRING "Abbasso Giu' "
#define ROTATING_STRING "Ruota "
#define CW_STRING "DX"
#define CCW_STRING "SX "
#define UP_STRING "SU"
#define DOWN_STRING "GIU'"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "W"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NW"
#define SW_STRING "SW"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNW"
#define WNW_STRING "WNW"
#define WSW_STRING "WSW"
#define SSW_STRING "SSW"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_ITALIAN
#ifdef LANGUAGE_PORTUGUESE_BRASIL // courtesy of Ismael, PY4PI
#define MOON_STRING "lua "
#define SUN_STRING "sol "
#define AZ_TARGET_STRING "Objetivo Az "
#define EL_TARGET_STRING "Objetivo El "
#define TARGET_STRING "Objetivo "
#define PARKED_STRING "Estacionado"
#define ROTATING_CW_STRING "Rodando DIR"
#define ROTATING_CCW_STRING "Rodando ESQ"
#define ROTATING_TO_STRING "Rodando para "
#define ELEVATING_TO_STRING "Elevando para "
#define ELEVATING_UP_STRING "Subindo"
#define ELEVATING_DOWN_STRING "Descendo"
#define ROTATING_STRING "Rodando "
#define CW_STRING "DIR"
#define CCW_STRING "ESQ"
#define UP_STRING "SOBE"
#define DOWN_STRING "DESCE"
#define AZIMUTH_STRING "Azimute "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "O"
#define S_STRING "S"
#define E_STRING "L"
#define NW_STRING "NO"
#define SW_STRING "SO"
#define SE_STRING "SL"
#define NE_STRING "NL"
#define NNW_STRING "NNO"
#define WNW_STRING "ONO"
#define WSW_STRING "OSO"
#define SSW_STRING "SSO"
#define SSE_STRING "SSL"
#define ESE_STRING "LSL"
#define ENE_STRING "LNL"
#define NNE_STRING "NNL"
#endif //LANGUAGE_PORTUGUESE_BRASIL
#define TRACKING_ACTIVE_CHAR "*"
#define TRACKING_INACTIVE_CHAR "-"
#define DISPLAY_DEGREES_STRING "\xDF"
@ -516,80 +315,63 @@ You can tweak these, but read the online documentation!
*/
#ifdef FEATURE_4_BIT_LCD_DISPLAY
LiquidCrystal lcd(lcd_4_bit_rs_pin, lcd_4_bit_enable_pin, lcd_4_bit_d4_pin, lcd_4_bit_d5_pin, lcd_4_bit_d6_pin, lcd_4_bit_d7_pin);
#endif //FEATURE_4_BIT_LCD_DISPLAY
#ifdef FEATURE_ADAFRUIT_I2C_LCD
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
#endif //FEATURE_ADAFRUIT_I2C_LCD
#ifdef FEATURE_YOURDUINO_I2C_LCD
#define I2C_ADDR 0x20
#define BACKLIGHT_PIN 3
#define LED_OFF 1
#define LED_ON 0
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
#endif //FEATURE_YOURDUINO_I2C_LCD
#ifdef FEATURE_RFROBOT_I2C_DISPLAY
LiquidCrystal_I2C lcd(0x27,16,2);
#endif //FEATURE_RFROBOT_I2C_DISPLAY
#if defined(FEATURE_4_BIT_LCD_DISPLAY) || defined(FEATURE_ADAFRUIT_I2C_LCD) || defined(FEATURE_YOURDUINO_I2C_LCD) || defined(FEATURE_YWROBOT_I2C_DISPLAY)
K3NGdisplay k3ngdisplay(LCD_COLUMNS,LCD_ROWS,LCD_UPDATE_TIME);
#endif
#ifdef FEATURE_AZ_POSITION_HMC5883L
HMC5883L compass;
HMC5883L compass;
#endif //FEATURE_AZ_POSITION_HMC5883L
#ifdef FEATURE_EL_POSITION_ADXL345_USING_LOVE_ELECTRON_LIB
ADXL345 accel;
ADXL345 accel;
#endif //FEATURE_EL_POSITION_ADXL345_USING_LOVE_ELECTRON_LIB
#ifdef FEATURE_EL_POSITION_ADXL345_USING_ADAFRUIT_LIB
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
#endif //FEATURE_EL_POSITION_ADXL345_USING_ADAFRUIT_LIB
#if defined(FEATURE_EL_POSITION_ADAFRUIT_LSM303) || defined(FEATURE_AZ_POSITION_ADAFRUIT_LSM303)
Adafruit_LSM303 lsm;
Adafruit_LSM303 lsm;
#endif
#if defined(FEATURE_AZ_POSITION_POLOLU_LSM303) || defined(FEATURE_EL_POSITION_POLOLU_LSM303)
LSM303 compass;
LSM303::vector<int16_t> running_min = {32767, 32767, 32767}, running_max = {-32768, -32768, -32768};
char report[80];
LSM303 compass;
LSM303::vector<int16_t> running_min = {32767, 32767, 32767}, running_max = {-32768, -32768, -32768};
char report[80];
#endif //FEATURE_AZ_POSITION_POLOLU_LSM303
#ifdef FEATURE_AZ_POSITION_HH12_AS5045_SSI
#include "hh12.h"
hh12 azimuth_hh12;
#include "hh12.h"
hh12 azimuth_hh12;
#endif //FEATURE_AZ_POSITION_HH12_AS5045_SSI
#ifdef FEATURE_EL_POSITION_HH12_AS5045_SSI
#include "hh12.h"
hh12 elevation_hh12;
#include "hh12.h"
hh12 elevation_hh12;
#endif //FEATURE_EL_POSITION_HH12_AS5045_SSI
#ifdef FEATURE_GPS
TinyGPS gps;
TinyGPS gps;
#endif //FEATURE_GPS
#ifdef FEATURE_RTC_DS1307
RTC_DS1307 rtc;
RTC_DS1307 rtc;
#endif //FEATURE_RTC_DS1307
#ifdef FEATURE_RTC_PCF8583
PCF8583 rtc(0xA0);
PCF8583 rtc(0xA0);
#endif //FEATURE_RTC_PCF8583
#ifdef HARDWARE_EA4TX_ARS_USB
#undef LCD_COLUMNS
#undef LCD_ROWS
#define LCD_COLUMNS 16
#define LCD_ROWS 2
#undef LCD_COLUMNS
#undef LCD_ROWS
#define LCD_COLUMNS 16
#define LCD_ROWS 2
#endif //HARDWARE_EA4TX_ARS_USB
#ifdef HARDWARE_M0UPU
#undef LCD_ROWS
#define LCD_ROWS 2
#undef LCD_ROWS
#define LCD_ROWS 2
#endif //HARDWARE_M0UPU

View File

@ -123,6 +123,15 @@ You can tweak these, but read the online documentation!
#define LCD_MOON_OR_SUN_TRACKING_CONDITIONAL_ROW 3 // LCD display row for OPTION_DISPLAY_MOON_OR_SUN_TRACKING_CONDITIONAL
#define SPLASH_SCREEN_TIME 3000
#define LCD_HEADING_ROW 2
#define LCD_HEADING_FIELD_SIZE 20
#define LCD_STATUS_ROW 1
#define LCD_STATUS_FIELD_SIZE 20
#define LCD_DIRECTION_ROW 1
#define LCD_HHMMSS_CLOCK_ROW 1
#define LCD_HHMM_CLOCK_ROW 1
#define PARKING_STATUS_DISPLAY_TIME_MS 5000
#define AZ_BRAKE_DELAY 3000 // in milliseconds
#define EL_BRAKE_DELAY 3000 // in milliseconds
@ -206,216 +215,6 @@ You can tweak these, but read the online documentation!
#define SUN_AOS_ELEVATION_MIN 0
#define SUN_AOS_ELEVATION_MAX 180
#ifdef LANGUAGE_ENGLISH // English language support (copy leading and trailing spaces when making your own language section)
#define MOON_STRING "moon "
#define SUN_STRING "sun "
#define AZ_TARGET_STRING "Az Target "
#define EL_TARGET_STRING "El Target "
#define TARGET_STRING "Target "
#define PARKED_STRING "Parked"
#define ROTATING_CW_STRING "Rotating CW"
#define ROTATING_CCW_STRING "Rotating CCW"
#define ROTATING_TO_STRING "Rotating to "
#define ELEVATING_TO_STRING "Elevating to "
#define ELEVATING_UP_STRING "Elevating Up"
#define ELEVATING_DOWN_STRING "Elevating Down"
#define ROTATING_STRING "Rotating "
#define CW_STRING "CW"
#define CCW_STRING "CCW"
#define UP_STRING "UP"
#define DOWN_STRING "DOWN"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "W"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NW"
#define SW_STRING "SW"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNW"
#define WNW_STRING "WNW"
#define WSW_STRING "WSW"
#define SSW_STRING "SSW"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_ENGLISH
#ifdef LANGUAGE_SPANISH // Courtesy of Maximo, EA1DDO
#define MOON_STRING "Luna "
#define SUN_STRING "Sol "
#define AZ_TARGET_STRING "Az Objetivo "
#define EL_TARGET_STRING "El Objetivo "
#define TARGET_STRING "Objetivo "
#define PARKED_STRING "Aparcado"
#define ROTATING_CW_STRING "Girando Dcha"
#define ROTATING_CCW_STRING "Girando Izq"
#define ROTATING_TO_STRING "Girando a "
#define ELEVATING_TO_STRING "Elevando a "
#define ELEVATING_UP_STRING "Subiendo"
#define ELEVATING_DOWN_STRING "Bajando"
#define ROTATING_STRING "Girando "
#define CW_STRING "Dcha"
#define CCW_STRING "Izq"
#define UP_STRING "Arriba"
#define DOWN_STRING "Abajo"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "O"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NO"
#define SW_STRING "SO"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNO"
#define WNW_STRING "ONO"
#define WSW_STRING "OSO"
#define SSW_STRING "SSO"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_SPANISH
#ifdef LANGUAGE_CZECH // courtesy of Jan, OK2ZAW
#define MOON_STRING "mesic "
#define SUN_STRING "slunce "
#define AZ_TARGET_STRING "Az cíl "
#define EL_TARGET_STRING "El cíl "
#define TARGET_STRING "Cil "
#define PARKED_STRING "Parkovat"
#define ROTATING_CW_STRING "Otacim CW"
#define ROTATING_CCW_STRING "Otacim CCW"
#define ROTATING_TO_STRING "Otacim na "
#define ELEVATING_TO_STRING "Elevovat na "
#define ELEVATING_UP_STRING "Elevovat nahoru"
#define ELEVATING_DOWN_STRING "Elevovat dolu"
#define ROTATING_STRING "Otacet "
#define CW_STRING "CW"
#define CCW_STRING "CCW"
#define UP_STRING "Nahoru"
#define DOWN_STRING "Dolu"
#define AZIMUTH_STRING "Azimut "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "smer ^ KL"
#define W_STRING "smer < HK"
#define S_STRING "smer v ZS"
#define E_STRING "smer > VK"
#define NW_STRING "smer < W"
#define SW_STRING "smer v VP8"
#define SE_STRING "smer > HZ"
#define NE_STRING "smer ^ JA"
#define NNW_STRING "smer ^ VE"
#define WNW_STRING "smer < CO"
#define WSW_STRING "smer < PY"
#define SSW_STRING "smer v ZD9"
#define SSE_STRING "smer v 5R"
#define ESE_STRING "smer > 8Q"
#define ENE_STRING "smer > ZL"
#define NNE_STRING "smer ^ UA0"
#endif //LANGUAGE_CZECH
#ifdef LANGUAGE_ITALIAN // courtesy of Paolo, IT9IPQ
#define MOON_STRING "luna"
#define SUN_STRING "sole "
#define AZ_TARGET_STRING "Punta Az "
#define EL_TARGET_STRING "Punta El "
#define TARGET_STRING "Punta "
#define PARKED_STRING "Posa "
#define ROTATING_CW_STRING "Ruota DX > "
#define ROTATING_CCW_STRING "Ruota SX < "
#define ROTATING_TO_STRING "Ruota verso "
#define ELEVATING_TO_STRING "Alza verso "
#define ELEVATING_UP_STRING "Alzo Su "
#define ELEVATING_DOWN_STRING "Abbasso Giu' "
#define ROTATING_STRING "Ruota "
#define CW_STRING "DX"
#define CCW_STRING "SX "
#define UP_STRING "SU"
#define DOWN_STRING "GIU'"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "W"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NW"
#define SW_STRING "SW"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNW"
#define WNW_STRING "WNW"
#define WSW_STRING "WSW"
#define SSW_STRING "SSW"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_ITALIAN
#ifdef LANGUAGE_PORTUGUESE_BRASIL // courtesy of Ismael, PY4PI
#define MOON_STRING "lua "
#define SUN_STRING "sol "
#define AZ_TARGET_STRING "Objetivo Az "
#define EL_TARGET_STRING "Objetivo El "
#define TARGET_STRING "Objetivo "
#define PARKED_STRING "Estacionado"
#define ROTATING_CW_STRING "Rodando DIR"
#define ROTATING_CCW_STRING "Rodando ESQ"
#define ROTATING_TO_STRING "Rodando para "
#define ELEVATING_TO_STRING "Elevando para "
#define ELEVATING_UP_STRING "Subindo"
#define ELEVATING_DOWN_STRING "Descendo"
#define ROTATING_STRING "Rodando "
#define CW_STRING "DIR"
#define CCW_STRING "ESQ"
#define UP_STRING "SOBE"
#define DOWN_STRING "DESCE"
#define AZIMUTH_STRING "Azimute "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "O"
#define S_STRING "S"
#define E_STRING "L"
#define NW_STRING "NO"
#define SW_STRING "SO"
#define SE_STRING "SL"
#define NE_STRING "NL"
#define NNW_STRING "NNO"
#define WNW_STRING "ONO"
#define WSW_STRING "OSO"
#define SSW_STRING "SSO"
#define SSE_STRING "SSL"
#define ESE_STRING "LSL"
#define ENE_STRING "LNL"
#define NNE_STRING "NNL"
#endif //LANGUAGE_PORTUGUESE_BRASIL
#define TRACKING_ACTIVE_CHAR "*"
#define TRACKING_INACTIVE_CHAR "-"
#define DISPLAY_DEGREES_STRING "\xDF"

View File

@ -1,3 +1,9 @@
/*
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! TEST Hardware !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
*/
/* -------------------------- rotation settings ---------------------------------------*/
@ -41,7 +47,7 @@ You can tweak these, but read the online documentation!
#define SLOW_DOWN_BEFORE_TARGET_AZ 10.0 // if slow down is enabled, slowdown will be activated within this many degrees of target azimuth
#define AZ_SLOW_DOWN_PWM_START 200 // starting PWM value for slow down (must be < 256)
#define AZ_SLOW_DOWN_PWM_STOP 20 // ending PWM value for slow down (must be < 256)
#define AZ_SLOW_DOWN_PWM_STOP 20 // ending PWM value for slow down (must be < 256)
#define AZ_SLOW_DOWN_STEPS 200 //20 // must be < 256
#define AZ_INITIALLY_IN_SLOW_DOWN_PWM 50 // PWM value to start at if we're starting in the slow down zone (1 - 255)
@ -54,7 +60,7 @@ You can tweak these, but read the online documentation!
#define SLOW_DOWN_BEFORE_TARGET_EL 10.0 // if slow down is enabled, slowdown will be activated within this many degrees of target elevation
#define EL_SLOW_DOWN_PWM_START 200 // starting PWM value for slow down (must be < 256)
#define EL_SLOW_DOWN_PWM_STOP 20 // ending PWM value for slow down (must be < 256)
#define EL_SLOW_DOWN_PWM_STOP 20 // ending PWM value for slow down (must be < 256)
#define EL_SLOW_DOWN_STEPS 20
#define EL_INITIALLY_IN_SLOW_DOWN_PWM 50 // PWM value to start at if we're starting in the slow down zone (1 - 255)
@ -103,16 +109,16 @@ You can tweak these, but read the online documentation!
#define GPS_PORT_MAPPED_TO &Serial2 // change this line to map the GPS port to a different serial port
//#define GPS_MIRROR_PORT &Serial1 //3 // use this to mirror output from a GPS unit into the Arduino out another port (uncomment to enable)
#define LCD_COLUMNS 16
#define LCD_ROWS 2 // this is automatically set below for HARDWARE_EA4TX_ARS_USB and HARDWARE_M0UPU
#define LCD_COLUMNS 20 //16
#define LCD_ROWS 4 //2 // this is automatically set below for HARDWARE_EA4TX_ARS_USB and HARDWARE_M0UPU
#define LCD_UPDATE_TIME 1000 // LCD update time in milliseconds
#define I2C_LCD_COLOR GREEN // default color of I2C LCD display, including Adafruit and Yourduino; some Yourduino may want this as LED_ON
#define LCD_HHMM_CLOCK_POSITION LEFT //LEFT or RIGHT
#define LCD_HHMMSS_CLOCK_POSITION LEFT //LEFT or RIGHT
#define LCD_ALT_HHMM_CLOCK_AND_MAIDENHEAD_POSITION LEFT
#define LCD_ALT_HHMM_CLOCK_AND_MAIDENHEAD_ROW 1
#define LCD_CONSTANT_HHMMSS_CLOCK_AND_MAIDENHEAD_POSITION LEFT
#define LCD_CONSTANT_HHMMSS_CLOCK_AND_MAIDENHEAD_ROW 1
#define LCD_CONSTANT_HHMMSS_CLOCK_AND_MAIDENHEAD_POSITION CENTER
#define LCD_CONSTANT_HHMMSS_CLOCK_AND_MAIDENHEAD_ROW 3
#define LCD_BIG_CLOCK_ROW 4
#define LCD_GPS_INDICATOR_POSITION RIGHT //LEFT or RIGHT
#define LCD_GPS_INDICATOR_ROW 1
@ -123,13 +129,22 @@ You can tweak these, but read the online documentation!
#define LCD_MOON_OR_SUN_TRACKING_CONDITIONAL_ROW 3 // LCD display row for OPTION_DISPLAY_MOON_OR_SUN_TRACKING_CONDITIONAL
#define SPLASH_SCREEN_TIME 3000
#define LCD_HEADING_ROW 2
#define LCD_HEADING_FIELD_SIZE 20
#define LCD_STATUS_ROW 1
#define LCD_STATUS_FIELD_SIZE 20
#define LCD_DIRECTION_ROW 1
#define LCD_HHMMSS_CLOCK_ROW 1
#define LCD_HHMM_CLOCK_ROW 1
#define PARKING_STATUS_DISPLAY_TIME_MS 5000
#define AZ_BRAKE_DELAY 3000 // in milliseconds
#define EL_BRAKE_DELAY 3000 // in milliseconds
#define BRAKE_ACTIVE_STATE HIGH
#define BRAKE_INACTIVE_STATE LOW
#define EEPROM_MAGIC_NUMBER 104
#define EEPROM_MAGIC_NUMBER 105
#define EEPROM_WRITE_DIRTY_CONFIG_TIME 30 //time in seconds
@ -206,215 +221,7 @@ You can tweak these, but read the online documentation!
#define SUN_AOS_ELEVATION_MIN 0
#define SUN_AOS_ELEVATION_MAX 180
#ifdef LANGUAGE_ENGLISH // English language support (copy leading and trailing spaces when making your own language section)
#define MOON_STRING "moon "
#define SUN_STRING "sun "
#define AZ_TARGET_STRING "Az Target "
#define EL_TARGET_STRING "El Target "
#define TARGET_STRING "Target "
#define PARKED_STRING "Parked"
#define ROTATING_CW_STRING "Rotating CW"
#define ROTATING_CCW_STRING "Rotating CCW"
#define ROTATING_TO_STRING "Rotating to "
#define ELEVATING_TO_STRING "Elevating to "
#define ELEVATING_UP_STRING "Elevating Up"
#define ELEVATING_DOWN_STRING "Elevating Down"
#define ROTATING_STRING "Rotating "
#define CW_STRING "CW"
#define CCW_STRING "CCW"
#define UP_STRING "UP"
#define DOWN_STRING "DOWN"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "W"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NW"
#define SW_STRING "SW"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNW"
#define WNW_STRING "WNW"
#define WSW_STRING "WSW"
#define SSW_STRING "SSW"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_ENGLISH
#ifdef LANGUAGE_SPANISH // Courtesy of Maximo, EA1DDO
#define MOON_STRING "Luna "
#define SUN_STRING "Sol "
#define AZ_TARGET_STRING "Az Objetivo "
#define EL_TARGET_STRING "El Objetivo "
#define TARGET_STRING "Objetivo "
#define PARKED_STRING "Aparcado"
#define ROTATING_CW_STRING "Girando Dcha"
#define ROTATING_CCW_STRING "Girando Izq"
#define ROTATING_TO_STRING "Girando a "
#define ELEVATING_TO_STRING "Elevando a "
#define ELEVATING_UP_STRING "Subiendo"
#define ELEVATING_DOWN_STRING "Bajando"
#define ROTATING_STRING "Girando "
#define CW_STRING "Dcha"
#define CCW_STRING "Izq"
#define UP_STRING "Arriba"
#define DOWN_STRING "Abajo"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "O"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NO"
#define SW_STRING "SO"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNO"
#define WNW_STRING "ONO"
#define WSW_STRING "OSO"
#define SSW_STRING "SSO"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_SPANISH
#ifdef LANGUAGE_CZECH // courtesy of Jan, OK2ZAW
#define MOON_STRING "mesic "
#define SUN_STRING "slunce "
#define AZ_TARGET_STRING "Az cíl "
#define EL_TARGET_STRING "El cíl "
#define TARGET_STRING "Cil "
#define PARKED_STRING "Parkovat"
#define ROTATING_CW_STRING "Otacim CW"
#define ROTATING_CCW_STRING "Otacim CCW"
#define ROTATING_TO_STRING "Otacim na "
#define ELEVATING_TO_STRING "Elevovat na "
#define ELEVATING_UP_STRING "Elevovat nahoru"
#define ELEVATING_DOWN_STRING "Elevovat dolu"
#define ROTATING_STRING "Otacet "
#define CW_STRING "CW"
#define CCW_STRING "CCW"
#define UP_STRING "Nahoru"
#define DOWN_STRING "Dolu"
#define AZIMUTH_STRING "Azimut "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "smer ^ KL"
#define W_STRING "smer < HK"
#define S_STRING "smer v ZS"
#define E_STRING "smer > VK"
#define NW_STRING "smer < W"
#define SW_STRING "smer v VP8"
#define SE_STRING "smer > HZ"
#define NE_STRING "smer ^ JA"
#define NNW_STRING "smer ^ VE"
#define WNW_STRING "smer < CO"
#define WSW_STRING "smer < PY"
#define SSW_STRING "smer v ZD9"
#define SSE_STRING "smer v 5R"
#define ESE_STRING "smer > 8Q"
#define ENE_STRING "smer > ZL"
#define NNE_STRING "smer ^ UA0"
#endif //LANGUAGE_CZECH
#ifdef LANGUAGE_ITALIAN // courtesy of Paolo, IT9IPQ
#define MOON_STRING "luna"
#define SUN_STRING "sole "
#define AZ_TARGET_STRING "Punta Az "
#define EL_TARGET_STRING "Punta El "
#define TARGET_STRING "Punta "
#define PARKED_STRING "Posa "
#define ROTATING_CW_STRING "Ruota DX > "
#define ROTATING_CCW_STRING "Ruota SX < "
#define ROTATING_TO_STRING "Ruota verso "
#define ELEVATING_TO_STRING "Alza verso "
#define ELEVATING_UP_STRING "Alzo Su "
#define ELEVATING_DOWN_STRING "Abbasso Giu' "
#define ROTATING_STRING "Ruota "
#define CW_STRING "DX"
#define CCW_STRING "SX "
#define UP_STRING "SU"
#define DOWN_STRING "GIU'"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "W"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NW"
#define SW_STRING "SW"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNW"
#define WNW_STRING "WNW"
#define WSW_STRING "WSW"
#define SSW_STRING "SSW"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_ITALIAN
#ifdef LANGUAGE_PORTUGUESE_BRASIL // courtesy of Ismael, PY4PI
#define MOON_STRING "lua "
#define SUN_STRING "sol "
#define AZ_TARGET_STRING "Objetivo Az "
#define EL_TARGET_STRING "Objetivo El "
#define TARGET_STRING "Objetivo "
#define PARKED_STRING "Estacionado"
#define ROTATING_CW_STRING "Rodando DIR"
#define ROTATING_CCW_STRING "Rodando ESQ"
#define ROTATING_TO_STRING "Rodando para "
#define ELEVATING_TO_STRING "Elevando para "
#define ELEVATING_UP_STRING "Subindo"
#define ELEVATING_DOWN_STRING "Descendo"
#define ROTATING_STRING "Rodando "
#define CW_STRING "DIR"
#define CCW_STRING "ESQ"
#define UP_STRING "SOBE"
#define DOWN_STRING "DESCE"
#define AZIMUTH_STRING "Azimute "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "O"
#define S_STRING "S"
#define E_STRING "L"
#define NW_STRING "NO"
#define SW_STRING "SO"
#define SE_STRING "SL"
#define NE_STRING "NL"
#define NNW_STRING "NNO"
#define WNW_STRING "ONO"
#define WSW_STRING "OSO"
#define SSW_STRING "SSO"
#define SSE_STRING "SSL"
#define ESE_STRING "LSL"
#define ENE_STRING "LNL"
#define NNE_STRING "NNL"
#endif //LANGUAGE_PORTUGUESE_BRASIL
#define TRACKING_ACTIVE_CHAR "*"
#define TRACKING_INACTIVE_CHAR "-"
@ -474,8 +281,12 @@ You can tweak these, but read the online documentation!
// #define AZIMUTH_CALIBRATION_TO_ARRAY {359,0}
#define ELEVATION_CALIBRATION_FROM_ARRAY {-180,0,180}
#define ELEVATION_CALIBRATION_TO_ARRAY {-180,0,180}
#define ELEVATION_CALIBRATION_FROM_ARRAY {-360,0,360}
#define ELEVATION_CALIBRATION_TO_ARRAY {-360,0,360}
// example: reverse elevation sensing
//#define ELEVATION_CALIBRATION_FROM_ARRAY {0,180,360}
//#define ELEVATION_CALIBRATION_TO_ARRAY {180,0,-180}
#define ANALOG_OUTPUT_MAX_EL_DEGREES 180
@ -514,90 +325,85 @@ You can tweak these, but read the online documentation!
*/
#if !defined(UNDER_DEVELOPMENT_K3NGDISPLAY_LIBRARY)
#if defined(FEATURE_4_BIT_LCD_DISPLAY)
LiquidCrystal lcd(lcd_4_bit_rs_pin, lcd_4_bit_enable_pin, lcd_4_bit_d4_pin, lcd_4_bit_d5_pin, lcd_4_bit_d6_pin, lcd_4_bit_d7_pin);
#endif //FEATURE_4_BIT_LCD_DISPLAY
#ifdef FEATURE_ADAFRUIT_I2C_LCD
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
#endif //FEATURE_ADAFRUIT_I2C_LCD
#ifdef FEATURE_YOURDUINO_I2C_LCD
#define I2C_ADDR 0x20
#define BACKLIGHT_PIN 3
#define LED_OFF 1
#define LED_ON 0
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
#endif //FEATURE_YOURDUINO_I2C_LCD
#ifdef FEATURE_RFROBOT_I2C_DISPLAY
LiquidCrystal_I2C lcd(0x27,16,2);
#endif //FEATURE_RFROBOT_I2C_DISPLAY
#ifdef FEATURE_YWROBOT_I2C_DISPLAY
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#endif //FEATURE_YWROBOT_I2C_DISPLAY
#else
K3NGdisplay k3ngdisplay(LCD_COLUMNS,LCD_ROWS,LCD_UPDATE_TIME);
#endif //!defined(UNDER_DEVELOPMENT_K3NGDISPLAY_LIBRARY)
#if defined(FEATURE_4_BIT_LCD_DISPLAY) || defined(FEATURE_ADAFRUIT_I2C_LCD) || defined(FEATURE_YOURDUINO_I2C_LCD) || defined(FEATURE_YWROBOT_I2C_DISPLAY)
K3NGdisplay k3ngdisplay(LCD_COLUMNS,LCD_ROWS,LCD_UPDATE_TIME);
#endif
#ifdef FEATURE_AZ_POSITION_HMC5883L
HMC5883L compass;
HMC5883L compass;
#endif //FEATURE_AZ_POSITION_HMC5883L
#ifdef FEATURE_EL_POSITION_ADXL345_USING_LOVE_ELECTRON_LIB
ADXL345 accel;
ADXL345 accel;
#endif //FEATURE_EL_POSITION_ADXL345_USING_LOVE_ELECTRON_LIB
#ifdef FEATURE_EL_POSITION_ADXL345_USING_ADAFRUIT_LIB
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
#endif //FEATURE_EL_POSITION_ADXL345_USING_ADAFRUIT_LIB
#if defined(FEATURE_EL_POSITION_ADAFRUIT_LSM303) || defined(FEATURE_AZ_POSITION_ADAFRUIT_LSM303)
Adafruit_LSM303 lsm;
Adafruit_LSM303 lsm;
#endif
#if defined(FEATURE_AZ_POSITION_POLOLU_LSM303) || defined(FEATURE_EL_POSITION_POLOLU_LSM303)
LSM303 compass;
LSM303::vector<int16_t> running_min = {32767, 32767, 32767}, running_max = {-32768, -32768, -32768};
char report[80];
LSM303 compass;
LSM303::vector<int16_t> running_min = {32767, 32767, 32767}, running_max = {-32768, -32768, -32768};
char report[80];
#endif //FEATURE_AZ_POSITION_POLOLU_LSM303
#ifdef FEATURE_AZ_POSITION_HH12_AS5045_SSI
#include "hh12.h"
hh12 azimuth_hh12;
#include "hh12.h"
hh12 azimuth_hh12;
#endif //FEATURE_AZ_POSITION_HH12_AS5045_SSI
#ifdef FEATURE_EL_POSITION_HH12_AS5045_SSI
#include "hh12.h"
hh12 elevation_hh12;
#include "hh12.h"
hh12 elevation_hh12;
#endif //FEATURE_EL_POSITION_HH12_AS5045_SSI
#ifdef FEATURE_GPS
TinyGPS gps;
TinyGPS gps;
#endif //FEATURE_GPS
#ifdef FEATURE_RTC_DS1307
RTC_DS1307 rtc;
RTC_DS1307 rtc;
#endif //FEATURE_RTC_DS1307
#ifdef FEATURE_RTC_PCF8583
PCF8583 rtc(0xA0);
PCF8583 rtc(0xA0);
#endif //FEATURE_RTC_PCF8583
#ifdef HARDWARE_EA4TX_ARS_USB
#undef LCD_COLUMNS
#undef LCD_ROWS
#define LCD_COLUMNS 16
#define LCD_ROWS 2
#undef LCD_COLUMNS
#undef LCD_ROWS
#define LCD_COLUMNS 16
#define LCD_ROWS 2
#endif //HARDWARE_EA4TX_ARS_USB
#ifdef HARDWARE_M0UPU
#undef LCD_ROWS
#define LCD_ROWS 2
#undef LCD_ROWS
#define LCD_ROWS 2
#endif //HARDWARE_M0UPU
#ifdef FEATURE_AZ_POSITION_A2_ABSOLUTE_ENCODER
#define AZ_A2_ENCODER_RESOLUTION 32767 //36000
#define AZ_A2_ENCODER_ADDRESS 0x00
#define AZ_QUERY_FREQUENCY_MS 250
#define AZ_A2_ENCODER_MODE MODE_TWO_BYTE_POSITION/*|MODE_MULTITURN*/
#endif //FEATURE_AZ_POSITION_A2_ABSOLUTE_ENCODER
#ifdef FEATURE_EL_POSITION_A2_ABSOLUTE_ENCODER
#define EL_A2_ENCODER_RESOLUTION 32767 //36000
#define EL_A2_ENCODER_ADDRESS 0x00
#define EL_QUERY_FREQUENCY_MS 250
#define EL_A2_ENCODER_MODE /*MODE_TWO_BYTE_POSITION|*/MODE_MULTITURN
#endif //FEATURE_EL_POSITION_A2_ABSOLUTE_ENCODER
#if defined(FEATURE_AZ_POSITION_A2_ABSOLUTE_ENCODER) || defined(FEATURE_EL_POSITION_A2_ABSOLUTE_ENCODER)
#include "sei_bus.h"
SEIbus SEIbus1(&Serial1,9600,pin_sei_bus_busy,pin_sei_bus_send_receive);
// (Serial Port,Baud Rate,Busy Pin,Send/Receive Pin)
#define SEI_BUS_COMMAND_TIMEOUT_MS 6000
#endif

View File

@ -124,6 +124,15 @@ You can tweak these, but read the online documentation!
#define LCD_MOON_OR_SUN_TRACKING_CONDITIONAL_ROW 3 // LCD display row for OPTION_DISPLAY_MOON_OR_SUN_TRACKING_CONDITIONAL
#define SPLASH_SCREEN_TIME 3000
#define LCD_HEADING_ROW 2
#define LCD_HEADING_FIELD_SIZE 20
#define LCD_STATUS_ROW 1
#define LCD_STATUS_FIELD_SIZE 20
#define LCD_DIRECTION_ROW 1
#define LCD_HHMMSS_CLOCK_ROW 1
#define LCD_HHMM_CLOCK_ROW 1
#define PARKING_STATUS_DISPLAY_TIME_MS 5000
#define AZ_BRAKE_DELAY 3000 // in milliseconds
#define EL_BRAKE_DELAY 3000 // in milliseconds
@ -207,174 +216,6 @@ You can tweak these, but read the online documentation!
#define SUN_AOS_ELEVATION_MIN 0
#define SUN_AOS_ELEVATION_MAX 180
#ifdef LANGUAGE_ENGLISH // English language support (copy leading and trailing spaces when making your own language section)
#define MOON_STRING "moon "
#define SUN_STRING "sun "
#define AZ_TARGET_STRING "Az Target "
#define EL_TARGET_STRING "El Target "
#define TARGET_STRING "Target "
#define PARKED_STRING "Parked"
#define ROTATING_CW_STRING "Rotating CW"
#define ROTATING_CCW_STRING "Rotating CCW"
#define ROTATING_TO_STRING "Rotating to "
#define ELEVATING_TO_STRING "Elevating to "
#define ELEVATING_UP_STRING "Elevating Up"
#define ELEVATING_DOWN_STRING "Elevating Down"
#define ROTATING_STRING "Rotating "
#define CW_STRING "CW"
#define CCW_STRING "CCW"
#define UP_STRING "UP"
#define DOWN_STRING "DOWN"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "W"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NW"
#define SW_STRING "SW"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNW"
#define WNW_STRING "WNW"
#define WSW_STRING "WSW"
#define SSW_STRING "SSW"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_ENGLISH
#ifdef LANGUAGE_SPANISH // Courtesy of Maximo, EA1DDO
#define MOON_STRING "Luna "
#define SUN_STRING "Sol "
#define AZ_TARGET_STRING "Az Objetivo "
#define EL_TARGET_STRING "El Objetivo "
#define TARGET_STRING "Objetivo "
#define PARKED_STRING "Aparcado"
#define ROTATING_CW_STRING "Girando Dcha"
#define ROTATING_CCW_STRING "Girando Izq"
#define ROTATING_TO_STRING "Girando a "
#define ELEVATING_TO_STRING "Elevando a "
#define ELEVATING_UP_STRING "Subiendo"
#define ELEVATING_DOWN_STRING "Bajando"
#define ROTATING_STRING "Girando "
#define CW_STRING "Dcha"
#define CCW_STRING "Izq"
#define UP_STRING "Arriba"
#define DOWN_STRING "Abajo"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "O"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NO"
#define SW_STRING "SO"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNO"
#define WNW_STRING "ONO"
#define WSW_STRING "OSO"
#define SSW_STRING "SSO"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_SPANISH
#ifdef LANGUAGE_CHECK // courtesy of Jan, OK2ZAW
#define MOON_STRING "mesic "
#define SUN_STRING "slunce "
#define AZ_TARGET_STRING "Az cíl "
#define EL_TARGET_STRING "El cíl "
#define TARGET_STRING "Cil "
#define PARKED_STRING "Parkovat"
#define ROTATING_CW_STRING "Otacim CW"
#define ROTATING_CCW_STRING "Otacim CCW"
#define ROTATING_TO_STRING "Otacim na "
#define ELEVATING_TO_STRING "Elevovat na "
#define ELEVATING_UP_STRING "Elevovat nahoru"
#define ELEVATING_DOWN_STRING "Elevovat dolu"
#define ROTATING_STRING "Otacet "
#define CW_STRING "CW"
#define CCW_STRING "CCW"
#define UP_STRING "Nahoru"
#define DOWN_STRING "Dolu"
#define AZIMUTH_STRING "Azimut "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "smer ^ KL"
#define W_STRING "smer < HK"
#define S_STRING "smer v ZS"
#define E_STRING "smer > VK"
#define NW_STRING "smer < W"
#define SW_STRING "smer v VP8"
#define SE_STRING "smer > HZ"
#define NE_STRING "smer ^ JA"
#define NNW_STRING "smer ^ VE"
#define WNW_STRING "smer < CO"
#define WSW_STRING "smer < PY"
#define SSW_STRING "smer v ZD9"
#define SSE_STRING "smer v 5R"
#define ESE_STRING "smer > 8Q"
#define ENE_STRING "smer > ZL"
#define NNE_STRING "smer ^ UA0"
#endif //LANGUAGE_CZECH
#ifdef LANGUAGE_ITALIAN // courtesy of Paolo, IT9IPQ
#define MOON_STRING "luna"
#define SUN_STRING "sole "
#define AZ_TARGET_STRING "Punta Az "
#define EL_TARGET_STRING "Punta El "
#define TARGET_STRING "Punta "
#define PARKED_STRING "Posa "
#define ROTATING_CW_STRING "Ruota DX > "
#define ROTATING_CCW_STRING "Ruota SX < "
#define ROTATING_TO_STRING "Ruota verso "
#define ELEVATING_TO_STRING "Alza verso "
#define ELEVATING_UP_STRING "Alzo Su "
#define ELEVATING_DOWN_STRING "Alzo Giu' "
#define ROTATING_STRING "Ruota "
#define CW_STRING "DX"
#define CCW_STRING "SX "
#define UP_STRING "SU"
#define DOWN_STRING "GIU'"
#define AZIMUTH_STRING "Azimuth "
#define AZ_STRING "Az"
#define AZ_SPACE_STRING "Az "
#define SPACE_EL_STRING " El"
#define SPACE_EL_SPACE_STRING " El "
#define GPS_STRING "GPS"
#define N_STRING "N"
#define W_STRING "W"
#define S_STRING "S"
#define E_STRING "E"
#define NW_STRING "NW"
#define SW_STRING "SW"
#define SE_STRING "SE"
#define NE_STRING "NE"
#define NNW_STRING "NNW"
#define WNW_STRING "WNW"
#define WSW_STRING "WSW"
#define SSW_STRING "SSW"
#define SSE_STRING "SSE"
#define ESE_STRING "ESE"
#define ENE_STRING "ENE"
#define NNE_STRING "NNE"
#endif //LANGUAGE_ITALIAN
#define TRACKING_ACTIVE_CHAR "*"
#define TRACKING_INACTIVE_CHAR "-"
#define DISPLAY_DEGREES_STRING "\xDF"
@ -474,78 +315,83 @@ You can tweak these, but read the online documentation!
*/
#ifdef FEATURE_4_BIT_LCD_DISPLAY
LiquidCrystal lcd(lcd_4_bit_rs_pin, lcd_4_bit_enable_pin, lcd_4_bit_d4_pin, lcd_4_bit_d5_pin, lcd_4_bit_d6_pin, lcd_4_bit_d7_pin);
#endif //FEATURE_4_BIT_LCD_DISPLAY
#ifdef FEATURE_ADAFRUIT_I2C_LCD
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
#endif //FEATURE_ADAFRUIT_I2C_LCD
#ifdef FEATURE_YOURDUINO_I2C_LCD
#define I2C_ADDR 0x20
#define BACKLIGHT_PIN 3
#define LED_OFF 1
#define LED_ON 0
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
#endif //FEATURE_YOURDUINO_I2C_LCD
#ifdef FEATURE_RFROBOT_I2C_DISPLAY
LiquidCrystal_I2C lcd(0x27,16,2);
#endif //FEATURE_RFROBOT_I2C_DISPLAY
#if defined(FEATURE_4_BIT_LCD_DISPLAY) || defined(FEATURE_ADAFRUIT_I2C_LCD) || defined(FEATURE_YOURDUINO_I2C_LCD) || defined(FEATURE_YWROBOT_I2C_DISPLAY)
K3NGdisplay k3ngdisplay(LCD_COLUMNS,LCD_ROWS,LCD_UPDATE_TIME);
#endif
#ifdef FEATURE_AZ_POSITION_HMC5883L
HMC5883L compass;
HMC5883L compass;
#endif //FEATURE_AZ_POSITION_HMC5883L
#ifdef FEATURE_EL_POSITION_ADXL345_USING_LOVE_ELECTRON_LIB
ADXL345 accel;
ADXL345 accel;
#endif //FEATURE_EL_POSITION_ADXL345_USING_LOVE_ELECTRON_LIB
#ifdef FEATURE_EL_POSITION_ADXL345_USING_ADAFRUIT_LIB
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
#endif //FEATURE_EL_POSITION_ADXL345_USING_ADAFRUIT_LIB
#if defined(FEATURE_EL_POSITION_ADAFRUIT_LSM303) || defined(FEATURE_AZ_POSITION_ADAFRUIT_LSM303)
Adafruit_LSM303 lsm;
Adafruit_LSM303 lsm;
#endif
#if defined(FEATURE_AZ_POSITION_POLOLU_LSM303) || defined(FEATURE_EL_POSITION_POLOLU_LSM303)
LSM303 compass;
LSM303::vector<int16_t> running_min = {32767, 32767, 32767}, running_max = {-32768, -32768, -32768};
char report[80];
LSM303 compass;
LSM303::vector<int16_t> running_min = {32767, 32767, 32767}, running_max = {-32768, -32768, -32768};
char report[80];
#endif //FEATURE_AZ_POSITION_POLOLU_LSM303
#ifdef FEATURE_AZ_POSITION_HH12_AS5045_SSI
#include "hh12.h"
hh12 azimuth_hh12;
#include "hh12.h"
hh12 azimuth_hh12;
#endif //FEATURE_AZ_POSITION_HH12_AS5045_SSI
#ifdef FEATURE_EL_POSITION_HH12_AS5045_SSI
#include "hh12.h"
hh12 elevation_hh12;
#include "hh12.h"
hh12 elevation_hh12;
#endif //FEATURE_EL_POSITION_HH12_AS5045_SSI
#ifdef FEATURE_GPS
TinyGPS gps;
TinyGPS gps;
#endif //FEATURE_GPS
#ifdef FEATURE_RTC_DS1307
RTC_DS1307 rtc;
RTC_DS1307 rtc;
#endif //FEATURE_RTC_DS1307
#ifdef FEATURE_RTC_PCF8583
PCF8583 rtc(0xA0);
PCF8583 rtc(0xA0);
#endif //FEATURE_RTC_PCF8583
#ifdef HARDWARE_EA4TX_ARS_USB
#undef LCD_COLUMNS
#undef LCD_ROWS
#define LCD_COLUMNS 16
#define LCD_ROWS 2
#undef LCD_COLUMNS
#undef LCD_ROWS
#define LCD_COLUMNS 16
#define LCD_ROWS 2
#endif //HARDWARE_EA4TX_ARS_USB
#ifdef HARDWARE_M0UPU
#undef LCD_ROWS
#define LCD_ROWS 2
#endif //HARDWARE_M0UPU
#ifdef FEATURE_AZ_POSITION_A2_ABSOLUTE_ENCODER
#define AZ_A2_ENCODER_RESOLUTION 32767 //36000
#define AZ_A2_ENCODER_ADDRESS 0x00
#define AZ_QUERY_FREQUENCY_MS 250
#define AZ_A2_ENCODER_MODE MODE_TWO_BYTE_POSITION/*|MODE_MULTITURN*/
#endif //FEATURE_AZ_POSITION_A2_ABSOLUTE_ENCODER
#ifdef FEATURE_EL_POSITION_A2_ABSOLUTE_ENCODER
#define EL_A2_ENCODER_RESOLUTION 32767 //36000
#define EL_A2_ENCODER_ADDRESS 0x00
#define EL_QUERY_FREQUENCY_MS 250
#define EL_A2_ENCODER_MODE /*MODE_TWO_BYTE_POSITION|*/MODE_MULTITURN
#endif //FEATURE_EL_POSITION_A2_ABSOLUTE_ENCODER
#if defined(FEATURE_AZ_POSITION_A2_ABSOLUTE_ENCODER) || defined(FEATURE_EL_POSITION_A2_ABSOLUTE_ENCODER)
#include "sei_bus.h"
SEIbus SEIbus1(&Serial1,9600,pin_sei_bus_busy,pin_sei_bus_send_receive);
// (Serial Port,Baud Rate,Busy Pin,Send/Receive Pin)
#define SEI_BUS_COMMAND_TIMEOUT_MS 6000
#endif