diff --git a/README.md b/README.md index 06393018..4ae9f2aa 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,7 @@ Designed to mimic AqualinkRS6 All Button keypad and (like the keypad) is used to * Improve PDA panels reliability (PDA pannels are slower than RS panels) * Potentially fixed Pentair VSP / SWG problems since Pentair VSP use a different protocol, this will allow a timed delay for the VSP to post a status messages. Seems to only effect RS485 bus when both a Pentair VSP and Jandy SWG are present. * Add ```rs485_frame_delay = 4``` to /etc/aqualinkd.conf, 4 is number of milliseconds between frames, 0 will turn off ie no pause. +* PDA Changes to support SWG and Boot. # Update in Release 2.3.2 * Added support for VSP on panel versions REV 0.1 & 0.2 diff --git a/aq_panel.h b/aq_panel.h index baf31337..ef2a9aba 100644 --- a/aq_panel.h +++ b/aq_panel.h @@ -75,9 +75,4 @@ int PANEL_SIZE(); void initButtons_RS16(struct aqualinkdata *aqdata); #endif -// Used in equiptment_update_cycle() for additional items on EQUIPMENT STATUS -// TOTAL_BUTTONS is at most 20 so bits 21-31 should be available -#define BOOST_INDEX 21 -#define FREEZE_PROTECT_INDEX 22 - #endif diff --git a/pda.c b/pda.c index 705a186f..9ca018af 100644 --- a/pda.c +++ b/pda.c @@ -32,6 +32,12 @@ #include "devices_jandy.h" #include "rs_msg_utils.h" +// Used in equiptment_update_cycle() for additional items on EQUIPMENT STATUS +// TOTAL_BUTTONS is at most 20 so bits 21-31 should be available +#define PDA_BOOST_INDEX 21 +#define PDA_FREEZE_PROTECT_INDEX 22 + + // static struct aqualinkdata _aqualink_data; static struct aqualinkdata *_aqualink_data; static unsigned char _last_packet_type; @@ -157,13 +163,13 @@ void equiptment_update_cycle(int eqID) { } if ((_aqualink_data->frz_protect_state == ON) && - (! (update_equiptment_bitmask & (1 << FREEZE_PROTECT_INDEX)))) { + (! (update_equiptment_bitmask & (1 << PDA_FREEZE_PROTECT_INDEX)))) { LOG(PDA_LOG,LOG_DEBUG, "Turn off freeze protect not seen in last cycle\n"); _aqualink_data->frz_protect_state = ENABLE; } if ((_aqualink_data->boost) && - (! (update_equiptment_bitmask & (1 << BOOST_INDEX)))) { + (! (update_equiptment_bitmask & (1 << PDA_BOOST_INDEX)))) { LOG(PDA_LOG,LOG_DEBUG, "Turn off BOOST not seen in last cycle\n"); setSWGboost(_aqualink_data, false); } @@ -173,9 +179,9 @@ void equiptment_update_cycle(int eqID) { char *eqName = NULL; if (eqID < TOTAL_BUTTONS) { eqName = _aqualink_data->aqbuttons[eqID].name; - } else if (eqID == FREEZE_PROTECT_INDEX) { + } else if (eqID == PDA_FREEZE_PROTECT_INDEX) { eqName = "FREEZE PROTECT"; - } else if (eqID == BOOST_INDEX) { + } else if (eqID == PDA_BOOST_INDEX) { eqName = "BOOST"; } else { eqName = "UNKNOWN"; @@ -668,13 +674,13 @@ void process_pda_packet_msg_long_equiptment_status(const char *msg_line, int lin else if ((index = rsm_strncasestr(msg, "FREEZE PROTECT", AQ_MSGLEN)) != NULL) { _aqualink_data->frz_protect_state = ON; - equiptment_update_cycle(FREEZE_PROTECT_INDEX); + equiptment_update_cycle(PDA_FREEZE_PROTECT_INDEX); LOG(PDA_LOG,LOG_DEBUG, "Freeze Protect is on\n"); } else if ((index = rsm_strncasestr(msg, "BOOST", AQ_MSGLEN)) != NULL) { setSWGboost(_aqualink_data, true); - equiptment_update_cycle(BOOST_INDEX); + equiptment_update_cycle(PDA_BOOST_INDEX); } else if ((_aqualink_data->boost) && ((index = rsm_strncasestr(msg, "REMAIN", AQ_MSGLEN)) != NULL)) { diff --git a/release/aqualinkd b/release/aqualinkd index c115a954..03f2ef84 100755 Binary files a/release/aqualinkd and b/release/aqualinkd differ