четверг, 15 декабря 2011 г.

Установка AdvertisePro

Рекомендации по выбору компьютера.

Любой современный компьютер с процессором Intel и видеокартой от NVIDIA  (нужен один DVI выход для табло и второй выход для монитора) с 1GB ОЗУ годится для работы в качестве станции вывода видео. Если для конвертации RS232-RS485 используется Siolynx первого поколения (с подключением к COM-порту) или прямое подключение к оптическому передатчику DVI-мастер, то нужен также COM-порт на материнской плате или преобразователь USB<->COM или PCIe<->COM. Если экран не очень большой, то с задачей справлялся даже процессор ATOM D525 с NVIDIA ION 2.
Жесткий диск и DVD-привод на собственное усмотрение. Также, если необходим вывод внешнего источника аналогового видео, нужна плата видеозахвата.

Операционная система.

ПО AdvertisePro работает под Windows XP  желательно с установленным SP3. (Готова новая версия ПО Advertisepro 3.1, которая поддерживает Windows 7 и она не требует AdveriseMedia! Кодеки, если они нужны, ставите сами).
В принципе можно попробовать установить его на Windows 7 с отключенным UAC, но возможны различные "глюки" в интерфейсе и работе программы. Чтобы отключить UAC выберите ПУСК в левом нижнем углу и в строке "Найти программы и файлы" наберите uac в списке найденных выберите  "Изменение параметров контроля учетных записей" и передвиньте ползунок вниз, перезагрузитесь.

Установка ПО.

Все ниже перечисленное по можно найти на компакт диске из нашей поставки.
  • Если на компьютере еще не установлен .NET Framework 2.0 установите его. Можно загрузить у нас или воспользоваться диском \REDIST\NET_FRAMEWORK2.0\X86\REDISTRIBUTABLE_PACKAGE\dotnetfx.exe
  • Установите MSXML.4 SP2 взять можно у нас или на диске \REDIST\msxml.4\msxml.msi  
  • Установите dxtxtra.exe (\REDIST\dxtxtra.exe)
  • Установите набор кодеков AdevrtiseMedia. Если есть диск то просто запустите \AdvertiseMedia\Setup.exe, если загрузили AdvertiseMediaPack.zip, то распакуйте и запустите \AdvertiseMedia\Setup.exe. Может понадобится перезагрузка и повторный запуск установщика.
  • Для Siolynx2 понадобятся драйвера, загрузить, распаковать указать Диспетчеру Устройств. Должен появиться COM-порт.
  • Настроить службу nibus.
  • Открыть свойства экрана

    Выбрать второй экран, поставить галочку Расширить рабочий стол на этот монитор. Качество цветопередачи: Самое высокое (32 бита). Цвет рабочего стола лучше сделать черным, отключить заставку и режим выключения монитора после простоя.
  • Загрузить последнюю версию AdvertisePro и установить. Если плата видеозахвата не используется, лучше отключить ее в диалоге установки. Если не поддерживается установленная плата видеозахвата см. Поддержка плат видеозахвата с форматом YUV
  • Настроить управление яркостью
  • Если компьютер должен работать круглосуточно, рекомендую установить AdvertisePro Guard





четверг, 1 декабря 2011 г.

Мониторинг спортивных состязаний.

Иногда возникает необходимость получать информацию о текущем спортивном состязании, чтобы, например, можно было наложить ее на телевизионную картинку. Все данные об игре передаются по 485 интерфейсу используя протокол NiBUS. Подробные сведения по устройству протокола можно прочитать в документе NiBUS.pdf. Если Вы для прослушивания протокола NiBUS будете использовать компьютер под управлением Windows, а в качестве конвертера RS485-RS232 трансивер Siolynx/Siolynx2 (siolynx2.tech_ref.pdf), Вам необходимо будет установить на него службу NiBUS. На данный момент последняя версия nibus-v3.0.780.10.msi. После установки службы может потребоваться ее настройка (Настройка службы NIBUS). Этот дистрибутив также содержит примеры на C++:
  • NibusLog (VC2003), который снифит данные поступающие по nibus
  • NibusListener (VC2008), заготовка для написания обработчиков спортивных событий
