↓ Skip to main content
  1. Home projects/

lvJanus: a CAEN FERS readout board in LabVIEW

··Index: 4·

CAEN’s FERS-5200 front-end boards come with Janus, an open-source (GPL) readout program written in C that configures the board, talks to it over USB or Ethernet and reads the data. With lvJanus I turned that code into a DLL that LabVIEW can call, so the board can become part of a larger LabVIEW measurement setup.

I kept the stdcall interface deliberately small, with four functions:

  • initialize() loads the Janus configuration file and connects to the board;
  • send_receive(out, out_size, in, in_size) sends a command buffer from LabVIEW to the board and returns the response;
  • dump_info() writes the board and firmware information to the log;
  • destroy() closes the connection.

Underneath sits the Janus/FERS library itself (including the register map of the A5203 picosecond TDC unit) with a thin C++ wrapper that logs through spdlog. The solution also builds a small console program, which I used to test the same calls without LabVIEW.

lvJanus: LabVIEW calls four DLL functions, which wrap the Janus and FERS library that talks to the boardLabVIEWlvJanus DLLinitialize()send_receive()dump_info()destroy()Janus / FERSlibraryC, register mapFERSboardstdcallUSB or Ethernetthin C++ wrapper, logs through spdloga small console program tests the same calls without LabVIEW
LabVIEW calls four DLL functions that wrap the Janus library

Source on GitHub.

Related