Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    RouterOS
    Бги (?) в The Dude 2.1

    Бги (?) в The Dude 2.1

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Бги (?) в The Dude 2.1, RouterOS
     
    Minollie
    Guest
    #1
    0
    01.02.2007 09:59:00
    Привет, Улдис! Во-первых, спасибо за несколько исправлений ошибок. К сожалению, вынужден сообщить о новой. На нескольких устройствах у меня отображается необработанное отформатированное значение SNMP для температуры, делённое на 10. Я получаю результаты, которые хочу и ожидаю, используя следующую строку: [oid(“1.3.6.1.4.1.3854.1.2.2.1.16.1.14.0”)/10]. Это должно приводить к значениям вроде 21.1, 25.9 или таким приятным круглым числам, как 25 без .0, что и происходило в v2.0. Но с момента обновления с v2.0 на v2.1 я заметил, что круглые значения отображаются нормально, а другие значения (кроме .5) имеют 15 цифр после точки. Это, как мне кажется, немного чрезмерно. Это не ожидается, так как значения SNMP никогда не возвращают больше 3 цифры, поэтому значение, делённое на 10, не должно отображать больше 1 цифры. У кого-нибудь ещё есть такая же проблема? И если да, может, кто-нибудь подскажет, есть ли обходной путь или стоит ждать (исправление) ошибки? С уважением, Minollie.
     
     
     
    winkelman
    Guest
    #2
    0
    01.02.2007 11:52:00
    Ты не можешь использовать встроенную функцию round()?
     
     
     
    Minollie
    Guest
    #3
    0
    01.02.2007 13:02:00
    Привет, Винклеман! Давно не виделись, как дела? Возможно, мне удастся использовать функцию ‘round’, но из её описания я не понимаю, можно ли ограничить количество десятичных знаков только одним. Хотя деление на 10 всегда должно возвращать одно десятичное число, я не уверен, получится ли получить одно десятичное число с помощью ‘round’. Так что вопрос: возможно ли отображать одно десятичное число, используя функцию ‘round’, и если да, то как это выглядит в коде? Спасибо за помощь. С уважением, Минолли.
     
     
     
    firebat
    Guest
    #4
    0
    03.02.2007 02:49:00
    У меня та же проблема. Обновился с Beta12 до 2.1, и несколько моих функций стали возвращать числа с 10-15 знаками после запятой. Мне нужно хотя бы один знак после запятой. Функция round просто округляет до целого числа, а мне это не нужно. Должна быть функция round, которая позволит указать количество знаков после запятой. Я даже пришлось откатиться обратно к Beta12, потому что 2.1 настолько испортила мою карту из-за этих бесконечных знаков после запятой, что она стала неработоспособной. Улдис, не мог бы ты пролить свет на эту проблему, предложить какие-нибудь обходные пути или сказать, когда можно ожидать исправления?
     
     
     
    Minollie
    Guest
    #5
    0
    05.02.2007 11:01:00
    Привет всем, боюсь, у меня возникли 2 новые проблемы/баги с Dude 2.1. Честно говоря, мне приходится признать, что я немного катастрофа в плане написания функций, но благодаря помощи других здесь, я в конечном итоге разберусь. Так что, возможно, именно я провоцирую эти проблемы… (надеюсь, нет…). У меня есть несколько функций, которые проверяют, находится ли возвращаемое значение в определенном диапазоне (например, влажность между 40 и 60 %). Возвращаемое значение должно отображаться на графике. Сначала я не мог отобразить значение на графике, но с помощью Winkelman я в конце концов заставил его работать. Во-вторых, я не мог настроить функцию, чтобы она фактически проверяла, находится ли значение в пределах параметров, Uldis пришел на помощь, и после того, как он исправил ошибку в самом Dude, все выглядело отлично. У меня были графики, и устройства отображались так, как я надеялся, благодаря заданным параметрам. Но… Dude v2.1 доводит меня до головной боли на момент написания. Он отображает функции с 15 знаками после запятой (функция, делящая возвращаемое значение на 10, должна отображать 1 знак, правда?). Но самое худшее, что мне кажется, я потерял свою (до сих пор) отличную способность строить графики. С момента установки Dude 2.1 я вижу много (и я имею в виду МНОГО!) пробелов в моих графиках, и больше одного раза построение графиков прекращалось в какое-то случайное время, и график больше не обновляется. Я привожу пример функции, которая работает непредсказуемо и часто отображает пробелы. Имя: RV #1 (относительная влажность (на нидерландском RV) порт #1) Тип: Функция Доступно: if(oid(“1.3.6.1.4.1.3854.1.2.2.1.17.1.3.0”)>0,1,-1) Ошибка: if(or(oid(“1.3.6.1.4.1.3854.1.2.2.1.17.1.3.0”)<40,oid(“1.3.6.1.4.1.3854.1.2.2.1.17.1.3.0”)>60),concatenate(“Relative Humidity out of range. Value = “,oid(“1.3.6.1.4.1.3854.1.2.2.1.17.1.3.0”)),””) Значение: oid(“1.3.6.1.4.1.3854.1.2.2.1.17.1.3.0”) Единица: % Скорость: None Вышеупомянутая функция выполняет сравнение возвращаемого значения так, как ожидается, значения, выходящие за пределы диапазона 40-60 % RH, указываются как неверные, что меняет состояние устройства соответствующим образом. Часть построения графиков работает не так, как я надеялся, иногда работает, а чаще нет, что приводит к (огромным) пробелам. Как выяснилось только что, примерно 5 минут назад, также случается, что веб-интерфейс снова отказывается отображать устройства на веб-интерфейсе 'Maps' после более длительного периода работы. К сожалению, вход в веб-интерфейс либо чрезвычайно медленный, либо не работает вообще. Пожалуйста, помогите!! Я люблю Dude за его возможности и функциональность, но надеюсь, что он скоро станет более стабильным. С уважением, Minollie
     
     
     
    Minollie
    Guest
    #6
    0
    05.02.2007 11:35:00
    Привет, Улдис! Боюсь, что эта функция работать не будет. Я пытался реализовать ее в настройках отображения моего лейбла, но сначала получал значение, как возвращает SNMP (например, 243 для 24.3°C). Мне это кажется логичным, потому что, я думаю, нужно заменить x идентификатором объекта, который ты хочешь получить, сначала умножить его на 10, а потом снова разделить на 10, что звучит как (243*10)/10. Возможно, я ошибаюсь, но мне это кажется 243 * 1. В моем случае лейбл сейчас выглядит так: T1 = [oid(“1.3.6.1.4.1.3854.1.2.2.1.16.1.14.0”)/10] °C, а должен выглядеть, если я правильно тебя понимаю, так: T1 = [round(oid(“1.3.6.1.4.1.3854.1.2.2.1.16.1.14.0”)*10)/10] °C. Здесь, в Нидерландах, это приводит к [round((значение OID=243)*10)/10] °C=243. Что бы я ни пробовал, у меня все равно куча цифр. Когда я увеличиваю деление до /100, у меня получается слишком много цифр и так далее. Пожалуйста, помоги! Я не прав здесь (не забывай, я катастрофа в программировании функций)?

    С уважением,
    Minollie
     
     
     
    uldis
    Guest
    #7
    0
    05.02.2007 12:10:00
    Скажи, какой тип данных показывает SNMP walk для этого OID (1.3.6.1.4.1.3854.1.2.2.1.16.1.14.0)? Какое значение ты видишь в SNMP walk и что именно ты видишь на экране, когда вставляешь [oid(“1.3.6.1.4.1.3854.1.2.2.1.16.1.14.0”)] [round(oid(“1.3.6.1.4.1.3854.1.2.2.1.16.1.14.0”))] [round(oid(“1.3.6.1.4.1.3854.1.2.2.1.16.1.14.0”) * 10) / 10] в метках устройств. Спасибо.
     
     
     
    Minollie
    Guest
    #8
    0
    05.02.2007 13:10:00
    Привет, Улдис, ок… Встроенный SNMP Walk показывает вот это: Тип: Целое Число Значение: 238 [oid(“1.3.6.1.4.1.3854.1.2.2.1.16.1.14.0”)] 238 [round(oid(“1.3.6.1.4.1.3854.1.2.2.1.16.1.14.0”))] 238 [round(oid(“1.3.6.1.4.1.3854.1.2.2.1.16.1.14.0”) * 10) / 10] Надеюсь, это тебе поможет.. С уважением, Минолли
     
     
     
    uldis
    Guest
    #9
    0
    05.02.2007 13:47:00
    И где же все эти цифры, о которых ты говоришь?
     
     
     
    Minollie
    Guest
    #10
    0
    05.02.2007 14:12:00
    Привет, Улдис,

    Я получаю эти 15 цифр, когда использую следующее внутри метки: [oid(“1.3.6.1.4.1.3854.1.2.2.1.16.1.14.0”)/10]. Возвращаемое значение — это RAW значение, которое на самом деле является значением с десятками градусов, но отображается как целое число (например, 23.8 * 10). В The Dude v2.0 я использовал указанную выше строку, чтобы разделить необработанное 238 на 10, в результате чего я получил 23.8, что отображалось корректно в метке. С момента обновления до The Dude v2.1 в прошлый четверг, все мои метки отображают значения вроде x.y99999999999999 или x.y00000000000001, за исключением тех, у которых значения x.0 (отображается как x) или x.5. Я сделал скриншот, чтобы показать, что отображается, а также настройки, которые я использую для метки. К сожалению, я не могу найти рабочий способ их публикации на форуме, можно ли отправить скриншот по электронной почте? Надеюсь, это прояснит ситуацию для тебя.

    С уважением,
    Minollie
     
     
     
    firebat
    Guest
    #11
    0
    06.02.2007 06:50:00
    Ну, не совсем то, что я ожидал, но это хоть какое-то решение. Почему бы не добавить опцию точности к функции округления, чтобы можно было указывать количество знаков после запятой для расчётов?
     
     
     
    znet
    Guest
    #12
    0
    14.02.2007 20:58:00
    Ульдис, извини за то, что соглашаюсь со всеми остальными. Точность математической функции неверная. Из-за некорректного возврата 15-значной точности это нанесло ущерб позиционированию всех моих устройств. Если сделать простой расчет, можно это продемонстрировать. Деление не работает!

    Код функции 1: (333*93) 30969 - Все в порядке.

    Код функции 2: (333*93)/100 309.69 - Даже это в порядке.

    Код функции 3: (333*93)/1000 30.969000000000001 - Это не в порядке.

    Код функции 4: (333*93)/10000 3.0969000000000002 - Это не в порядке.

    Похоже, это проблема с целочисленными математическими функциями в твоем коде. Надеюсь, это поможет…
     
     
     
    uldis
    Guest
    #13
    0
    05.02.2007 10:56:00
    Уже есть функция round, которая оставляет одну цифру после запятой: round(x * 10) / 10
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры