some 1w changes

doublebuf
Ondřej Hruška 6 years ago
parent 13a9d598fd
commit 9e72263af3
Signed by: MightyPork
GPG Key ID: 2C5FD5035250423D
  1. 18
      gex/units/OneWire.py
  2. 7
      main.py

@ -40,28 +40,24 @@ class OneWire(gex.Unit):
return devices return devices
def query(self, request, rcount, addr=None, as_array=False): def query(self, request, rcount, addr=0, verify=True, as_array=False):
""" Query a device """ """ Query a device """
pb = gex.PayloadBuilder() pb = gex.PayloadBuilder()
if addr is not None: pb.u64(addr)
pb.u64(addr)
pb.u16(rcount) pb.u16(rcount)
pb.bool(verify)
pb.blob(request) pb.blob(request)
resp = self._query(11 if addr is None else 13, pb.close()) resp = self._query(11, pb.close())
return resp.data if not as_array else list(resp.data) return resp.data if not as_array else list(resp.data)
def write(self, payload, addr=None, confirm=True): def write(self, payload, addr=0, confirm=True):
""" Write to a device """ """ Write to a device """
pb = gex.PayloadBuilder() pb = gex.PayloadBuilder()
if addr is not None: pb.u64(addr)
pb.u64(addr)
pb.blob(payload) pb.blob(payload)
self._send(10 if addr is None else 12, pb.close(), confirm=confirm) self._send(10, pb.close(), confirm=confirm)
def wait_ready(self): def wait_ready(self):
""" Wait for DS18x20 to complete measurement (or other chip using the same polling mechanism) """ """ Wait for DS18x20 to complete measurement (or other chip using the same polling mechanism) """

@ -13,9 +13,8 @@ with gex.Client(transport) as client:
client.ini_write(s) client.ini_write(s)
# search the bus # search the bus
if False: if True:
ow = gex.OneWire(client, 'ow') ow = gex.OneWire(client, 'ow')
print("Presence: ", ow.test_presence())
print("Devices:", ow.search()) print("Devices:", ow.search())
# search the bus for alarm # search the bus for alarm
@ -25,11 +24,11 @@ with gex.Client(transport) as client:
print("Devices w alarm:", ow.search(alarm=True)) print("Devices w alarm:", ow.search(alarm=True))
# simple 1w check # simple 1w check
if True: if False:
ow = gex.OneWire(client, 'ow') ow = gex.OneWire(client, 'ow')
print("Presence: ", ow.test_presence()) print("Presence: ", ow.test_presence())
print("ROM: 0x%016x" % ow.read_address()) print("ROM: 0x%016x" % ow.read_address())
print("Scratch:", ow.query([0xBE], 9, as_array=True)) print("Scratch:", ow.query([0xBE], rcount=9, addr=0x7100080104c77610, as_array=True))
# testing ds1820 temp meas without polling # testing ds1820 temp meas without polling
if False: if False:

Loading…
Cancel
Save