CyberFleet: удаленный ввод тарировочной таблицы, механизм обновления
? Появилась задача, удаленно обновить (заполнить) тарировочную таблицу на клиентской копии CyberFleet.
Естественно все это можно сделать и ручками при посещении компьютера клиента (реальном или "виртуальном"), однако, данный способ, как говорил Остап Бендер, "класс игры не высокий" (ибо нужно либо иметь удаленный доступ к клиентской машине, либо средство типа RDP, что не всегда нравится администраторам клиента, по понятным причинам, да и не всегда возможно использовать данные средства). Посему задача была разбита на две части:
1. Подготовить скрипт, который бы формировал скрипт заполнения тарировочной таблицы (а, при необходимости, и создания датчика) на удаленной копии CyberFleet.
2. Найти механизм доставки данного скрипта до клиента, без участия "ручек" (т.е. что бы скрипт выполнился удаленно без участия какого-либо оператора, ну или с минимальным его участием, в виде просмотра данных в программе - появилось или нет).
Для решения первой части, было решено для начала использовать "готовые" данные о тарировочной таблице из другой копии CyberFleet (предпологается, что сначала вы внесете таблицу у "себя" в CyberFleet, и уже ее выгрузите).
Скрипт, призванный это делать был оформлен в виде процедуры для базы данных SQL (см. форум).
На выходе скрипт выдает массив строк и составляющий тело скрипта (записать как файл с расширением sql) для передачи клиенту. Не мудрствую лукаво я назвал файл 01.sql.
Далее, разобрав структуру файлов обновления, я увидел, что представляют они из себя упакованные rar-ом файлы, где DBScripts содержит файлы скриптов sql. Создав нужный каталог (DBScripts) я разместил файл в нем (01.sql) и на основании данного каталога создал архив bn0.0.1.upd (имя архивов как-то прописано в "обновляторе" CyberFleet, и просто test.upd он не воспринимает).
Осталось воспользоваться стандартной процедурой удаленного обновления КиберФлита...
но я сделал это локально (добавлено 12/02/2012 скрипт можно передать клиенту автоматически, посредством службы BNUpdate - читайте тут).
разместив bn0.0.1.upd в одном из каталогов сервера CyberFleet, разместив рядом cmd с таким вот содержанием
del "C:\Program Files\M2M\Cyber Fleet\Update\Input\*.upd"
"C:\Program Files\M2M\Cyber Fleet\Server\ServerStart.exe" AUTO
(файл рассчитан на стандартные пути размещения сервера КиберФлит, если у вас конфигурация отличная от настраиваемой по умолчанию, то ваши пути и способы запуска обновления могут отличаться! Будь те внимательны!!!)
и запустив CMD я... увидел небольшое чудо. Для указанного мной прибора был создан датчик №10 топливный аналоговый, и для него заполнена тарировка.
Передать файл обновления клиенту можно и посредством BNComplex (см. Инструкцию к BN Updater), но данный материал выходит за рамки этой статьи (но описан вот тут)
Автор выражает благодарность абонентской службе копании "М2М Телематика" (г. Москва) за их героический труд по общению с ним.