import sigrokdecode as srd
-command = {0x44: "TEMPERATURE CONVERSION",
- 0xbe: "READ SCRATCHPAD"}
+# a dictionary of FUNCTION commands and their names
+command = {
+ # scratchpad
+ 0x4e: "WRITE SCRATCHPAD",
+ 0xbe: "READ SCRATCHPAD",
+ 0x48: "COPY SCRATCHPAD",
+ # thermometer
+ 0x44: "CONVERT TEMPERATURE",
+ 0xb4: "READ POWER MODE",
+ 0xb8: "RECALL EEPROM",
+ 0xf5: "PIO ACCESS READ",
+ 0xA5: "PIO ACCESS WRITE",
+ 0x99: "CHAIN",
+ # memory
+ 0xf0: "READ MEMORY",
+ 0xa5: "EXTENDED READ MEMORY",
+ 0x0f: "WRITE MEMORY",
+ 0x55: "WRITE STATUS",
+ 0xaa: "READ STATUS",
+ 0xf5: "CHANNEL ACCESS"
+}
class Decoder(srd.Decoder):
api_version = 1
self.state = "UNRECOGNIZED"
elif (self.state == "READ SCRATCHPAD"):
self.put(ss, es, self.out_ann, [0, ['SCRATCHPAD DATA: 0x%02x' % (val)]])
- elif (self.state == "TEMPERATURE CONVERSION"):
+ elif (self.state == "CONVERT TEMPERATURE"):
self.put(ss, es, self.out_ann, [0, ['TEMPERATURE CONVERSION STATUS: 0x%02x' % (val)]])
+ elif (self.state in command.values()):
+ self.put(ss, es, self.out_ann, [0, ['TODO "%s": 0x%02x' % (self.state, val)]])
elif (self.state == "UNRECOGNIZED"):
- self.put(ss, es, self.out_ann, [0, ['UNRECOGNIZED: 0x%02x' % (val)]])
+ self.put(ss, es, self.out_ann, [0, ['UNRECOGNIZED COMMAND: 0x%02x' % (val)]])
else:
raise Exception('Invalid state: %s' % self.state)