Да, функцию snmp_inc_sysuptime() нужно вызывать в приложении каждые 10 мс. Кроме того должны быть разрешены как минимум 2 UDP соединения это настройка MEMP_NUM_UDP_PCB. Ну и в настройках SNMP должно быть включено само SNMP и использование private _mib. Но судя по тому, что проект у Вас компилируется это все включено.
Моя функция для инициализации SNMP:
CODE
// подготовка к работе SNMP ---------------------------------------------------
void SnmpPrepareForWork(void)
{
struct ip_addr xIpAddr;
struct snmp_obj_id SnmpObjId;
// установка sysName
snmp_set_sysname((u8_t*)Sysname, (u8_t*)&Sysname_len);
// установка sysDescr
snmp_set_sysdesr((u8_t*)Sysdescr, (u8_t*)&Sysdescr_len);
// установка sysContact
snmp_set_syscontact((u8_t*)Syscontact, (u8_t*)&Syscontact_len);
// установка sysLocation
snmp_set_syslocation((u8_t*)Syslocation, (u8_t*)&Syslocation_len);
// задаем SNMP_SYSOBJID
SnmpObjId.len = 9;
SnmpObjId.id[0] = 1;
SnmpObjId.id[1] = 3;
SnmpObjId.id[2] = 6;
SnmpObjId.id[3] = 1;
SnmpObjId.id[4] = 4;
SnmpObjId.id[5] = 1;
SnmpObjId.id[6] = ENTERPRISE_ID;
SnmpObjId.id[7] = 2;
SnmpObjId.id[8] = 4;
snmp_set_sysobjid(&SnmpObjId);
// включение трапов
if ((gSNMP_IPaddr1[0] & gSNMP_IPaddr1[1] & gSNMP_IPaddr1[2] & gSNMP_IPaddr1[3]) != 0xFF &&
(gSNMP_IPaddr1[0] | gSNMP_IPaddr1[1] | gSNMP_IPaddr1[2] | gSNMP_IPaddr1[3]) != 0)
{
IP4_ADDR(&xIpAddr, gSNMP_IPaddr1[0], gSNMP_IPaddr1[1], gSNMP_IPaddr1[2], gSNMP_IPaddr1[3]);
snmp_trap_dst_enable(0, 1);
snmp_trap_dst_ip_set(0, &xIpAddr);
}
else
{
snmp_trap_dst_enable(0, 0);
}
if ((gSNMP_IPaddr2[0] & gSNMP_IPaddr2[1] & gSNMP_IPaddr2[2] & gSNMP_IPaddr2[3]) != 0xFF &&
(gSNMP_IPaddr2[0] | gSNMP_IPaddr2[1] | gSNMP_IPaddr2[2] | gSNMP_IPaddr2[3]) != 0)
{
IP4_ADDR(&xIpAddr, gSNMP_IPaddr2[0], gSNMP_IPaddr2[1], gSNMP_IPaddr2[2], gSNMP_IPaddr2[3]);
snmp_trap_dst_enable(1, 1);
snmp_trap_dst_ip_set(1, &xIpAddr);
}
else
{
snmp_trap_dst_enable(1, 0);
}
if ((gSNMP_IPaddr3[0] & gSNMP_IPaddr3[1] & gSNMP_IPaddr3[2] & gSNMP_IPaddr3[3]) != 0xFF &&
(gSNMP_IPaddr3[0] | gSNMP_IPaddr3[1] | gSNMP_IPaddr3[2] | gSNMP_IPaddr3[3]) != 0)
{
IP4_ADDR(&xIpAddr, gSNMP_IPaddr3[0], gSNMP_IPaddr3[1], gSNMP_IPaddr3[2], gSNMP_IPaddr3[3]);
snmp_trap_dst_enable(2, 1);
snmp_trap_dst_ip_set(2, &xIpAddr);
}
else
{
snmp_trap_dst_enable(2, 0);
}
// отправка трапа холодного старта
snmp_coldstart_trap();
}
Cвой private_mib я бы частично мог привести, но мне его надо будет почистить так чтобы не вырезать лишнего. Но он довольно большой и в нем разбираться будет труднее чем в файле из примера.
У Вас сам прибор то в сети пингуется? Соединение UDP устанавливает? Какой программой Вы проверяете чтение или запись переменных?