LED / Board Status Detection

The Components

Architecture

Our main architecture is based on a MVC pattern.

@startuml
[Board Information Provider] as BIP
[Board State Provider] as BSP
[Board State Visualizer] as BSV
[Board State Logger] as BSL
[Board State Controller] as BSC


BSC ..> BSP : getBoardInformations
BSC ..> BIP : getStateInformations
user -- BSC : userInput
user - BSV : userOutput



Webcam - BSP: use
BSP .> BSV: update
BSC ..> BSL: logging
BIP -- Database
BIP -- local_files




@enduml

architecture which shows the abstract communication between the different entities.

The user can connect to the Board State Controller (BSC) either inside of labgrid or outside an application. By naming the local path or an global url the BSC uses the Board-Information-Provider to load a predefined Board specification which contains an reference image as well as LED locations and state-events. Those information are send to the Board State Provider (BSP) which opens a webcam stream and first locate the region of interest of all LEDs. It also classifies the state of the led signals. Those events can be displayed with the Board State Visualizer (BSV). It can be displayed either as command line inside labgrid or as annotated video stream.

Labgrid Integration

Glossary

  • Labgrid: an embedded systems control library for development, testing, and installation. See Labrid on GitHub.

  • Board State Distriubtion System (BoSS): a non-invasive DUT board state detection and reporting system. For a concept see: BoSS on GitHub.

  • OpenCV: A computer vision library. See OpenCV in Python

  • Board State Visualizer (BSV): The BSV is the tool the user will mostly use to interact with the BoSS as it actually presents the gathered and distributed information

  • Board State Coordinator (BSC): The BSC is the entity that provides service discovery as it implements a dictionary of service providers to be accessed by the service consumers

  • Board State Provider (BSP): The BSP dynamically extracts board state information from the board, e.g. via computer vision algorithms that analyse camera images taken from the board of interest

  • Board Information Provider (BIP): The BIP implements a service providing general information about boards.

  • Board Description Generator (BDG): The Board Description Generator, in short BDG is a tool for creating board descriptions,

  • Board State Logger (BSL): The BSL is a board state consumer dedicated to providing logging facilities.

  • ROI: Means region of interest, mostly the region where LEDs are supposed to be. Always a numpy array.

Indices and tables