Последний пример-заготовка позволяет быстро написать свой обработчик спортивных событий (время, счет и т.д). При необходимости можно добавить обработчики используя документ с расшифровкой основных информационных сообщений для спорта SportInfo.pdf. Обратите внимание 
  • CAppModuleEx::Init() - здесь строится стек протокола nibus (NibusListener.cpp)
  • CAppModuleEx::DoCapture(TRUE) - включить прослушку.
  • CNibusListenerView - получает и разбирает датаграммы
  • CNibusListenerView::OnTimerChanged - изменились данные таймера
  • CNibusListenerView::OnScoreChanged - изменился счет
  • CNibusListenerView::OnPeriodChanged - изменился период
Вместо Pin 1 для питания можно использовать Pin 2. 12V используется для питания пульта и может отсутствовать. Pin 4 и Pin 5 должны быть на одной паре, например - синяя и бело-синяя жилы, также как и Pin 3 и Pin 1/2.
Если возникли вопросы, то отпишитесь в комментариях  к данному сообщению.

Дополнение:

Гораздо удобнее с протоколом NiBUS можно работать с помощью .NET 4.0, поэтому, если для подключения к шине NiBUS Вы используете компьютер с Windows и установленным .NET Framework 4.0, то возможно стоит посмотреть как это реализовано на C#. В этом случае Вам не требуется установка службы NiBUS. Клиент для коммуникации по протоколу NiBUS должен использовать библиотеку libnibus.dll написанную на C#, также понадобятся библиотеки Async-CTP-v3 (AsyncCtpLibrary.dll, System.Threading.Tasks.Dataflow.dll) и NLog.dll для ведения журнала. Все это можно загрузить с с нашего ftp-сайта. Там же есть простейший пример для хоккея в архиве IceHockeyViewer.zip. Чтобы скомпилировать пример понадобится VS2010 и установленный Visual Studio Async CTP (Version 3). libnibus.xml - содержит подсказки для студии, а в libnibusdoc.chm - справка к библиотеке. Пример использует 14 COM-порт для взаимодействия с NiBUS, Вы должны не забыть указать свой. Также учтите, что при установленной VS 11 Beta пример не компилируется.

Важное дополнение:

Все примеры выше используют в качестве конвертера RS485<->RS232 Siolynx2 нашего производства. Наш конвертер, в отличие от обычных конвертеров, является более "интеллектуальным" устройством. Помимо приема/передачи данных он отвечает за разрешение коллизий в протоколе NiBUS. На выход пользователю он выдает Сетевой уровень (Глава 3 nibus.pdf). Если Вы используете обычный конвертер RS485<->RS232 Вам нужно обратить внимание на Канальный уровень (Глава 2). Он отличается от сетевого наличием специальных двухбайтовых маркеров, причем используется режим когда данные содержат 9 бит! Старший бит установлен именно у маркеров. Не все конвертеры могут поддерживать 9 бит данных. Обычно он обрезается до 8 бит. Некоторые конвертеры обрезают этот старший бит (данные можно обработать), другие могут обрезать младший (в этом случае информация неполная).

пятница, 25 ноября 2011 г.

APGuard. Следим за AdvertisePro.

К сожалению программам иногда свойственно зависать или падать, особенно если они работают круглосуточно. Не является исключением и наша программа вывода видео на табло - AdvertisePro. Чтобы сделать нашу жизнь чуточку проще :) - я написал службу, которая следит за тем, чтобы наша программа всегда была запущена и по возможности определяет, что программа продолжает трудится и не отлынивает зависнув. Необходимо уточнить, что программа будет запущенна сразу после входа пользователя в систему (имя пользователя можно указать). Поэтому может понадобиться настройка системы на автологон при рестарте или запуске компьютера. Также наша служба может следить и за некоторыми другими службами, которые нужны для программы - первый кандидат служба nibus. Итак, встречайте AdvertisePro Guard (APGuard)
Перед установкой убедитесь, что установлен .NET Framework 2.0, скачайте файл msi и установите его. После установки служба APGuard будет автоматически запускаться после рестарта, поэтому необходимо внести все настройки в конфигурационный файл APGuard.exe.config расположенном в папке с установленной программой. Рекомендую сделать резервную копию перед внесением изменений. После внесения изменений можно запустить службу командой net start apguard.

