|
@@ -1,15 +1,103 @@
|
|
#include "stm32f4xx.h"
|
|
#include "stm32f4xx.h"
|
|
|
|
+#include "private_mib.h"
|
|
|
|
+
|
|
|
|
+#include "lwip/apps/snmp_scalar.h"
|
|
|
|
+#include "lwip/apps/snmp.h"
|
|
|
|
+//#include "snmp_core.h"
|
|
|
|
+
|
|
|
|
+extern struct snmp_mib mib2;
|
|
|
|
+
|
|
|
|
+static s16_t test_signal_get_value(struct snmp_node_instance* instance, void* value);
|
|
|
|
+
|
|
|
|
+static snmp_err_t test_signal_set_value(struct snmp_node_instance* instance, u16_t len, void* value);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+/* test signal .1.3.6.1.4.1.41752.911.3.1.1 */
|
|
|
|
+static const struct snmp_scalar_node test_signal = SNMP_SCALAR_CREATE_NODE_READONLY(1, SNMP_ASN1_TYPE_INTEGER, test_signal_get_value);
|
|
|
|
+/* test signal .1.3.6.1.4.1.41752.911.3.1.2 */
|
|
|
|
+static const struct snmp_scalar_node test_signal2 = SNMP_SCALAR_CREATE_NODE_READONLY(2, SNMP_ASN1_TYPE_INTEGER, test_signal_get_value);
|
|
|
|
+/* test signal .1.3.6.1.4.1.41752.911.3.1.3 */
|
|
|
|
+static const struct snmp_scalar_node test_signal3 = SNMP_SCALAR_CREATE_NODE(3, SNMP_NODE_INSTANCE_READ_WRITE, SNMP_ASN1_TYPE_INTEGER, test_signal_get_value, NULL, test_signal_set_value);
|
|
|
|
+
|
|
|
|
+// signals .1.3.6.1.4.1.41752.911.3.1
|
|
|
|
+static const struct snmp_node* const signals_nodes[] = {
|
|
|
|
+ &test_signal.node.node,
|
|
|
|
+ &test_signal2.node.node,
|
|
|
|
+ &test_signal3.node.node
|
|
|
|
+};
|
|
|
|
+static const struct snmp_tree_node signals_node = SNMP_CREATE_TREE_NODE(1, signals_nodes);
|
|
|
|
+
|
|
|
|
+// bt_6702 .1.3.6.1.4.1.41752.911.3
|
|
|
|
+static const struct snmp_node* const bt6702_nodes[] = {
|
|
|
|
+ &signals_node.node
|
|
|
|
+};
|
|
|
|
+static const struct snmp_tree_node bt6702_node = SNMP_CREATE_TREE_NODE(3, bt6702_nodes);
|
|
|
|
+
|
|
|
|
+// swt .1.3.6.1.4.1.41752.911
|
|
|
|
+static const struct snmp_node* const swt_nodes[] = {
|
|
|
|
+ &bt6702_node.node
|
|
|
|
+};
|
|
|
|
+static const struct snmp_tree_node swt_node = SNMP_CREATE_TREE_NODE(911, swt_nodes);
|
|
|
|
+
|
|
|
|
+// rotek .1.3.6.1.4.1.41752
|
|
|
|
+static const struct snmp_node* const rotek_nodes[] = {
|
|
|
|
+ &swt_node.node
|
|
|
|
+};
|
|
|
|
+static const struct snmp_tree_node rotek_node = SNMP_CREATE_TREE_NODE(41752, rotek_nodes);
|
|
|
|
+
|
|
|
|
+// enterprises .1.3.6.1.4.1
|
|
|
|
+static const struct snmp_node* const enterprises_nodes[] = {
|
|
|
|
+ &rotek_node.node
|
|
|
|
+};
|
|
|
|
+static const struct snmp_tree_node enterprises_node = SNMP_CREATE_TREE_NODE(1, enterprises_nodes);
|
|
|
|
|
|
|
|
+// private .1.3.6.1.4
|
|
|
|
+static const struct snmp_node* const private_nodes[] = {
|
|
|
|
+ &enterprises_node.node
|
|
|
|
+};
|
|
|
|
+static const struct snmp_tree_node private_root = SNMP_CREATE_TREE_NODE(0, private_nodes);
|
|
|
|
|
|
|
|
+static const u32_t prvmib_base_oid[] = { 1,3,6,1,4 };
|
|
|
|
+static const struct snmp_mib private_mib = SNMP_MIB_CREATE(prvmib_base_oid, &private_root.node);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+void lwip_privmib_init(void)
|
|
|
|
+{
|
|
|
|
+ static const struct snmp_mib *my_snmp_mibs[] = {&mib2, &private_mib};
|
|
|
|
+
|
|
|
|
+ snmp_set_mibs(my_snmp_mibs, LWIP_ARRAYSIZE(my_snmp_mibs));
|
|
|
|
+}
|
|
|
|
|
|
|
|
|
|
|
|
+static s16_t test_signal_get_value(struct snmp_node_instance* instance, void* value)
|
|
|
|
+{
|
|
|
|
+ u32_t *uint_ptr = (u32_t*)value;
|
|
|
|
+ u32_t oid = instance->node->oid; // id сигнала
|
|
|
|
+
|
|
|
|
+ // Далее...
|
|
|
|
+ //switch (oid)
|
|
|
|
+
|
|
|
|
+ LWIP_UNUSED_ARG(instance);
|
|
|
|
+
|
|
|
|
+ *uint_ptr = (u32_t)123;
|
|
|
|
+ return sizeof(*uint_ptr);
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
|
|
|
|
+static snmp_err_t test_signal_set_value(struct snmp_node_instance* instance, u16_t len, void* value)
|
|
|
|
+{
|
|
|
|
+
|
|
|
|
+ u32_t oid = instance->node->oid; // id сигнала
|
|
|
|
+
|
|
|
|
+ s32_t *ptr = (s32_t *)value;
|
|
|
|
+ s32_t val = *ptr;
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
+ return SNMP_ERR_NOERROR;
|
|
|
|
+}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -300,7 +388,7 @@ static void signals_get_object_def (u8_t ident_len, s32_t *ident, struct obj_def
|
|
od->id_inst_len = ident_len;
|
|
od->id_inst_len = ident_len;
|
|
od->id_inst_ptr = ident;
|
|
od->id_inst_ptr = ident;
|
|
|
|
|
|
- id = ident[0];
|
|
|
|
|
|
+ id = [0];
|
|
|
|
|
|
switch (id)
|
|
switch (id)
|
|
{
|
|
{
|