- elif (self.code == "BIT"):
- if (self.state == "COMMAND"):
- # Receiving and decoding a ROM command
- if (self.onewire_collect(8, val)):
- self.put(self.net_beg, self.net_end, self.out_ann, [ANN_NETWORK,
- ['ROM COMMAND: 0x%02x \'%s\'' % (self.data, rom_command[self.data])]])
- if (self.data == 0x33): # READ ROM
- self.state = "GET ROM"
- elif (self.data == 0x0f): # CONDITIONAL READ ROM
- self.state = "GET ROM"
- elif (self.data == 0xcc): # SKIP ROM
- self.state = "TRANSPORT"
- elif (self.data == 0x55): # MATCH ROM
- self.state = "GET ROM"
- elif (self.data == 0xf0): # SEARCH ROM
- self.state = "SEARCH ROM"
- elif (self.data == 0xec): # CONDITIONAL SEARCH ROM
- self.state = "SEARCH ROM"
- elif (self.data == 0x3c): # OVERDRIVE SKIP ROM
- self.state = "TRANSPORT"
- elif (self.data == 0x69): # OVERDRIVE MATCH ROM
- self.state = "GET ROM"
- elif (self.state == "GET ROM"):
- # A 64 bit device address is selected
- # family code (1B) + serial number (6B) + CRC (1B)
- if (self.onewire_collect(64, val)):
+ self.put(ss, es, self.out_ann,
+ [0, ['RESET/PRESENCE: %s' % ('True' if val else 'False')]])
+ self.put(ss, es, self.out_proto, ['RESET/PRESENCE', val])
+ self.state = 'COMMAND'
+ elif code == 'BIT':
+ if self.state == 'COMMAND':
+ # Receiving and decoding a ROM command.
+ if self.onewire_collect(8, val, ss, es):
+ if self.data in command:
+ self.putx([0, ['ROM COMMAND: 0x%02x \'%s\''
+ % (self.data, command[self.data][0])]])
+ self.state = command[self.data][1]
+ else:
+ self.putx([0, ['ROM COMMAND: 0x%02x \'%s\''
+ % (self.data, 'UNRECOGNIZED')]])
+ self.state = 'COMMAND ERROR'
+ elif self.state == 'GET ROM':
+ # A 64 bit device address is selected.
+ # Family code (1B) + serial number (6B) + CRC (1B)
+ if self.onewire_collect(64, val, ss, es):