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.
Revision 77:1a5a6ddddb4b, committed 2016-08-31
- 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()