Как я могу записать агент SNMP или DLL агента расширения SNMP в C#

Допущения:

  1. Каждый элемент value_list будет присутствовать в key_list (в той или иной позиции)
  2. Нас интересует индекс в key_list только для первого совпадения

Решение:

Из из двух массивов мы создаем представления из 3-х кортежей. Затем мы транслируем два представления в двух ортогональных направлениях, а затем проверяем поэлементное равенство на транслируемых массивах.

import numpy as np

value_list = np.array([[2,2,3],[255,243,198],[2,2,3],[50,35,3]], dtype='uint8')
key_list   = np.array([[2,2,3],[255,243,198],[50,35,3]], dtype='uint8')

# Define a new dtype, describing a "structure" of 3 uint8's (since
# your original dtype is uint8). To the fields of this structure,
# give some arbitrary names 'first', 'sec', and 'third'
dt = np.dtype([('first', np.uint8, 1),('sec', np.uint8, 1),('third', np.uint8, 1)])

# Now view the arrays as 1-d arrays of 3-tuples, using the dt
v_value_list = value_list.view(dtype=dt).reshape(value_list.shape[0])
v_key_list   = key_list.view(dtype=dt).reshape(key_list.shape[0])

result = np.argmax(v_key_list[:,None] == v_value_list[None,:], axis=0)
print (result)

Вывод:

[0, 1, 0, 2]

Примечания:

  1. Хотя это чистое решение без видимых циклов он может иметь скрытую неэффективность, потому что он сопоставляет каждый элемент value_list с каждым элементом key_list, в отличие от поиска на основе цикла, который интеллектуально останавливается при первом успешном сопоставлении. Любое полученное преимущество будет зависеть от фактического размера key_list, а также от того, где происходят успешные совпадения, в key_list. По мере роста размера key_list, может быть некоторое размывание преимущества NumPy, особенно если успешные совпадения происходят в основном в более ранней части key_list.

  2. Представления, которые мы создаем, на самом деле являются простыми структурированными массивами, где каждый элемент представления представляет собой структуру из двух int с. Один интересный вопрос, который я еще не исследовал, заключается в том, что, когда numpy сравнивает одну структуру с другой, выполняет ли она сравнение каждого поля в структуре или замыкает сравнение полей в первом ошибочном поле структура? Любое такое короткое замыкание может подразумевать небольшое дополнительное преимущество для этого решения со структурированным массивом.

14
задан zvikara 25 September 2008 в 21:17
поделиться

2 ответа

  1. лучшая библиотека я использовал за 8 лет разработки NMS - adventnet
  2. , который можно записать собственному, но необходимо понять ASN. Удача с этим.
  3. агенты SNMP делают 2 вещи: запрос для данных, отправьте и получите прерывания. Что еще Вы хотите, чтобы они сделали? промыть свою прачечную?! (извините не мог сопротивляться этому! :)).

, Что Вы пытаетесь сделать со своим агентом SNMP?! Вы приложение должно отправить прерывания?! или запрос для данных из узла?!

2
ответ дан 1 December 2019 в 16:24
поделиться

Если вы хотите использовать протокол SNMP из .Net Framework, обратите внимание на эту библиотеку: #SNMP.

Похоже, что с его помощью можно написать собственный SNMP-сервер. Но стандартная архитектура SNMP-агента не основана на .Net и поэтому - я предполагаю - вы не можете использовать упомянутую библиотеку для ее расширения. Вы должны написать свою собственную, и это выглядит возможным с помощью упомянутой библиотеки.

Надеюсь, помощь окажется полезной.

br--mabra

.
5
ответ дан 1 December 2019 в 16:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: