from rfm69 import RFM69 import socket import json import base64 class SPIProxy(object): def __init__(self, host='10.79.2.188', port=1337, timeout=10): self.s = socket.socket() self.s.settimeout(timeout) self.s.connect((host, port)) print(self.s.recv(1024)) self.cs(False) def _send(self, data): #print("<<< {0}".format(data)) self.s.send(json.dumps(data)) r = json.loads(self.s.recv(1024)) #print(">>> {0}".format(r)) return r def write(self, data): if type(data) is int: data = chr(data) if type(data) in (list, tuple): data = ''.join([chr(x) for x in data]) r = self._send({'command':'write', 'argument':base64.b64encode(data)}) return base64.b64decode(r['data']) def read(self, n): r = self._send({'command':'read', 'argument':n}) return base64.b64decode(r['data']) def cs(self, b): r = self._send({'command':'select', 'argument':b}) return r.get('data') def xfer2(self, data): self.cs(True) res = self.write(data) self.cs(False) print([data, res]) return [ord(x) for x in res] class RFM69Proxy(RFM69): def init_gpio(self): pass def init_spi(self): self.spi = SPIProxy() def reset(self): print("[WARNING] reset is not implemented.")