shalab shalab / Mbed 2 deprecated Tutorial02_BinarySerialCom

Dependencies:   mbed

Revision:
0:d80410b1dfec
Child:
1:8c34bb700858
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/readme.txt	Thu Feb 20 04:55:43 2014 +0000
@@ -0,0 +1,128 @@
+Use the following python program to test
+The python program is written for linux env.
+change the port settings if you are running under windows
+
+pyTerm.py
+------------
+#!/usr/bin/python
+
+import time
+import serial
+import sys
+import thread
+import struct
+import getopt
+
+
+def hex_to_float(h):
+    return struct.unpack('f', h)
+
+def float_to_hex(f):
+    return struct.pack('f', f)
+
+def double_to_hex(d):
+    return struct.pack('d', d)
+
+def printHex(h):
+    #print raw hex data
+    hexData = ':'.join(x.encode('hex') for x in h)
+    print hexData
+
+def sendHex(h):
+    serial.write(h)
+    serial.write("\r") 
+
+def logd(log, newline=True):
+    tag = "sys"
+    if (not newline):
+        sys.stdout.write("[%.5f] %s" % (time.time() - t0 , log))
+    else:
+        print "[%.5f] %s" % (time.time() - t0 , log)
+
+def welcomeMsg(): 
+    print
+    print 'Python-mbed Test Interface Program'
+    print '[Tutorial_BinarySerialCom]'
+    print 'Press Ctrl+c to quit'
+    print
+
+def initSerial(port, baudrate):
+    # Serial port Configuration
+    serial.port = "/dev/"+port
+    serial.baudrate = baudrate
+    serial.timeout = 1
+    serial.writeTimeout = 1
+    serial.open()
+    serial.flush()
+
+    logd( 'Opening port %s - %s' %(port, baudrate) )
+    serial.open()
+    if serial.isOpen(): 
+        logd('Success')
+    else:
+        logd('Failed')
+        exit(2)
+
+# Thread for printing data from serial
+def readSerial(threadName, delay):
+    s = ""
+    while True:
+        if serial.inWaiting() != 0:
+            c = serial.read()
+            if (c == '\n'):
+                print "[%7s] %s" % (threadName, s)
+                s =""
+            else:
+                s += c
+        else:
+            time.sleep(0.01)
+
+
+if __name__ == '__main__':
+    welcomeMsg();
+    t0 = time.time()
+    serial = serial.Serial()
+    port = "ttyACM0"
+    baudrate = 9600
+    try:
+        opts, args = getopt.getopt(sys.argv[1:],"hp:b:",["port=","baudrate="])
+    except getopt.GetoptError:
+        print 'pyTerm.py -p <port> -b <baudrate>'
+        sys.exit(2)
+    for opt, arg in opts:
+        if opt == '-h':
+            print 'pyTerm.py -p <port> -b <baudrate>'
+            sys.exit()
+        elif opt in ("-p", "--port"):
+            port = arg
+        elif opt in ("-b", "--baudrate"):
+            baudrate = int(arg)
+    initSerial(port, baudrate)
+
+    thread.start_new_thread( readSerial , ("Mbed", 2, ))
+ 
+
+    while 1 :
+        try:
+            logd("Enter a number: ", False)
+            inStr = raw_input() 
+            try:
+                inFloat = float(inStr)
+                inHex = double_to_hex(inFloat)
+                #printHex(inHex)
+                sendHex(inHex) 
+
+            except ValueError:
+               logd("Enter a proper number!")
+
+            time.sleep(1)
+
+        except KeyboardInterrupt:
+            print
+            logd("Keyboard interrupt") 
+            break
+        except Exception, err:
+            logd("Exception")
+            print sys.exc_info()[0]
+            print err
+            break
\ No newline at end of file