mirror of
https://github.com/k3ng/k3ng_rotator_controller.git
synced 2025-01-31 00:23:49 +00:00
2.0.2014111701 check_brake_release() bug fix
This commit is contained in:
parent
940ac791b1
commit
ec3d702ab5
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
Testing, ideas, bug fixes, and hardware provided by Anthony M0UPU, Bent OZ1CT, Eric WB6KCN, Norm N3YKF, Jan OK2ZAW, Jim M0CKE, Paolo IT9IPQ, and many others
|
Testing, ideas, bug fixes, and hardware provided by Anthony M0UPU, Bent OZ1CT, Eric WB6KCN, Norm N3YKF, Jan OK2ZAW, Jim M0CKE, Paolo IT9IPQ, and many others
|
||||||
|
|
||||||
Translations: Maximo EA1DDO, Jan OK2ZAW, Paolo IT9IPQ
|
Translations: Maximo EA1DDO, Jan OK2ZAW, Paolo IT9IPQ, Ismael PY4PI
|
||||||
|
|
||||||
Pololu library LSM303 code provided by Mike AD0CZ
|
Pololu library LSM303 code provided by Mike AD0CZ
|
||||||
|
|
||||||
@ -271,10 +271,16 @@
|
|||||||
Fixed bug with LANGUAGE_CZECH (thanks Radek, OK2NMA)
|
Fixed bug with LANGUAGE_CZECH (thanks Radek, OK2NMA)
|
||||||
|
|
||||||
Change in Easycom response terminator (now uses whatever command terminator was sent to it)
|
Change in Easycom response terminator (now uses whatever command terminator was sent to it)
|
||||||
|
Easycom AZ EL command string response change to +xxx.xx +xxx.xx
|
||||||
|
|
||||||
|
OPTION_HAMLIB_EASYCOM_AZ_EL_COMMAND_HACK
|
||||||
|
LANGUAGE_PORTUGUESE_BRASIL (thanks Ismael, PY4PI)
|
||||||
|
|
||||||
|
check_brake_release() bug fix
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define CODE_VERSION "2.0.2014110401"
|
#define CODE_VERSION "2.0.2014111701"
|
||||||
|
|
||||||
#include <avr/pgmspace.h>
|
#include <avr/pgmspace.h>
|
||||||
#include <EEPROM.h>
|
#include <EEPROM.h>
|
||||||
@ -1502,7 +1508,9 @@ void check_brake_release() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FEATURE_ELEVATION_CONTROL
|
if ((az_state != IDLE) && (brake_az_engaged)) {in_az_brake_release_delay = 0;}
|
||||||
|
|
||||||
|
#ifdef FEATURE_ELEVATION_CONTROL
|
||||||
if ((el_state == IDLE) && (brake_el_engaged)) {
|
if ((el_state == IDLE) && (brake_el_engaged)) {
|
||||||
if (in_el_brake_release_delay) {
|
if (in_el_brake_release_delay) {
|
||||||
if ((millis() - el_brake_delay_start_time) > EL_BRAKE_DELAY) {
|
if ((millis() - el_brake_delay_start_time) > EL_BRAKE_DELAY) {
|
||||||
@ -1514,7 +1522,9 @@ void check_brake_release() {
|
|||||||
in_el_brake_release_delay = 1;
|
in_el_brake_release_delay = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // FEATURE_ELEVATION_CONTROL
|
|
||||||
|
if ((el_state != IDLE) && (brake_el_engaged)) {in_el_brake_release_delay = 0;}
|
||||||
|
#endif // FEATURE_ELEVATION_CONTROL
|
||||||
|
|
||||||
} /* check_brake_release */
|
} /* check_brake_release */
|
||||||
|
|
||||||
@ -2063,12 +2073,46 @@ void check_serial(){
|
|||||||
|
|
||||||
// if it is an Easycom command and we have a space, line feed, or carriage return, process it
|
// if it is an Easycom command and we have a space, line feed, or carriage return, process it
|
||||||
if (((incoming_serial_byte == 10) || (incoming_serial_byte == 13) || (incoming_serial_byte == 32)) && (control_port_buffer[0] != '\\') && (control_port_buffer[0] != '/')){
|
if (((incoming_serial_byte == 10) || (incoming_serial_byte == 13) || (incoming_serial_byte == 32)) && (control_port_buffer[0] != '\\') && (control_port_buffer[0] != '/')){
|
||||||
|
#if defined(OPTION_HAMLIB_EASYCOM_AZ_EL_COMMAND_HACK) && defined(FEATURE_ELEVATION_CONTROL)
|
||||||
|
if ((control_port_buffer[0]=='A') && (control_port_buffer[1]=='Z') && (control_port_buffer_index == 2)){
|
||||||
|
unsigned long start_time_hack = millis();
|
||||||
|
if (!control_port->available()){
|
||||||
|
while (((millis() - start_time_hack) < 200) && (!control_port->available())){} // wait 200 mS for something else to pop up on the serial port
|
||||||
|
}
|
||||||
|
if (control_port->available()){ // is there also 'EL ' waiting for us in the buffer?
|
||||||
|
start_time_hack = millis();
|
||||||
|
while ( (control_port->available()) && ((millis() - start_time_hack) < 200) ) {
|
||||||
|
control_port->read();
|
||||||
|
}
|
||||||
|
control_port_buffer[0] = 'Z';
|
||||||
|
process_easycom_command(control_port_buffer,1,CONTROL_PORT0,return_string);
|
||||||
|
//control_port->println(return_string); zzzzzz
|
||||||
|
control_port->print(return_string);
|
||||||
|
control_port->write(incoming_serial_byte);
|
||||||
|
} else { // we got just a bare AZ command
|
||||||
|
process_easycom_command(control_port_buffer,control_port_buffer_index,CONTROL_PORT0,return_string);
|
||||||
|
//control_port->println(return_string); zzzzzz
|
||||||
|
control_port->print(return_string);
|
||||||
|
control_port->write(incoming_serial_byte);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
|
if (control_port_buffer_index > 1){
|
||||||
|
process_easycom_command(control_port_buffer,control_port_buffer_index,CONTROL_PORT0,return_string);
|
||||||
|
//control_port->println(return_string); zzzzzz
|
||||||
|
control_port->print(return_string);
|
||||||
|
control_port->write(incoming_serial_byte);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#else //defined(OPTION_HAMLIB_EASYCOM_AZ_EL_COMMAND_HACK) && defined(FEATURE_ELEVATION_CONTROL)
|
||||||
if (control_port_buffer_index > 1){
|
if (control_port_buffer_index > 1){
|
||||||
process_easycom_command(control_port_buffer,control_port_buffer_index,CONTROL_PORT0,return_string);
|
process_easycom_command(control_port_buffer,control_port_buffer_index,CONTROL_PORT0,return_string);
|
||||||
//control_port->println(return_string); zzzzzz
|
//control_port->println(return_string); zzzzzz
|
||||||
control_port->print(return_string);
|
control_port->print(return_string);
|
||||||
control_port->write(incoming_serial_byte);
|
control_port->write(incoming_serial_byte);
|
||||||
}
|
}
|
||||||
|
#endif //defined(OPTION_HAMLIB_EASYCOM_AZ_EL_COMMAND_HACK) && defined(FEATURE_ELEVATION_CONTROL)
|
||||||
clear_command_buffer();
|
clear_command_buffer();
|
||||||
} else {
|
} else {
|
||||||
// if it is a backslash command, process it if we have a carriage return
|
// if it is a backslash command, process it if we have a carriage return
|
||||||
@ -2183,7 +2227,7 @@ void check_buttons(){
|
|||||||
debug_println("check_buttons: button_cw pushed");
|
debug_println("check_buttons: button_cw pushed");
|
||||||
#endif // DEBUG_BUTTONS
|
#endif // DEBUG_BUTTONS
|
||||||
#ifdef OPTION_AZ_MANUAL_ROTATE_LIMITS
|
#ifdef OPTION_AZ_MANUAL_ROTATE_LIMITS
|
||||||
if (raw_azimuth < (AZ_MANUAL_ROTATE_CW_LIMIT * HEADING_MULTIPLIER)) {
|
if (raw_azimuth < (AZ_MANUAL_ROTATE_CW_LIMIT * HEADING_MULTIPLIER)) {
|
||||||
#endif
|
#endif
|
||||||
submit_request(AZ, REQUEST_CW, 0, 61);
|
submit_request(AZ, REQUEST_CW, 0, 61);
|
||||||
azimuth_button_was_pushed = 1;
|
azimuth_button_was_pushed = 1;
|
||||||
@ -10770,12 +10814,27 @@ void process_easycom_command(byte * easycom_command_buffer, int easycom_command_
|
|||||||
strcpy(return_string,"");
|
strcpy(return_string,"");
|
||||||
|
|
||||||
switch (easycom_command_buffer[0]) { // look at the first character of the command
|
switch (easycom_command_buffer[0]) { // look at the first character of the command
|
||||||
|
#if defined(OPTION_HAMLIB_EASYCOM_AZ_EL_COMMAND_HACK) && defined(FEATURE_ELEVATION_CONTROL) //zzzzzz
|
||||||
|
case 'Z':
|
||||||
|
strcpy(return_string,"+");
|
||||||
|
dtostrf((float)azimuth/(float)HEADING_MULTIPLIER,0,1,tempstring);
|
||||||
|
strcat(return_string,tempstring);
|
||||||
|
if (elevation >= 0){
|
||||||
|
strcat(return_string,"+");
|
||||||
|
} else {
|
||||||
|
strcat(return_string,"-");
|
||||||
|
}
|
||||||
|
dtostrf((float)elevation/(float)HEADING_MULTIPLIER,0,1,tempstring);
|
||||||
|
strcat(return_string,tempstring);
|
||||||
|
break;
|
||||||
|
#endif //OPTION_HAMLIB_EASYCOM_AZ_EL_COMMAND_HACK
|
||||||
case 'A': // AZ
|
case 'A': // AZ
|
||||||
if (easycom_command_buffer[1] == 'Z') { // format is AZx.x or AZxx.x or AZxxx.x (why didn't they make it fixed length?)
|
if (easycom_command_buffer[1] == 'Z') { // format is AZx.x or AZxx.x or AZxxx.x (why didn't they make it fixed length?)
|
||||||
switch (easycom_command_buffer_index) {
|
switch (easycom_command_buffer_index) {
|
||||||
#ifdef OPTION_EASYCOM_AZ_QUERY_COMMAND
|
#ifdef OPTION_EASYCOM_AZ_QUERY_COMMAND
|
||||||
case 2:
|
case 2:
|
||||||
strcpy(return_string,"AZ");
|
//strcpy(return_string,"AZ");
|
||||||
|
strcpy(return_string,"+");
|
||||||
dtostrf((float)azimuth/(float)HEADING_MULTIPLIER,0,1,tempstring);
|
dtostrf((float)azimuth/(float)HEADING_MULTIPLIER,0,1,tempstring);
|
||||||
strcat(return_string,tempstring);
|
strcat(return_string,tempstring);
|
||||||
return;
|
return;
|
||||||
@ -10807,7 +10866,12 @@ void process_easycom_command(byte * easycom_command_buffer, int easycom_command_
|
|||||||
switch (easycom_command_buffer_index) {
|
switch (easycom_command_buffer_index) {
|
||||||
#ifdef OPTION_EASYCOM_EL_QUERY_COMMAND
|
#ifdef OPTION_EASYCOM_EL_QUERY_COMMAND
|
||||||
case 2:
|
case 2:
|
||||||
strcpy(return_string,"EL");
|
//strcpy(return_string,"EL");
|
||||||
|
if (elevation >= 0){
|
||||||
|
strcpy(return_string,"+");
|
||||||
|
} else {
|
||||||
|
strcpy(return_string,"-");
|
||||||
|
}
|
||||||
dtostrf((float)elevation/(float)HEADING_MULTIPLIER,0,1,tempstring);
|
dtostrf((float)elevation/(float)HEADING_MULTIPLIER,0,1,tempstring);
|
||||||
strcat(return_string,tempstring);
|
strcat(return_string,tempstring);
|
||||||
return;
|
return;
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
//#define LANGUAGE_SPANISH
|
//#define LANGUAGE_SPANISH
|
||||||
//#define LANGUAGE_CZECH
|
//#define LANGUAGE_CZECH
|
||||||
//#define LANGUAGE_ITALIAN
|
//#define LANGUAGE_ITALIAN
|
||||||
|
//#define LANGUAGE_PORTUGUESE_BRASIL
|
||||||
|
|
||||||
/* master and remote slave unit functionality */
|
/* 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
|
//#define FEATURE_REMOTE_UNIT_SLAVE // uncomment this to make this unit a remote unit controlled by a host unit
|
||||||
@ -44,7 +45,7 @@
|
|||||||
//#define FEATURE_AZ_POSITION_HH12_AS5045_SSI
|
//#define FEATURE_AZ_POSITION_HH12_AS5045_SSI
|
||||||
//#define FEATURE_AZ_POSITION_INCREMENTAL_ENCODER
|
//#define FEATURE_AZ_POSITION_INCREMENTAL_ENCODER
|
||||||
|
|
||||||
//#define FEATURE_EL_POSITION_POTENTIOMETER
|
#define FEATURE_EL_POSITION_POTENTIOMETER
|
||||||
//#define FEATURE_EL_POSITION_ROTARY_ENCODER
|
//#define FEATURE_EL_POSITION_ROTARY_ENCODER
|
||||||
//#define FEATURE_EL_POSITION_PULSE_INPUT
|
//#define FEATURE_EL_POSITION_PULSE_INPUT
|
||||||
//#define FEATURE_EL_POSITION_ADXL345_USING_LOVE_ELECTRON_LIB // Uncomment for elevation ADXL345 accelerometer support using ADXL345 library
|
//#define FEATURE_EL_POSITION_ADXL345_USING_LOVE_ELECTRON_LIB // Uncomment for elevation ADXL345 accelerometer support using ADXL345 library
|
||||||
@ -122,6 +123,7 @@
|
|||||||
//#define OPTION_EXTERNAL_ANALOG_REFERENCE //Activate external analog voltage reference (needed for RemoteQTH.com unit)
|
//#define OPTION_EXTERNAL_ANALOG_REFERENCE //Activate external analog voltage reference (needed for RemoteQTH.com unit)
|
||||||
//#define OPTION_SYNC_MASTER_CLOCK_TO_SLAVE
|
//#define OPTION_SYNC_MASTER_CLOCK_TO_SLAVE
|
||||||
//#define OPTION_DISABLE_HMC5883L_ERROR_CHECKING
|
//#define OPTION_DISABLE_HMC5883L_ERROR_CHECKING
|
||||||
|
//#define OPTION_HAMLIB_EASYCOM_AZ_EL_COMMAND_HACK
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -369,6 +369,48 @@ You can tweak these, but read the online documentation!
|
|||||||
#define NNE_STRING "NNE"
|
#define NNE_STRING "NNE"
|
||||||
#endif //LANGUAGE_ITALIAN
|
#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_ACTIVE_CHAR "*"
|
||||||
#define TRACKING_INACTIVE_CHAR "-"
|
#define TRACKING_INACTIVE_CHAR "-"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user