code:

 import serial,time,itertools

 try:
ser=serial.Serial(2,115200,timeout=0)
except:
print 'Open COM2 Failed!!' #transno=(1,100,500,1380,1381)
#transno=(1,20)
indexsets=[[0],[1],[2],[3],[0,1],[0,2],[0,3],[1,2],[1,3],[2,3],[0,1,2],[0,1,3],[0,2,3],[1,2,3],[0,1,2,3]]
indexsets=[[0,1,3],[0,1,2]]
#indexsets_ts=[] def gene():
for n in range(1,5):
indexsets_ts+=list(itertools.combinations([0,1,2,3],n)) #forget what is itertool now
return indexsets_ts #sig functions
def sigsnd():
for actmod in ('diract','apnact'):
act(actmod)
for connmod in ('TCP','UDP'):
conn(connmod)
connt=0
for dismod in ('dirsht','closht'):
for sndmod in ('uctl','fixl'):
snd(sndmod)
dis(dismod)
if connt<1:
conn(connmod)
connt+=1 def init():
swrt(chr(0x27),1)
swrt('\r\n',1)
ser.write('+++')
swrt('\r\n',1)
def shutConn():
swrt('at+cipshut',4)
def cloShut():
swrt('at+cipclose',4)
swrt('at+cipshut',4)
def cipmod():
swrt('at+cipmode=0',2)
def olmod():
swrt('at+cipmode=1',2)
def muxmod():
swrt('at+cipmux=1',2)
def sigmod():
swrt('at+cipmux=0',2)
def srd():
srd=ser.readlines()
for line in srd:
print line
fid=open('tcp_snd.log','a')
fid.write(line)
fid.close()
return srd
def swrt(atcmd_str,wt):
#fid=open('tcp_snd.log','a')
#fid.write(atcmd_str)
#fid.close()
ser.write(atcmd_str+'\r\n')
time.sleep(wt)
srd()
def wrtmsg(transtr,wstm):
ser.write(transtr+chr(0x1a))
time.sleep(wstm)
srd()
def act(actmod):
if actmod=='apnact':
swrt('at+cstt="CMNET","",""',2)
swrt('at+ciicr',4)
if actmod=='diract':
pass
def conn(connmod):
if connmod=='TCP':
swrt('at+cipstart="TCP","124.205.119.38",1562',6)
if connmod=='UDP':
swrt('at+cipstart="UDP","124.205.119.38",1562',6)
def snd(sndmod):
if sndmod=='uctl':
for tran in transno:
for n in range(2):
swrt('at+cipsend',1)
wrtmsg(tran*'v',8)
if sndmod=='fixl':
for tran in transno:
for n in range(2):
swrt('at+cipsend='+str(tran),1)
wrtmsg(tran*'v',8)
def dis(dismod):
if dismod=='dirsht':
shutConn()
if dismod=='closht':
cloShut() #online mode function
def modTs():
for actmod in ('diract','apnact'):
act(actmod)
for connmod in ('TCP','UDP'):
print connmod
conn(connmod)
connt=0
for dismod in ('dirsht','closht'):
print dismod
olsnd()
dis(dismod)
print dismod
if connt<1:
conn(connmod)
connt+=1 def olsnd():
for rtm in range(2):
for tran in transno:
swrt(tran*'v',1)
nmipmd()
ato()
nmipmd()
def ato():
swrt('ato',2)
def nmipmd():
ser.write('+++')
time.sleep(3)
srd() #mux-mode functions indset=[0,1,3]
def muxTS(indset):
for actmod in ('diract','apnact'):
act(actmod)
for dismod in ('dirsht','closht'):
for x in range(2**len(indset)):
binstr=bin(int(str(x),10))[2:].rjust(len(indset),'')
typset=[]
for nc in binstr:
if nc=='':
typset.append('"TCP"')
else:
typset.append('"UDP"')
for ind in range(len(indset)):
constr='at+cipstart='+str(indset[ind])+','+typset[ind]+',"124.205.119.38",1562'
swrt(constr,7)
print 'wrt done' ##connect OK
for sndmod in ('uctl','fixl'):
for index in indset:
print indset,index
for tran in transno:
for n in range(2):
if sndmod=='uctl':
swrt('at+cipsend='+str(index),1)
wrtmsg(tran*'v',15)
else:
swrt('at+cipsend='+str(index)+','+str(tran),1)
wrtmsg(tran*'v',15)
dis(dismod) sndmod=''
def muxmod():
swrt('at+cipmux=1',2) def muxsnd(indset):
for index in indset:
print indset,index
for tran in transno:
for n in range(5):
if sndmod=='uctl':
swrt('at+cipsend='+str(index),1)
wrtmsg(tran*'v',15)
else:
swrt('at+cipsend='+str(index)+','+str(tran),1)
wrtmsg(tran*'v',15) #sigle-mode Ts
init()
shutConn()
cipmod()
sigmod()
sigsnd() #online-mode Ts
init()
shutConn()
cipmod()
sigmod()
olmod()
modTs() #mux-mode Ts
init()
shutConn()
cipmod()
sigmod()
muxmod()
[muxTS(indset) for indset in indexsets] init()
shutConn()
ser.close()

