1 #!/usr/bin/env python 1 #!/usr/bin/env python 2 # Copyright 2009 Simon Arlott 2 # Copyright 2009 Simon Arlott 3 # 3 # 4 # This program is free software; you can redis 4 # This program is free software; you can redistribute it and/or modify it 5 # under the terms of the GNU General Public Li 5 # under the terms of the GNU General Public License as published by the Free 6 # Software Foundation; either version 2 of the 6 # Software Foundation; either version 2 of the License, or (at your option) 7 # any later version. 7 # any later version. 8 # 8 # 9 # This program is distributed in the hope that 9 # This program is distributed in the hope that it will be useful, but WITHOUT 10 # ANY WARRANTY; without even the implied warra 10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 # FITNESS FOR A PARTICULAR PURPOSE. See the G 11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 # more details. 12 # more details. 13 # 13 # 14 # You should have received a copy of the GNU G 14 # You should have received a copy of the GNU General Public License along with 15 # this program; if not, write to the Free Soft 15 # this program; if not, write to the Free Software Foundation, Inc., 59 16 # Temple Place - Suite 330, Boston, MA 02111- 16 # Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 # 17 # 18 # Usage: cxacru-cf.py < cxacru-cf.bin 18 # Usage: cxacru-cf.py < cxacru-cf.bin 19 # Output: values string suitable for the sysfs 19 # Output: values string suitable for the sysfs adsl_config attribute 20 # 20 # 21 # Warning: cxacru-cf.bin with MD5 hash cdbac26 21 # Warning: cxacru-cf.bin with MD5 hash cdbac2689969d5ed5d4850f117702110 22 # contains mis-aligned values which will stop 22 # contains mis-aligned values which will stop the modem from being able 23 # to make a connection. If the first and last 23 # to make a connection. If the first and last two bytes are removed then 24 # the values become valid, but the modulation 24 # the values become valid, but the modulation will be forced to ANSI 25 # T1.413 only which may not be appropriate. 25 # T1.413 only which may not be appropriate. 26 # 26 # 27 # The original binary format is a packed list 27 # The original binary format is a packed list of le32 values. 28 28 29 import sys 29 import sys 30 import struct 30 import struct 31 31 32 i = 0 32 i = 0 33 while True: 33 while True: 34 buf = sys.stdin.read(4) 34 buf = sys.stdin.read(4) 35 35 36 if len(buf) == 0: 36 if len(buf) == 0: 37 break 37 break 38 elif len(buf) != 4: 38 elif len(buf) != 4: 39 sys.stdout.write("\n") 39 sys.stdout.write("\n") 40 sys.stderr.write("Error: read 40 sys.stderr.write("Error: read {0} not 4 bytes\n".format(len(buf))) 41 sys.exit(1) 41 sys.exit(1) 42 42 43 if i > 0: 43 if i > 0: 44 sys.stdout.write(" ") 44 sys.stdout.write(" ") 45 sys.stdout.write("{0:x}={1}".format(i, 45 sys.stdout.write("{0:x}={1}".format(i, struct.unpack("<I", buf)[0])) 46 i += 1 46 i += 1 47 47 48 sys.stdout.write("\n") 48 sys.stdout.write("\n")
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.