Теперь подробнее про файл APGuard.exe.config.

Открываем его текстовым редактором и находим нужный нам раздел.
Красным подчеркнут полный путь к наше программе, зеленым выделено пустое значение, а синим показан элемент списка названий служб, за которыми нам надо следить, просто добавьте такую же строчку, поменяв название службы, если необходимо следить еще за какой-нибудь службой. Временной интервал задается в формате ЧЧ:ММ:СС. Теперь описания каждого параметра:
  • AdvertiseProFile - полный путь к программе.
  • WorkingDir - рабочая папка. Если не задана, то папка с программой.
  • GuardTimerInterval - интервал проверки работоспособности, здесь каждые 10 сек.
  • CommandLineArgs - параметры для запуска программы.
  • WatchIpgm - проверять зависший ipgm.exe (если вы не знаете для чего это - оставьте).
  • IpgmMaxDuration - время в течении которого ожидается завершение выполнения ipgm.exe.
  • WatchApplication - выполнять наблюдение (True/False).
  • UserName - имя пользователя, при входе которого будет начато наблюдение и запущена программа. Если не указано, то для любого.
  • AppMoniker - название префикса моникера для нахождения запущенного экземпляра программы. Задается в файле конфигурации AdvertisePro.cfg, пример: <process priority="default" autonomous="false" debug_level="0" moniker="AdvertisePro:"></process>. Необязательный параметр. В случае задания позволяет лучше определить работоспособность программы AdvertisePro.
  • ShedulerName - имя компонента Планировщик (см. статьи про Планировщик и компоненты). Необязательный параметр. В случае задания позволяет лучше определить работоспособность программы AdvertisePro. Работает при указании AppMoniker.
  • RestartDelay - задержка при перезапуске программы. Необходима, так как при быстром рестарте предыдущий экземпляр программы не успевает выгрузиться и блокирует новый.
  • WatchedServices - список служб для наблюдения.
После внесения изменений запустите службу командой net start apguard. Если вы все указали правильно, то программа должна запуститься.
Служба APGuard хранит файл с журналом сообщений в папке .\logs в которую у нее должен быть доступ (касается особенно для систем Vista+ с активным UAC).

вторник, 22 ноября 2011 г.

VLC в роли проигрывателя

VLC - кроссплатформенный мультимедиа плеер с открытым исходным кодом. Для воспроизведения файлов мультимедиа не требуется установка дополнительных кодеков, они уже «встроены» в программу. VLC может воспроизводить DVD и потоковое незашифрованное (без DRM) видео (IPTV). Для удалённого управления программой можно использовать интерфейсы telnet, HTTP. Подробнее о VLC.
Я написал дополнение nidirectx (Nata-Info DirectX (DirectDraw) video output) которое позволяет использовать VLC для проигрывания плейлиста одновременно на двух мониторах. В качестве второго монитора используется видеоэкран (аналогично поступает и AdvertisePro). Данный плагин работает на ОС Windows XP и выше. Также используя это дополнение можно воспроизводить потоковое видео или устройство видеозахвата.

Установка.

  • Установите VLC (проверял версии 1.1.x)
  • Найдите папку plugins в месте установки VLC, скопируйте туда дополнение libnidirectx-plugin.dll
  • Чтобы не задавать каждый раз параметры в командной строке откройте файл конфигурации, расположенный в %APPDATA%\VLC\vlcrc. Учтите, что перевод строки там как в *NIX, поэтому в Блокноте строки не разделены, но FAR на F4 умеет разделять строки.
  • Найдите строку начинающуюся на #clone-vout-list= и измените на clone-vout-list=,nidirectx
    (удалите "решетку" в начале строки и не забудьте запятую в значении параметра)
  • Найдите строку #vout-filter= и измените ее на vout-filter=clone
  • Найдите строку начинающуюся на #width= измените на width=320 Вместо 320 поставьте ваше разрешение экрана по горизонтали.
  • Найдите строку начинающуюся на #height= измените на height=240, вместо 240 поставьте ваше разрешение экрана по вертикали
  • Чуть ниже будет строка начинающаяся на #crop= также убираем символ комментария и заменяем на crop=4:3 (320:240 -> 4:3). Для Вашего разрешения укажите свои пропорции.
  • В конец файла добавьте строки
    [nidirectx]
    nidirectx-device=\\.\DISPLAY2
  • В настройках экрана не забудьте расширить рабочий стол на второй монитор (режим DualView), отключить хранители экрана, задать черный фон для рабочего стола.

