@@ -61,7 +61,7 @@ int main(int argc, char* argv[]) {
61
61
mySwitch.setPulseLength (300 );
62
62
usleep (50000 );
63
63
mySwitch.enableTransmit (0 );
64
- nPlugs=1024 ;
64
+ nPlugs=1280 ;
65
65
int nState[nPlugs];
66
66
nTimeout=0 ;
67
67
memset (nState, 0 , sizeof (nState));
@@ -138,11 +138,11 @@ int main(int argc, char* argv[]) {
138
138
/* *
139
139
* handle messages
140
140
*/
141
- int nAddr = getAddr (nGroup, nSwitchNumber);
141
+ int nAddr = getAddrElro (nGroup, nSwitchNumber);
142
142
printf (" nAddr: %i\n " , nAddr);
143
143
printf (" nPlugs: %i\n " , nPlugs);
144
144
char msg[13 ];
145
- if (nAddr > 1023 || nAddr < 1 ) {
145
+ if (nAddr > 1023 || nAddr < 0 ) {
146
146
printf (" Switch out of range: %s:%d\n " , nGroup, nSwitchNumber);
147
147
n = write (newsockfd," 2" ,1 );
148
148
}
@@ -193,11 +193,11 @@ int main(int argc, char* argv[]) {
193
193
printf (" nGroup: %s\n " , nGroup);
194
194
printf (" nSwitchNumber: %i\n " , nSwitchNumber);
195
195
printf (" nAction: %i\n " , nAction);
196
- int nAddr = getAddr (nGroup, nSwitchNumber);
196
+ int nAddr = getAddrInt (nGroup, nSwitchNumber);
197
197
printf (" nAddr: %i\n " , nAddr);
198
198
printf (" nPlugs: %i\n " , nPlugs);
199
199
char msg[13 ];
200
- if (nAddr > 16 || nAddr < 1 ) {
200
+ if (nAddr > 1279 || nAddr < 1024 ) {
201
201
printf (" Switch out of range: %s:%d\n " , nGroup, nSwitchNumber);
202
202
n = write (newsockfd," 2" ,1 );
203
203
}
@@ -318,9 +318,9 @@ void error(const char *msg) {
318
318
}
319
319
320
320
/* *
321
- * calculate the array address of the power state
321
+ * calculate the array address of the power state for elro
322
322
*/
323
- int getAddr (const char * nGroup, int nSwitchNumber) {
323
+ int getAddrElro (const char * nGroup, int nSwitchNumber) {
324
324
int tempgroup = atoi (nGroup);
325
325
int group = 0 ;
326
326
for (int i = 0 ; i < 5 ; i++) {
@@ -335,6 +335,13 @@ int getAddr(const char* nGroup, int nSwitchNumber) {
335
335
return result;
336
336
}
337
337
338
+ /* *
339
+ * calculate the array address of the power state for intertechno
340
+ */
341
+ int getAddrInt (const char * nGroup, int nSwitchNumber) {
342
+ return ((atoi (nGroup) - 1 ) * 16 ) + (nSwitchNumber - 1 ) + 1024 ;
343
+ }
344
+
338
345
PI_THREAD (switchOn) {
339
346
printf (" switchOnThread: %d\n " , nTimeout);
340
347
char tGroup[6 ];
0 commit comments