simple python code when @ simplnano的更多相关文章

  1. Exploring Python Code Objects

    Exploring Python Code Objects https://late.am/post/2012/03/26/exploring-python-code-objects.html Ins ...

  2. 机器学习算法实现(R&Python code)

    Machine Learning Algorithms Machine Learning Algorithms (Python and R) 明天考试,今天就来简单写写机器学习的算法 Types Su ...

  3. How to run Python code from Sublime

    How to run Python Code from Sublime,and How to run Python Code with input from sublime Using Sublime ...

  4. 46 Simple Python Exercises (前20道题)

    46 Simple Python Exercises This is version 0.45 of a collection of simple Python exercises construct ...

  5. Python code 提取UML

    Python是一门支持面向对象编程的语言,在大型软件项目中,我们往往会使用面向对象的特性去组织我们的代码,那有没有这样一种工具,可以帮助我们从已有代码中提取出UML图呢?答案是有的.以下,我们逐个介绍 ...

  6. PEP 8 – Style Guide for Python Code

    原文:PEP 8 – Style Guide for Python Code PEP:8 题目:Python代码风格指南 作者:Guido van Rossum, www.yszx11.cnBarry ...

  7. 46 Simple Python Exercises-Very simple exercises

    46 Simple Python Exercises-Very simple exercises 4.Write a function that takes a character (i.e. a s ...

  8. Change the environment variable for python code running

    python程序运行中改变环境变量: Trying to change the way the loader works for a running Python is very tricky; pr ...

  9. python code

    执行动态语句 执行字符串中的代码 http://www.cnblogs.com/fanweibin/p/5418817.html #!usr/bin/env python #coding:utf-8 ...

随机推荐

  1. mysql insert一条记录后怎样返回创建记录的主键id,last_insert_id(),selectkey

    mysql插入数据后返回自增ID的方法 mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如何能获得 ...

  2. eclipse常用窗口和功能总结

    1.左上角File按钮功能:最重要的导入import第三方项目,maven,git,general等. File->import File->properties按钮,显示项目的存储位置, ...

  3. PHP IDE phpstorm 常用快捷键

    PHP IDE phpstorm 常用快捷键 投稿:junjie 字体:[增加 减小] 类型:转载   这篇文章主要介绍了PHP IDE phpstorm 常用快捷键,本文分别列出了mac系统和Win ...

  4. python实践3:cursor() — 数据库连接操作

    python 操作数据库,要安装一个Python和数据库交互的包MySQL-python-1.2.2.win32-py2.5.exe,然后我们就可以使用MySQLdb这个包进行数据库操作了. 操作步骤 ...

  5. oracle 内联同时删除多表

    在 MySql 中,内联同时删除多表可以使用这样的语法: DELETE t1,t2 FROM table1 AS t1 INNER JOIN table2 t2 ... INNER JOIN tabl ...

  6. 样条曲线的Fortran程序

    subroutine basis_function_b_val ( tdata, tval, yval ) ! !******************************************* ...

  7. EFDC主控文件efdc.inp文件的xml格式化处理——转载http://blog.sina.com.cn/s/articlelist_1584892573_0_1.html

    在对EFDC模型进行系统集成时,虽然可以通过一行一行读来进行解析处理,但那将是一个繁琐的工作.我们经过xml格式化处理后,再经xsd转成Dataset类对象,那么整个主控文件就是一个数据库表集合,对其 ...

  8. activitydialog

    给Activity设置Dialog属性,点击区域外消失:,activitydialog 1.在AndroidManifest.xml中给Activity设置样式: <activity       ...

  9. openCV中IplImage的使用

    http://blog.csdn.net/welcome_xu/article/details/7650680 IplImage结构详细分析   IplImage 结构解读: typedef stru ...

  10. Object的属性property详细解释(自动生成成员变量)

    类Class中的属性property: 在ios第一版中,我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: @interfac ...