среда, 26 октября 2011 г.

НОВОСТЬ. Добавлена поддержка плат видеозахвата с форматом YUV.

Многие карты видеозахвата используют цветовую модель YUV (YUY2), которая не поддерживалась нашим программным обеспечением. Теперь есть возможность использовать и такие карты. Для этого необходимо установить обновление, которое можно взять с нашего ftp-сайта: ftp://ftp.nata-info.ru/software/dxcapture_update/dxcapture_update.zip
Также добавлен динтерлейс для высоты кадра более 288 линий.
Вот содержание файла readme.txt из архива:
Обновление для компонента DxCapture (видеозахват).

Добавлена поддержка плат видеозахвата с форматами YUY2 UYUV.
Добавлена поддержка деинтерлейса для кадров высотой более 288 линий (размер полукадра).
Установка:
Скопируйте содержимое архива в папку с установленной программой (с заменой dxcaptureu7.dll)
Установите один раз пакет поддержки VC2008 redist (vc2008redist_x86.exe), после установки файл можно удалить.
Запустите командный файл reg_dxcapture.cmd для регистрации библиотек.

Интерфейс:

Запустите программу. На вкладке "Видео-источник" появится кнопка с чередующимися полосами. Если высота кадра захвата превышает 288, то кнопка будет активна. Нажав на нее можно выбрать метод применяемый для устранения эффекта "гребенки" (денитерлейсинг). Выберите на закладке Deinterlace Settings лучший, на ваш взгляд, метод денитерлейса (при выборе пункта "Use DScaler Plug-in" нужно выбрать плагин из списка "DScaler Plug-in").

Рекомендации:

Для настройки размеров оцифровки выберите на вкладке "Видео-источник" профиль оцифровки из выпадающего списка (самый правый на панели) пункт "Редактировать". Представленные профили можно изменить или добавить новый.
Измените название профиля на удобное.
В секции "Размеры оцифровки" задайте размеры наиболее соответствующие размерам вашего экрана соблюдая пропорцию 4:3, чтобы не внести искажения в пропорций объектов. Некоторые карты могут не поддерживать все размеры (свойства карты можно посмотреть кликнув правой мышью по полю кадра видезахвата и выбрав пункт "Посмотреть возможности устройства"). В этом случае после сохранения изменений при повторном открытии будут выставлены наиболее близкие значения, вместо указанных вами.
В секции "Координаты видимой области" задайте размеры близкие к размерам указанным в секции "Размеры оцифровки", но соблюдая соотношения сторон вашего экрана. Эта область будет выделен на поле кадра захвата пунктирным прямоугольником, который можно таскать и изменять с помощью мыши.
В секции "Координаты вывода на экран" задайте размеры соответствующие вашему экрану.

понедельник, 24 октября 2011 г.

API. Планировщик.

Планировщик обычно используется во всех видеотабло, именно он отвечает за показ Списков воспроизведения. Планировщиков в конфигурации может быть несколько, например табло состоящих из нескольких частей, для которых требуется независимый вывод. С помощью планировщика можно загружать списки воспроизведения, логотипы, приостанавливать воспроизведение, обновлять журнал воспроизведения и т.д. Еще одним замечательным свойством планировщика, является выполнение пользовательских скриптов, заданных в плейлисте. Таким образом в плейлист, после заданного клипа, можно вставить скрипт, если кликнуть мышкой по стрелке на кнопке "Вставить новый элемент" и выбрать "Мастер заданий".

Далее будем придерживаться соглашения, что код будет написан моноширинным шрифтом, вместо object должно стоять имя компонента, указанное в конфигурационном файле (не забудьте указать перед ним Application). В квадратные скобки будут браться необязательные параметры.

Программный идентификатор: progid:NISheduler.ShedulerUI

