回到发送和解码optommp数据


要查看用于编写这些脚本的方法,请查看此处的较早页面python的Optommp入门指导。

getuptime.py

### getuptime.py >> python getuptime.py或>> python getuptime.py 127.0.0.1.1进口系统进口插座进口结构如果((系统argv<2#如果不包括争论主持人=“ Local主持”#默认为Localhost别的主持人=系统argv[[1这是给予的#否则使用第一个参数港口=2001#默认的OPTOMMP端口号#使用IPv4家族和TCP创建套接字s=插座插座((插座af_inet,,,,插座sock_stream#使用该插座连接到主机:端口元组s连接(((((主持人,,,,港口))#累积正常运行时间块请求:F0 30 01 0C < - 十六进制中的正常运行时间位置mybytes=[[0,,,,0,,,,4,,,,80,,,,0,,,,0,,,,255,,,,255,,,,240,,,,48,,,,1,,,,12,,,,0,,,,4,,,,0,,,,0这是给予的#发送请求并保存响应nsent=s发送((Bytearray((mybytes))#希望nsent正好是16个字节数据=srecv((24#阅读响应块是24个字节data_block=数据[[1620这是给予的#data_block在字节16-19中进行阅读响应,停在20。#用于整数值(i)的大端订单(>)中的bytearray(>)输出=str((结构uncack_from(('> i',,,,Bytearray((data_block)))#首先删除``(``最后两个字符'',在打印之前打印“正常运行时间:”+输出[[1-2这是给予的+'小姐'#关闭插座:s()

readmodch.py

### readmodch.py​​ >> python readmodch.py​​ <模块#> 进口系统进口插座进口结构主持人='127.0.0.1'#groov Epic IP如果((((系统argv!=3):#如果未提供模块和/或频道。打印“请提供模块#和频道#。”打印'退出脚本。。。'出口()#通知用户并退出脚本。港口=2001#默认的OPTOMMP端口号TCODE=5#阅读块请求modn=int((系统argv[[1)))#第一个参数chn=int((系统argv[[2)))#第二参数#使用IPv4家族和TCP创建套接字s=插座插座((插座af_inet,,,,插座sock_stream#使用该插座连接到主机:端口元组s连接(((((主持人,,,,港口))#计算目标偏移:#Epic Digital Read启动地址= 0xF01E0000命运=0xF01E0000+((modn*0x1000+((chn*0x40#构建读取块请求:mybytes=[[0,,,,0,,,,((1<<2),((TCODE<<4),0,,,,0,,,,255,,,,255,,,,int((str((十六进制((命运)[24],,16),int((str((十六进制((命运)[46],,16),int((str((十六进制((命运)[68],,16),int((str((十六进制((命运)[810],,16),0,,,,16,,,,0,,,,0];#发送读取块请求并保存响应:nsent=s发送((Bytearray((mybytes))#希望nsent正好是16个字节数据=srecv((24#读取块响应是24个字节data_block=数据[[1620这是给予的#data_block在字节16-19中进行阅读响应,停在20。#用于整数值(i)的大端订单(>)中的bytearray(>)输出=str((结构uncack_from(('> i',,,,Bytearray((data_block)))#首先删除``(``最后两个字符'',在打印之前打印'模块 '+str((modn+', 观点 '+str((chn+'='+输出[[1-2这是给予的#插入插座:s()

writemodchval.py

### writemodchval.py >> python writemodchval.py   <1 | 0 | 0> <1 | 0>进口系统进口插座进口结构主持人='127.0.0.1'#groov Epic IP如果((((系统argv!=4):#如果未提供模块,通道和/或值。打印“请提供模块#,通道#和值[1 | 0]。”打印'退出脚本。。。'出口()#通知用户并退出脚本。港口=2001#默认的OPTOMMP端口号TCODE=1#写块请求modn=int((系统argv[[1)))#第一个参数chn=int((系统argv[[2)))#第二参数瓦尔=int((系统argv[[3)))#第三参数#使用IPv4家族和TCP创建套接字s=插座插座((插座af_inet,,,,插座sock_stream#使用该插座连接到主机:端口元组s连接(((((主持人,,,,港口))#计算目标偏移:#Epic Digital Write开始地址= 0xF0220000命运=0xF02220000+((modn*0x1000+((chn*0x40#构建写入块请求:mybytes=[[0,,,,0,,,,((1<<2),((TCODE<<4),0,,,,0,,,,255,,,,255,,,,int((str((十六进制((命运)[24],,16),int((str((十六进制((命运)[46],,16),int((str((十六进制((命运)[68],,16),int((str((十六进制((命运)[810],,16),0,,,,16,,,,0,,,,0,,,,0,,,,0,,,,0,,,,瓦尔这是给予的+[[0这是给予的*12;# + [0]*12填充写入块并使其成为正确的尺寸。#发送写块请求并保存响应:nsent=s发送((Bytearray((mybytes))#希望nsent完全是32个字节数据=srecv((12#写块响应是12个字节data_block=数据[[48这是给予的#data_block在字节4-7中以进行写入响应,在8点停止。#用于整数值(i)的大端订单(>)中的bytearray(>)输出=str((结构uncack_from(('> i',,,,Bytearray((data_block)))#首先删除``(``和最后两个字符'',',`)地位=int((输出[[1-2)))如果((地位==0):打印“写成功”+str((地位别的打印“写失败”+str((地位#插入插座:s()

最佳


要查看用于编写这些脚本的方法,请查看此处的较早页面python的Optommp入门指导。


或查看预制的Python软件包为了凹槽史诗。

参考