mirror of https://github.com/sfeakes/AqualinkD.git
Version 2.3.0
parent
e38b8d85d3
commit
4159143a74
|
@ -1,3 +1,19 @@
|
|||
/*
|
||||
* Copyright (c) 2017 Shaun Feakes - All rights reserved
|
||||
*
|
||||
* You may use redistribute and/or modify this code under the terms of
|
||||
* the GNU General Public License version 2 as published by the
|
||||
* Free Software Foundation. For the terms of this license,
|
||||
* see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* You are free to use this software under the terms of the GNU General
|
||||
* Public License, but WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* https://github.com/sfeakes/aqualinkd
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
|
2004
aq_serial.old.c
2004
aq_serial.old.c
File diff suppressed because it is too large
Load Diff
1876
aqualinkd.c.unknown
1876
aqualinkd.c.unknown
File diff suppressed because it is too large
Load Diff
1911
aqualinkd.x.c
1911
aqualinkd.x.c
File diff suppressed because it is too large
Load Diff
178
log_reader.c
178
log_reader.c
|
@ -1,178 +0,0 @@
|
|||
|
||||
/*
|
||||
* Copyright (c) 2017 Shaun Feakes - All rights reserved
|
||||
*
|
||||
* You may use redistribute and/or modify this code under the terms of
|
||||
* the GNU General Public License version 2 as published by the
|
||||
* Free Software Foundation. For the terms of this license,
|
||||
* see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* You are free to use this software under the terms of the GNU General
|
||||
* Public License, but WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* https://github.com/sfeakes/aqualinkd
|
||||
*/
|
||||
|
||||
#include <signal.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#include "aq_serial.h"
|
||||
#include "utils.h"
|
||||
|
||||
|
||||
void logiAqualinkMsg(unsigned char *packet_buffer, int packet_length) {
|
||||
static int pumpIndex = 0;
|
||||
|
||||
/*
|
||||
Pump type are like // Not sure how to read this accuratly.
|
||||
"Jandy ePUMP 1"
|
||||
"Intelliflo VS 1"
|
||||
|
||||
RPM message always comes after the above, so maybe saving last string
|
||||
then when see RPM go back to get pump number.
|
||||
|
||||
' RPM: 2950'
|
||||
' Watts: 1028'
|
||||
*/
|
||||
|
||||
if (packet_buffer[9] == 'R' && packet_buffer[10] == 'P' && packet_buffer[11] == 'M' && packet_buffer[12] == ':')
|
||||
printf("RPM = %d\n", atoi((char *) &packet_buffer[13]));
|
||||
else if (packet_buffer[7] == 'W' && packet_buffer[8] == 'a' && packet_buffer[9] == 't' && packet_buffer[10] == 't' && packet_buffer[11] == 's' && packet_buffer[12] == ':')
|
||||
printf("Watts = %d\n", atoi((char *) &packet_buffer[13]));
|
||||
}
|
||||
|
||||
|
||||
void read_bin_file(char *filename)
|
||||
{
|
||||
unsigned char packet_buffer[AQ_MAXPKTLEN];
|
||||
int packet_length;
|
||||
int i=0;
|
||||
|
||||
setLoggingPrms(LOG_DEBUG_SERIAL , false, NULL, NULL);
|
||||
startPacketLogger(false,true);
|
||||
|
||||
int fd = open(filename, O_RDWR | O_NOCTTY | O_NONBLOCK | O_NDELAY);
|
||||
if (fd < 0) {
|
||||
logMessage(LOG_ERR, "Unable to open port: %s\n", filename);
|
||||
return;
|
||||
}
|
||||
|
||||
while ( (packet_length = get_packet_new(fd, packet_buffer)) > -1){
|
||||
printf("----------------\n");
|
||||
//logPacket(packet_buffer, packet_length);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void create_bin_file(FILE *in, FILE *out) {
|
||||
char hex[6];
|
||||
unsigned char byte;
|
||||
|
||||
while ( fgets ( hex, 6, in ) != NULL ) /* read a line */
|
||||
{
|
||||
byte = (int)strtol(hex, NULL, 16);
|
||||
//printf("read 0x%02hhx, %s\n",byte,hex);
|
||||
fwrite(&byte, 1,1, out);
|
||||
//return;
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
//unsigned char packet_buffer[10];
|
||||
unsigned char packet_buffer[AQ_MAXPKTLEN];
|
||||
int packet_length = 0;
|
||||
char hex[5];
|
||||
int i;
|
||||
FILE *outfile = NULL;
|
||||
bool writeb = false;
|
||||
//int num;
|
||||
//int pi;
|
||||
|
||||
if (strcmp(argv[1], "-rb") == 0) {
|
||||
read_bin_file(argv[2]);
|
||||
return 0;
|
||||
}
|
||||
else if (argc < 1 || access( argv[1], F_OK ) == -1 ) {
|
||||
fprintf(stderr, "ERROR, first param must be valid log file\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
else if (strcmp(argv[2], "-b") == 0) {
|
||||
outfile = fopen ( argv[3], "w" );
|
||||
if ( outfile == NULL )
|
||||
{
|
||||
fprintf(stderr, "ERROR, Couldn't open out file `%s`\n", argv[3]);
|
||||
perror ( argv[3] ); /* why didn't the file open? */
|
||||
return 1;
|
||||
}
|
||||
writeb = true;
|
||||
}
|
||||
|
||||
FILE *file = fopen ( argv[1], "r" );
|
||||
if ( file == NULL )
|
||||
{
|
||||
perror ( argv[1] ); /* why didn't the file open? */
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (writeb) {
|
||||
create_bin_file(file, outfile);
|
||||
fclose ( file );
|
||||
fclose ( outfile );
|
||||
return 0;
|
||||
}
|
||||
|
||||
char line [ 128 ]; /* or other suitable maximum line size */
|
||||
while ( fgets ( line, sizeof line, file ) != NULL ) /* read a line */
|
||||
{
|
||||
packet_length=0;
|
||||
for (i=0; i < strlen(line); i=i+5)
|
||||
{
|
||||
strncpy(hex, &line[i], 4);
|
||||
hex[5] = '\0';
|
||||
packet_buffer[packet_length] = (int)strtol(hex, NULL, 16);
|
||||
//printf("%s = 0x%02hhx = %c\n", hex, packet_buffer[packet_length], packet_buffer[packet_length]);
|
||||
packet_length++;
|
||||
}
|
||||
packet_length--;
|
||||
|
||||
|
||||
if (packet_buffer[PKT_DEST] == 0x33 && packet_buffer[PKT_CMD] == 0x25)
|
||||
logiAqualinkMsg(packet_buffer, packet_length);
|
||||
|
||||
//if (packet_buffer[PKT_CMD] == 0x24 || packet_buffer[PKT_CMD] == 0x25) {
|
||||
|
||||
printf("To 0x%02hhx, type %15.15s, length %2.2d\n", packet_buffer[PKT_DEST], get_packet_type(packet_buffer, packet_length),packet_length);
|
||||
fputs ( line, stdout );
|
||||
//printf("Message : '");
|
||||
//fwrite(packet_buffer + 4, 1, packet_length-7, stdout);
|
||||
//printf("'\n");
|
||||
//}
|
||||
|
||||
}
|
||||
|
||||
fclose ( file );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
*** NOTES ***
|
||||
|
||||
iAqualink is ID 0x33
|
||||
Two TEXT Message Types 0x24 & 0x25
|
||||
0x24 seems to be menu options
|
||||
0x25 seems to be status messages
|
||||
|
||||
*/
|
794
total_buttons
794
total_buttons
|
@ -1,794 +0,0 @@
|
|||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[7-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = rs?name2label(BTN_PUMP):BTN_PDA_PUMP;
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_PUMP;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_PUMP;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[6-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = rs?name2label(BTN_SPA):BTN_PDA_SPA;
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_SPA;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_SPA;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[5-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = rs?name2label(BTN_AUX1):BTN_PDA_AUX1;
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_AUX1;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_AUX1;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[4-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = rs?name2label(BTN_AUX2):BTN_PDA_AUX2;
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_AUX2;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_AUX2;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[3-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = rs?name2label(BTN_AUX3):BTN_PDA_AUX3;
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_AUX3;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_AUX3;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[9-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = rs?name2label(BTN_AUX4):BTN_PDA_AUX4;
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_AUX4;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_AUX4;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[8-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = rs?name2label(BTN_AUX5):BTN_PDA_AUX5;
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_AUX5;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_AUX5;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[12-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = rs?name2label(BTN_AUX6):BTN_PDA_AUX6;
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_AUX6;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_AUX6;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[1-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = rs?name2label(BTN_AUX7):BTN_PDA_AUX7;
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_AUX7;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_AUX7;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index-4].led = &aqdata->aqualinkleds[2-1]; // Change
|
||||
aq_panel.c: aqdata->aqbuttons[index-4].code = KEY_RS16_AUX4;
|
||||
aq_panel.c: aqdata->aqbuttons[index-3].led = &aqdata->aqualinkleds[11-1]; // Change
|
||||
aq_panel.c: aqdata->aqbuttons[index-3].code = KEY_RS16_AUX5;
|
||||
aq_panel.c: aqdata->aqbuttons[index-2].led = &aqdata->aqualinkleds[10-1]; // Change
|
||||
aq_panel.c: aqdata->aqbuttons[index-2].code = KEY_RS16_AUX6;
|
||||
aq_panel.c: aqdata->aqbuttons[index-1].led = &aqdata->aqualinkleds[9-1]; // change
|
||||
aq_panel.c: aqdata->aqbuttons[index-1].code = KEY_RS16_AUX7;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[8-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = name2label(BTN_AUXB1); // AUX8
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_AUXB1;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_AUXB1;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[12-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = name2label(BTN_AUXB2); // AUX9
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_AUXB2;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_AUXB2;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[1-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = name2label(BTN_AUXB3); // AUX10
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_AUXB3;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_AUXB3;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[13-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = name2label(BTN_AUXB4); // AUX11
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_AUXB4;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_AUXB4;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[21-1]; // doesn't actually exist
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = OFF; // Since there is no LED in data, set to off and allow messages to turn it on
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = name2label(BTN_AUXB5);
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_AUXB5;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_AUXB5;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[22-1]; // doesn't actually exist
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = OFF; // Since there is no LED in data, set to off and allow messages to turn it on
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = name2label(BTN_AUXB6);
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_AUXB6;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_AUXB6;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[23-1]; // doesn't actually exist
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = OFF; // Since there is no LED in data, set to off and allow messages to turn it on
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = name2label(BTN_AUXB7);
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_AUXB7;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_AUXB7;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[24-1]; // doesn't actually exist
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = OFF; // Since there is no LED in data, set to off and allow messages to turn it on
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = name2label(BTN_AUXB8);
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_AUXB8;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_AUXB8;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[12-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = name2label(BTN_AUX6);
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_AUX6;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_AUX6;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[i].name = aqdata->aqbuttons[i+1].name;
|
||||
aq_panel.c: aqdata->aqbuttons[i].label = aqdata->aqbuttons[i+1].label;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[15-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = rs?name2label(combo?BTN_POOL_HTR:BTN_TEMP1_HTR):BTN_PDA_POOL_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_POOL_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_POOL_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[17-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = rs?name2label(combo?BTN_SPA_HTR:BTN_TEMP2_HTR):BTN_PDA_SPA_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_SPA_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_SPA_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->aqbuttons[index].led = &aqdata->aqualinkleds[19-1];
|
||||
aq_panel.c: aqdata->aqbuttons[index].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[index].label = rs?name2label(BTN_SOLAR_HTR):BTN_PDA_SOLAR_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[index].name = BTN_SOLAR_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[index].code = KEY_SOLAR_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[index].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[index].special_mask = 0;
|
||||
aq_panel.c: aqdata->total_buttons = index;
|
||||
aq_panel.c: //aqdata->single_device = !combo;
|
||||
aq_panel.c: aqdata->rs16_vbutton_start = 13 - (combo?0:1);
|
||||
aq_panel.c: aqdata->rs16_vbutton_end = 16 - (combo?0:1);
|
||||
aq_panel.c: aqdata->pool_heater_index = index-3;
|
||||
aq_panel.c: aqdata->spa_heater_index = index-2;
|
||||
aq_panel.c: aqdata->solar_heater_index = index-1;
|
||||
aq_panel.c: aqdata->aqbuttons[0].led = &aqdata->aqualinkleds[7-1];
|
||||
aq_panel.c: aqdata->aqbuttons[0].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[0].label = name2label(BTN_PUMP);
|
||||
aq_panel.c: aqdata->aqbuttons[0].name = BTN_PUMP;
|
||||
aq_panel.c: aqdata->aqbuttons[0].code = KEY_PUMP;
|
||||
aq_panel.c: aqdata->aqbuttons[0].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[1].led = &aqdata->aqualinkleds[6-1];
|
||||
aq_panel.c: aqdata->aqbuttons[1].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[1].label = name2label(BTN_SPA);
|
||||
aq_panel.c: aqdata->aqbuttons[1].name = BTN_SPA;
|
||||
aq_panel.c: aqdata->aqbuttons[1].code = KEY_SPA;
|
||||
aq_panel.c: aqdata->aqbuttons[1].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[2].led = &aqdata->aqualinkleds[5-1];
|
||||
aq_panel.c: aqdata->aqbuttons[2].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[2].label = name2label(BTN_AUX1);
|
||||
aq_panel.c: aqdata->aqbuttons[2].name = BTN_AUX1;
|
||||
aq_panel.c: aqdata->aqbuttons[2].code = KEY_AUX1;
|
||||
aq_panel.c: aqdata->aqbuttons[2].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[3].led = &aqdata->aqualinkleds[4-1];
|
||||
aq_panel.c: aqdata->aqbuttons[3].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[3].label = name2label(BTN_AUX2);
|
||||
aq_panel.c: aqdata->aqbuttons[3].name = BTN_AUX2;
|
||||
aq_panel.c: aqdata->aqbuttons[3].code = KEY_AUX2;
|
||||
aq_panel.c: aqdata->aqbuttons[3].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[4].led = &aqdata->aqualinkleds[3-1];
|
||||
aq_panel.c: aqdata->aqbuttons[4].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[4].label = name2label(BTN_AUX3);
|
||||
aq_panel.c: aqdata->aqbuttons[4].name = BTN_AUX3;
|
||||
aq_panel.c: aqdata->aqbuttons[4].code = KEY_AUX3;
|
||||
aq_panel.c: aqdata->aqbuttons[4].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[5].led = &aqdata->aqualinkleds[9-1];
|
||||
aq_panel.c: aqdata->aqbuttons[5].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[5].label = name2label(BTN_AUX4);
|
||||
aq_panel.c: aqdata->aqbuttons[5].name = BTN_AUX4;
|
||||
aq_panel.c: aqdata->aqbuttons[5].code = KEY_AUX4;
|
||||
aq_panel.c: aqdata->aqbuttons[5].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[6].led = &aqdata->aqualinkleds[8-1];
|
||||
aq_panel.c: aqdata->aqbuttons[6].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[6].label = name2label(BTN_AUX5);
|
||||
aq_panel.c: aqdata->aqbuttons[6].name = BTN_AUX5;
|
||||
aq_panel.c: aqdata->aqbuttons[6].code = KEY_AUX5;
|
||||
aq_panel.c: aqdata->aqbuttons[6].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[7].led = &aqdata->aqualinkleds[12-1];
|
||||
aq_panel.c: aqdata->aqbuttons[7].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[7].label = name2label(BTN_AUX6);
|
||||
aq_panel.c: aqdata->aqbuttons[7].name = BTN_AUX6;
|
||||
aq_panel.c: aqdata->aqbuttons[7].code = KEY_AUX6;
|
||||
aq_panel.c: aqdata->aqbuttons[7].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[8].led = &aqdata->aqualinkleds[1-1];
|
||||
aq_panel.c: aqdata->aqbuttons[8].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[8].label = name2label(BTN_AUX7);
|
||||
aq_panel.c: aqdata->aqbuttons[8].name = BTN_AUX7;
|
||||
aq_panel.c: aqdata->aqbuttons[8].code = KEY_AUX7;
|
||||
aq_panel.c: aqdata->aqbuttons[8].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[9].led = &aqdata->aqualinkleds[15-1];
|
||||
aq_panel.c: aqdata->aqbuttons[9].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[9].label = name2label(BTN_POOL_HTR);
|
||||
aq_panel.c: aqdata->aqbuttons[9].name = BTN_POOL_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[9].code = KEY_POOL_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[9].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[10].led = &aqdata->aqualinkleds[17-1];
|
||||
aq_panel.c: aqdata->aqbuttons[10].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[10].label = name2label(BTN_SPA_HTR);
|
||||
aq_panel.c: aqdata->aqbuttons[10].name = BTN_SPA_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[10].code = KEY_SPA_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[10].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[11].led = &aqdata->aqualinkleds[19-1];
|
||||
aq_panel.c: aqdata->aqbuttons[11].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[11].label = name2label(BTN_SOLAR_HTR);
|
||||
aq_panel.c: aqdata->aqbuttons[11].name = BTN_SOLAR_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[11].code = KEY_SOLAR_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[11].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[0].pda_label = BTN_PDA_PUMP;
|
||||
aq_panel.c: aqdata->aqbuttons[1].pda_label = BTN_PDA_SPA;
|
||||
aq_panel.c: aqdata->aqbuttons[2].pda_label = BTN_PDA_AUX1;
|
||||
aq_panel.c: aqdata->aqbuttons[3].pda_label = BTN_PDA_AUX2;
|
||||
aq_panel.c: aqdata->aqbuttons[4].pda_label = BTN_PDA_AUX3;
|
||||
aq_panel.c: aqdata->aqbuttons[5].pda_label = BTN_PDA_AUX4;
|
||||
aq_panel.c: aqdata->aqbuttons[6].pda_label = BTN_PDA_AUX5;
|
||||
aq_panel.c: aqdata->aqbuttons[7].pda_label = BTN_PDA_AUX6;
|
||||
aq_panel.c: aqdata->aqbuttons[7].pda_label = BTN_PDA_AUX6;
|
||||
aq_panel.c: aqdata->aqbuttons[8].pda_label = BTN_PDA_AUX7;
|
||||
aq_panel.c: aqdata->aqbuttons[9].pda_label = BTN_PDA_POOL_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[10].pda_label = BTN_PDA_SPA_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[11].pda_label = BTN_PDA_SOLAR_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[5].led = &aqdata->aqualinkleds[2-1]; // Change
|
||||
aq_panel.c: aqdata->aqbuttons[5].code = KEY_RS16_AUX4;
|
||||
aq_panel.c: aqdata->aqbuttons[6].led = &aqdata->aqualinkleds[11-1]; // Change
|
||||
aq_panel.c: aqdata->aqbuttons[6].code = KEY_RS16_AUX5;
|
||||
aq_panel.c: aqdata->aqbuttons[7].led = &aqdata->aqualinkleds[10-1]; // Change
|
||||
aq_panel.c: aqdata->aqbuttons[7].code = KEY_RS16_AUX6;
|
||||
aq_panel.c: aqdata->aqbuttons[8].led = &aqdata->aqualinkleds[9-1]; // change
|
||||
aq_panel.c: aqdata->aqbuttons[8].code = KEY_RS16_AUX7;
|
||||
aq_panel.c: aqdata->aqbuttons[9].led = &aqdata->aqualinkleds[8-1];
|
||||
aq_panel.c: aqdata->aqbuttons[9].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[9].label = name2label(BTN_AUXB1); // AUX8
|
||||
aq_panel.c: aqdata->aqbuttons[9].name = BTN_AUXB1;
|
||||
aq_panel.c: aqdata->aqbuttons[9].code = KEY_AUXB1;
|
||||
aq_panel.c: aqdata->aqbuttons[9].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[10].led = &aqdata->aqualinkleds[12-1];
|
||||
aq_panel.c: aqdata->aqbuttons[10].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[10].label = name2label(BTN_AUXB2); // AUX9
|
||||
aq_panel.c: aqdata->aqbuttons[10].name = BTN_AUXB2;
|
||||
aq_panel.c: aqdata->aqbuttons[10].code = KEY_AUXB2;
|
||||
aq_panel.c: aqdata->aqbuttons[10].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[11].led = &aqdata->aqualinkleds[1-1];
|
||||
aq_panel.c: aqdata->aqbuttons[11].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[11].label = name2label(BTN_AUXB3); // AUX10
|
||||
aq_panel.c: aqdata->aqbuttons[11].name = BTN_AUXB3;
|
||||
aq_panel.c: aqdata->aqbuttons[11].code = KEY_AUXB3;
|
||||
aq_panel.c: aqdata->aqbuttons[11].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[12].led = &aqdata->aqualinkleds[13-1];
|
||||
aq_panel.c: aqdata->aqbuttons[12].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[12].label = name2label(BTN_AUXB4); // AUX11
|
||||
aq_panel.c: aqdata->aqbuttons[12].name = BTN_AUXB4;
|
||||
aq_panel.c: aqdata->aqbuttons[12].code = KEY_AUXB4;
|
||||
aq_panel.c: aqdata->aqbuttons[12].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[13].led = &aqdata->aqualinkleds[21-1]; // doesn't actually exist
|
||||
aq_panel.c: aqdata->aqbuttons[13].led->state = OFF; // Since there is no LED in data, set to off and allow messages to turn it on
|
||||
aq_panel.c: aqdata->aqbuttons[13].label = name2label(BTN_AUXB5);
|
||||
aq_panel.c: aqdata->aqbuttons[13].name = BTN_AUXB5;
|
||||
aq_panel.c: aqdata->aqbuttons[13].code = KEY_AUXB5;
|
||||
aq_panel.c: aqdata->aqbuttons[13].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[14].led = &aqdata->aqualinkleds[22-1]; // doesn't actually exist
|
||||
aq_panel.c: aqdata->aqbuttons[14].led->state = OFF; // Since there is no LED in data, set to off and allow messages to turn it on
|
||||
aq_panel.c: aqdata->aqbuttons[14].label = name2label(BTN_AUXB6);
|
||||
aq_panel.c: aqdata->aqbuttons[14].name = BTN_AUXB6;
|
||||
aq_panel.c: aqdata->aqbuttons[14].code = KEY_AUXB6;
|
||||
aq_panel.c: aqdata->aqbuttons[14].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[15].led = &aqdata->aqualinkleds[23-1]; // doesn't actually exist
|
||||
aq_panel.c: aqdata->aqbuttons[15].led->state = OFF; // Since there is no LED in data, set to off and allow messages to turn it on
|
||||
aq_panel.c: aqdata->aqbuttons[15].label = name2label(BTN_AUXB7);
|
||||
aq_panel.c: aqdata->aqbuttons[15].name = BTN_AUXB7;
|
||||
aq_panel.c: aqdata->aqbuttons[15].code = KEY_AUXB7;
|
||||
aq_panel.c: aqdata->aqbuttons[15].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[16].led = &aqdata->aqualinkleds[24-1]; // doesn't actually exist
|
||||
aq_panel.c: aqdata->aqbuttons[16].led->state = OFF; // Since there is no LED in data, set to off and allow messages to turn it on
|
||||
aq_panel.c: aqdata->aqbuttons[16].label = name2label(BTN_AUXB8);
|
||||
aq_panel.c: aqdata->aqbuttons[16].name = BTN_AUXB8;
|
||||
aq_panel.c: aqdata->aqbuttons[16].code = KEY_AUXB8;
|
||||
aq_panel.c: aqdata->aqbuttons[16].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[17].led = &aqdata->aqualinkleds[15-1];
|
||||
aq_panel.c: aqdata->aqbuttons[17].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[17].label = name2label(BTN_POOL_HTR);
|
||||
aq_panel.c: aqdata->aqbuttons[17].name = BTN_POOL_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[17].code = KEY_POOL_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[17].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[18].led = &aqdata->aqualinkleds[17-1];
|
||||
aq_panel.c: aqdata->aqbuttons[18].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[18].label = name2label(BTN_SPA_HTR);
|
||||
aq_panel.c: aqdata->aqbuttons[18].name = BTN_SPA_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[18].code = KEY_SPA_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[18].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[19].led = &aqdata->aqualinkleds[19-1];
|
||||
aq_panel.c: aqdata->aqbuttons[19].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[19].label = name2label(BTN_SOLAR_HTR);
|
||||
aq_panel.c: aqdata->aqbuttons[19].name = BTN_SOLAR_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[19].code = KEY_SOLAR_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[19].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[9].pda_label = BTN_PDA_AUX1;
|
||||
aq_panel.c: aqdata->aqbuttons[10].pda_label = BTN_PDA_AUX2;
|
||||
aq_panel.c: aqdata->aqbuttons[11].pda_label = BTN_PDA_AUX3;
|
||||
aq_panel.c: aqdata->aqbuttons[12].pda_label = BTN_PDA_AUX4;
|
||||
aq_panel.c: aqdata->aqbuttons[13].pda_label = BTN_PDA_AUX5;
|
||||
aq_panel.c: aqdata->aqbuttons[14].pda_label = BTN_PDA_AUX6;
|
||||
aq_panel.c: aqdata->aqbuttons[15].pda_label = BTN_PDA_AUX7;
|
||||
aq_panel.c: aqdata->aqbuttons[16].pda_label = BTN_PDA_AUX7;
|
||||
aq_panel.c: aqdata->aqbuttons[17].pda_label = BTN_PDA_POOL_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[18].pda_label = BTN_PDA_SPA_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[19].pda_label = BTN_PDA_SOLAR_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[0].led = &aqdata->aqualinkleds[7-1];
|
||||
aq_panel.c: aqdata->aqbuttons[0].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[0].label = name2label(BTN_PUMP);
|
||||
aq_panel.c: aqdata->aqbuttons[0].name = BTN_PUMP;
|
||||
aq_panel.c: aqdata->aqbuttons[0].code = KEY_PUMP;
|
||||
aq_panel.c: aqdata->aqbuttons[0].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[0].pda_label = BTN_PDA_PUMP;
|
||||
aq_panel.c: aqdata->aqbuttons[1].led = &aqdata->aqualinkleds[6-1];
|
||||
aq_panel.c: aqdata->aqbuttons[1].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[1].label = name2label(BTN_SPA);
|
||||
aq_panel.c: aqdata->aqbuttons[1].name = BTN_SPA;
|
||||
aq_panel.c: aqdata->aqbuttons[1].code = KEY_SPA;
|
||||
aq_panel.c: aqdata->aqbuttons[1].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[1].pda_label = BTN_PDA_SPA;
|
||||
aq_panel.c: aqdata->aqbuttons[2].led = &aqdata->aqualinkleds[5-1];
|
||||
aq_panel.c: aqdata->aqbuttons[2].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[2].label = name2label(BTN_AUX1);
|
||||
aq_panel.c: aqdata->aqbuttons[2].name = BTN_AUX1;
|
||||
aq_panel.c: aqdata->aqbuttons[2].code = KEY_AUX1;
|
||||
aq_panel.c: aqdata->aqbuttons[2].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[2].pda_label = BTN_PDA_AUX1;
|
||||
aq_panel.c: aqdata->aqbuttons[3].led = &aqdata->aqualinkleds[4-1];
|
||||
aq_panel.c: aqdata->aqbuttons[3].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[3].label = name2label(BTN_AUX2);
|
||||
aq_panel.c: aqdata->aqbuttons[3].name = BTN_AUX2;
|
||||
aq_panel.c: aqdata->aqbuttons[3].code = KEY_AUX2;
|
||||
aq_panel.c: aqdata->aqbuttons[3].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[3].pda_label = BTN_PDA_AUX2;
|
||||
aq_panel.c: aqdata->aqbuttons[4].led = &aqdata->aqualinkleds[3-1];
|
||||
aq_panel.c: aqdata->aqbuttons[4].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[4].label = BTN_AUX3;
|
||||
aq_panel.c: aqdata->aqbuttons[4].name = BTN_AUX3;
|
||||
aq_panel.c: aqdata->aqbuttons[4].code = KEY_AUX3;
|
||||
aq_panel.c: aqdata->aqbuttons[4].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[4].pda_label = BTN_PDA_AUX3;
|
||||
aq_panel.c: aqdata->aqbuttons[5].led = &aqdata->aqualinkleds[2-1]; // Change
|
||||
aq_panel.c: aqdata->aqbuttons[5].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[5].label = name2label(BTN_AUX4);
|
||||
aq_panel.c: aqdata->aqbuttons[5].name = BTN_AUX4;
|
||||
aq_panel.c: aqdata->aqbuttons[5].code = KEY_AUX4;
|
||||
aq_panel.c: aqdata->aqbuttons[5].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[5].pda_label = BTN_PDA_AUX4;
|
||||
aq_panel.c: aqdata->aqbuttons[6].led = &aqdata->aqualinkleds[11-1]; // Change
|
||||
aq_panel.c: aqdata->aqbuttons[6].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[6].label = name2label(BTN_AUX5);
|
||||
aq_panel.c: aqdata->aqbuttons[6].name = BTN_AUX5;
|
||||
aq_panel.c: aqdata->aqbuttons[6].code = KEY_AUX5;
|
||||
aq_panel.c: aqdata->aqbuttons[6].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[6].pda_label = BTN_PDA_AUX5;
|
||||
aq_panel.c: aqdata->aqbuttons[7].led = &aqdata->aqualinkleds[10-1]; // Change
|
||||
aq_panel.c: aqdata->aqbuttons[7].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[7].label = name2label(BTN_AUX6);
|
||||
aq_panel.c: aqdata->aqbuttons[7].name = BTN_AUX6;
|
||||
aq_panel.c: aqdata->aqbuttons[7].code = KEY_AUX6;
|
||||
aq_panel.c: aqdata->aqbuttons[7].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[7].pda_label = BTN_PDA_AUX6;
|
||||
aq_panel.c: aqdata->aqbuttons[8].led = &aqdata->aqualinkleds[9-1]; // change
|
||||
aq_panel.c: aqdata->aqbuttons[8].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[8].label = name2label(BTN_AUX7);
|
||||
aq_panel.c: aqdata->aqbuttons[8].name = BTN_AUX7;
|
||||
aq_panel.c: aqdata->aqbuttons[8].code = KEY_AUX7;
|
||||
aq_panel.c: aqdata->aqbuttons[8].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[8].pda_label = BTN_PDA_AUX7;
|
||||
aq_panel.c: aqdata->aqbuttons[9].led = &aqdata->aqualinkleds[8-1];
|
||||
aq_panel.c: aqdata->aqbuttons[9].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[9].label = name2label(BTN_AUXB1); // AUX8
|
||||
aq_panel.c: aqdata->aqbuttons[9].name = BTN_AUXB1;
|
||||
aq_panel.c: aqdata->aqbuttons[9].code = KEY_AUXB1;
|
||||
aq_panel.c: aqdata->aqbuttons[9].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[9].pda_label = BTN_PDA_AUX1;
|
||||
aq_panel.c: aqdata->aqbuttons[10].led = &aqdata->aqualinkleds[12-1];
|
||||
aq_panel.c: aqdata->aqbuttons[10].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[10].label = name2label(BTN_AUXB2); // AUX9
|
||||
aq_panel.c: aqdata->aqbuttons[10].name = BTN_AUXB2;
|
||||
aq_panel.c: aqdata->aqbuttons[10].code = KEY_AUXB2;
|
||||
aq_panel.c: aqdata->aqbuttons[10].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[10].pda_label = BTN_PDA_AUX2;
|
||||
aq_panel.c: aqdata->aqbuttons[11].led = &aqdata->aqualinkleds[1-1];
|
||||
aq_panel.c: aqdata->aqbuttons[11].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[11].label = name2label(BTN_AUXB3); // AUX10
|
||||
aq_panel.c: aqdata->aqbuttons[11].name = BTN_AUXB3;
|
||||
aq_panel.c: aqdata->aqbuttons[11].code = KEY_AUXB3;
|
||||
aq_panel.c: aqdata->aqbuttons[11].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[11].pda_label = BTN_PDA_AUX3;
|
||||
aq_panel.c: aqdata->aqbuttons[12].led = &aqdata->aqualinkleds[13-1];
|
||||
aq_panel.c: aqdata->aqbuttons[12].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[12].label = name2label(BTN_AUXB4); // AUX11
|
||||
aq_panel.c: aqdata->aqbuttons[12].name = BTN_AUXB4;
|
||||
aq_panel.c: aqdata->aqbuttons[12].code = KEY_AUXB4;
|
||||
aq_panel.c: aqdata->aqbuttons[12].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[12].pda_label = BTN_PDA_AUX4;
|
||||
aq_panel.c: aqdata->aqbuttons[13].led = &aqdata->aqualinkleds[21-1]; // doesn't actually exist
|
||||
aq_panel.c: aqdata->aqbuttons[13].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[13].label = name2label(BTN_AUXB5);
|
||||
aq_panel.c: aqdata->aqbuttons[13].name = BTN_AUXB5;
|
||||
aq_panel.c: aqdata->aqbuttons[13].code = KEY_AUXB5;
|
||||
aq_panel.c: aqdata->aqbuttons[13].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[13].pda_label = BTN_PDA_AUX5;
|
||||
aq_panel.c: aqdata->aqbuttons[14].led = &aqdata->aqualinkleds[22-1]; // doesn't actually exist
|
||||
aq_panel.c: aqdata->aqbuttons[14].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[14].label = name2label(BTN_AUXB6);
|
||||
aq_panel.c: aqdata->aqbuttons[14].name = BTN_AUXB6;
|
||||
aq_panel.c: aqdata->aqbuttons[14].code = KEY_AUXB6;
|
||||
aq_panel.c: aqdata->aqbuttons[14].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[14].pda_label = BTN_PDA_AUX6;
|
||||
aq_panel.c: aqdata->aqbuttons[15].led = &aqdata->aqualinkleds[23-1]; // doesn't actually exist
|
||||
aq_panel.c: aqdata->aqbuttons[15].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[15].label = name2label(BTN_AUXB7);
|
||||
aq_panel.c: aqdata->aqbuttons[15].name = BTN_AUXB7;
|
||||
aq_panel.c: aqdata->aqbuttons[15].code = KEY_AUXB7;
|
||||
aq_panel.c: aqdata->aqbuttons[15].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[15].pda_label = BTN_PDA_AUX7;
|
||||
aq_panel.c: aqdata->aqbuttons[16].led = &aqdata->aqualinkleds[24-1]; // doesn't actually exist
|
||||
aq_panel.c: aqdata->aqbuttons[16].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[16].label = name2label(BTN_AUXB8);
|
||||
aq_panel.c: aqdata->aqbuttons[16].name = BTN_AUXB8;
|
||||
aq_panel.c: aqdata->aqbuttons[16].code = KEY_AUXB8;
|
||||
aq_panel.c: aqdata->aqbuttons[16].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[16].pda_label = BTN_PDA_AUX7;
|
||||
aq_panel.c: aqdata->aqbuttons[17].led = &aqdata->aqualinkleds[15-1];
|
||||
aq_panel.c: aqdata->aqbuttons[17].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[17].label = name2label(BTN_POOL_HTR);
|
||||
aq_panel.c: aqdata->aqbuttons[17].name = BTN_POOL_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[17].code = KEY_POOL_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[17].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[17].pda_label = BTN_PDA_POOL_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[18].led = &aqdata->aqualinkleds[17-1];
|
||||
aq_panel.c: aqdata->aqbuttons[18].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[18].label = name2label(BTN_SPA_HTR);
|
||||
aq_panel.c: aqdata->aqbuttons[18].name = BTN_SPA_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[18].code = KEY_SPA_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[18].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[18].pda_label = BTN_PDA_SPA_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[19].led = &aqdata->aqualinkleds[19-1];
|
||||
aq_panel.c: aqdata->aqbuttons[19].led->state = LED_S_UNKNOWN;
|
||||
aq_panel.c: aqdata->aqbuttons[19].label = name2label(BTN_SOLAR_HTR);
|
||||
aq_panel.c: aqdata->aqbuttons[19].name = BTN_SOLAR_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[19].code = KEY_SOLAR_HTR;
|
||||
aq_panel.c: aqdata->aqbuttons[19].dz_idx = DZ_NULL_IDX;
|
||||
aq_panel.c: aqdata->aqbuttons[19].pda_label = BTN_PDA_SOLAR_HTR;
|
||||
aq_programmer.c: if ( aqdata->temp_units == CELSIUS ) {
|
||||
aq_programmer.c: aqdata->spa_htr_set_point != TEMP_UNKNOWN &&
|
||||
aq_programmer.c: min <= aqdata->spa_htr_set_point)
|
||||
aq_programmer.c: min = aqdata->spa_htr_set_point + 1;
|
||||
aq_programmer.c: if ( aqdata->temp_units == CELSIUS ) {
|
||||
aq_programmer.c: aqdata->pool_htr_set_point != TEMP_UNKNOWN &&
|
||||
aq_programmer.c: max >= aqdata->pool_htr_set_point)
|
||||
aq_programmer.c: max = aqdata->pool_htr_set_point - 1;
|
||||
aq_programmer.c: if ( aqdata->temp_units == CELSIUS ) {
|
||||
aqualinkd.c: // Loop over only aqdata->aqbuttons[13] to aqdata->aqbuttons[16]
|
||||
config.c: aqdata->aqbuttons[num].label = cleanalloc(indx+1);
|
||||
config.c: aqdata->aqbuttons[num].dz_idx = strtoul(indx+1, NULL, 10);
|
||||
config.c: aqdata->aqbuttons[num].pda_label = cleanalloc(indx+1);
|
||||
config.c: aqdata->aqbuttons[num].label = cleanalloc(value);
|
||||
config.c: aqdata->aqbuttons[num].dz_idx = strtoul(value, NULL, 10);
|
||||
config.c: //aqdata->aqbuttons[num].pda_label = cleanalloc(value);
|
||||
config.c: aqdata->aqbuttons[num].label = cleanalloc(value);
|
||||
config.c: if (aqdata->num_lights < MAX_LIGHTS) {
|
||||
config.c: aqdata->lights[aqdata->num_lights].button = &aqdata->aqbuttons[num];
|
||||
config.c: aqdata->lights[aqdata->num_lights].lightType = type;
|
||||
config.c: aqdata->num_lights++;
|
||||
config.c: aqdata->aqbuttons[num].special_mask |= PROGRAM_LIGHT;
|
||||
config.c: //aqdata->aqbuttons[num].pda_label = cleanalloc(value);
|
||||
config.c: aqdata->pumps[pi].button = &aqdata->aqbuttons[num];
|
||||
config.c: aqdata->pumps[pi].pumpID = strtoul(cleanalloc(value), NULL, 16);
|
||||
config.c: aqdata->pumps[pi].pumpIndex = pi+1;
|
||||
config.c: //aqdata->pumps[pi].buttonID = num;
|
||||
config.c: if (aqdata->pumps[pi].pumpID < 119)
|
||||
config.c: aqdata->pumps[pi].ptype = PENTAIR;
|
||||
config.c: aqdata->pumps[pi].ptype = JANDY;
|
||||
config.c: //aqdata->num_pumps
|
||||
config.c: for (pi=0; pi < aqdata->num_pumps; pi++) {
|
||||
config.c: if (aqdata->pumps[pi].button == &aqdata->aqbuttons[button]) {
|
||||
config.c: return &aqdata->pumps[pi];
|
||||
config.c: if (aqdata->num_pumps < MAX_PUMPS) {
|
||||
config.c: aqdata->aqbuttons[button].special_mask |= VS_PUMP;
|
||||
config.c: aqdata->pumps[aqdata->num_pumps].button = &aqdata->aqbuttons[button];
|
||||
config.c: aqdata->pumps[aqdata->num_pumps].pumpType = PT_UNKNOWN;
|
||||
config.c: aqdata->pumps[aqdata->num_pumps].rpm = TEMP_UNKNOWN;
|
||||
config.c: aqdata->pumps[aqdata->num_pumps].watts = TEMP_UNKNOWN;
|
||||
config.c: aqdata->pumps[aqdata->num_pumps].gpm = TEMP_UNKNOWN;
|
||||
config.c: aqdata->num_pumps++;
|
||||
config.c: return &aqdata->pumps[aqdata->num_pumps-1];
|
||||
config.c: fprintf(fp, "button_%.2d_label = %s\n", i+1, aqdata->aqbuttons[i].label);
|
||||
config.c: if (aqdata->aqbuttons[i].dz_idx > 0)
|
||||
config.c: fprintf(fp, "button_%.2d_dzidx = %d\n", i+1, aqdata->aqbuttons[i].dz_idx);
|
||||
config.c: if (aqdata->aqbuttons[i].pda_label != NULL)
|
||||
config.c: fprintf(fp, "button_%.2d_PDA_label = %s\n", i+1, aqdata->aqbuttons[i].pda_label);
|
||||
config_new.c: indx = sprintf(bufr, "button_%.2d_label = %s\n", i+1, aqdata->aqbuttons[i].label);
|
||||
config_new.c: indx += sprintf(&bufr[indx], "button_%.2d_dzidx = %d\n", i+1, aqdata->aqbuttons[i].dz_idx);
|
||||
config_new.c: if (aqdata->aqbuttons[i].pda_label != NULL)
|
||||
config_new.c: indx += sprintf(&bufr[indx], "button_%.2d_PDA_label = %s\n", i+1, aqdata->aqbuttons[i].pda_label);
|
||||
config_new.c: if ( aqdata->pumps[pi].button == &aqdata->aqbuttons[i] ) {
|
||||
config_new.c: indx += sprintf(&bufr[indx],"button_%.2d_pumpID = 0x%02hhx\n", i+1, aqdata->pumps[pi].pumpID);
|
||||
config_new.c: indx += sprintf(&bufr[indx],"button_%.2d_pumpIndex = %d\n", i+1, aqdata->pumps[pi].pumpIndex);
|
||||
config_new.c: for (j = 0; j < aqdata->num_pumps; j++) {
|
||||
config_new.c: if (aqdata->pumps[j].button == &aqdata->aqbuttons[i]) {
|
||||
config_new.c: sprintf(vsp,"0x%02hhx",aqdata->pumps[j].pumpID);
|
||||
config_new.c: alid = aqdata->pumps[j].pumpIndex;
|
||||
config_new.c: aqdata->aqbuttons[i].name, aqdata->aqbuttons[i].label, vsp, alid, aqdata->aqbuttons[i].dz_idx,
|
||||
config_new.c: aqdata->aqbuttons[i].name, aqdata->aqbuttons[i].label, vsp, alid,
|
||||
config_new.c: aqdata->aqbuttons[i].pda_label, aqdata->aqbuttons[i].dz_idx );
|
||||
config_new.c: for (j = 0; j < aqdata->num_pumps; j++) {
|
||||
config_new.c: if (aqdata->pumps[j].button == &aqdata->aqbuttons[i]) {
|
||||
config_new.c: vsp = aqdata->pumps[j].pumpID;
|
||||
config_new.c: alid = aqdata->pumps[j].pumpIndex;
|
||||
config_new.c: indx += sprintf(&bufr[indx], "{\"button\":\"%d\",\"label\":\"%s\",\"dzidx\":\"%d\"",i,aqdata->aqbuttons[i].label,aqdata->aqbuttons[i].dz_idx);
|
||||
config_new.c: aqdata->aqbuttons[i].name, aqdata->aqbuttons[i].label, vsp, alid,
|
||||
config_new.c: aqdata->aqbuttons[i].pda_label, aqdata->aqbuttons[i].dz_idx );
|
||||
config_new.c: aqdata->aqbuttons[num].label = cleanalloc(value);
|
||||
config_new.c: aqdata->aqbuttons[num].dz_idx = strtoul(value, NULL, 10);
|
||||
config_new.c: aqdata->aqbuttons[num].pda_label = cleanalloc(value);
|
||||
config_new.c: //aqdata->num_pumps
|
||||
config_new.c: for (pi=0; pi < aqdata->num_pumps; pi++) {
|
||||
config_new.c: if (aqdata->pumps[pi].button == &aqdata->aqbuttons[button]) {
|
||||
config_new.c: return &aqdata->pumps[pi];
|
||||
config_new.c: if (aqdata->num_pumps < MAX_PUMPS) {
|
||||
config_new.c: aqdata->pumps[aqdata->num_pumps].button = &aqdata->aqbuttons[button];
|
||||
config_new.c: aqdata->pumps[aqdata->num_pumps].pumpType = PT_UNKNOWN;
|
||||
config_new.c: aqdata->pumps[aqdata->num_pumps].rpm = TEMP_UNKNOWN;
|
||||
config_new.c: aqdata->pumps[aqdata->num_pumps].watts = TEMP_UNKNOWN;
|
||||
config_new.c: aqdata->pumps[aqdata->num_pumps].gpm = TEMP_UNKNOWN;
|
||||
config_new.c: aqdata->num_pumps++;
|
||||
config_new.c: return &aqdata->pumps[aqdata->num_pumps-1];
|
||||
devices_jandy.c: if (packet[3] == CMD_PERCENT && aqdata->active_thread.thread_id == 0 && packet[4] != 0xFF) {
|
||||
devices_jandy.c: if (aqdata->swg_percent != (int)packet[4]) {
|
||||
devices_jandy.c: aqdata->swg_percent = (int)packet[4];
|
||||
devices_jandy.c: aqdata->updated = true;
|
||||
devices_jandy.c: LOG(DJAN_LOG, LOG_DEBUG, "Set SWG %% to %d from control panel packet to SWG\n", aqdata->swg_percent);
|
||||
devices_jandy.c: if (aqdata->swg_percent != (int)packet[4]) {
|
||||
devices_jandy.c: aqdata->swg_percent = (int)packet[4];
|
||||
devices_jandy.c: aqdata->updated = true;
|
||||
devices_jandy.c: if (aqdata->swg_percent > 100)
|
||||
devices_jandy.c: aqdata->boost = true;
|
||||
devices_jandy.c: aqdata->boost = false;
|
||||
devices_jandy.c: //aqdata->ar_swg_device_status = packet[5];
|
||||
devices_jandy.c: if (aqdata->swg_delayed_percent != TEMP_UNKNOWN && aqdata->ar_swg_device_status == SWG_STATUS_ON) { // We have a delayed % to set.
|
||||
devices_jandy.c: snprintf(sval, 9, "%d", aqdata->swg_delayed_percent);
|
||||
devices_jandy.c: LOG(DJAN_LOG, LOG_NOTICE, "Setting SWG %% to %d, from delayed message\n", aqdata->swg_delayed_percent);
|
||||
devices_jandy.c: aqdata->swg_delayed_percent = TEMP_UNKNOWN;
|
||||
devices_jandy.c: if ( (packet[4] * 100) != aqdata->swg_ppm ) {
|
||||
devices_jandy.c: aqdata->swg_ppm = packet[4] * 100;
|
||||
devices_jandy.c: LOG(DJAN_LOG, LOG_DEBUG, "Set SWG PPM to %d from SWG packet\n", aqdata->swg_ppm);
|
||||
devices_jandy.c: aqdata->updated = true;
|
||||
devices_jandy.c: if ( aqdata->ar_swg_device_status != SWG_STATUS_UNKNOWN && isIAQT_ENABLED == false && isONET_ENABLED == false )
|
||||
devices_jandy.c: if (aqdata->ar_swg_device_status == status)
|
||||
devices_jandy.c: if (aqdata->ar_swg_device_status > SWG_STATUS_ON &&
|
||||
devices_jandy.c: aqdata->ar_swg_device_status < SWG_STATUS_TURNING_OFF) {
|
||||
devices_jandy.c: LOG(DJAN_LOG, LOG_DEBUG, "Ignoreing set SWG device state to '0x%02hhx', request from %d\n", aqdata->ar_swg_device_status, requester);
|
||||
devices_jandy.c: aqdata->ar_swg_device_status = status;
|
||||
devices_jandy.c: aqdata->swg_led_state = isSWGDeviceErrorState(status)?ENABLE:ON;
|
||||
devices_jandy.c: aqdata->ar_swg_device_status = status;
|
||||
devices_jandy.c: aqdata->swg_led_state = OFF;
|
||||
devices_jandy.c: LOG(DJAN_LOG, LOG_DEBUG, "Set SWG device state to '0x%02hhx', request from %d\n", aqdata->ar_swg_device_status, requester);
|
||||
devices_jandy.c: aqdata->boost = false;
|
||||
devices_jandy.c: aqdata->boost_msg[0] = '\0';
|
||||
devices_jandy.c: aqdata->swg_percent = 0;
|
||||
devices_jandy.c: aqdata->boost = true;
|
||||
devices_jandy.c: aqdata->swg_percent = 101;
|
||||
devices_jandy.c: LOG(DJAN_LOG, LOG_DEBUG, "Ignoring set SWG %% to %d due to programming SWG\n", aqdata->swg_percent);
|
||||
devices_jandy.c: if (aqdata->ar_swg_device_status != SWG_STATUS_OFF || aqdata->swg_led_state != OFF)
|
||||
devices_jandy.c: aqdata->updated = true;
|
||||
devices_jandy.c: aqdata->ar_swg_device_status = SWG_STATUS_OFF;
|
||||
devices_jandy.c: aqdata->swg_led_state = OFF;
|
||||
devices_jandy.c: if (aqdata->swg_led_state != ENABLE) {
|
||||
devices_jandy.c: aqdata->updated = true;
|
||||
devices_jandy.c: aqdata->swg_led_state = ENABLE;
|
||||
devices_jandy.c: aqdata->swg_percent = percent;
|
||||
devices_jandy.c: aqdata->updated = true;
|
||||
devices_jandy.c: if (aqdata->swg_percent > 0) {
|
||||
devices_jandy.c: if (aqdata->swg_led_state == OFF || (aqdata->swg_led_state == ENABLE && ! isSWGDeviceErrorState(aqdata->ar_swg_device_status)) ) // Don't change ENABLE / FLASH
|
||||
devices_jandy.c: aqdata->swg_led_state = ON;
|
||||
devices_jandy.c: if (aqdata->ar_swg_device_status == SWG_STATUS_UNKNOWN)
|
||||
devices_jandy.c: aqdata->ar_swg_device_status = SWG_STATUS_ON;
|
||||
devices_jandy.c: } if ( aqdata->swg_percent == 0 ) {
|
||||
devices_jandy.c: if (aqdata->swg_led_state == ON)
|
||||
devices_jandy.c: aqdata->swg_led_state = ENABLE; // Don't change OFF
|
||||
devices_jandy.c: if (aqdata->ar_swg_device_status == SWG_STATUS_UNKNOWN)
|
||||
devices_jandy.c: aqdata->ar_swg_device_status = SWG_STATUS_ON; // Maybe this should be off
|
||||
devices_jandy.c: LOG(DJAN_LOG, LOG_DEBUG, "Set SWG %% to %d, LED=%d, FullStatus=0x%02hhx\n", aqdata->swg_percent, aqdata->swg_led_state, aqdata->ar_swg_device_status);
|
||||
devices_jandy.c: switch (aqdata->ar_swg_device_status) {
|
||||
devices_jandy.c: return (aqdata->swg_percent > 0?ON:ENABLE);
|
||||
devices_jandy.c: return (aqdata->swg_percent > 0?ON:ENABLE);
|
||||
devices_jandy.c: return (aqdata->swg_percent > 0?ON:ENABLE);
|
||||
devices_jandy.c: return (aqdata->swg_percent > 0?ON:ENABLE);
|
||||
devices_jandy.c: return (aqdata->swg_percent > 0?ON:ENABLE);
|
||||
devices_jandy.c: return (aqdata->swg_percent > 0?ON:ENABLE);
|
||||
devices_jandy.c: switch (aqdata->ar_swg_device_status) {
|
||||
devices_jandy.c: *status = (aqdata->swg_percent > 0?SWG_ON:SWG_OFF);
|
||||
devices_jandy.c: *status = (aqdata->swg_percent > 0?SWG_ON:SWG_OFF);
|
||||
devices_jandy.c: *status = (aqdata->swg_percent > 0?SWG_ON:SWG_OFF);
|
||||
devices_jandy.c: *status = (aqdata->swg_percent > 0?SWG_ON:SWG_OFF);
|
||||
devices_jandy.c: *status = (aqdata->swg_percent > 0?SWG_ON:SWG_OFF);
|
||||
devices_jandy.c: *status = (aqdata->swg_percent > 0?SWG_ON:SWG_OFF);
|
||||
devices_jandy.c: *status = (aqdata->swg_percent > 0?SWG_ON:SWG_OFF);
|
||||
devices_jandy.c: for (i=0; i < aqdata->num_pumps; i++) {
|
||||
devices_jandy.c: if (aqdata->pumps[i].pumpID == packet_buffer[PKT_DEST]) {
|
||||
devices_jandy.c: LOG(DJAN_LOG, LOG_DEBUG, "Last panel info RPM:%d GPM:%d WATTS:%d\n", aqdata->pumps[i].rpm, aqdata->pumps[i].gpm, aqdata->pumps[i].watts);
|
||||
devices_pentair.c: if ( aqdata->pumps[i].prclType == PENTAIR && aqdata->pumps[i].pumpID == packet[PEN_PKT_FROM] ) {
|
||||
devices_pentair.c: aqdata->pumps[i].rpm = (packet[PEN_HI_B_RPM] * 256) + packet[PEN_LO_B_RPM];
|
||||
devices_pentair.c: aqdata->pumps[i].watts = (packet[PEN_HI_B_WAT] * 256) + packet[PEN_LO_B_WAT];
|
||||
devices_pentair.c: if ( pumpIndex < aqdata->num_pumps && pumpIndex < 0) {
|
||||
devices_pentair.c: aqdata->pumps[pumpIndex-1].rpm = atoi((char *) &packet_buffer[13]);
|
||||
devices_pentair.c: aqdata->pumps[pumpIndex-1].gph = atoi((char *) &packet_buffer[13]);
|
||||
devices_pentair.c: aqdata->pumps[pumpIndex-1].watts = atoi((char *) &packet_buffer[13]);
|
||||
json_messages.c: if (aqdata->active_thread.thread_id != 0 && !aqdata->simulate_panel) {
|
||||
json_messages.c: return programtypeDisplayName(aqdata->active_thread.ptype);
|
||||
json_messages.c: //if (aqdata->last_message != NULL && stristr(aqdata->last_message, "SERVICE") != NULL ) {
|
||||
json_messages.c: if (aqdata->service_mode_state == ON) {
|
||||
json_messages.c: } else if (aqdata->service_mode_state == FLASH) {
|
||||
json_messages.c: if (aqdata->last_display_message[0] != '\0') {
|
||||
json_messages.c: for(i=0; i < strlen(aqdata->last_display_message); i++ ) {
|
||||
json_messages.c: if (aqdata->last_display_message[i] <= 31 || aqdata->last_display_message[i] >= 127) {
|
||||
json_messages.c: aqdata->last_display_message[i] = ' ';
|
||||
json_messages.c: switch (aqdata->last_display_message[i]) {
|
||||
json_messages.c: aqdata->last_display_message[i] = ' ';
|
||||
json_messages.c: //printf("JSON Sending '%s'\n",aqdata->last_display_message);
|
||||
json_messages.c: return aqdata->last_display_message;
|
||||
json_messages.c: if (aqdata->display_last_message == true) {
|
||||
json_messages.c: return aqdata->last_message;
|
||||
json_messages.c: for (i=0; i < aqdata->num_pumps; i++) {
|
||||
json_messages.c: if (button == aqdata->pumps[i].button) {
|
||||
json_messages.c: aqdata->pumps[i].rpm,aqdata->pumps[i].gpm,aqdata->pumps[i].watts,
|
||||
json_messages.c: (aqdata->pumps[i].pumpType==VFPUMP?"vfPump":(aqdata->pumps[i].pumpType==VSPUMP?"vsPump":"ePump")));
|
||||
json_messages.c: for (i=0; i < aqdata->num_lights; i++) {
|
||||
json_messages.c: if (button == aqdata->lights[i].button) {
|
||||
json_messages.c: length += sprintf(buffer, ",\"type_ext\": \"switch_program\", \"Light_Type\":\"%d\"", aqdata->lights[i].lightType);
|
||||
json_messages.c: bool homekit_f = (homekit && aqdata->temp_units==FAHRENHEIT);
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"date\":\"%s\"",aqdata->date );//"09/01/16 THU",
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"time\":\"%s\"",aqdata->time );//"1:16 PM",
|
||||
json_messages.c: if ( aqdata->temp_units == FAHRENHEIT )
|
||||
json_messages.c: else if ( aqdata->temp_units == CELSIUS )
|
||||
json_messages.c: for (i=0; i < aqdata->total_buttons; i++)
|
||||
json_messages.c: if ( strcmp(BTN_POOL_HTR,aqdata->aqbuttons[i].name) == 0 && aqdata->pool_htr_set_point != TEMP_UNKNOWN) {
|
||||
json_messages.c: aqdata->aqbuttons[i].name,
|
||||
json_messages.c: aqdata->aqbuttons[i].label,
|
||||
json_messages.c: aqdata->aqbuttons[i].led->state==ON?JSON_ON:JSON_OFF,
|
||||
json_messages.c: LED2text(aqdata->aqbuttons[i].led->state),
|
||||
json_messages.c: ((homekit_f)?degFtoC(aqdata->pool_htr_set_point):aqdata->pool_htr_set_point),
|
||||
json_messages.c: ((homekit_f)?degFtoC(aqdata->pool_temp):aqdata->pool_temp),
|
||||
json_messages.c: LED2int(aqdata->aqbuttons[i].led->state));
|
||||
json_messages.c: } else if ( strcmp(BTN_SPA_HTR,aqdata->aqbuttons[i].name)==0 && aqdata->spa_htr_set_point != TEMP_UNKNOWN) {
|
||||
json_messages.c: aqdata->aqbuttons[i].name,
|
||||
json_messages.c: aqdata->aqbuttons[i].label,
|
||||
json_messages.c: aqdata->aqbuttons[i].led->state==ON?JSON_ON:JSON_OFF,
|
||||
json_messages.c: LED2text(aqdata->aqbuttons[i].led->state),
|
||||
json_messages.c: ((homekit_f)?degFtoC(aqdata->spa_htr_set_point):aqdata->spa_htr_set_point),
|
||||
json_messages.c: ((homekit_f)?degFtoC(aqdata->spa_temp):aqdata->spa_temp),
|
||||
json_messages.c: LED2int(aqdata->aqbuttons[i].led->state));
|
||||
json_messages.c: get_aux_information(&aqdata->aqbuttons[i], aqdata, aux_info);
|
||||
json_messages.c: aqdata->aqbuttons[i].name,
|
||||
json_messages.c: aqdata->aqbuttons[i].label,
|
||||
json_messages.c: aqdata->aqbuttons[i].led->state==ON?JSON_ON:JSON_OFF,
|
||||
json_messages.c: LED2text(aqdata->aqbuttons[i].led->state),
|
||||
json_messages.c: LED2int(aqdata->aqbuttons[i].led->state),
|
||||
json_messages.c: aqdata->aqbuttons[i].name,
|
||||
json_messages.c: aqdata->aqbuttons[i].label,
|
||||
json_messages.c: aqdata->aqbuttons[i].led->state==ON?JSON_ON:JSON_OFF,
|
||||
json_messages.c: LED2text(aqdata->aqbuttons[i].led->state),
|
||||
json_messages.c: LED2int(aqdata->aqbuttons[i].led->state));
|
||||
json_messages.c: if ( get_aux_information(&aqdata->aqbuttons[i], aqdata, aux_info)[0] == '\0' ) {
|
||||
json_messages.c: aqdata->aqbuttons[i].name,
|
||||
json_messages.c: aqdata->aqbuttons[i].label,
|
||||
json_messages.c: aqdata->aqbuttons[i].led->state==ON?JSON_ON:JSON_OFF,
|
||||
json_messages.c: LED2text(aqdata->aqbuttons[i].led->state),
|
||||
json_messages.c: LED2int(aqdata->aqbuttons[i].led->state));
|
||||
json_messages.c: aqdata->aqbuttons[i].name,
|
||||
json_messages.c: aqdata->aqbuttons[i].label,
|
||||
json_messages.c: aqdata->aqbuttons[i].led->state==ON?JSON_ON:JSON_OFF,
|
||||
json_messages.c: LED2text(aqdata->aqbuttons[i].led->state),
|
||||
json_messages.c: LED2int(aqdata->aqbuttons[i].led->state),
|
||||
json_messages.c: //get_aux_information(&aqdata->aqbuttons[i], aqdata, aux_info));
|
||||
json_messages.c: if ( aqdata->frz_protect_set_point != TEMP_UNKNOWN && aqdata->air_temp != TEMP_UNKNOWN) {
|
||||
json_messages.c: aqdata->frz_protect_state==ON?JSON_ON:JSON_OFF,
|
||||
json_messages.c: aqdata->frz_protect_state==ON?LED2text(ON):LED2text(ENABLE),
|
||||
json_messages.c: ((homekit_f)?degFtoC(aqdata->frz_protect_set_point):aqdata->frz_protect_set_point),
|
||||
json_messages.c: ((homekit_f)?degFtoC(aqdata->air_temp):aqdata->air_temp),
|
||||
json_messages.c: aqdata->frz_protect_state==ON?1:0);
|
||||
json_messages.c: if (aqdata->swg_led_state != LED_S_UNKNOWN) {
|
||||
json_messages.c: if ( aqdata->swg_percent != TEMP_UNKNOWN ) {
|
||||
json_messages.c: //aqdata->ar_swg_status == SWG_STATUS_OFF?JSON_OFF:JSON_ON,
|
||||
json_messages.c: aqdata->swg_led_state == OFF?JSON_OFF:JSON_ON,
|
||||
json_messages.c: LED2text(aqdata->swg_led_state),
|
||||
json_messages.c: ((homekit_f)?degFtoC(aqdata->swg_percent):aqdata->swg_percent),
|
||||
json_messages.c: ((homekit_f)?degFtoC(aqdata->swg_percent):aqdata->swg_percent),
|
||||
json_messages.c: LED2int(aqdata->swg_led_state) );
|
||||
json_messages.c: //aqdata->ar_swg_status == SWG_STATUS_OFF?LED2int(OFF):LED2int(ON));
|
||||
json_messages.c: ((homekit_f)?degFtoC(aqdata->swg_percent):aqdata->swg_percent));
|
||||
json_messages.c: aqdata->boost?JSON_ON:JSON_OFF,
|
||||
json_messages.c: aqdata->boost?JSON_ON:JSON_OFF,
|
||||
json_messages.c: aqdata->boost?LED2int(ON):LED2int(OFF));
|
||||
json_messages.c: if ( aqdata->swg_ppm != TEMP_UNKNOWN ) {
|
||||
json_messages.c: ((homekit_f)?roundf(degFtoC(aqdata->swg_ppm)):aqdata->swg_ppm));
|
||||
json_messages.c: aqdata->swg_ppm);
|
||||
json_messages.c: if ( aqdata->ph != TEMP_UNKNOWN ) {
|
||||
json_messages.c: ((homekit_f)?(degFtoC(aqdata->ph)):aqdata->ph));
|
||||
json_messages.c: if ( aqdata->orp != TEMP_UNKNOWN ) {
|
||||
json_messages.c: ((homekit_f)?(degFtoC(aqdata->orp)):aqdata->orp));
|
||||
json_messages.c: ((homekit_f)?degFtoC(aqdata->air_temp):aqdata->air_temp));
|
||||
json_messages.c: ((homekit_f)?degFtoC(aqdata->air_temp):aqdata->pool_temp));
|
||||
json_messages.c: ((homekit_f)?degFtoC(aqdata->air_temp):aqdata->spa_temp));
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"panel_message\":\"%s\"",aqdata->last_message );
|
||||
json_messages.c: //length += sprintf(buffer+length, ",\"message\":\"%s\"",aqdata->message );
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"version\":\"%s\"",aqdata->version );//8157 REV MMM",
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"date\":\"%s\"",aqdata->date );//"09/01/16 THU",
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"time\":\"%s\"",aqdata->time );//"1:16 PM",
|
||||
json_messages.c: //length += sprintf(buffer+length, ",\"air_temp\":\"%d\"",aqdata->air_temp );//"96",
|
||||
json_messages.c: //length += sprintf(buffer+length, ",\"pool_temp\":\"%d\"",aqdata->pool_temp );//"86",
|
||||
json_messages.c: //length += sprintf(buffer+length, ",\"spa_temp\":\"%d\"",aqdata->spa_temp );//" ",
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"pool_htr_set_pnt\":\"%d\"",aqdata->pool_htr_set_point );//"85",
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"spa_htr_set_pnt\":\"%d\"",aqdata->spa_htr_set_point );//"99",
|
||||
json_messages.c: //length += sprintf(buffer+length, ",\"freeze_protection":\"%s\"",aqdata->frz_protect_set_point );//"off",
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"frz_protect_set_pnt\":\"%d\"",aqdata->frz_protect_set_point );//"0",
|
||||
json_messages.c: if ( aqdata->air_temp == TEMP_UNKNOWN )
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"air_temp\":\"%d\"",aqdata->air_temp );
|
||||
json_messages.c: if ( aqdata->pool_temp == TEMP_UNKNOWN )
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"pool_temp\":\"%d\"",aqdata->pool_temp );
|
||||
json_messages.c: if ( aqdata->spa_temp == TEMP_UNKNOWN )
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"spa_temp\":\"%d\"",aqdata->spa_temp );
|
||||
json_messages.c: if (aqdata->swg_led_state != LED_S_UNKNOWN) {
|
||||
json_messages.c: if ( aqdata->swg_percent != TEMP_UNKNOWN )
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"swg_percent\":\"%d\"",aqdata->swg_percent );
|
||||
json_messages.c: if ( aqdata->swg_ppm != TEMP_UNKNOWN )
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"swg_ppm\":\"%d\"",aqdata->swg_ppm );
|
||||
json_messages.c: if ( aqdata->temp_units == FAHRENHEIT )
|
||||
json_messages.c: else if ( aqdata->temp_units == CELSIUS )
|
||||
json_messages.c: if (aqdata->battery == OK)
|
||||
json_messages.c: if ( aqdata->swg_percent == 101 )
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"swg_boost_msg\":\"%s\"",aqdata->boost_msg );
|
||||
json_messages.c: if ( aqdata->ph != TEMP_UNKNOWN )
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"chem_ph\":\"%.1f\"",aqdata->ph );
|
||||
json_messages.c: if ( aqdata->orp != TEMP_UNKNOWN )
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"chem_orp\":\"%d\"",aqdata->orp );
|
||||
json_messages.c: for (i=0; i < aqdata->total_buttons; i++)
|
||||
json_messages.c: char *state = LED2text(aqdata->aqbuttons[i].led->state);
|
||||
json_messages.c: length += sprintf(buffer+length, "\"%s\": \"%s\"", aqdata->aqbuttons[i].name, state);
|
||||
json_messages.c: if (i+1 < aqdata->total_buttons)
|
||||
json_messages.c: if ( aqdata->swg_percent != TEMP_UNKNOWN && aqdata->swg_led_state != LED_S_UNKNOWN ) {
|
||||
json_messages.c: length += sprintf(buffer+length, ", \"%s\": \"%s\"", SWG_TOPIC, LED2text(aqdata->swg_led_state));
|
||||
json_messages.c: //length += sprintf(buffer+length, ", \"%s\": \"%s\"", SWG_TOPIC, aqdata->ar_swg_status == SWG_STATUS_OFF?JSON_OFF:JSON_ON);
|
||||
json_messages.c: length += sprintf(buffer+length, ", \"%s\": \"%s\"", SWG_BOOST_TOPIC, aqdata->boost?JSON_ON:JSON_OFF);
|
||||
json_messages.c: if ( aqdata->frz_protect_set_point != TEMP_UNKNOWN ) {
|
||||
json_messages.c: length += sprintf(buffer+length, ", \"%s\": \"%s\"", FREEZE_PROTECT, aqdata->frz_protect_state==ON?JSON_ON:JSON_ENABLED);
|
||||
json_messages.c: for (i=0; i < aqdata->num_pumps; i++) {
|
||||
json_messages.c:printf("Pump Label %s\n",aqdata->pumps[i].button->label);
|
||||
json_messages.c:printf("Pump Name %s\n",aqdata->pumps[i].button->name);
|
||||
json_messages.c:printf("Pump RPM %d\n",aqdata->pumps[i].rpm);
|
||||
json_messages.c:printf("Pump GPM %d\n",aqdata->pumps[i].gpm);
|
||||
json_messages.c:printf("Pump GPM %d\n",aqdata->pumps[i].watts);
|
||||
json_messages.c:printf("Pump Type %d\n",aqdata->pumps[i].pumpType);
|
||||
json_messages.c: if (aqdata->pumps[i].pumpType != PT_UNKNOWN && (aqdata->pumps[i].rpm != TEMP_UNKNOWN || aqdata->pumps[i].gpm != TEMP_UNKNOWN || aqdata->pumps[i].watts != TEMP_UNKNOWN)) {
|
||||
json_messages.c: i+1,aqdata->pumps[i].button->label,aqdata->pumps[i].button->name,aqdata->pumps[i].rpm,aqdata->pumps[i].gpm,aqdata->pumps[i].watts,
|
||||
json_messages.c: (aqdata->pumps[i].pumpType==VFPUMP?"vfPump":(aqdata->pumps[i].pumpType==VSPUMP?"vsPump":"ePump")));
|
||||
json_messages.c: for (i=0; i < aqdata->total_buttons; i++)
|
||||
json_messages.c: length += sprintf(buffer+length, ",\"%s\": \"%s\"", aqdata->aqbuttons[i].name, aqdata->aqbuttons[i].label);
|
||||
net_services.c: if (aqdata->updated == true /*|| _broadcast == true*/) {
|
||||
net_services.c: aqdata->updated = false;
|
||||
serialadapter.c: val = setpoint_check(POOL_HTR_SETOINT, aqdata->pool_htr_set_point + val, aqdata);
|
||||
serialadapter.c: LOG(RSSA_LOG,LOG_DEBUG, "Increasing pool heater from %d to %d\n",aqdata->pool_htr_set_point,val);
|
||||
serialadapter.c: val = setpoint_check(SPA_HTR_SETOINT, aqdata->spa_htr_set_point + val, aqdata);
|
||||
serialadapter.c: LOG(RSSA_LOG,LOG_DEBUG, "Increasing spa heater from %d to %d\n",aqdata->spa_htr_set_point,val);
|
17
web_config.c
17
web_config.c
|
@ -1,3 +1,20 @@
|
|||
|
||||
/*
|
||||
* Copyright (c) 2017 Shaun Feakes - All rights reserved
|
||||
*
|
||||
* You may use redistribute and/or modify this code under the terms of
|
||||
* the GNU General Public License version 2 as published by the
|
||||
* Free Software Foundation. For the terms of this license,
|
||||
* see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* You are free to use this software under the terms of the GNU General
|
||||
* Public License, but WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* https://github.com/sfeakes/aqualinkd
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
|
|
Loading…
Reference in New Issue