Примечание: Доступ из скриптов к объекту Планировщик на самом деле происходит через объект NISheduler.ShedulerUI, который агрегирует собственно сам Планировщик.

Свойства:

  • object.AutoRunFile [= строка]
    Файл со списком автозагрузки (autorun.xjob)
    Изменяя содержимое файла, можно добиться, что при следующем запуске будет загружен нужный плейлист
  • object.Playlist [= строка]
    Текущий плейлист. При присваивании аналогичен методу LoadPlayList(имяФайла, False, True)
  • object.Logos [= строка]
    Файл со списком логотипов.
  • object.Audio [ = булево значение (True|False)]
    Вывод звука.
  • object.StretchMode [= строка]
    Тип масштабирования для видеороликов.
    Допустимые значения:
    "stretch" - Растянуть под размер экрана.
    "crop" - Без масштабирования, видео обрезается под размер экрана.
    "preserveaspectratio" или "preserve" - Сохранить пропорции с рамкой. Видео на весь экран с сохранением пропорций. По краям могут возникнуть черные поля, если не пропорции видео не совпадают с экраном. Не обрезает.
    "preserveaspectratio_noletterbox" или "noletterbox" - Сохранить пропорции. Видео на весь экран с сохранением пропорций. Может обрезать края, если не пропорции видео не совпадают с экраном. Значение по умолчанию.
  • object.LogolistActive [= булево значение]
    Показывать логотипы.

Методы:

  • object.LoadPlayList имяФайла, безусловный, выполнить
    Загружает плейлист.
    имяФайла - Строка. Файл .xjob с плейлистом.
    безусловный - Булево значение. Если True, то немедленный запуск плейлиста; False - будет доигран текущий клип и затем загружен новый плейлист.
    выполнить - Булево значение. Запустить проигрыватель.
  • object.BackupAndEraseLog имяФайла
    Сохранить текущий файл журнала под именем имяФайла и очистить журнал.
  • object.PausePlaylist
    Приостановить вывод плейлиста.
  • object.ResumePlaylist
    Возобновить показ плейлиста.
  • object.PauseAll
    Приостановить показ (Плейлист/Логотипы/Видеозахват/Тест).
  • object.ResumeAll
    Возобновить показ.
  • object.RotateLogs
    Выполнить ротацию журнала (новое имя на основе текущей даты/месяца).
  • object.LoadLogoList имяФайла, выполнить
    Загрузить логотипы.
    имяФайла - Строка. Имя файла плейлиста с логотипами.
    выполнить - Булево значение. Начать показ логотипов.

Примеры использования:

В "Мастере заданий" представлены несколько примеров использования объекта Планировщик: Сменить/Очистить список воспроизведения, Сменить/Очистить список логотипов, Безусловная смена списка воспроизведения.
Предположим раз в день в 12 часов необходимо показать определенный плейлист, а в остальное время показывать стандартный список воспроизведения. Для этого создаем этот плейлист и в конец его ставим скрипт на выполнение "Сменить список воспроизведения" с указанием стандартного плейлиста. Сам скрипт будет выглядеть так (если имя планировщика в конфигурации задано как sheduler):
Application.Sheduler.Playlist="default.xjob"
Далее с помощью вкладки "Задания" создаем задание на запуск этого плейлиста в 12 ч. ежедневно. Учтите, если выбрать в задании "Сменить список воспроизведения", то плейлист загрузится не ровно 12 ч, а дождется завершения текущего активного клипа. Если необходимо запустить плейлист ровно в 12 ч выберите в Мастере заданий "Безусловная смена списка воспроизведения".

Введение в строение конфигурационного файла. Компоненты.

Эта статья является введением структуру конфигурационных файлов, что поможет в дальнейшем понять как обращаться к компонентам приложения из пользовательских скриптов. В следующих статьях я опишу API наиболее востребованных компонентов и примеры скриптов с наиболее востребованными функциями.

