有一部UPS设备,我要跟它的通信卡通信并取得它里面的值,以前做的都是串口的通信卡,这次的是基于SNMP协议的通信卡,厂家提供的通信协议只给出了MIB的表,说是基于标准SNMP协议的,只用表就能读出来数据。
    
    我第一次接触SNMP这类的编程,请教各位高手我该从哪方面开始做这个程序?时间不是很多,如果各位高手能给出一个程序的大框最好了,感激不尽。请各位高手帮帮忙,我真的无从下手了 ,时间也很紧,谢谢了。 附上部分厂家提供的协议内容:
upsMIB     1.3.6.1.2.1.33                            MODULE-IDENTITY
upsObjects    1.3.6.1.2.1.33.1                   OBJECT IDENTIFIER
upsIdent      1.3.6.1.2.1.33.1.1                   OBJECT IDENTIFIER
upsIdentManufacturer     1.3.6.1.2.1.33.1.1.1          OBJECT-TYPE
upsIdentModel            1.3.6.1.2.1.33.1.1.2          OBJECT-TYPE
upsIdentUPSSoftwareVersion      1.3.6.1.2.1.33.1.1.3 OBJECT-TYPE
upsIdentAgentSoftwareVersion    1.3.6.1.2.1.33.1.1.4 OBJECT-TYPE
upsIdentName              1.3.6.1.2.1.33.1.1.5 OBJECT-TYPE
upsIdentAttachedDevices   1.3.6.1.2.1.33.1.1.6 OBJECT-TYPE
upsBattery                1.3.6.1.2.1.33.1.2          OBJECT IDENTIFIER
upsBatteryStatus          1.3.6.1.2.1.33.1.2.1 OBJECT-TYPE

解决方案 »

  1.   

    可以使用snmp_pp这个库,我们项目中也有用到SNMP,就是用的这个库
      

  2.   

    实际上,你需要掌握的是SNMP这个专题,先简单看一下这个方面的概况,例如,了解一下SNMP的通信机制、GET,SET等操作,然后采用一些包装好了的SNMP开发包/库来跳过SNMP的底层实现细节,应该不是一个很难的问题,楼上建议的snmp_pp就不错。
      

  3.   

    一般的SNMP开发包/库都有示例
    先初始化SNMP 会话
    连接IP地址
    指定SNMP协议版本 如 SNMP_VERSION_1
    指定会话 community (组名,要与网络设备设置的一致)
    然后就可以查询指定设备的MIB节点的当前值, 比如将 1.3.6.1.2.1.33 传入到查询函数