Open Magnetic Light Network

Where spirituality meets materiality cooperatively and openly

User Tools

Site Tools


projects:software:senselab

SenseLab

Open sensors monitoring and device control in Your lab

Overview

SenseLab is planned to be a sensor data aquisition, visualization and device control software system with open and extensible architecture to be used in Your lab. Nodes of devices or sensors are processed to create meaningful measurements data logging allowing to replay recorded measurement sessions, visualize and analyze it also with the help of external tools. Basically this is SCADA like system.

Architecture

Actions done in a lab or any other place are performed at some environment where interactions occure during the progression of events we call time. The environment is monitored or controlled by nodes.

Nodes

Nodes provide the means of communication with measured and controlled space or scene. Environment nodes represent devices and project nodes represent environment nodes in a project.

Environment nodes

Environment nodes are devices with sensors or controllers which provide or process data and are part of node network being monitored or controlled. Each node has

  • Identifier
  • Name
  • Description
  • Recordables
  • Optional subnodes
    • The list can be fixed or dynamic (when nodes appear or disappear)
    • Nodes can be provided by monitoring networks of nodes which can be discovered
Example
Node recordables

Nodes provide recordables or recordable items which allow recording of records (changes or actions done in a node). Each record has

  • Recorded data
  • Spatial location
  • Temporal location

These are types of recordables:

  • Values
    • Represent read only or writable states or measurements
    • Each value has
      • Measured or written value
      • Optional value unit (eg. K - Kelvin)
      • Optional value quantity (eg. Temperature)
  • Commands
    • Represent actions initiated by a user and performed on a node
    • Can have specific parameters for their control

Project nodes

Project nodes represent environment nodes in a project. Each node has

  • Identifier
  • Name
  • Description
  • Environment node used
  • Whether a node is selected
  • Selected recordables from an environment node
  • Spatial location
  • Optional subnodes
Node locations

Each node has its spatial location which can be of different kinds like:

  • Name
  • Geolocation like GPS
  • Absolute coordinates like x, y, z
  • Coordinates relative to parent node
  • Group of the previous ones

Environment

Environment represents a set of environment nodes.

Projects

Project represents a set of project nodes and sequences of records.

Records

Selected recordables of selected project nodes can be recorded into a named sequence of records. Records provided by environmental recordables (while real actions are performed on stage during a period of time) can be

  • Stored directly
  • Transformed to another new record(s) and stored

Records can be played during recording or replayed later once recorded. Records can be visualized directly in this software or indirectly by some external visualization software where we can feed data during the records playback and analyse it later. Such software can be something like

Example

Experiments with dynamic plasmatic reactors may require magnetic field mapping, reactor control etc.

Let us suppose such control can be done with reactor vacuum chamber controllers dealing with

  • Vacuum level
  • Gas injection
  • Chamber rotation speed

We could add more, but let us keep it simple for now.

From this we get these environment nodes

  • Vacuum chamber pressure sensor
  • Vacuum chamber valves controller
  • Vacuum pump controller
  • Motor controller with feedback for obtaining rotational speed, voltage and current

Regarding magnetic field mapping, we can use multiple magnetometers as environment nodes.

The whole environment tree would be:

  • Reactor
    • Vacuum chamber
      • Chamber preasure
      • Vacuum valve
      • Gas injection valve
    • Motor
      • RPM
  • Vacuum pump
    • Switch
  • Magnetometers
    • M1
    • M2
    • M3
    • M4

We will represent these environment nodes of our lab as project nodes in our experimental project. We will perform actions leading to plasma opening in our reactor. During these actions we will record states of our controllers and vacuum chamber sensors and at the same time magnetic field outside of the chamber.

The whole project tree would be:

  • My lab
    • Reactor
      • Vacuum chamber
        • Chamber preasure
        • Vacuum valve
        • Gas injection valve
      • Motor
        • RPM
    • Vacuum pump
      • Switch
    • Magnetic field
      • M1
      • M2
      • M3
      • M4

The magnetic field recordings consisting of magnetometer B (bi)vector field readings at specific points can be visualized.

Storages

Project nodes and their records can be stored in different types of storage like

  • Local
  • Remote
  • XML
  • Database

These storages would allow also remote access to projects by other users so that they can learn, share, contribute for better cooperation.

Technology

From technological point of view, I suggest these technologies:

System requirements

For system running

For system development

Application structure

Application functionality can be divided into these blocks

  • Main application with
    • MVVM 4) pattern
    • Projects editor, monitor and player
  • WCF 5) service with
    • Node storage access
  • Database for data storage like
    • SQLite
    • Cloud storage

Cooperation

Anybody is welcome to be part of development team or just make suggestions or share ideas.

Project repository

Project code repository can be accessed at https://github.com/OMLN/SenseLab

1) Application Programming Interface
2) Windows Presentation Foundation
3) User Interface
4) Model, view model, view
5) Windows Communication Foundation
You could leave a comment if you were logged in.
projects/software/senselab.txt · Last modified: 2015/03/28 03:23 (external edit)