Началось все с того, что требовалось периодически (хотя бы раз в неделю) производить мониторинг C/N margin (carrier to noise). Однако омрачало сие деяние то, что на проверку восьмидесяти приемников уходило по 30-40 минут. После двух таких проверок я не выдержал и сел за написание автоматизированной программы мониторинга.
Немного поэкспериментировав с Web-интерфейсом железки, я отыскал местонахождение данного параметра, затем написал программу, которая заходила бы на необходимый IP-адрес и считывала значение C/N Margin.
После этого я добавил возможность создания внешнего списка IP-адресов приемников и задания каждому из них названия. Теперь программа научилась считывать весь список приемников, последовательно опрашивать каждый из них и выводить значения C/N Margin в виде простого списка.
После этого я добавил в программу возможность формирования таблицы значений C/N Margin. При нажатии на кнопку Scan в таблицу добавляется очередной столбец (со временем нажатия кнопки в заголовке). Немного попользовавшись данной версией программы, я добавил таймер с возможностью динамического изменения интервала сканирования, и программа научилась самостоятельно запускать сканирование через определенные промежутки времени.
Не желая останавливаться на достигнутом, я добавил в программу возможность окрашивания ячеек таблицы в различные цвета, в зависимости от значения уровня сигнала в ячейке. Также я добавил возможность динамического изменения пороговых значений уровня сигнала и соответствующих цветов ячеек. В том же окне настроек (вызывается кнопкой "Preferences") теперь стало возможным указать время ожидания отклика ресивера в миллисекундах (если отклик не пришел в течение заданного времени, то в соответствующей ячейке пишется слово "Ping" и ячейка окрашивается в красный цвет). Кроме того, я добавил возможность сохранения значений таблицы в текстовом файле, а для того, чтобы файлы не занимали слишком много места, ввел возможность ограничения количества столбцов в таблице.