18.10.2017
Эффективная Навигация М2М
Меню сайта
Категории раздела
BNComplex работа с сервером [13]
Приемы, методы, дополнительное ПО
Форма входа
Вход через Google
Вход через Вконтакте
Вход через Facebook
Партнеры
Реклама

BNComplex: Массовая перепрошивка приборов с 283 на 297
Важно!!! Замена версии верхней платы может привести к сбою настроек в терминала! Не забудьте восстановить их.  Не применяйте данную инструкцию, если не обладаете всей информации о данных настройках!!! Работайте по обновлению каждого терминала отдельно, или разбейте на небольшие, легко контролируемые группы!!!

ID, Server остаются неизменными

Встала задача массового заменить прошивку в приборах 2.83/2.6 на 2.98/3.1. При этом, все прошиваемые приборы на данном сервере имеют одну и туже настройку и конфигурацию подключенных устройств (тревожная кнопка, громкая связь, LCD дисплей).
Если вы не уверены в своих действиях, то не стоит выполнять данные действия, во избежания потери настроек приборов.

Статья писалась на живом примере обновления 203 приборов, из которых 177 через 2-а были успешно обновлены прошивками верхними прошивками, 77 требовали и  верхними и нижними (контролировалось по логам) из них прошились 75.
остальные приборы перестали выходить на связь ДО момента отправки команд на прошивку (26 приборов).


Что потребуется:

  1. RDP доступ (или аналог) на сервер BNComplex
  2. Служба TCP Gate (в составе BNComplex) последней версии, с соответствующими настройками (в ini) для заливки FirmWare на приборы. Нужно знать куда служба пишет свои логи - нам потребуется данная информация. Период жизни команды должен быть хотя бы 1 час (у меня в настройках 2-а часа)
  3. Файлы прошивок для отправки (2.98, 3.1).
  4. утилита findstr - входит в комплект windows 2003 или ей подобная (Grep, например) (поиск строк в файле). Ее задача найти все строки "Login" в логах TCPGate
  5. MS Excel - ее задача разбить строки Login на части (выделить время, номер прибора, прошивки), подготовить списки приборов на обновление.
  6. Дополнительная утилита massfiles.exe - ее назначение создать по переданным номерам приборов файлы с командами для BNComplex
  7. Набор утилит "loganalise" (меню правой кнопки BNC Analise) - для быстрого просмотра логов поиском строк в нем. (нам потребуется просматривать факты, что команды выполнены, или отклонены, их состояние, и прочее полезное). Данный пункт не обязателен - вы можете просматривать файлы логов в Блокноте, ища данные самостоятельно (если конечно никуда не спишите).

Алгоритм действий:

1. Выбрать из лога TCP Gate информацию о версии приборов при помощи поиска строк login
2. Обработать данную информацию в MS Excel - выделить из нее время логинов, версия прошивки, номер прибора в отдельные колонки. Отсортировать по убыванию даты. Создать список приборов (через сводную таблицу). Для каждого прибора найти последнюю версию прошивки. Создать итоговую таблицу как "номер прибора", "текущая версия"
3. Подготовить список приборов для отправки команды перепрошивки из подготовленной таблицы.
4. Создать файлы команд при помощи утилиты massfiles.exe
5. Отправить команды на вход TCP Gate
6. Отслеживать выполнение перепрошивки по данным log-ов, при помощи loganalise

Реализация:

Пункт 1

Для выборки из логов (вы естественно должны знать где они находятся на вашем сервере) используем простой скрипт cmd такого содержания:

findstr /R /c:".*Login.*" C:\BNComplex\Logs\TCPGate\TCP110428.log >C:\BNComplex\Util\FindStr\tcplog.txt
start C:\BNComplex\Util\FindStr\tcplog.txt

где C:\BNComplex\Logs\TCPGate\TCP110428.log - путь к логу службы TCPGate (например за 28.04.2011)
В результате работы у вас будет создан файл (и открыт на экране), где будут все строки Login примерно такого содержания

28/04/2011 00:05:50.812 (I) 00C39C3C: Login request from [00052107] MFW:2.83, IOFW:0.0, RCV:1, RCVFW:0.0
28/04/2011 00:08:09.078 (I) 00C3BAE4: Login request from [00052087] MFW:2.94, IOFW:0.0, RCV:2, RCVFW:0.0
28/04/2011 00:10:31.546 (I) 00C39C48: Login request from [00052177] MFW:2.83, IOFW:0.0, RCV:1, RCVFW:0.0
28/04/2011 00:11:22.593 (I) 00AFBEC0: Login request from [00052207] MFW:2.94, IOFW:0.0, RCV:2, RCVFW:0.0

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

Пункт 2. 

Перенесите указанную информацию в таблицу Excel (например, через буфер обмена), так, что бы информацию содержалась в разных строках колонки А. Озаглавим колонки "Строки" (данные у нас начинаются со второй колонки)
далее, нам надо выделить из строки информацию о дате, номере прибора, и версии.
Для этого в колонках справа создадим заголовки "Дата", "Номер АТ","Версия"
заполним колонки формулами (для второй строки):
"Дата" =ЛЕВСИМВ(A2;23)
"Номер АТ" =ПСТР(A2;59;8)
"Версия" ==ПСТР(A2;69;100)

Теперь надо форумы раскопировать вниз (можно через буфер обмена) до конца таблицы
в результате получится таблица, где для каждой строки будет указана дата, номер прибора, и версия
28/04/2011 00:05:50.81200052107 MFW:2.83, IOFW:0.0, RCV:1, RCVFW:0.0
28/04/2011 00:08:09.07800052087MFW:2.94, IOFW:0.0, RCV:2, RCVFW:0.0
28/04/2011 00:10:31.54600052177MFW:2.83, IOFW:0.0, RCV:1, RCVFW:0.0
 
Так как за один день прибор мог много раз выходить на связь (и прошивки могли поменяться), то следует отсортировать данные по колонке "дата" в порядке убывания (что бы данные шли от более поздних к более ранним). Если в течении дня версии прошивок не менялись - данный пункт можно пропустить. Когда будете контролировать версии - не забудьте отсортировать!!! В прилагаемом примере это лист "данные"

Далее скопируем данные на новый лист (столбцы С:D, без "строки", и без даты)  воспользовавшись  "Специальная вставка-Значения" (в примере это лист "Данные без формул")

Далее, надо составить список приборов, что бы каждый прибор был не более одного раза. Для этого создадим сводную таблицу, где укажем в Столбец "Номер АТ" для строк. Таблицу создадим на отдельном листе (в прилагаемом примере это лист "Сводная по приборам")

Далее, надо скопировать полученный список приборов в отдельный лист (лист "Версии") в колонку А, назовем ее  "Номер АТ"
В колонку В ("Версия") во 2-ую строку вставим формулу
=ВПР(A2;'Данные без формул'!A:B;2;ЛОЖЬ)

Скопируем формулу до конца 

Теперь у нас вот такая таблица:
00051682MFW:2.94, IOFW:0.0, RCV:2, RCVFW:0.0
00051971MFW:2.94, IOFW:0.0, RCV:2, RCVFW:0.0
00052074MFW:2.94, IOFW:0.0, RCV:2, RCVFW:0.0 

С этим уже можно работать - фильтровать по версии, и так далее.

Пункт 3.

Наложим фильтр по версии "MFW:2.83, IOFW:0.0, RCV:1, RCVFW:0.0", и получим список приборов для отправки команды на замену версии
Добавим еще две колонки "Верхняя", и "Нижняя"  - тут будем отмечать условное состояние: 0 - отправили, 1, команда прошла успешно, пусто - ничего не делали

Пункт 4. 

Теперь нужно подготовить файлы для отправки. Для этого при помощи утилиты massfiles.exe создадим файлы-комант, с содержимом поля "Список строк команд":

1111111111;18|1U1|



должны получиться файлы 00051456_3.adm и так далее. 

Пункт 5

Эти файлы нужно отправить в каталог C:\BNComplex\BN Terminal Gate\CommandsIn (ваш путь может отличаться)
они сразу пропадут, что означает что TCP Gate взял из в работу.

Убедится в этом можно просмотрев лог TCP Gate (в loganalise воспользоваться кнопкой Поиск "ID" команды )
ища строки с ID [1111111111] (этот номер команды мы указали когда создавали файлы)
Sending command [18|1U1|], ID [1111111111] to device [00052179]

