mcu_snmp
驱动牛犊
驱动牛犊
  • 注册日期2008-11-16
  • 最后登录2011-03-07
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望12点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:5120回复:2

【串口转SNMP】/ 嵌入式单片机SNMP程序/SNMP上位机网管软件/snmp评估库

楼主#
更多 发布于:2008-11-16 20:47
【串口转SNMP】
"串口转SNMP技术"通过TCP/IP的SNMP网络将"串口设备(如空调、UPS、仪表、电源等)" 直接连接到以太网网络中,实现对"设备"的网络化远程管理,如,IE浏览器远程浏览,SNMP网络管理等,避免了"设备"出问题后无人知晓。"串口转SNMP"嵌入式技术提供了优异的可靠性,提供了设备独立运行的安全性。通过这个网络管理器让"设备"从传统的工业控制设备一步跨越到网络化的IT设备,当"设备"发生故障时,仅在几秒内通过网络即可知晓故障情况,并“决胜”于千里之外。实时通知特性可在问题发生时及时通知您。"串口转SNMP技术"的“即插即用”功能以及嵌入式技术,完全实现了设备的远程网络化管理。
mcu_snmp#163.com ">mcu_snmp#163.com (#替换为@)

无论你用的是什么类型的单片机,不管C51,ARM7单片机,ColdFire,MC9S12NE64,还是其它单片机,只要已经支持了以太网接口,保证1天之内就能移植SNMP。
同时提供SNMP网管程序/SNMP上位机软件.
有意者请联系 mcu_snmp#163.com (#替换为@)


snmp评估库使用步骤:
第1步:告诉我你的处理器和你的编译工具(ADS、Keil还是别的)
第2步:编译一个二进制库snmp.lib或libsnmp.a二进制库给你。
第3步:你要做的事情,增加udp和snmp的通信接口,
(这一步可省略,因为以下是一个通用做法。如果你采用了专用的TCPIP协议栈,可以利用协议栈提供的通信接口。如果你采用了linux或vxworks,就不更不要这一步了,因为libsnmp.a采用了操作系统的socket接口)。
1)修改一点点代码,在你原来的udp的代码上,发现udp的目的端口是161(SNMP),就调用snmp_recv函数,这个函数在snmp.lib里实现了。
char snmp_recv(unsigned char sender_ip[4],unsigned short sender_port,
unsigned char *buff,unsigned short length) ;
参数解释:sender_ip,所收udp包的源IP,即snmp上位机的IP。
sender_port,所收udp包的源端口,即snmp上位机的端口。
buff,所收到的udp包数据内容起始地址指针,不包括ip头,udp头,是udp纯数据
length,所收到的udp包数据长度,不包括ip头,udp头,是udp纯数据
2)增加一个函数,在你原来udp代码上,增加snmp_output函数,因为snmp.lib处理完成后,需要调用该函数把snmp响应包发送出去。
char snmp_output(unsigned char dest_ip[4],unsigned short dest_port,
unsigned short src_port,unsigned char *buff,unsigned short length) ;
dest_ip,目的IP。
dest_port,目的端口。
src_port,源端口,(在这里都是传入161).
buff,要发送的udp包数据内容起始地址指针,不包括ip头,udp头,是udp纯数据
length,要发送的udp包数据长度,不包括ip头,udp头,是udp纯数据
3)把snmp.lib或libsnmp.a加入到你的工程,编译,烧入设备。

如果你是linux系统,只需要写一个main.c,然后和libsnmp.a编译一个可执行文件snmpd并运行即可。附main.c参考代码:
extern int snmp_run();
int main(int argc,char **argv)
{
   if(fork()==0) //如果是uClinux,改为vfork即可
   {  
    snmp_run();
    return 0;
   }
   return 0;
}

如果你是vxworks操作系统,实现一个snmp_init函数,并在初始化时候调用即可.
extern int snmp_run();
int snmp_init()
{
         if(taskSpawn("tSNMP",51,0,20 * 1024,(FUNCPTR)snmp_run, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) == ERROR)
            return (ERROR);
         return OK;
}

第4步:测试,安装MIB Browser,对设备进行SNMP测试。
因为snmp.lib里内置了一些公有MIB,可以对它们进行测试,私有MIB扩展需要真正合作后才能开始。

第5步:如果测试通过,讨论合作事项。

如果你需要snmp库或者不会用MIB Browser,请来信告诉我。mcu_snmp#163.com (#替换为@)

更多内容请访问
blog.163.com/mcu_snmp
snmp.blogbus.com/
hi.baidu.com/mcu_snmp
smiletan
驱动牛犊
驱动牛犊
  • 注册日期2002-10-31
  • 最后登录2010-08-18
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-01-14 23:11
我是在Tornado2.2.1 for arm平台上开发snmp的,刚开始,很难。你的控件好多money?
mcu_snmp
驱动牛犊
驱动牛犊
  • 注册日期2008-11-16
  • 最后登录2011-03-07
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望12点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-04-30 11:25
新增加【串口转SNMP】
游客

返回顶部