OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8242|回复: 19

关于LWIP添加SNMP私有节点

[复制链接]

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-10-28
在线时间
0 小时
发表于 2015-10-28 12:56:59 | 显示全部楼层 |阅读模式
5金钱
有人弄过这一块吗?在F107    LWIP上添加SNMP的私有节点!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-10-28 15:06:44 | 显示全部楼层
开往春天的手扶拖拉机
回复

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-10-28
在线时间
0 小时
 楼主| 发表于 2015-10-28 16:50:09 | 显示全部楼层
大神大神,,来个懂的。。。我看了好五六天了~~!
回复

使用道具 举报

7

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2015-10-28
在线时间
0 小时
发表于 2015-10-28 16:58:03 | 显示全部楼层
回复【3楼】路边沾点油:
---------------------------------
心酸...继续看手册
越夜越拉风丶
回复

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-10-28
在线时间
0 小时
 楼主| 发表于 2015-10-28 17:39:32 | 显示全部楼层
回复【4楼】qq88714082010:
---------------------------------
我更心酸,连手册都没
回复

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-10-28
在线时间
0 小时
 楼主| 发表于 2015-10-29 10:34:54 | 显示全部楼层
依旧没有人~~~~
回复

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2016-1-6
在线时间
4 小时
发表于 2016-1-9 17:12:02 | 显示全部楼层
我要做的以太网也要实现SNMP的**端功能,最近找了一下资料,共同学习,加好友联系。
回复

使用道具 举报

2

主题

391

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1957
金钱
1957
注册时间
2014-8-8
在线时间
307 小时
发表于 2016-3-29 10:19:05 | 显示全部楼层
lwip private.c中有,你看一下,有例子
回复

使用道具 举报

1

主题

14

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-1-30
在线时间
8 小时
发表于 2016-11-19 22:39:04 | 显示全部楼层
lwip SNMP资料很少,谁有例子共享下
回复

使用道具 举报

1

主题

14

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-1-30
在线时间
8 小时
发表于 2016-11-19 22:43:55 | 显示全部楼层
没有找到这个文件lwip private.c
回复

使用道具 举报

3

主题

400

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1751
金钱
1751
注册时间
2015-6-11
在线时间
309 小时
发表于 2016-11-24 15:48:27 | 显示全部楼层
daven2007 发表于 2016-11-19 22:43
没有找到这个文件lwip private.c

mib2.c里面有定义公有节点的代码,模仿那个一级一级往上加就行了!
回复

使用道具 举报

1

主题

14

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-1-30
在线时间
8 小时
发表于 2016-11-30 16:49:37 | 显示全部楼层
zc123 发表于 2016-11-24 15:48
mib2.c里面有定义公有节点的代码,模仿那个一级一级往上加就行了!

谢谢,我再看看,能不能提供小段添加代码参考下,
回复

使用道具 举报

3

主题

400

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1751
金钱
1751
注册时间
2015-6-11
在线时间
309 小时
发表于 2016-12-1 15:46:04 | 显示全部楼层
/* private.enterprises    .1.3.6.1.4.1 */
const s32_t enterprises_ids[1] = {ID};
struct mib_node* const enterprises_nodes[1] = {(struct mib_node* const)&usr};
const struct mib_array_node enterprises = {
    &noleafs_get_object_def,
    &noleafs_get_value,
    &noleafs_set_test,
    &noleafs_set_value,
    MIB_NODE_AR,
    1,                                //孩子节点个数
    enterprises_ids,    //孩子节点OID
    enterprises_nodes    //孩子节点指针
};   

/* private  .1.3.6.1.4 */
const s32_t private_ids[1] = {1};
struct mib_node* const private_nodes[1] = {(struct mib_node* const)&enterprises};
const  struct mib_array_node myprivate = {
    &noleafs_get_object_def,
    &noleafs_get_value,
    &noleafs_set_test,
    &noleafs_set_value,
    MIB_NODE_AR,
    1,                        //孩子节点个数
    private_ids,    //孩子节点OID
    private_nodes //孩子节点指针
};
大致就是这么嵌套的,每一层包含一个id,一个nodes,同时node中为下一层的结构体(最后一层不同,我做过的项目用到过两种不同的添加模式)


