123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- from GSV4BT import GSV4BT
- import time
- import bluetooth
- import threading
- class LoadCells():
- def __init__(self):
- self.cells = (
- GSV4BT("00:0B:CE:04:F6:66"),
- GSV4BT("00:0B:CE:04:F6:67"),
- GSV4BT("00:0B:CE:04:F6:68"),
- )
-
- def connect(self):
- success = True
- for cell in self.cells:
- if cell.isConnected():
- pass
- elif cell.connect():
- cell.requiresSetup = True
- else:
- success = False
- return success
- def reconnectThread(self):
- while True:
- self.connect()
- time.sleep(1)
- def start(self):
- self.thread = threading.Thread(target=self.reconnectThread)
- self.thread.start()
- def getForces(self, id):
- cell = self.cells[id]
- if not cell.isConnected():
- return None
- if cell.requiresSetup:
- cell.setNormalMode()
- cell.stopTransmission()
- cell.setFrequency(20) # Hz
- cell.setGain(0, '2mV')
- cell.setGain(1, '2mV')
- cell.setGain(2, '2mV')
- mode = cell.getMode()
- if mode and mode[0] == 0x01:
- cell.requiresSetup = False
- cell.getValue()
- return cell.getForces()
- def scan(self):
- nearby_devices = bluetooth.discover_devices(lookup_names=True)
- print("Found {} devices.".format(len(nearby_devices)))
- for addr, name in nearby_devices:
- print(" {} - {}".format(addr, name))
- if __name__ == "__main__":
- cells = LoadCells()
- cells.scan()
- cells.start()
- while True:
- vals = cells.getForces(0)
- if vals:
- print('cell 0: ' + ' '.join(["ch {}: {:8.3f} mV/V".format(i, vals[i]) for i in range(len(vals))]))
- time.sleep(.3)
|