parent
8b6cf834b2
commit
3537f9d506
@ -0,0 +1,4 @@ |
|||||||
|
default: run |
||||||
|
|
||||||
|
run: |
||||||
|
pipenv run python3 main.py
|
@ -0,0 +1,13 @@ |
|||||||
|
[[source]] |
||||||
|
name = "pypi" |
||||||
|
url = "https://pypi.org/simple" |
||||||
|
verify_ssl = true |
||||||
|
|
||||||
|
[dev-packages] |
||||||
|
|
||||||
|
[packages] |
||||||
|
pyserial = "*" |
||||||
|
sanelogging = "*" |
||||||
|
|
||||||
|
[requires] |
||||||
|
python_version = "3.7" |
@ -0,0 +1,43 @@ |
|||||||
|
{ |
||||||
|
"_meta": { |
||||||
|
"hash": { |
||||||
|
"sha256": "02979d2499db65e8d3d0573c25c28fd31d393240497d4f3ec8607dbba02ea1be" |
||||||
|
}, |
||||||
|
"pipfile-spec": 6, |
||||||
|
"requires": { |
||||||
|
"python_version": "3.7" |
||||||
|
}, |
||||||
|
"sources": [ |
||||||
|
{ |
||||||
|
"name": "pypi", |
||||||
|
"url": "https://pypi.org/simple", |
||||||
|
"verify_ssl": true |
||||||
|
} |
||||||
|
] |
||||||
|
}, |
||||||
|
"default": { |
||||||
|
"colorlog": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:3cf31b25cbc8f86ec01fef582ef3b840950dea414084ed19ab922c8b493f9b42", |
||||||
|
"sha256:450f52ea2a2b6ebb308f034ea9a9b15cea51e65650593dca1da3eb792e4e4981" |
||||||
|
], |
||||||
|
"version": "==4.0.2" |
||||||
|
}, |
||||||
|
"pyserial": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:6e2d401fdee0eab996cf734e67773a0143b932772ca8b42451440cfed942c627", |
||||||
|
"sha256:e0770fadba80c31013896c7e6ef703f72e7834965954a78e71a3049488d4d7d8" |
||||||
|
], |
||||||
|
"index": "pypi", |
||||||
|
"version": "==3.4" |
||||||
|
}, |
||||||
|
"sanelogging": { |
||||||
|
"hashes": [ |
||||||
|
"sha256:ae018de50f00ace45b34dbade66b511651cb1758a7c26e262841651b2dd6f2cf" |
||||||
|
], |
||||||
|
"index": "pypi", |
||||||
|
"version": "==1.0.1" |
||||||
|
} |
||||||
|
}, |
||||||
|
"develop": {} |
||||||
|
} |
@ -0,0 +1,50 @@ |
|||||||
|
#!/usr/bin/env python3 |
||||||
|
import serial |
||||||
|
from sanelogging import log |
||||||
|
import binascii |
||||||
|
|
||||||
|
class Brainduino(object): |
||||||
|
def __init__(self): |
||||||
|
self.inbuffer = bytes() |
||||||
|
|
||||||
|
def add_bytes(self,bytes): |
||||||
|
self.inbuffer = self.inbuffer + bytes |
||||||
|
if self.buffer_contains_line(): |
||||||
|
self.read_and_process_line_from_buffer() |
||||||
|
|
||||||
|
def buffer_contains_line(self): |
||||||
|
return self.inbuffer.find(b'\r') != -1 |
||||||
|
|
||||||
|
def process_line(self,line): |
||||||
|
line = line.decode("UTF-8") |
||||||
|
if len(line) != 16: |
||||||
|
# this line is incomplete, skip |
||||||
|
return |
||||||
|
log.info("got line: " + line) |
||||||
|
p = line.strip().split("\t") |
||||||
|
print(binascii.unhexlify(p[0] + p[1])) |
||||||
|
print(binascii.unhexlify(p[2] + p[3])) |
||||||
|
|
||||||
|
def read_and_process_line_from_buffer(self): |
||||||
|
i = self.inbuffer.find(b'\r') |
||||||
|
if i < 1: |
||||||
|
log.error("should not happen") |
||||||
|
return |
||||||
|
line = self.inbuffer[0:i+1] |
||||||
|
self.inbuffer = self.inbuffer[i+1:] |
||||||
|
self.process_line(line) |
||||||
|
|
||||||
|
def main(): |
||||||
|
e = Brainduino() |
||||||
|
|
||||||
|
with serial.Serial( |
||||||
|
'/dev/tty.Alpheratz-SPPDev', |
||||||
|
115200, |
||||||
|
timeout=1 |
||||||
|
) as ser: |
||||||
|
while True: |
||||||
|
e.add_bytes(ser.read(16)) |
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__": |
||||||
|
main() |
Loading…
Reference in new issue