LINUX.ORG.RU

mifa — анализатор формата данных

 , ,


0

1

При анализе данных, вычитываемых системой сбора, на предмет сбоев бывает необходимо просматривать данные глазами слово-за-словом. Ломая неоднократно глаза за этим занятием я решил слепить что-нибудь для его облегчения. Идея для такого инструмента не пришла сама, идея была «нагло спёрта» ;) у анализаторов протоколов (например: http://www.usbee.com/suite.html, http://www.usbee.com/dxpp.html, это не реклама!!!), встраиваемых сейчас даже в некоторые модели цифровых осциллографов. Поделие было названо mifa — MISS format analyzer (МИСС это стандарт на крейтовую электронику, изобретённый лет 20 назад в нашем институте) и стало органичной частью dem (decoding error monitor), приложением для мониторирования работы системы сбора и сбора статистики ошибок декодирования данных (уже презентованное ЛОРовской публике в недалёком прошлом анализ работы системы сбора данных)

mifa написана на питоне, декодинг производится в библиотеке написанной на С. Событие рендерится в виде древовидного списка (QTreeWidget) слов буфера, из которого событие декодируется. Т.е. 4-х байтные слова буфера представлены последовательно (buffer word — слово в hex, offset — смещение слова в буфере) с раскодированной в них информацией и обнаруженными ошибками. При чтении файла с данными можно задать критерий останова например по маске ошибки для каждого модуля (обнаруживается более 50 типов ошибок), слева внизу показано окошко для указания типов ошибок в маске. Справа внизу показано выбранное (мышкой по слову в дереве тыц!) раскодированное слово с номерами и значениями битов, раскодированная в полях слова информация и названия полей. Справа вверху виден кусок таблицы с ранжированными корзинами и ошибками в них (я описывал таблицу в прошлом скриншоте). Остальное, надеюсь, понятно по названиям.

Рендеринг построен на шаблоне проектирования builder. Рендереры, знающие только формат данных, реализованы в виде библиотеки питоновских модулей, за представление (отрисовку с помощью QTreeWidget) отвечает builder, что позволяет менять представление без переделки рендереров. Рендереры создаются во время рендеринга с помощью шаблона factory method (virtual constructor), используя свойство питоновских классов first class object. Весь анализатор занимает около 1500 питоновских строк включая библиотеку из 22 рендереров.

Код предоставлю всем жаждущим по запросу.

>>> Просмотр (1920x1200, 364 Kb)

★★

Проверено: JB ()

Код предоставлю всем жаждущим по запросу.

выкладывай на гитхаб.

ymn ★★★★★ ()

Алексей, привет!
Не очень понятно, в каком месте возникают ошибки: при сборе данных с модулей, при вычите из контроллера или во время сохранения самой ССД? У вас используется асинхронный МИСС?

markevichus ★★★ ()

для мониторирования работы системы сбора и сбора статистики ошибок декодирования данных

no comments

fank ()
Ответ на: комментарий от xSudo

А почему бы к самому Logic не прикрутить это?

это анализатор протоколов, моя поделка ближе к wireshark (ethereal в молодости), про которую тут никто не вспомнил. Жаль, что никто не обратил внимания на шаблоны проектирования, их применение это самое интересное в любом софте, а питон сильно облегчает задачу опробования новых идей. Проект, создаваемый без знания шаблонов, идёт вслепую. Миром правят идеи, а не люди.

filin ★★ ()
Ответ на: комментарий от markevichus

привет

в каком месте возникают ошибки: при сборе данных с модулей, при вычите из контроллера или во время сохранения самой ССД?

при вычитывании модулей и в самих модулях

У вас используется асинхронный МИСС?

уже синхронный

filin ★★ ()
Ответ на: комментарий от ymn

выкладывай на гитхаб.

я озадачился, нужно почистить код и чуток задокументировать

filin ★★ ()
Ответ на: комментарий от HerrWeigel

По вам Розенталь плачет.

на то есть проверяющие:

Проверено: JB (06.04.2012 11:17:18)

Грамматические ошибки в моих записях есть следствие переписывания кусков предложений без сохранения сколонений и падежей, посему под правило 5.5:

«Преднамеренное искажение слов, замена букв на похожие по написанию символы и буквы других языков. Преднамеренное нарушение правил русского языка. Пункт правил действует в случае, когда искаженные слова преобладают в сообщении.»

они не попадают, главное донести мысли до читателя, на скрижали они всё равно никогда не попадут. Ваше замечание в данном случае перекрывается самым приоритетным правилом 1.1:

«Правила предназначены для модерирования форума и главной своей целью имеют поддержание нормальной здоровой дискуссии в комментариях к новостям и в форумах. Понятие «здоровой» дискуссии определяется настоящими правилами и личным мнением модераторов, основанном на опыте управления форумами.»

filin ★★ ()
Ответ на: комментарий от filin

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

HerrWeigel ★★★★ ()

бывает необходимо просматривать данные глазами слово-за-словом.

Хотел сказать... но прочитал...

я решил слепить что-нибудь для его облегчения.

Молодчина! Но потом почитал дальше

mifa написана на питоне

И тут опять хотел сказать... но решил таки дочитать

декодинг производится в библиотеке написанной на С

Ещё раз молодчина.

А эта система предполагает ответ на инциденты?

iBliss ()

Нет чтобы прикрутить декодер к OLE Toy. Надо было обязательно с нуля написать.

AP ★★★★★ ()
Ответ на: комментарий от AP

Ммм, прикольная штука. Спасибо, надо будет запомнить.

ei-grad ★★★★★ ()
Ответ на: комментарий от filin

also,

бэкапирования

я понимаю, что «мониторинга» - тоже не совсем русское слово, но уж всяко более распространено :)

fank ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.