Само приложение может содержать множество компонентов и все компоненты должны быть описаны в конфигурационном XML файле. Такой файл лучше открыть с помощью редактора поддерживающего XML синтаксис или любым текстовым редактором, желательно поддерживающем кодировку UTF-8. Подойдет и Блокнот, только при сохранении файла под другим именем в диалоге Файл/Сохранить как... нужно указать Тип файла "Все файлы (*.*)", иначе Блокнот автоматически добавить расширение .txt. Настоятельно рекомендую сохранить резервную копию конфигурационного файла. Конфигурационных файлов для приложения может быть несколько, в этом случае необходимо указать дополнительный параметр при загрузке приложения -config:<Имя конфигурационного файла>.

Итак, вы сохранили резервную копию и теперь можно открыть конфигурационный файл для более детального рассмотрения. Если вы знакомы с XML-синтаксисом переходите к следующему абзацу, для остальных кратко: XML— это описанная в текстовом формате иерархическая структура, предназначенная для хранения любых данных. Визуально структура может быть представлена как дерево элементов. Элементы XML описываются тегами. Каждый элемент может содержать именованные атрибуты и содержимое. Элемент обычно состоит из открывающего и закрывающего тегов, обрамляющих текст и другие элементы. Открывающий тег состоит из имени элемента в угловых скобках, например, <step>, а закрывающий тег состоит из того же имени в угловых скобках, но перед именем ещё добавляется косая черта, например, </step>. Содержимым элемента называется всё, что расположено между открывающим и закрывающим тегами, включая текст и другие (вложенные) элементы.

Не все элементы описанные в конфигурационном файле должны быть обязательно загружены. Некоторые можно отключать, это может быть иногда удобно. Для этого все элементы можно разбить на именованные группы и в конфигурационном файле указать какие группы вы хотите задействовать. Для этого обычно где-то вначале файла создается элемент <components> в котором перечислены задействованные группы компонентов в виде элементов <component>Имя группы</component> у которых содержимое является именем группы. Для указания, что данный элемент в конфигурационном файле относится к группе необходимо добавить к нему атрибут _component_dependent="Имя группы"

Будем считать, что с группами мы разобрались. Перейдем к самому важному для нас. Все компоненты в конфигурационном файле описываются элементом
<object name="Имя объекта" clsid="Программный идентификатор" description="Описание компонента"...>
</object>
Здесь указаны обязательные атрибуты "Имя объекта" - по этому имени этот компонент будет доступен из скриптов. "Программный идентификатор" - название класса компонента, все API привязаны именно к данному классу. Доступ к приложению из скриптов должен начинаться с объекта Application, за которым через точку идет имя объекта указанное в конфигурационном файле. Далее я расскажу о доступных свойствах и функциях (API) для наиболее востребованных классов, которые вы сможете использовать в своих скриптах.

понедельник, 17 октября 2011 г.

Настройка управления яркостью видеоэкранов

В прошлой статье рассказывалось как настроить службу NiBUS, после чего можно перейти к вопросу как правильно настроить управление яркостью из ПО AdvertisePro. Это необходимо если в журнале сообщений есть сообщение "Не задана конфигурация цифровой магистрали" или периодически появляются сообщения "Ошибка установки MIB-переменной Brightness".
Откройте программу, выберите меню Сервис/Настройка.../DVIMaster. В окне справа необходимо задать адрес "нулевого" входного модуля. Если список пуст, добавьте новое устройство кнопкой в правой части окна. Адрес вводится в шестнадцатеричном формате в виде Домен.Группа.Устройство. Домен всегда равен FF, устройство равно 01, а группа задается во входном модуле с адресом 0.0 видном на индикаторах на задней панели. Номер группы хранится в 15 параметре. Чтобы его посмотреть или изменить используйте три кнопки на плате управления модулем. Нажмите среднюю кнопку, чтобы перейти в режим правки/просмотра (нажатие 1 и 3 кнопки одновременно выведет модуль в обычный режим, выход также осуществляется при переходе к следующему параметру при редактировании последнего параметра а также при истечении таймаута нажатия кнопок в течении 40 секунд ). На индикаторе слева будет показан номер параметра, справа его значение. Для перехода к следующему параметру жмите первую (левую) кнопку, для перехода к предыдущему первую и вторую одновременно. Нажатие средней кнопки увеличивает значение, правой - уменьшает значение параметра. Список всех параметров можно найти в документе .\docs\mcdvi.tech_ref.pdf. Переходим к 15 параметру (номер параметров и их значения отображаются шестнадцатеричном формате) и запоминаем его или меняем на требуемый. Обычные значения группы FF (255) или 00. Чтобы не бегать в экран при вводе адреса можно попробовать ввести сначала адрес FF.FF.01 или FF.00.01, в поле MIB-файл нужно выбрать mcdvi.mib.xsd (для старых LVDS экранов здесь нужно указать dvimaster.mib.xsd)  и нажать кнопку проверить. Если появится сообщение MIB-устройство успешно опрошено можно жать кнопку OK и попробовать изменить яркость экрана ползунком для задания яркости экрана в программе. Если в сообщении указано, что устройство опрошено но не совпадает тип, значит мы указали адрес другого устройства (обычно это DVI-мастер в экранах с передачей по оптике). Попробуйте следующий адрес. Если и он не подходит, то следует убедиться, что все устройства подключены к 485 интерфейсу и все таки посмотреть 15 параметр у входного модуля, чтобы быть уверенным, что адрес задан правильно.

