Kazuki Yamamoto / Mbed 2 deprecated uart_i2c_conv

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
K4zuki
Date:
Wed Aug 31 04:19:38 2016 +0900
Parent:
37:b263866a9d1b
Parent:
76:fcbc456010e0
Child:
78:434514b8d383
Commit message:
merge github/master

Changed in this revision

serial2i2c.py.txt Show annotated file Show diff for this revision Revisions of this file
--- a/serial2i2c.py.txt	Wed Aug 31 02:37:26 2016 +0900
+++ b/serial2i2c.py.txt	Wed Aug 31 04:19:38 2016 +0900
@@ -1,150 +1,149 @@
-import serial
-import argparse
-import struct
-import os.path
-import binascii
-
-# Table 3. ASCII commands supported by SC18IM700
-# ASCII command Hex value Command function
-# S 0x53 I2C-bus START
-# P 0x50 I2C-bus STOP
-# R 0x52 read SC18IM700 internal register
-# W 0x57 write to SC18IM700 internal register
-# I 0x49 read GPIO port
-# O 0x4F write to GPIO port
-# Z 0x5A power down
-
-class serial2i2c(object):
-    ser=0
-    channel='0'
-    address=0x80
-    
-    def __init__(self,port='com1',baud='115200'):
-        self.ser=serial.Serial(port,baudrate=baud,timeout=1)
-        
-    def setChannel(self,channel=0):
-        self.channel=channel
-        self.ser.write("C"+str(self.channel)+"P")
-        return (self.ser.readline().strip())
-        pass
-        
-    def read(self,address,length=1):
-        self.ser.write("S"+chr(address|0x01)+chr(length)+"P")
-        return(self.ser.readline().strip())
-        pass
-        
-    def write(self,address,data=0):
-        data=self.convert_hex_to_ascii(data)
-        length=len(data)
-        format=">"+str(length)+"s"
-        self.ser.write("S"+chr(address|0x00)+chr(length)\
-                        +struct.pack(format,data)+"P")
-#                        +">"+str(length)+"B"+chr(data)+"P")
-        return(self.ser.readline().strip())
-        pass
-        
-    def write_and_read(self,address,wdata=0,rlength=1):
-        wdata=self.convert_hex_to_ascii(wdata)
-        length=len(wdata)
-        format=">"+str(length)+"s"
-        self.ser.write("S"+chr(address|0x00)+chr(length)+struct.pack(format,wdata)\
-                        +"S"+chr(address|0x01)+chr(rlength)\
-                        +"P")
-#                        +">"+str(length)+"B"+chr(wdata)+"P")
-        return(self.ser.readline().strip())
-
-    def start(self):
-        self.ser.write("S")
-        pass
-        
-    def stop(self):
-        self.ser.write("P")
-        pass
-    
-    def convert_hex_to_ascii(self,h):
-        chars_in_reverse = []
-        while h != 0x0:
-            chars_in_reverse.append(chr(h & 0xFF))
-            h = h >> 8
-    
-        chars_in_reverse.reverse()
-        return ''.join(chars_in_reverse)
-
-        
-#    def send(self,data="Sx4hogeP"):
-#        self.ser.write(data)
-#        pass
-        
-        
-
-class MyParser(object):
-    def __init__(self):
-        self.parser = argparse.ArgumentParser(description="hogeeee")
-        self.parser.add_argument('--port','-p', help='number or name of serial port', default='com1')
-#        self.parser.add_argument('--port','-p', help='number or name of serial port', default='/dev/ttyACM0')
-#        self.parser.add_argument('--mon','-m', help='number or name of serial port', default='/dev/ttyACM0')
-        self.parser.add_argument('--baud','-b', help='baudrate of serial port', default='115200')#460800
-        self.args=self.parser.parse_args(namespace=self)        
-      
-if __name__=="__main__":
-#    parser.print_help()
-    parser=MyParser()
-#    args=parser.parse_args()
-#    print args
-#    print args.port, args.baud
-    
-    port=parser.args.port # port number, different in OSes
-    baud=parser.args.baud
-    dev=serial2i2c(port,baud)
-##    channel="C0P"
-##    i2cw="S"+chr(0x80)+chr(0x04)+struct.pack(">4B",0xde,0xad,0xbe,0xaf)+"P"
-##    i2crw="S"+chr(0x80)+chr(0x04)+struct.pack(">4B",0xde,0xad,0xbe,0xaf)+"S"+chr(0x81)+chr(0x04)+"P"
-#    print channel,i2cw
-
-#    raw_input("wait, press enter to set channel 0")
-    raw_input("wait, press enter to transferring data")
-    print dev.setChannel(0)
-#    print dev.ser.write(channel)
-#    print dev.ser.readline().strip()
-#    raw_input("wait, press enter to set channel 1")
-#    print dev.ser.write("C1P")
-#    print dev.ser.readline().strip()
-
-#    raw_input("wait, press enter to send write command")
-    print dev.write(0x90,0xdeadbeaf)
-##    ser.write(i2cw)
-    print "%02X"%(int(dev.write_and_read(0x90,0xdeadbeaf,50).split(',')[0],16))
-#    print dev.ser.readline().strip()
-
-##    raw_input("wait, press enter to send repeated start command")
-##    dev.ser.write(i2crw)
-##    print dev.ser.readline()
-
-##    raw_input("wait, press enter to send 'R' command")
-##    ser.write('RP')
-##    print dev.ser.readline()
-
-##    raw_input("wait, press enter to send 'W' command")
-##    ser.write('WP')
-##    print dev.ser.readline()
-
-##    raw_input("wait, press enter to send 'I' command")
-##    ser.write('IP')
-##    print dev.ser.readline()
-
-##    raw_input("wait, press enter to send 'O' command")
-##    ser.write('OP')
-##    print dev.ser.readline()
-
-##    raw_input("wait, press enter to send 'Z' command")
-##    ser.write('ZP')
-##    print dev.ser.readline()
-
-##    raw_input("wait, press enter to send unknown command")
-##    ser.write('XP')
-##    print dev.ser.readline()
-
-#    while(ser.inWaiting()>0):
-#        print ser.readline()
-#    dev.ser.close()
-
+import serial
+import argparse
+import struct
+import os.path
+import binascii
+
+# Table 3. ASCII commands supported by SC18IM700
+# ASCII command Hex value Command function
+# S 0x53 I2C-bus START
+# P 0x50 I2C-bus STOP
+# R 0x52 read SC18IM700 internal register
+# W 0x57 write to SC18IM700 internal register
+# I 0x49 read GPIO port
+# O 0x4F write to GPIO port
+# Z 0x5A power down
+
+class serial2i2c(object):
+    ser=0
+    channel='0'
+    address=0x80
+
+    def __init__(self,port='com1',baud='115200'):
+        self.ser=serial.Serial(port,baudrate=baud,timeout=1)
+
+    def setChannel(self,channel=0):
+        self.channel=channel
+        self.ser.write("C"+str(self.channel)+"P")
+        return (self.ser.readline().strip())
+        pass
+
+    def read(self,address,length=1):
+        self.ser.write("S"+chr(address|0x01)+chr(length)+"P")
+        return(self.ser.readline().strip())
+        pass
+
+    def write(self,address,data=0):
+        data=self.convert_hex_to_ascii(data)
+        length=len(data)
+        format=">"+str(length)+"s"
+        self.ser.write("S"+chr(address|0x00)+chr(length)\
+                        +struct.pack(format,data)+"P")
+#                        +">"+str(length)+"B"+chr(data)+"P")
+        return(self.ser.readline().strip())
+        pass
+
+    def write_and_read(self,address,wdata=0,rlength=1):
+        wdata=self.convert_hex_to_ascii(wdata)
+        length=len(wdata)
+        format=">"+str(length)+"s"
+        self.ser.write("S"+chr(address|0x00)+chr(length)+struct.pack(format,wdata)\
+                        +"S"+chr(address|0x01)+chr(rlength)\
+                        +"P")
+#                        +">"+str(length)+"B"+chr(wdata)+"P")
+        return(self.ser.readline().strip())
+
+    def start(self):
+        self.ser.write("S")
+        pass
+
+    def stop(self):
+        self.ser.write("P")
+        pass
+
+    def convert_hex_to_ascii(self,h):
+        chars_in_reverse = []
+        while h != 0x0:
+            chars_in_reverse.append(chr(h & 0xFF))
+            h = h >> 8
+
+        chars_in_reverse.reverse()
+        return ''.join(chars_in_reverse)
+
+
+#    def send(self,data="Sx4hogeP"):
+#        self.ser.write(data)
+#        pass
+
+
+
+class MyParser(object):
+    def __init__(self):
+        self.parser = argparse.ArgumentParser(description="hogeeee")
+        self.parser.add_argument('--port','-p', help='number or name of serial port', default='com1')
+#        self.parser.add_argument('--port','-p', help='number or name of serial port', default='/dev/ttyACM0')
+#        self.parser.add_argument('--mon','-m', help='number or name of serial port', default='/dev/ttyACM0')
+        self.parser.add_argument('--baud','-b', help='baudrate of serial port', default='115200')#460800
+        self.args=self.parser.parse_args(namespace=self)
+
+if __name__=="__main__":
+#    parser.print_help()
+    parser=MyParser()
+#    args=parser.parse_args()
+#    print args
+#    print args.port, args.baud
+
+    port=parser.args.port # port number, different in OSes
+    baud=parser.args.baud
+    dev=serial2i2c(port,baud)
+##    channel="C0P"
+##    i2cw="S"+chr(0x80)+chr(0x04)+struct.pack(">4B",0xde,0xad,0xbe,0xaf)+"P"
+##    i2crw="S"+chr(0x80)+chr(0x04)+struct.pack(">4B",0xde,0xad,0xbe,0xaf)+"S"+chr(0x81)+chr(0x04)+"P"
+#    print channel,i2cw
+
+#    raw_input("wait, press enter to set channel 0")
+    raw_input("wait, press enter to transferring data")
+    print dev.setChannel(0)
+#    print dev.ser.write(channel)
+#    print dev.ser.readline().strip()
+#    raw_input("wait, press enter to set channel 1")
+#    print dev.ser.write("C1P")
+#    print dev.ser.readline().strip()
+
+#    raw_input("wait, press enter to send write command")
+    print dev.write(0x90,0xdeadbeaf)
+##    ser.write(i2cw)
+    print "%02X"%(int(dev.write_and_read(0x90,0xdeadbeaf,50).split(',')[0],16))
+#    print dev.ser.readline().strip()
+
+##    raw_input("wait, press enter to send repeated start command")
+##    dev.ser.write(i2crw)
+##    print dev.ser.readline()
+
+##    raw_input("wait, press enter to send 'R' command")
+##    ser.write('RP')
+##    print dev.ser.readline()
+
+##    raw_input("wait, press enter to send 'W' command")
+##    ser.write('WP')
+##    print dev.ser.readline()
+
+##    raw_input("wait, press enter to send 'I' command")
+##    ser.write('IP')
+##    print dev.ser.readline()
+
+##    raw_input("wait, press enter to send 'O' command")
+##    ser.write('OP')
+##    print dev.ser.readline()
+
+##    raw_input("wait, press enter to send 'Z' command")
+##    ser.write('ZP')
+##    print dev.ser.readline()
+
+##    raw_input("wait, press enter to send unknown command")
+##    ser.write('XP')
+##    print dev.ser.readline()
+
+#    while(ser.inWaiting()>0):
+#        print ser.readline()
+#    dev.ser.close()