Далее начинается рутинная работа отслеживания, для каких именно приборов прошла данная команда. Для этого через какое-то время (1-2 часа) нужно просмотреть команды, окончившиеся "успехом" ища строки (для этого удобно использовать кнопку Conf comm ID в loganalise):
--
28/04/2011 07:52:49.187 (I) 00CBD6C4: Sending command [18|1U1|], ID [1111111111] to device [00057041]
28/04/2011 07:52:49.187 (I) 00CBD6C4: Confirmation for command ID [1111111111] from DP [3] for device [00057041] received

для указанного прибора можно поставить 1 напротив нужной версии (в данном случае верхняя плата).

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

1111111112;18|1U2|
Соответственно, будет проверять команды под номером 1111111112
Метод проверки тот же, что и для верхней платы.

После завершения процедуры результат можно проконтролировать заново выполнив пункты с 1 по 3

Для тех приборов, которые по каким-либо причинам не прошились следует использовать повторную отправку команд. 

После прошивки плат нужно восстановить по каждому прибору его настройки (входы, периоды отбивки, использование RS232 и так далее). Это можно сделать описанными способами, на основании уже составленных списков, использую в качестве команд нужные последовательности.

Важно!!! Замена версии верхней платы может привести к сбою настроек в терминала! Не забудьте восстановить их.  Не применяйте данную инструкцию, если не обладаете всей информации о данных настройках!!! Работайте по обновлению каждого терминала отдельно, или разбейте на небольшие, легко контролируемые группы!!!

ID, Server остаются неизменными


Похожие материалы
Категория: BNComplex работа с сервером | Добавил: logoff (28.04.2011) | Автор: Бондарь Михаил W
Просмотров: 1794 | Комментарии: 3 | Теги: прошивка терминалов, удаленная прошивка, М2М, BNComplex, обновление прошивки по воздуху | Рейтинг: 0.0/0
Всего комментариев: 3
3  
я прошиваю так:
в папку \\server\c\BNComplex\BN Terminal Gate\CommandsIn\
скопировать файл 00000000_9999999999.adm, содержимое файла:

00062764;1 прошивка платы логики модуля
00063498;3 прошивка модуля спутн. антенны

номер модуля;ID прошиваемого устройства

дальше в \\server\c\BNComplex\Logs\TermGateFirmware.log следим удачно или нет прошилось...

ЗЫ: после ID указывающего прошиваемое устройство НЕ должно быть пустых знаков, чревато теми-же последствиями что и при попытке отослать команду управления на модуль из КиберФлита - "встает" БН, необходимо будет удалять команду из очереди отправки и перезапускать службы.

2  
Это хорошо, когда приборы по одному-два раза за день логинятся, а когда как в моем случае по 20-30, тут надо искать последний момент логина - для того и excel.
А что в файле получается тогда?
000160000;1
000160001;1
и так далее?
Про лог fwupate Firmware Log Name= просто забыл smile Да, там реально проще смотреть результаты

1  
я делал так

в текстовом редакторе pspad из лога выбираются все запросы логинов, из этого выбираются все логины кроме последней прошивки, вырезаются номера приборов и заменяется пробел (после номера прибора) на ;1(2,3) , полученный файл кладется в outbox на сервере, по логу fwupate смотрем результат, для работы нужен текстовый редактор, он весит 3 мб и он бсплатеный.


Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
TOP 10 Популярное
1 Оборудование> Гранит-Навигатор 4.14
2 Оборудование> Абонентский терминал M2M Cyber GLX
3 Оборудование> Гранит-Навигатор 4.14: Настройка терминала
4 Прочее> "Красные" против "Синих" - статистка космических запусков России (СССР) и США
5 CyberFleet, CrossPoint> CyberFleet: Переустановка CyberFleet
6 CyberFleet, CrossPoint> КиберФлит: Учет топлива при помощи датчиков
7 Оборудование> M2M Cyber GLX: отправка команд
8 Прочее> SQL: CyberFleet: Занятие №3 Объединение таблиц Часть 1/2 (теория, inner join)
9 CyberFleet, CrossPoint> КиберФлит: Причины расхождения пробега по данным одометра и карте
10 CyberFleet, CrossPoint> КиберФлит: Подключаем карту Google
Наш опрос
Тахограф это?
Всего ответов: 23
LogOff © 2017
Сайт создан в системе uCoz Рейтинг GPS Клуба. GPS навигаторы. GPS мониториг. GPS трекеры. ГЛОНАСС