From 3ba992bcdeba77e4841a819601a9c546f0759a57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20K=C3=B6gl?= Date: Sun, 16 Mar 2014 11:34:34 +0100 Subject: [PATCH] ehealth2osc fixed and added socat_ehealth_test --- sensors2osc/sensors2osc/ehealth2osc.py | 93 ++++++++++++------- sensors2osc/sensors2osc/sensorTest.py | 8 +- sensors2osc/sensors2osc/socat_ehealth_test.py | 37 ++++++++ 3 files changed, 99 insertions(+), 39 deletions(-) create mode 100644 sensors2osc/sensors2osc/socat_ehealth_test.py diff --git a/sensors2osc/sensors2osc/ehealth2osc.py b/sensors2osc/sensors2osc/ehealth2osc.py index 68a7f7d..994f61f 100644 --- a/sensors2osc/sensors2osc/ehealth2osc.py +++ b/sensors2osc/sensors2osc/ehealth2osc.py @@ -22,49 +22,72 @@ from __future__ import absolute_import from sensors2osc.common import * -atexit.register(close) + def main(): - args, osc_sock = init("ehealth2osc") + platform = init("ehealth2osc") - actor = args.actor + actor = platform.args.actor while 1: try: - data = serial_sock.readline()[:-2] - print "got data", repr(data) - try: - airFlow, emg, temp = data.split(";") - except ValueError: - continue - - try: - airFlow = int(airFlow) - osc_message = OSCMessage("/%s/airFlow" % actor) - osc_message.appendTypedArg(airFlow, "i") - osc_sock.sendall(osc_message.encode_osc()) - except ValueError: - pass - - try: - emg = int(emg) - osc_message = OSCMessage("/%s/emg" % actor) - osc_message.appendTypedArg(emg, "i") - osc_sock.sendall(osc_message.encode_osc()) - except ValueError: - pass - - try: - temp = int(temp) - osc_message = OSCMessage("/%s/temperatur" % actor) - osc_message.appendTypedArg(temp, "i") - osc_sock.sendall(osc_message.encode_osc()) - except ValueError: - pass + data = platform.serial_sock.readline()[:-2] + print repr(data) except socket.error, msg: # got disconnected? - print "lost connection!!!" - reconnect(args) + print "serial socket error!!!", msg + platform.reconnect() + + print "got data", repr(data) + try: + airFlow, emg, temp = data.split(";") + except ValueError, e: + print e + continue + + try: + airFlow = int(airFlow) + except ValueError, e: + print e + continue + + try: + osc_message = OSCMessage("/%s/airFlow" % actor) + osc_message.appendTypedArg(airFlow, "i") + platform.osc_sock.sendall(osc_message.encode_osc()) + except socket.error, msg: + print "cannot connect to chaosc", msg + continue + + + try: + emg = int(emg) + except ValueError, e: + print e + continue + + try: + osc_message = OSCMessage("/%s/emg" % actor) + osc_message.appendTypedArg(emg, "i") + platform.osc_sock.sendall(osc_message.encode_osc()) + except socket.error, msg: + print "cannot connect to chaosc", msg + continue + + + try: + temp = int(temp) + except ValueError, e: + print e + continue + + try: + osc_message = OSCMessage("/%s/temperatur" % actor) + osc_message.appendTypedArg(temp, "i") + platform.osc_sock.sendall(osc_message.encode_osc()) + except socket.error, msg: + print "cannot connect to chaosc", msg + continue diff --git a/sensors2osc/sensors2osc/sensorTest.py b/sensors2osc/sensors2osc/sensorTest.py index 2fe385d..79ab7b7 100644 --- a/sensors2osc/sensors2osc/sensorTest.py +++ b/sensors2osc/sensors2osc/sensorTest.py @@ -1,20 +1,20 @@ #!/usr/bin/python # -*- coding: utf-8 -*- -# This file is part of chaosc +# This file is part of sensors2osc package # -# chaosc is free software: you can redistribute it and/or modify +# sensors2osc is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# chaosc is distributed in the hope that it will be useful, +# sensors2osc is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with chaosc. If not, see . +# along with sensors2osc. If not, see . # # Copyright (C) 2014 Stefan Kögl diff --git a/sensors2osc/sensors2osc/socat_ehealth_test.py b/sensors2osc/sensors2osc/socat_ehealth_test.py new file mode 100644 index 0000000..c14808f --- /dev/null +++ b/sensors2osc/sensors2osc/socat_ehealth_test.py @@ -0,0 +1,37 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# This file is part of sensors2osc package +# +# sensors2osc is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# sensors2osc is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with sensors2osc. If not, see . +# +# Copyright (C) 2014 Stefan Kögl + +# used this line before opening that script +# socat -d -d PTY,raw,echo=0,link=/tmp/pty1,b115200,user=stefan PTY,raw,echo=0,link=/tmp/pty2,b115200,user=stefan + +import serial + +serial_sock = serial.Serial() + +serial_sock = serial.Serial() +serial_sock.port = "/tmp/pty2" +serial_sock.baudrate = 115200 +serial_sock.timeout = 0 +serial_sock.open() +import time, random, struct + +while 1: + serial_sock.write("%d;%d;%d\r\n" % (random.randint(0,1023), random.randint(0,1023), random.randint(0,1023))) + #time.sleep(.5)