要查看用于编写这些脚本的方法,请查看此处的较早页面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个字节数据=s。recv((24)#阅读响应块是24个字节data_block=数据[[16:20这是给予的#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((十六进制((命运)[2:4],,16),int((str((十六进制((命运)[4:6],,16),int((str((十六进制((命运)[6:8],,16),int((str((十六进制((命运)[8:10],,16),0,,,,16,,,,0,,,,0];#发送读取块请求并保存响应:nsent=s。发送((Bytearray((mybytes))#希望nsent正好是16个字节数据=s。recv((24)#读取块响应是24个字节data_block=数据[[16:20这是给予的#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((十六进制((命运)[2:4],,16),int((str((十六进制((命运)[4:6],,16),int((str((十六进制((命运)[6:8],,16),int((str((十六进制((命运)[8:10],,16),0,,,,16,,,,0,,,,0,,,,0,,,,0,,,,0,,,,瓦尔这是给予的+[[0这是给予的*12;# + [0]*12填充写入块并使其成为正确的尺寸。#发送写块请求并保存响应:nsent=s。发送((Bytearray((mybytes))#希望nsent完全是32个字节数据=s。recv((12)#写块响应是12个字节data_block=数据[[4:8这是给予的#data_block在字节4-7中以进行写入响应,在8点停止。#用于整数值(i)的大端订单(>)中的bytearray(>)输出=str((结构。uncack_from(('> i',,,,Bytearray((data_block)))#首先删除``(``和最后两个字符'',',`)地位=int((输出[[1:-2)))如果((地位==0):打印“写成功”+str((地位)别的:打印“写失败”+str((地位)#插入插座:s。关()
要查看用于编写这些脚本的方法,请查看此处的较早页面python的Optommp入门指导。
或查看预制的Python软件包为了凹槽史诗。
参考
OPTOMMP协议手册(表格1465)
Python包为了凹槽史诗