基于WinCE实现SNMP服务

来源:互联网 发布:日本年轻人 知乎 编辑:程序博客网 时间:2024/05/19 23:16
 

开发需求

• 基于WinCE实现SNMP服务

经验教训

net-snmp是Linux平台下著名的C语言SNMP开发包,公开源码,是最常用的开发Agent的软件包,曾花费一个月的时间实现了其应用功能,很遗憾最终发现:net-snmp几乎可以应用到非WinCE的所有平台(Linux和WindowS),唯独无法在WinCE上应用,故最终放弃net-snmp。

 总结:非WinCE平台,可首选net-snmp。

特殊声明

• 开发板:WinCE5.0

• 编译器:Evc++ 4.0

• 资源链接:http://download.csdn.net/detail/jsfzdd/3420367

• 资源说明:AgentExt是实现开发板上SNMP服务的源代码(需要进行完善,最终生成AgentExt.dll)。MySNMP(相当于mini版的MG-Soft)是上位机软件功能,实现与下位机通讯。

问题及解决办法

实现SNMP扩展代理期间发现的问题以及解决办法(仅供参考)。

 

1、Evc++ 4.0切换SDK(从Standsdk切换到YC2440 SDK)时会死掉。

解决办法:安装Sp4补丁。

 

2、Activesync的USB驱动有问题,导致Activesync的稳定性非常差,时断时连。

解决办法:一个朋友从他们公司发送过来一个新的Activesync USB驱动,问题解决。

 

3、SNMP扩展DLL的移植过程:

(1)Wince镜像中一定要支持snmp服务(可通过Platform Builder进行配置)。

(2)将SNMP扩展代理动态库AgentExt.dll一并加入Wince镜像中的Windows。

(3)修改wince注册表

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents]

 "3"="SOFTWARE\AgentExt\CurrentVersion"

 [HKEY_LOCAL_MACHINE\SOFTWARE\ AgentExt\CurrentVersion]

 "Pathname"="AgentExt.dll"

 

注意:以下是引自MSDN上的重要的一句话“Windows CE does not support the expansion of SystemRoot – the only thing needed in the registry value is the name of the DLL – this differs from NT”,表达的意思是:扩展代理DLL库必须放到系统根目录(windows)下。

 

4、Wince代理动态库AgentExt.dll一定要使用EVC进行编译生成。

 

5、Wince代理动态库AgentExt.dll无法发出trap信息。

解决办法:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\TrapConfiguration\Public]

“serverip”=”192.168.0.255”

 

原创粉丝点击