Ry4S.x32 使用说明:
1.将Ry4S.x32拷贝到Director的Xtras子目录下。
2.启动Director.
3.打开Director的Message Window进行测试。
4.输入 shouxlib 命令显示所有加载的xtra,结果必须包含rockey.如果没有找到rockey,说明Ry4S.x32没有放到xtras目录下。
结果例子:
-- Welcome to Director --
showxlib
-- XLibraries:
-- Xtra: rockey
-- Xtra: filextra
-- Xtra: uihelper
-- Xtra: javaconvert
-- Xtra: quicktimesupport
-- Xtra: netlingo
-- Xtra: multiuser
-- Xtra: xmlparser
-- Xtra: mui
-- Xtra: fileio
-- Xtra: beatnik
-- Xtra: activex
第一个Xtra既为rockey.
5.观看rockey的接口,可以用 interface命令实现,格式如下 put interface(xtra "rockey")
如下:
put interface(xtra "rockey")
-- "xtra ROCKEY -- ROCKEY functions for Lingo,Release v1.00
new object me
-- ROCKEY Interface --
* rockey integer function,integer handle,integer lp1,integer lp2,integer p1,integer p2,integer p3,integer p4,string buf -- ROCKEY interface
* get_p1 -- Get return value in P1 parameter
* get_p2 -- Get return value in P2 parameter
* get_p3 -- Get return value in P3 parameter
* get_p4 -- Get return value in P4 parameter
* get_lp1 -- Get return value in lp1 parameter
* get_lp2 -- Get return value in lp2 parameter
* get_handle -- Get return value in handle parameter
* get_buf -- Get return value in buf parameter
-- Misc functions --
* hex2dec string hex --convert hexadecimal number to decimal number.
* dec2hex int dec --convert decimal number to hexadecimal number.
rockey为主函数,可以进行找锁,打开,读写,计算,取得种子吗等功能。
参数 function表示功能码,有以下几种。
define RY_FIND 1 //找锁
#define RY_FIND_NEXT 2 //找下一锁
#define RY_OPEN 3 //打开锁
#define RY_CLOSE 4 //关闭锁
#define RY_READ 5 //读锁
#define RY_WRITE 6 //写锁
#define RY_RANDOM 7 //产生随机数
#define RY_SEED 8 //产生种子码
#define RY_WRITE_USERID 9 //写用户 ID
#define RY_READ_USERID 10 //读用户 ID
#define RY_SET_MOUDLE 11 //设置模块字
#define RY_CHECK_MOUDLE 12 //检查模块状态
#define RY_WRITE_ARITHMETIC 13 //写算法
#define RY_CALCULATE1 14 //计算 1
#define RY_CALCULATE2 15 //计算 2
#define RY_CALCULATE3 16 //计算 3
#define RY_DECREASE 17 //递减模块单元
handle为句柄,lp1,lp2为长参数lp1,lp2, p1,p2,p3,p4为短参数p1,p2,p3,p4, buf为字符缓冲区。
具体的意思请参见说明书。
它的直接返回值表示ROCKEY操作状态,有以下几种情况:
// 返回值
0 //没有错误
5 //错误的密码或硬件 ID
6 //设置硬件 ID 错
7 //读写地址或长度有误
8 //没有此命令
9 //内部错误
10 //读数据错
11 //写数据错
12 //随机数错
13 //种子码错
14 //计算错
15 //在操作前没有打开锁
16 //打开的锁太多(>16)
17 //找不到更多的锁
18 //没有 Find 直接用了 FindNext
19 //递减错
20 //算法指令错
21 //算法运算符错
22 //算法第一条指令含有常数
23 //算法最后一条指令含有常数
24 //算法中常数值 > 63
0x102 //未知系统
0xffff //未知错误
0x表示十六进制。
get_XXX函数可以得到rockey的参数间接返回值。比如 get_lp1 可以得到lp1中的返回值。
函数 hex2dec,dec2hex用于16进制和十进制之间互相转化。
6.例子
(1) 找DEMO锁
从说明书上可以知道找锁的的输入参数为 function=1,p1,p2,p3,p4为一二级密码字。我们的DEMO锁的密码字为0xc44c,0xc8f8,0x0799,0xc43b.
你需要将这些十六进制数转化为10进制数,可以用系统带的科学计算器,也可以用hex2dec函数,例子如下:
put hex2dec("c44c")
-- "50252"
0xc44c=50252, 同理可得到
put hex2dec("c8f8")
-- "51448"
put hex2dec("0799")
-- "1945"
put hex2dec("c43b")
-- "50235"
这时我们可以进行找锁操作。我们只用function,p1,p2,p3,p4参数,将其他参数设为0或"",例子如下:
put rockey(1,0,0,0,50252,51448,1945,50235,"")
-- 0
返回0表示操作成功。 根据说明书可知返回锁的硬件ID,在Lp1里,用get_lp1()函数的可以得到lp1中的值,如下:
put get_lp1()
-- -1995600092
-1995600092既为锁的硬件ID. 它其实是一个16进制的数,要还其真面目,用下面函数:
put dec2hex(-1995600092)
-- "890d8f24"
可以知道ID实为 0x890d8f24.
(2) 打开DEMO锁
查说明书可知,打开锁的参数 function=3,还需要 p1=50252,p2=51448,p3=1945,p4=50235设置密码字
和lp1保存锁的硬件ID -1995600092 如下所示:
put rockey(3,0,-1995600092,0,50252,51448,1945,50235,"")
-- 0
返回0表示成功,返回的结果在handle里,用 get_handle()可以得到结果,如下:
put get_handle()
-- 4
返回的句柄为4.
(3) 读用户内存
查说明书可知,读用户内存 function=5, 还需要 handle,p1,p2. handle为4,p1,p2为启示地址,分别为0,23,如下:
put rockey(5,4,0,0,0,23,0,0,"")
-- 0
返回0表示成功,用户内存数据在buf里,由get_buf可以得到结果:
put get_buf()
-- "www.ftsafe.com"
读出的结果为 "www.ftsafe.com"。
其他的函数同上,可以自行测试或在lingo语言里调用。
bestyellow
- 粉丝: 42
- 资源: 43
最新资源
- 数控车练习题.docx
- 金工实习线上考试线切割课后试题.docx
- 金工实习线上考试数控铣练习题.docx
- 金工实习线上考试铣工练习题.docx
- 铸锻焊练习题及答案.docx
- MSE媒体源拓展的单个和多个视频播放
- 基于艾默生MP1200A4(R)直流驱动装置的轧机主传动应用(HMI)HMI源程序
- 基于艾默生MP1200A4(R)直流驱动装置的轧机主传动应用(HMI)PLC程序.rar
- matlab机械臂关节空间轨迹规划,3-3-3分段多项式插值法,六自由度机械臂,该算法可运用到仿真建模机械臂上实时运动,可视化轨迹,有角度,速度,加速度仿真曲线 也可以有单独角度,速度,加速度仿真曲
- dpkg-离线安装-包含kkfile相关基础包libxinerama1 libcairo2 libcups2 libx11-xcb1
- 系统架构设计师软考思维导图
- 【模型+参考文献】事件触发模型 基于倒立摆matlab仿真 模型为状态空间形式 事件触发机制可自行调节参数
- vmware虚拟机安装教程
- 毕业设计-python在线电影推荐系统(开题报告+源代码).zip
- 基于A*算法的路径规划仿真 A*算法通过包含启发信息的代价函数来搜索最优路径,代价函数f(n)由两部分组成:起点沿着已生成的路径到达当前节点的开销g(n)和当前节点到终点的预估开销h(n), f(n
- 双级式储能模型,可做充放电转以及低电压故障穿越,含有负序抑制模块,可做对称故障与不对称故障
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
前往页