Insteon PLM Ruby Code 351

From LinuxMCE
Revision as of 01:27, 6 January 2008 by Ddamron (Talk | contribs)

(diff) ←Older revision | view current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search
#### Written by Dan Damron
#### #351 Process IDLE ####
############################ RECEIVE Error Trap ###########################
if  $cmdqueue.length != 0
  if $resetNext != 0
    log($redBack + 'receive timeout='+$resetNext.to_s + $blackBack)
  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