查看: 8859|回复: 5

秘钥更新函数调用问题

[复制链接]

6

主题

16

帖子

90

积分

中级工程师

Rank: 2

积分
90
发表于 2018-3-5 16:32:06 | 显示全部楼层 |阅读模式
你好,我们公司用的是正式版ESAM,现在要做698的上位机秘钥更新功能,不清楚调用的是那个dll里的那个函数进行秘钥更新,
疑问:是调用StockApi里的Meter_Formal_KeyUpdateV2函数,还是调用MasterStationForMeter里的Obj_Meter_Test_GetTrmKeyData?  还是调用StockApi里的Obj_Meter_Test_GetTrmKeyData?????非常蒙圈,麻烦大神指导。
回复

使用道具 举报

16

主题

37

帖子

953

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
953
发表于 2018-3-5 17:23:53 | 显示全部楼层
1. 某个表上的ESAM是正式版还是测试版?
明文读取ESAM序列号,通过ESMA序列号来判断时正式ESAM还是测试ESAM,序列号第1个字节为51的是正式ESAM,其他值的是测试版ESAM
例如:
正式版 51010000000773CB
测试版 0002D2100000032A

2. 怎么看动态库里有哪些函数?
(1)通过工具DependencyWalker打开目标动态库可以看到这个动态库里有哪些函数;
(2)通过动态库的接口说明文档来查看,文档同时定义了接口函数的各项参数。

3. ESAM与动态库的对应关系
正式ESAM对应正式版的动态库接口,即SocketAPI.dll,对应文档集是《厂家检测接口.zip》;

测试版ESAM对应测试版的动态库接口,即MasterStationForMeter.dll,对应文档集是《基于面向对象协议的智能电能表开发套件相关资料.zip

4. ESAM与接口函数的对应关系
正式版ESAM,要调用SokectAPI.dll中的Obj_Meter_Formal_XXX这种名称的函数;

测试版ESAM,要调用MasterStationForMeter.dll中的Obj_Meter_Test_XXX这种名称的函数。


DependencyWalker.png
回复

使用道具 举报

16

主题

37

帖子

953

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
953
发表于 2018-3-5 17:26:22 | 显示全部楼层
针对您的具体问题,正式ESAM的密钥更新要调用SocketAPI.dll里的Obj_Meter_Formal_GetTrmKeyData函数。希望能帮到您!
回复

使用道具 举报

6

主题

16

帖子

90

积分

中级工程师

Rank: 2

积分
90
 楼主| 发表于 2018-3-6 08:57:56 | 显示全部楼层
很具体,非常感谢
回复

使用道具 举报

1

主题

3

帖子

21

积分

初级工程师

Rank: 1

积分
21
发表于 2018-6-11 17:03:37 | 显示全部楼层
宋永裕 发表于 2018-3-5 17:26
针对您的具体问题,正式ESAM的密钥更新要调用SocketAPI.dll里的Obj_Meter_Formal_GetTrmKeyData函数。希望 ...

根据您给的建议,使用这个函数更新密钥,当密钥恢复至公钥时,可以正常更新密钥,但是,从公钥到私钥,监控显示这个函数没有出密文,返回707,导出密钥失败,针对此问题,宋工,能否给点建议?
回复

使用道具 举报

16

主题

37

帖子

953

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
953
发表于 2018-6-12 16:26:23 | 显示全部楼层
ksaint2012 发表于 2018-6-11 17:03
根据您给的建议,使用这个函数更新密钥,当密钥恢复至公钥时,可以正常更新密钥,但是,从公钥到私钥,监 ...

1. 请确保您使用了正确的动态库,论坛里有一份,供参考。
http://www.fmdevelopers.com.cn/f ... &extra=page%3D1
2. 参考我司OOPT和698Server的打印信息,查看入参的差异情况。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表