[Netlinx-modules-commit] NetLinx-Modules/BaytechRPC changelog.txt, NONE, 1.1 BaytechRPC.axs, 1.1, 1
Brought to you by:
coffler
|
From: Jeff C. <co...@us...> - 2006-12-04 15:52:23
|
Update of /cvsroot/netlinx-modules/NetLinx-Modules/BaytechRPC In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv22537 Modified Files: BaytechRPC.axs Added Files: changelog.txt Log Message: Commit changes for BaytechRPC v1.1 of the code base. See file changelog.txt for detail of this change. --- NEW FILE: changelog.txt --- Ethernet control of Baytech RPC series remote power control units Code copyright 2005 Ryan P. Wright (http://www.ryanwright.com) Change log / version history Version 1.1 :: 12/3/2006 + Fixed problem: Outlets would flip on and off during a status update if the RPC device was in a different outlet state than Netlinx's virtual device. This was evident during a Netlinx system reboot, or if someone manually logged into the RPC device and changed outlet state. The module now tracks the RPC's outlet state in a different set of channels (101-112). Outlet state is now checked after every command execution to the device, and mapping to the virtual channels happens without flipping the outlet in the event of discrepency. + Fixed problem: Issuing multiple commands at once didn't work. The RPC device takes several seconds after a command is issued to execute and recover back to the menu. There is now a user-definable wait setting with a default of 3.5 seconds so we don't overload the device. Version 1.0 :: 2/24/2005 + First version of the code. Index: BaytechRPC.axs =================================================================== RCS file: /cvsroot/netlinx-modules/NetLinx-Modules/BaytechRPC/BaytechRPC.axs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** BaytechRPC.axs 24 Dec 2005 01:33:37 -0000 1.1 --- BaytechRPC.axs 4 Dec 2006 15:52:18 -0000 1.2 *************** *** 3,8 **** (* ****************************************************************************************** Ethernet control of Baytech RPC series remote power control units ! Code copyright 2005 Ryan P. Wright (http://www.ryanwright.com) ! VERSION 1.0 LAST MODIFIED: 2/24/2005 The latest version of this code is always available at: --- 3,8 ---- (* ****************************************************************************************** Ethernet control of Baytech RPC series remote power control units ! Code copyright 2005-2007 Ryan P. Wright (http://www.ryanwright.com) ! VERSION 1.1 LAST MODIFIED: 12/03/2006 The latest version of this code is always available at: *************** *** 128,131 **** --- 128,136 ---- // set to 1 to enable logging via syslog // set to 2 to enable debugging (highly detailed logging via syslog) + + integer cmdWait = 35 // time to wait between commands (ms) (default = 35 = 3.5 seconds) + // Increase this number if sequential command execution is unreliable. + // Decrease this number to increase speed of sequential command execution. + // Warning! Lower numbers will decrease reliability! Best to leave at defaults. (* **************************************************************************************** *) *************** *** 222,226 **** send_string rpcDevice, "cmd,13" if (loglevel > 0) { syslog(Info, 'BaytechRPCModule', "'Switched "',cmd,'" at ',rpcDeviceIP") } ! executingCmd = 0 } --- 227,231 ---- send_string rpcDevice, "cmd,13" if (loglevel > 0) { syslog(Info, 'BaytechRPCModule', "'Switched "',cmd,'" at ',rpcDeviceIP") } ! wait cmdWait executingCmd = 0 // wait before executing next command } *************** *** 242,291 **** channel_event [vdev_rpc, 1] { ! on: { if (outlets >= 1) { cmdQueue = "cmdQueue,'on 1!'" } } ! off: { if (outlets >= 1) { cmdQueue = "cmdQueue,'off 1!'" } } } channel_event [vdev_rpc, 2] { ! on: { if (outlets >= 2) { cmdQueue = "cmdQueue,'on 2!'" } } ! off: { if (outlets >= 2) { cmdQueue = "cmdQueue,'off 2!'" } } } channel_event [vdev_rpc, 3] { ! on: { if (outlets >= 3) { cmdQueue = "cmdQueue,'on 3!'" } } ! off: { if (outlets >= 3) { cmdQueue = "cmdQueue,'off 3!'" } } } channel_event [vdev_rpc, 4] { ! on: { if (outlets >= 4) { cmdQueue = "cmdQueue,'on 4!'" } } ! off: { if (outlets >= 4) { cmdQueue = "cmdQueue,'off 4!'" } } } channel_event [vdev_rpc, 5] { ! on: { if (outlets >= 5) { cmdQueue = "cmdQueue,'on 5!'" } } ! off: { if (outlets >= 5) { cmdQueue = "cmdQueue,'off 5!'" } } } channel_event [vdev_rpc, 6] { ! on: { if (outlets >= 6) { cmdQueue = "cmdQueue,'on 6!'" } } ! off: { if (outlets >= 6) { cmdQueue = "cmdQueue,'off 6!'" } } } channel_event [vdev_rpc, 7] { ! on: { if (outlets >= 7) { cmdQueue = "cmdQueue,'on 7!'" } } ! off: { if (outlets >= 7) { cmdQueue = "cmdQueue,'off 7!'" } } } channel_event [vdev_rpc, 8] { ! on: { if (outlets >= 8) { cmdQueue = "cmdQueue,'on 8!'" } } ! off: { if (outlets >= 8) { cmdQueue = "cmdQueue,'off 8!'" } } } channel_event [vdev_rpc, 9] { ! on: { if (outlets >= 9) { cmdQueue = "cmdQueue,'on 9!'" } } ! off: { if (outlets >= 9) { cmdQueue = "cmdQueue,'off 9!'" } } } channel_event [vdev_rpc, 10] { ! on: { if (outlets >= 10) { cmdQueue = "cmdQueue,'on 10!'" } } ! off: { if (outlets >= 10) { cmdQueue = "cmdQueue,'off 10!'" } } } channel_event [vdev_rpc, 11] { ! on: { if (outlets >= 11) { cmdQueue = "cmdQueue,'on 11!'" } } ! off: { if (outlets >= 11) { cmdQueue = "cmdQueue,'off 11!'" } } } channel_event [vdev_rpc, 12] { ! on: { if (outlets >= 12) { cmdQueue = "cmdQueue,'on 12!'" } } ! off: { if (outlets >= 12) { cmdQueue = "cmdQueue,'off 12!'" } } } --- 247,296 ---- channel_event [vdev_rpc, 1] { ! on: { if ((outlets >= 1) && (! [vdev_rpc,101])) { cmdQueue = "cmdQueue,'on 1!'" } } ! off: { if ((outlets >= 1) && ([vdev_rpc,101])) { cmdQueue = "cmdQueue,'off 1!'" } } } channel_event [vdev_rpc, 2] { ! on: { if ((outlets >= 2) && (! [vdev_rpc,102])) { cmdQueue = "cmdQueue,'on 2!'" } } ! off: { if ((outlets >= 2) && ([vdev_rpc,102])) { cmdQueue = "cmdQueue,'off 2!'" } } } channel_event [vdev_rpc, 3] { ! on: { if ((outlets >= 3) && (! [vdev_rpc,103])) { cmdQueue = "cmdQueue,'on 3!'" } } ! off: { if ((outlets >= 3) && ([vdev_rpc,103])) { cmdQueue = "cmdQueue,'off 3!'" } } } channel_event [vdev_rpc, 4] { ! on: { if ((outlets >= 4) && (! [vdev_rpc,104])) { cmdQueue = "cmdQueue,'on 4!'" } } ! off: { if ((outlets >= 4) && ([vdev_rpc,104])) { cmdQueue = "cmdQueue,'off 4!'" } } } channel_event [vdev_rpc, 5] { ! on: { if ((outlets >= 5) && (! [vdev_rpc,105])) { cmdQueue = "cmdQueue,'on 5!'" } } ! off: { if ((outlets >= 5) && ([vdev_rpc,105])) { cmdQueue = "cmdQueue,'off 5!'" } } } channel_event [vdev_rpc, 6] { ! on: { if ((outlets >= 6) && (! [vdev_rpc,106])) { cmdQueue = "cmdQueue,'on 6!'" } } ! off: { if ((outlets >= 6) && ([vdev_rpc,106])) { cmdQueue = "cmdQueue,'off 6!'" } } } channel_event [vdev_rpc, 7] { ! on: { if ((outlets >= 7) && (! [vdev_rpc,107])) { cmdQueue = "cmdQueue,'on 7!'" } } ! off: { if ((outlets >= 7) && ([vdev_rpc,107])) { cmdQueue = "cmdQueue,'off 7!'" } } } channel_event [vdev_rpc, 8] { ! on: { if ((outlets >= 8) && (! [vdev_rpc,108] )) { cmdQueue = "cmdQueue,'on 8!'" } } ! off: { if ((outlets >= 8) && ([vdev_rpc,108])) { cmdQueue = "cmdQueue,'off 8!'" } } } channel_event [vdev_rpc, 9] { ! on: { if ((outlets >= 9) && (! [vdev_rpc,109])) { cmdQueue = "cmdQueue,'on 9!'" } } ! off: { if ((outlets >= 9) && ([vdev_rpc,109])) { cmdQueue = "cmdQueue,'off 9!'" } } } channel_event [vdev_rpc, 10] { ! on: { if ((outlets >= 10) && (! [vdev_rpc,110])) { cmdQueue = "cmdQueue,'on 10!'" } } ! off: { if ((outlets >= 10) && ([vdev_rpc,110])) { cmdQueue = "cmdQueue,'off 10!'" } } } channel_event [vdev_rpc, 11] { ! on: { if ((outlets >= 11) && (! [vdev_rpc,111])) { cmdQueue = "cmdQueue,'on 11!'" } } ! off: { if ((outlets >= 11) && ([vdev_rpc,111])) { cmdQueue = "cmdQueue,'off 11!'" } } } channel_event [vdev_rpc, 12] { ! on: { if ((outlets >= 12) && (! [vdev_rpc,112])) { cmdQueue = "cmdQueue,'on 12!'" } } ! off: { if ((outlets >= 12) && ([vdev_rpc,112])) { cmdQueue = "cmdQueue,'off 12!'" } } } *************** *** 323,421 **** // at second menu, update channels from rpc data once queue has been flushed ! if ((menulevel = 1) && (find_string(rpcbuffer, '>',1)) && (updatingStatus)) { if (find_string(rpcbuffer, '1 On',1)) { ! on[vdev_rpc,1] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 1')} } if (find_string(rpcbuffer, '1 Off',1)){ ! off[vdev_rpc,1] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 1')} } if (find_string(rpcbuffer, '2 On',1)) { ! on[vdev_rpc,2] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 2')} } if (find_string(rpcbuffer, '2 Off',1)){ ! off[vdev_rpc,2] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 2')} } if (find_string(rpcbuffer, '3 On',1)) { ! on[vdev_rpc,3] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 3')} } if (find_string(rpcbuffer, '3 Off',1)){ ! off[vdev_rpc,3] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 3')} } if (find_string(rpcbuffer, '4 On',1)) { ! on[vdev_rpc,4] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 4')} } if (find_string(rpcbuffer, '4 Off',1)){ ! off[vdev_rpc,4] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 4')} } if (find_string(rpcbuffer, '5 On',1)) { ! on[vdev_rpc,5] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 5')} } if (find_string(rpcbuffer, '5 Off',1)){ ! off[vdev_rpc,5] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 5')} } if (find_string(rpcbuffer, '6 On',1)) { ! on[vdev_rpc,6] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 6')} } if (find_string(rpcbuffer, '6 Off',1)){ ! off[vdev_rpc,6] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 6')} } if (find_string(rpcbuffer, '7 On',1)) { ! on[vdev_rpc,7] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 7')} } if (find_string(rpcbuffer, '7 Off',1)){ ! off[vdev_rpc,7] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 7')} } if (find_string(rpcbuffer, '8 On',1)) { ! on[vdev_rpc,8] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 8')} } if (find_string(rpcbuffer, '8 Off',1)){ ! off[vdev_rpc,8] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 8')} } if (find_string(rpcbuffer, '9 On',1)) { ! on[vdev_rpc,9] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 9')} } if (find_string(rpcbuffer, '9 Off',1)){ ! off[vdev_rpc,9] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 9')} } if (find_string(rpcbuffer, '10 On',1)) { ! on[vdev_rpc,10] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 10')} } if (find_string(rpcbuffer, '10 Off',1)){ ! off[vdev_rpc,10] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 10')} } if (find_string(rpcbuffer, '11 On',1)) { ! on[vdev_rpc,11] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 11')} } if (find_string(rpcbuffer, '11 Off',1)){ ! off[vdev_rpc,11] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 11')} } if (find_string(rpcbuffer, '12 On',1)) { ! on[vdev_rpc,12] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 12')} } if (find_string(rpcbuffer, '12 Off',1)){ ! off[vdev_rpc,12] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 12')} } --- 328,427 ---- // at second menu, update channels from rpc data once queue has been flushed ! // if ((menulevel = 1) && (find_string(rpcbuffer, '>',1)) && (updatingStatus)) { ! if ((menulevel = 1) && (find_string(rpcbuffer, '>',1))) { if (find_string(rpcbuffer, '1 On',1)) { ! on[vdev_rpc,101] on[vdev_rpc,1] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 1')} } if (find_string(rpcbuffer, '1 Off',1)){ ! off[vdev_rpc,101] off[vdev_rpc,1] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 1')} } if (find_string(rpcbuffer, '2 On',1)) { ! on[vdev_rpc,102] on[vdev_rpc,2] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 2')} } if (find_string(rpcbuffer, '2 Off',1)){ ! off[vdev_rpc,102] off[vdev_rpc,2] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 2')} } if (find_string(rpcbuffer, '3 On',1)) { ! on[vdev_rpc,103] on[vdev_rpc,3] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 3')} } if (find_string(rpcbuffer, '3 Off',1)){ ! off[vdev_rpc,103] off[vdev_rpc,3] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 3')} } if (find_string(rpcbuffer, '4 On',1)) { ! on[vdev_rpc,104] on[vdev_rpc,4] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 4')} } if (find_string(rpcbuffer, '4 Off',1)){ ! off[vdev_rpc,104] off[vdev_rpc,4] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 4')} } if (find_string(rpcbuffer, '5 On',1)) { ! on[vdev_rpc,105] on[vdev_rpc,5] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 5')} } if (find_string(rpcbuffer, '5 Off',1)){ ! off[vdev_rpc,105] off[vdev_rpc,5] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 5')} } if (find_string(rpcbuffer, '6 On',1)) { ! on[vdev_rpc,106] on[vdev_rpc,6] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 6')} } if (find_string(rpcbuffer, '6 Off',1)){ ! off[vdev_rpc,106] off[vdev_rpc,6] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 6')} } if (find_string(rpcbuffer, '7 On',1)) { ! on[vdev_rpc,107] on[vdev_rpc,7] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 7')} } if (find_string(rpcbuffer, '7 Off',1)){ ! off[vdev_rpc,107] off[vdev_rpc,7] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 7')} } if (find_string(rpcbuffer, '8 On',1)) { ! on[vdev_rpc,108] on[vdev_rpc,8] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 8')} } if (find_string(rpcbuffer, '8 Off',1)){ ! off[vdev_rpc,108] off[vdev_rpc,8] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 8')} } if (find_string(rpcbuffer, '9 On',1)) { ! on[vdev_rpc,109] on[vdev_rpc,9] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 9')} } if (find_string(rpcbuffer, '9 Off',1)){ ! off[vdev_rpc,109] off[vdev_rpc,9] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 9')} } if (find_string(rpcbuffer, '10 On',1)) { ! on[vdev_rpc,110] on[vdev_rpc,10] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 10')} } if (find_string(rpcbuffer, '10 Off',1)){ ! off[vdev_rpc,110] off[vdev_rpc,10] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 10')} } if (find_string(rpcbuffer, '11 On',1)) { ! on[vdev_rpc,111] on[vdev_rpc,11] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 11')} } if (find_string(rpcbuffer, '11 Off',1)){ ! off[vdev_rpc,111] off[vdev_rpc,11] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 11')} } if (find_string(rpcbuffer, '12 On',1)) { ! on[vdev_rpc,112] on[vdev_rpc,12] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'ON 12')} } if (find_string(rpcbuffer, '12 Off',1)){ ! off[vdev_rpc,112] off[vdev_rpc,12] if (loglevel = 2) { syslog(Info, 'BaytechRPCModule', 'OFF 12')} } |