Embedded RTOS class project. This project allows a Python/Tk program running on a PC host to monitor/control a test-CPU programmed into an altera development board.

Dependencies:   C12832_lcd USBDevice mbed-rtos mbed mmSPI-2 watchdog

Fork of USB_device_project by Mike Moore

Committer:
gatedClock
Date:
Tue Sep 17 19:07:00 2013 +0000
Revision:
13:7e1688393abc
Parent:
8:db29cce17a33
updates for RTOS class project.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gatedClock 8:db29cce17a33 1 #!/usr/bin/python -tt # tt: detect mixed space/tab.
gatedClock 4:92539904a4ad 2 #---copyright-----------------------------------#-------------------------------
gatedClock 4:92539904a4ad 3 # licensed for personal and academic use.
gatedClock 4:92539904a4ad 4 # commercial use must be approved by the account-holder of
gatedClock 4:92539904a4ad 5 # gated.clock@gmail.com
gatedClock 4:92539904a4ad 6 #-------imports---------------------------------#-------------------------------
gatedClock 8:db29cce17a33 7 import serial # serial over USB.
gatedClock 4:92539904a4ad 8 #=======class===================================#===============================
gatedClock 4:92539904a4ad 9 if (1):
gatedClock 8:db29cce17a33 10 class mmUSBserial(): # USB class.
gatedClock 4:92539904a4ad 11 #-----------------------------------------------#-------------------------------
gatedClock 8:db29cce17a33 12 # constructor.
gatedClock 8:db29cce17a33 13 def __init__(self, idVendor, idProduct):
gatedClock 4:92539904a4ad 14
gatedClock 8:db29cce17a33 15 self.__idVendor = idVendor # promote to object scope.
gatedClock 8:db29cce17a33 16 self.__idProduct = idProduct # promote to object scope.
gatedClock 4:92539904a4ad 17
gatedClock 8:db29cce17a33 18 openSuccess = 1
gatedClock 8:db29cce17a33 19 self.__serialPort = serial.Serial()
gatedClock 13:7e1688393abc 20 self.__serialPort.baudrate = 115200 # was 9600
gatedClock 13:7e1688393abc 21 self.__serialPort.timeout = 1 # one-second timeout.
gatedClock 4:92539904a4ad 22
gatedClock 8:db29cce17a33 23 for portIndex in range(7, -1, -1):
gatedClock 8:db29cce17a33 24 portString = "/dev/ttyACM" + "{}".format(portIndex)
gatedClock 8:db29cce17a33 25 self.__serialPort.port = portString
gatedClock 8:db29cce17a33 26 try:
gatedClock 8:db29cce17a33 27 self.__serialPort.open()
gatedClock 8:db29cce17a33 28 except:
gatedClock 8:db29cce17a33 29 print("failed to open port {}.").format(portString)
gatedClock 8:db29cce17a33 30 openSuccess = 0
gatedClock 4:92539904a4ad 31
gatedClock 8:db29cce17a33 32 if (openSuccess): break
gatedClock 8:db29cce17a33 33 openSuccess = 1
gatedClock 4:92539904a4ad 34
gatedClock 8:db29cce17a33 35 if (openSuccess): print("successfully opened port {}.").format(portString)
gatedClock 8:db29cce17a33 36 else: print("could not open any port.")
gatedClock 13:7e1688393abc 37
gatedClock 13:7e1688393abc 38 self.__SER_BYTES = 18 # same as mbed program's SER_BYTES.
gatedClock 4:92539904a4ad 39 #-----------------------------------------------#-------------------------------
gatedClock 8:db29cce17a33 40 def __del__(self): # destructor.
gatedClock 8:db29cce17a33 41 self.__serialPort.close()
gatedClock 8:db29cce17a33 42 print "object destroyed."
gatedClock 4:92539904a4ad 43 #-----------------------------------------------#-------------------------------
gatedClock 13:7e1688393abc 44 # the number of bytes written and read must both be SER_BYTES.
gatedClock 13:7e1688393abc 45 # the '$' must be in bit<7> of what's written.
gatedClock 13:7e1688393abc 46
gatedClock 8:db29cce17a33 47 def write(self,toWrite): # write a string.
gatedClock 4:92539904a4ad 48 nowWrite = toWrite[:7]
gatedClock 13:7e1688393abc 49 nowWrite = nowWrite + "$" # in <7>.
gatedClock 13:7e1688393abc 50 if (self.__SER_BYTES > 8): # flush out with 0's.
gatedClock 13:7e1688393abc 51 for loopIndex in range (0, self.__SER_BYTES - 8):
gatedClock 13:7e1688393abc 52 nowWrite = nowWrite + "0"
gatedClock 13:7e1688393abc 53 # print("nowWrite {}").format(nowWrite)
gatedClock 8:db29cce17a33 54 self.__serialPort.write(nowWrite)
gatedClock 8:db29cce17a33 55 return(nowWrite)
gatedClock 4:92539904a4ad 56 #-----------------------------------------------#-------------------------------
gatedClock 8:db29cce17a33 57 def read(self): # read a string.
gatedClock 13:7e1688393abc 58 gotRead = self.__serialPort.read(self.__SER_BYTES)
gatedClock 13:7e1688393abc 59 # print("gotRead {}").format(gotRead)
gatedClock 8:db29cce17a33 60 return(gotRead)
gatedClock 4:92539904a4ad 61 #-----------------------------------------------#-------------------------------
gatedClock 4:92539904a4ad 62 #===============================================#===============================
gatedClock 4:92539904a4ad 63
gatedClock 4:92539904a4ad 64
gatedClock 4:92539904a4ad 65
gatedClock 4:92539904a4ad 66
gatedClock 4:92539904a4ad 67
gatedClock 4:92539904a4ad 68
gatedClock 4:92539904a4ad 69
gatedClock 4:92539904a4ad 70
gatedClock 4:92539904a4ad 71
gatedClock 4:92539904a4ad 72
gatedClock 8:db29cce17a33 73
gatedClock 8:db29cce17a33 74
gatedClock 8:db29cce17a33 75
gatedClock 8:db29cce17a33 76
gatedClock 8:db29cce17a33 77
gatedClock 8:db29cce17a33 78
gatedClock 8:db29cce17a33 79
gatedClock 8:db29cce17a33 80
gatedClock 8:db29cce17a33 81
gatedClock 8:db29cce17a33 82
gatedClock 8:db29cce17a33 83
gatedClock 13:7e1688393abc 84
gatedClock 13:7e1688393abc 85
gatedClock 13:7e1688393abc 86
gatedClock 13:7e1688393abc 87
gatedClock 13:7e1688393abc 88
gatedClock 13:7e1688393abc 89
gatedClock 13:7e1688393abc 90
gatedClock 13:7e1688393abc 91
gatedClock 13:7e1688393abc 92
gatedClock 13:7e1688393abc 93
gatedClock 13:7e1688393abc 94