Настройка службы NIBUS.

После установки ПО AdvertisePro (Nata Supervision) в списке доступных служб (Панель управления/Администрирование/Службы) появляется служба nibus, которая позволяет обмениваться информацией с NiBUS устройствами по одноименному протоколу, используя 485 интерфейс. В частности для управления яркостью экрана. После установки требуется задать порт, через который будет проходить обмен информацией и скорость обмена. Чтобы задать эти параметры необходимо выполнить команду (Пуск/Выполнить или набрать в командной строке):
nibuss -c
В открывшемся окне укажите порт и скорость. Если у Вас Windows 7/Vista и включен UAC, то команду нужно запускать от имени администратора. Для связи по 485 интерфейсу используется трансиверы внешний Siolynx (подключается к RS232) или Siolynx 2 - подключается к USB и бывает внутренний в виде платы или внешний. Также возможно прямое подключение RS232 -> DVI master. Если подключение прямое к DVI-master, то скорость должна быть указана 28800, во всех остальных случаях 115200. Чтобы проверить правильность настроек и работоспособность трансивера Siolynx можно ввести команду:
ipgm -mib siolynx -ds
На выводе должен быть что-то похоже на это:

Nata-Info iDevices programmer. v.1.0.80, Jan  5 2009
Developed by Andrey Ivanov <support@nata-info.ru>
Copyright (c) 2009 Nata-Info Ltd. All rights reserved.

>> Parsing device MIB siolynx: OK
>> Binding to pipe: OK
>> Ackquiring device data (19 variables): .................OK
--- Трансивер SioLynx ---------------------------------------
1.                                     Address: 00:00:00:00:5C:6A
2.                                     Версия устройства: 2.0 [0x7]
3.                                Время с момента старта: 1091707, с
4.                                        Результат POST: 1792
5.    Коллизий при передаче дейтаграмм в rs485-интерфейсе: 0
6.                      Принято байт по rs485-интерфейсу: 0
7.                 Передано дейтаграмм в rs485-интерфейс: 2983
8.            Не отправлено дейтаграмм в rs485-интерфейс: 0
9.                      Обнаружено маркеров захвата шины: 0
10.                 Обнаружено маркеров освобождения шины: 0
11.                           Таймаутов освобождения шины: 0
12.              Ошибок синхронизации на rs485 интерфейсе: 0
13.          Игнорировано старт-битов на rs485 интерфейсе: 0
14.              Ошибок синхронизации на rs232 интерфейсе: 0
15.           Ошибок контрольной суммы в rs232 интерфейсе: 0
16.                Принято дейтаграмм по rs232 интерфейсу: 2998
17.                                     Переполнений фифо: 0
18.                             Записей в журнале событий: 0
Красным выделен MAC-адрес трансивера
Если вывод отличается, то скорее всего неправильно задан порт или трансивер Siolynx не исправен. После успешной проверки можно, например, запустить gMib2 указать тип устройства (меню Файл/Найденные в системе), его адрес и, если устройство доступно, активируются кнопки Обновить и Отправить.
В следующей статье будет рассказано как настроить настроить управление яркостью видеоэкрана.