Difference between revisions of "Insteon PLM Ruby Code 351"
From LinuxMCE
(Updated to support X10) |
|||
Line 1: | Line 1: | ||
− | <pre> | + | <pre>#### Written by Dan Damron |
− | #### Written by Dan Damron | + | |
#### #351 Process IDLE #### | #### #351 Process IDLE #### | ||
############################ RECEIVE Error Trap ########################### | ############################ RECEIVE Error Trap ########################### | ||
if $cmdqueue.length != 0 | if $cmdqueue.length != 0 | ||
if $resetNext != 0 | if $resetNext != 0 | ||
− | log($ | + | log($red + 'receive timeout='+$resetNext.to_s + $grey) |
end | end | ||
if $cmdqueue.to_s == $savedstate | if $cmdqueue.to_s == $savedstate | ||
if $resetNext == $timeout | if $resetNext == $timeout | ||
− | + | if $attempts == 2 then | |
− | + | #Third attempt.. fail the command. | |
− | + | log('Third attempt, Failing Command!') | |
− | + | $recvbuff = '' | |
− | + | $currentcmd = 0 | |
− | + | $attempts = 0 | |
− | + | cmdComplete | |
− | + | else | |
− | + | #Command has stalled. Reset wait flag and resend command. | |
− | + | log('Command Stalled! resetting and retrying') | |
− | + | log('Current Command:' + $currentcmd.to_s) | |
− | + | $recvbuff = '' | |
− | + | $currentcmd = 0 | |
− | + | $attempts += 1 | |
− | + | #hack to reset the command | |
− | + | if $cmdqueue[0]['Command'] == 'InsStdMsg' | |
− | + | $cmdqueue[0]['Command'] = 'SndIns' | |
− | + | end | |
− | + | end | |
$wAIT = false | $wAIT = false | ||
$resetNext = 0 | $resetNext = 0 | ||
Line 41: | Line 40: | ||
$attempts = 0 | $attempts = 0 | ||
end | end | ||
− | end | + | end</pre> |
− | </pre> | + |
Revision as of 01:45, 14 February 2008
#### Written by Dan Damron #### #351 Process IDLE #### ############################ RECEIVE Error Trap ########################### if $cmdqueue.length != 0 if $resetNext != 0 log($red + 'receive timeout='+$resetNext.to_s + $grey) end if $cmdqueue.to_s == $savedstate if $resetNext == $timeout if $attempts == 2 then #Third attempt.. fail the command. log('Third attempt, Failing Command!') $recvbuff = '' $currentcmd = 0 $attempts = 0 cmdComplete else #Command has stalled. Reset wait flag and resend command. log('Command Stalled! resetting and retrying') log('Current Command:' + $currentcmd.to_s) $recvbuff = '' $currentcmd = 0 $attempts += 1 #hack to reset the command if $cmdqueue[0]['Command'] == 'InsStdMsg' $cmdqueue[0]['Command'] = 'SndIns' end end $wAIT = false $resetNext = 0 SndIns() else $resetNext +=1 end else $resetNext = 0 $savedstate = $cmdqueue.to_s $attempts = 0 end end