Cameras

Description

Mini-EUSO is equipped with two ancillary cameras to provide complementary measurements in different wavelength bands (NIR and VIS). The main camera software, multiplecam, is stored in CPU/cameras/multiplecam and is written and maintained by Sara Turriziani (sara.turriziani@gmail.com). Some documentation can be found in CPU/cameras/multiplecam/doc.

The CamManager class is an interface to this software and handles the lauching of the camera software in a robust way, and the parallel operation of the cameras with respect to the other instrument subsystems.

CamManager

class CamManager

interface to the multiplecam camera software to allow for parallel acquisition with the two cameras (VIS and NIR)

Public Types

enum CamStatus

used to describe the desired camera status to use with CamManager::DefineLaunchcmd()

Values:

enumerator OFF
enumerator ON
enumerator UNDEF

Public Functions

CamManager()

constructor. initialisation of usb_num_storage_dev, n_relaunch attempt and launch_running

int SetVerbose()

set verbose output for debugging

int KillCamAcq()

kill the camera thread. used when switching mode or shutting down. the camera thread holds no locked resources.

int CollectData()

spawn thread to launch the camera software thread is joined if launch fails and detached if launch successful

void SetCamStatus(CamStatus nir_status, CamStatus vis_status)

set the camera status

Parameters:
  • nir_status – status to set the NIR camera

  • vis_status – status to set the VIS camera

Public Members

CamStatus nir_status

stores the status of the NIR camera

CamStatus vis_status

stores the status of the VIS camera

int nir_serial

stores the NIR serial number

int vis_serial

stores the VIS serial number

std::thread::native_handle_type cam_thread_handle

stores the camera thread handle

int usb_num_storage_dev

stores the number of available usb storage devices

int n_relaunch_attempt

stores the number of attempts to launch the cameras

Private Functions

int StartAcquisition()

start camera acquisition and react to launch failure if necessary

const char *DefineLaunchCmd()

define the command to launch the cameras based on required situation (write_directory, NIR or VIS or both, etc)

void ParseSerialNumbers()

parses the multiplecam software cameras.ini file to get the NIR and VIS serial numbers called by the CamManager constructor