回复

使用道具 举报

1

主题

14

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-1-30
在线时间
8 小时
发表于 2016-12-5 16:17:57 | 显示全部楼层
zc123 发表于 2016-12-1 15:46
/* private.enterprises    .1.3.6.1.4.1 */
const s32_t enterprises_ids[1] = {ID};
struct mib_node*  ...

谢谢@zc123 这个我看到了,按这个方式可以添加节点,但是在节点下的数据类型的定义,读写方式,怎么去访问这些都没提到,
回复

使用道具 举报

3

主题

400

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1751
金钱
1751
注册时间
2015-6-11
在线时间
309 小时
发表于 2016-12-5 16:38:34 | 显示全部楼层
数据类型的定义,读写方式是由定义的最后一层的四个函数确定的,可以参考
const mib_scalar_node snmp_scalar = {
  &snmp_get_object_def,
  &snmp_get_value,
  &snmp_set_test,
  &snmp_set_value,
  MIB_NODE_SC,
  0
};这个当前最后一层这四个函数
snmp_get_object_def 节点定义
snmp_get_value 节点数据读取
snmp_set_test 节点测试(其实是定义长度测试),主要用于set限制输入长度
snmp_set_value 节点数据写入
另外,如果使用私有节点,需要定义宏SNMP_PRIVATE_MIB为1
回复

使用道具 举报

3

主题

400

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1751
金钱
1751
注册时间
2015-6-11
在线时间
309 小时
发表于 2016-12-5 16:43:59 | 显示全部楼层
zc123 发表于 2016-12-5 16:38
数据类型的定义,读写方式是由定义的最后一层的四个函数确定的,可以参考
const mib_scalar_node snmp_sca ...

你自己参考mib2里面的这四个函数自己定义最后一层就可以了,末尾节点类型可以是mib_scalar_node, mib_list_rootnode, 你自己根据需要声明
回复

使用道具 举报

3

主题

400

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1751
金钱
1751
注册时间
2015-6-11
在线时间
309 小时
发表于 2016-12-6 11:00:24 | 显示全部楼层
daven2007 发表于 2016-12-5 16:17
谢谢@zc123 这个我看到了,按这个方式可以添加节点,但是在节点下的数据类型的定义,读写方式,怎么去访 ...

解决了没?
回复

使用道具 举报

1

主题

14

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-1-30
在线时间
8 小时
发表于 2016-12-7 11:58:18 | 显示全部楼层
谢谢,不熟悉,我得去看看,消化消化
回复

使用道具 举报

1

主题

14

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-1-30
在线时间
8 小时
发表于 2016-12-7 16:01:22 | 显示全部楼层
zc123 发表于 2016-12-5 16:38
数据类型的定义,读写方式是由定义的最后一层的四个函数确定的,可以参考
const mib_scalar_node snmp_sca ...

snmp_get_object_def 节点定义
snmp_get_value 节点数据读取
snmp_set_test 节点测试(其实是定义长度测试),主要用于set限制输入长度
snmp_set_value 节点数据写入

@zc123   是不是要在节点定义时(或在节点初始化时),要调用每个节点的里这几个函数,初始化每个节点的数据类型,允许读写的模式,和数据长度,还有数据的赋值等操作,
回复

使用道具 举报

3

主题

400

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1751
金钱
1751
注册时间
2015-6-11
在线时间
309 小时
发表于 2016-12-7 18:33:17 | 显示全部楼层
daven2007 发表于 2016-12-7 16:01
snmp_get_object_def 节点定义
snmp_get_value 节点数据读取
snmp_set_test 节点测试(其实是定义长度测 ...

对的,是这么理解的,这个也是节点的最后一层
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-9 01:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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