基於WinCE實現SNMP服務

 

開發需求

• 基於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”

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章