ABISoft
 

Ab Init Software Development Company

 
О Компании
Продукты
Клиенты
Навыки
Публикации
Контакты

Готовые продукты

ATapeXP
ScanLab
PocketScale для Linux
Dent
QR Code
LogFileMonitor
Avikon03M
Абис-Эксперт
СКАТ
Абис-Эксперт-Кросс
Диаскоп
Диаскан
Avikon03M_proxy
BpdConvert

Описание работы комплекса Диаскан

Комплекс предназначен для сбора, хранения и доступа к данным УЗ диагностики.

Комплекс представляет собой набор нескольких компонентов, работающих независимо, и обменивающихся командами и данными. Взаимодействие осуществляется через протокол gRPC.

Состав комплекса

Комплекс Диаскан состоит из нескольких основных компонентов:

  • service_control сервис управления, он знает как работать со всем остальными компонентами, и является по сути интерфейсом управления комплексом.
  • service_receiver сервис обработки данных из Сырых данных, собирает данные по сети, проверяет их, выделает данные каналов, транслирует А-сканы и собранные блоки данных.
  • service_storage сервис записи и хранения данных.
  • start_registration утилита управление регистрацией.
  • viewer утилита просмотра данных (Диаскоп).

и вспомогательных:

  • ascan_viewer просмотр А-сканов.
  • vm_emulator эмуляция пакетов ВМ, для тестирования.

Для обмена данных между компонентами используется протокол gRPC.

Схема взаимодействия компонентов комплекса:

Сервисы

service_control

Сервис управления, он знает как работать со всем остальными компонентами, и является по сути интерфейсом управления комплексом.

Позволяет:

  • Запускать/останавливать регистрацию данных.
  • Предоставляет доступ к записанным данным.
  • Предоставляет доступ к служебной информации и статусу комплекса.

Конфигурация сервиса хранится в файле service_receiver.yaml.

# точка подключения к самому сервису
server:
    host: "" # пустая строка означает прослушивание всех адресов на хосте
    port: 55010

# точка подключения сервера внешних данных
external_data:
    host: ""  # пустая строка означает localhost
    port: 50060

# точка подключения к service_receiver
service_receiver:
    host: ""
    port: 55011

# точка подключения к service_receiver
service_storage:
    host: ""
    port: 55012

service_receiver

Сервис обработки сетевых пакетов от ВМ:

  • читает данные из указанного адреса сети,
  • проверяет их,
  • выделает данные каналов в соответствии с описанием в конфигурации,
  • транслирует А-сканы,
  • рассчитывает координатную привязку,
  • формирует блоки данных и транслирует их.

Конфигурация сервиса хранится в файле service_receiver.yaml.

VM:
  ip: 0.0.0.0           # адрес, куда идут пакеты от ВМ
  port: 5432            # порт, куда идут пакеты от ВМ
  packet_size: 1276     # размер пакета
  expected_pps: 100000  # ожидаемый поток пакетов, используется для рассчета размера внутренних буферов приема данных

# описание формата пакета (положения А-сканов каналов)
AScans:
  base_offset: 0        # базовое смещение, добавляется к offsets
  default_size: 290     # размер А-скана канала (может уточнятся для конкретного А-скана)
  offsets: [60, 364, 668, 972] # смещения А-сканов в пакете

  Modules: # описание исходных данных для каналов,
    - { packet_num: 0, num: 0, offset_index: 0} # модуль 0 размещает свои данные в пакете 0, на месте 0
    - { packet_num: 0, num: 1, offset_index: 1}
    - { packet_num: 0, num: 2, offset_index: 2}
    - { packet_num: 0, num: 4, offset_index: 3}
    # можно записать в сокращенной форме
    - { packet_num: 1, num: [ 4, 5, 6, 7], offset_index: [0, 1, 2, 3]}

# описание групп каналов
Groups:
  - { name:  "65", start_delay:  5, end_delay:  90, alpha: 65, gamma:  0 }
  - { name:  "58", start_delay: 20, end_delay: 140, alpha: 58, gamma: 34 }

# описание схем прозвучивания (привязки данных в пакетах к каналам данных)
Schemes:
  - name: "scheme1"
    # каналы данных
    channels:
      - { rail: 1, channel:  0, module: 0, group: "65", name: "65-4", shift:  10, trend: "fwd" } # канал (1:0) извлекается из модуля 0: (пакет 0, аскан 0)
      - { rail: 2, channel:  0, module: 1, group: "65", name: "65-4", shift:  10, trend: "fwd" } # канал (2:0) извлекается из модуля 1: (пакет 0, аскан 1)
    # можно использовать следующую запись:
      - { rail: [1,2], channel:  1, module: [ 2, 3], group: "65", name: "65-3", shift:  10, trend: "bwd" }

# описание рабочего режима сбора данных
Data:
  scheme: "scheme1"
  block_length: 1000  # длинна блока данных


# точка доступа управления сервисом (должна соответствовать service_receiver.yaml)
Commands:
  ip: 0.0.0.0
  port: 55011

service_storage

Сервис записи и хранения и доступа к данным.

Конфигурация сервиса хранится в файле service_storage.yaml.

# точка доступа управления сервисом (должна соответствовать service_receiver.yaml)
server:
    host: ""
    port: 55012

# описание хранения данных
data_storage:
    db: service_storage.db  # имя файла БД
    root_dir: D:/temp/data  # директория хранения файлов данных

start_registration

Программа управления регистрацией. Позволяет начать, остановить регистрацию, а также контролировать процесс регистрации.

Управляет сервисами управления service_control, service_receiver, service_storage для начала и остановки регистрации. И также показывает текущий статус регистрации.

Экран программы управления регистрацией перед запуском регистрации: start_registration

Экран программы управления регистрацией после запуска регистрации: start_registration

ascan_viewer

Программа просмотра А-сканов в реальном времени. Подключается к service_receiver и получает А-сканы по мере их поступления

Экран программы просмотра А-сканов: ascan_viewer

Содержит следующие элементы:

  1. Выбор хоста сервиса service_receiver, к которому будет подключаться просмотрщик.
  2. Выбор порта сервиса service_receiver.
  3. Кнопка перегрузка подключения к сервису.
  4. Выбор модуля (группы каналов) для просмотра.
  5. Выбор режима эха. Указывает количество повторений А-скана в пакете.
  6. Область отображения А-сканов выбранного модуля.

vm_emulator

Программа эмуляции пакетов ВМ, для тестирования. Позволяет отправлять пакеты, имитирующие работу ВМ, для тестирования комплекса.

Экран программы эмуляции ВМ: vm_emulator



@abisoft_copyright@

   E-mail us: @abisoft_mail@