wxMCA Software Package Reference

wxMCA Package

Introduction

Capabilities MCA-1000

Capabilities MCA-2000

Capabilities MCA-3000

Capabilities eMorpho

Neutron-3000

User's Manual MCA-1000 (pdf)

User's Manual MCA-2000 (pdf)

User's Manual MCA-3000 (pdf)

User's Manual eMorpho (pdf)

Components

Installation

MCA Data Server

Serial Interface

Simulator

Configuration

Code Examples

wxMCA Software

MCA Data Server

The software package consists the MCA Data Server (MDS) and various clients. The MDS connects any number of MCA devices via USB to the TCP/IP network. The MDS not only acts as a bridge between USB and the internet, it also acts a bridge between programming languages. Users can write their clients in (almost) any programming language they like.

See installation for detailed instructions. See here for a detailed description of the MDS.

Clients

BPI provides a graphical user interface (wxGUI) as well as numerous example client applications, cfthetable below.

Software components

The components of the software package are listed in the table below.

Component Purpose Description
mds Connect MCA to the world The MCA Data Server (MDS) connects to one or more MCA (or Counter) devices and provides a server interface to the network and the world.
Launch via wxMCA/run_mds.cmd (Windows) or ./run_mds.sh (Linux, with root privilege).
wxGUI GUI back-end The graphics user interface (GUI) is a client to the MDS and is accessible via the run_wxMCA command. The code itself is located in the folders wxGUI.
Launch via wxMCA/run_wxMCA.cmd (Windows) or ./run_wxMCA.sh (Linux). Clients do not need root privilege.
rad_config Configuration data All software components have some configurability. In particular one can set server-client IP addresses and a few other parameters, such as where data might be stored. All configuration data are JSON-strings and human-readable.
examples Examples The application developer can consult the wxMCA/examples/ folder for a number of brief examples for each device. The examples cover nearly every aspect of data acquisition. While written in Python, they can easily be reimplemented in other languages, because all commands (and data) are human-readable JSON strings.
sim Device simulator This simulator consists of pre-compiled code (mds/lib/*.dll or *.so) that is loaded by the MDS at run time. This is helpful when no MCA hardware is present, but the developer wants to test basic DAQ software.
MDD MCA Data Daemon(MDD) The optional MDD is used to launch necessary processes and check if they are alive. A hung or crashed process will be respawned. This is highly configurable and is often used in unattended systems. The OS may make sure the MDD is up and running and the MDD takes care of all subordinate processes. For instance the MDD may make sure that, at the minimum, the MDS and the stabilizer are running.