Как правильно вводить значения по SNMP?

Стартовая страница Форумы Понять, как работает ПО Как правильно вводить значения по SNMP?

Просмотр 5 сообщений - с 1 по 5 (из 5 всего)
  • Автор
    Сообщения
  • #42289
    SergKz
    Участник

    Здравствуйте.
    Снимаю данные со свитча PoE, конкретно мощность отдаваемую по портам.
    MIBы нашёл, линию сконфигурил, каналы создал, и вот на стадии сохранения значений в базу вижу затык.
    С линии значения читаются в виде строки «0.0».
    Соответственно канал создан с типом значений ASCII String.
    Данные успешно считываются, сохраняются, но (!) видимо текстовые значения не обрабатываются построителем графиков и формулами.
    Каналы: https://disk.yandex.ru/i/AyiJ9KJATO9vHw
    Конкретно — график открывается нормально только на параметрах, где все значения НУЛИ.
    https://disk.yandex.ru/i/VvvtgfTrTGRIng
    Там, где ненулевые значения, график открывается без осей и значений.
    https://disk.yandex.ru/i/9OpszShw-ZWg6Q

    Интуитивно понятно, что надо конвертить параметр в число ПЕРЕД сохранением в таблицу.
    Но при попытке ввести формулу EncodeAscii(Cnl) в канал сервер не запускается — выдаёт ошибку:
    (404,64): error CS1503: Argument 1: cannot convert from ‘double’ to ‘string’

    Игрался и с изменением типа данных в канале, и со строкой формулы — результат один. Пока не убрал из описания канала всё кроме типа «строка» — сервер не запускается.

    Как правильно сконвертить данные на входе?

    #42300
    Mikhail
    Модератор

    Добрый день!
    Нужно создать на каждый строковый канал дополнительный канал расчётного типа с типом числовым данных (пустой по умолчанию).
    В канале формула StrToNum(101), где 101 — номер исходного канала.
    В таблице Скрипты добавить функцию (не проверял, наверное с ошибкой):

    public double StrToNum(int cnlNum)
    {
      if (Stat(cnlNum) == 0)
        return double.NaN;
    
      return Convert.ToDouble(DecodeAscii(Val(cnlNum));
    }
    • Ответ изменён 1 месяц, 1 неделя назад пользователем Mikhail.
    #42301
    Mikhail
    Модератор

    Одним каналом не обойтись для каждого измерения, потому что у них разный тип данных.

    #42312
    SergKz
    Участник

    А возможности конвертнуть в коммуникаторе ПЕРЕД записью в таблицу нет?
    Или таблицу создать с числовыми параметрами и конвертить на входе?

    #42320
    Mikhail
    Модератор

    Попробуйте создать каналы с помощью мастера создания каналов.

Просмотр 5 сообщений - с 1 по 5 (из 5 всего)
  • Для ответа в этой теме необходимо авторизоваться.