Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: readme.txt
- 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