Официальный форум СВД Встраиваемые Системы
03 Декабря, 2016, 05:28:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Программирование snmp  (Прочитано 1089 раз)
Istr
Интересующийся

Сообщений: 1


« : 08 Июня, 2012, 09:49:35 »

Добрый день. Столкнулся с необходимостью написать в Momentics под qnx650 своё приложение, оперирующее данными MIB по протоколу SNMPv1, тем более что постановщик задачи уверил меня что весь необходимый функционал в Momentics 470 есть. Действительно, в хэлпе полно функций с префиксом snmp_ , напичканных всевозможными параметрами, но нет ни одного примера. С огорчением убедился, что И В МИРЕ в cети не выложено правильного примера посылки простого snmp-запроса(и получения ответа) на qnx-хост, используя ВСТРОЕННЫЕ ПРОГРАММНЫЕ СРЕДСТВА Momentics 470. Вопросы на Foundry 27, в техподдержку СВД и на форум qnx.org.ru оостаются без ответа. (В техподдержке СВД мне посоветовали скачать некую библиотеку snmp++, а для документации gnu man, вот только заказчика такой набор совершенно не устроит ввиду отсутствия сертификации)

-- В связи с этим встаёт вопрос: а зачем они(программные средства) нужны, раз никто из юзеров не может ими воспользоваться? Для отчёта разработчиков самим себе?

Застрял я на отсылке запроса значения переменной MIB, например system.sysObjID.0 .
Непонятно как заполнять структуру snmp_pdu чтобы snmp_send cработал. Когда я пробую ставить тип ASN_OBJECT_ID или ASN_OСTET_STR из asn1.h получается всё время:
  snmp_open success!
  затем thread terminated.

Когда я не записываю в поле snmp_pdu.variables заполненную для 1 этой переменной структуру variable.list snmp_send проходит и срабатывает callback-функция на ответ(печатается сообщ.внутри неё), но понятно что посылается пустышка и принимается тоже. Сейчас заполняю так:

oid MyOID[] ={1,3,6,1,2,1,1,2,0};  //  system.sysObjectID.0 

  variable_list new_variable;

  new_variable.name = &MyOID[0];
  new_variable.name_length = sizeof(MyOID);
  new_variable.next_variable = NULL;
  new_variable.type = ASN_OBJECT_ID; // или  ASN_ OСTET_STR?
. . .
new_snmp_pdu->variables = &new_variable; // когда нет этой строки snmp_send и вызов callback срабатывают

При открытии snmp-соединения ставлю:

snmp_session snmp_session_settings;
    snmp_session_settings.community = 0; // default
    snmp_session_settings.community_len = SNMP_DEFAULT_COMMUNITY_LEN; // default
    snmp_session_settings.retries = 0;
    snmp_session_settings.timeout = SNMP_DEFAULT_TIMEOUT;//(-1) бесконечное время ожидания?

В timeout для snmp_select_info ставил :  timeout->tv_sec=5 //10, 20...
Но до этого даже не доходит т.к. snmp_send не срабатывает.

Команды snmp_test и snmp_walk работают.

Может у техподдержки есть мысли почему snmp-агент qnx650 не принимает запрос значения переменной MIB?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2016 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 06 Ноября, 2016, 23:38:00