Program Listing for File scTDC.h

Return to documentation for file (scTDC.h)

#pragma once

#if defined _WIN32 || defined __CYGWIN__
  #ifdef SCTDC_EXPORTS
    #define SCTDCDLL_PUBLIC __declspec(dllexport)
    #define WIN32_LEAN_AND_MEAN
  #else
    #define SCTDCDLL_PUBLIC __declspec(dllimport)
  #endif
#elif __linux__
  #ifdef SCTDC_EXPORTS
    #define SCTDCDLL_PUBLIC __attribute__ ((visibility("default")))
  #else
    #define SCTDCDLL_PUBLIC
  #endif
  #include <sys/types.h>
#else
  #error platform is not supported
#endif

#include "scTDC_types.h"

#ifdef __cplusplus
extern "C" {
#endif // __cplusplus


SCTDCDLL_PUBLIC void sc_get_err_msg(int err_code, char *err_msg);

SCTDCDLL_PUBLIC int
sc_tdc_is_event
(const enum sc_event_type_index type,
const void *event,
const unsigned event_len_bytes);



// -------------------------- api vmaj2 -----------------------------------------

SCTDCDLL_PUBLIC int sc_tdc_init_inifile(const char *ini_filename);

SCTDCDLL_PUBLIC int
sc_tdc_init_with_config_lines(const struct sc_ConfigLine *confline_array);

SCTDCDLL_PUBLIC int sc_tdc_deinit2(const int dev_desc);

SCTDCDLL_PUBLIC int
sc_tdc_get_format2(const int dev_desc, struct sc_tdc_format *format);

SCTDCDLL_PUBLIC int sc_tdc_set_complete_callback2
  (const int, void *owner, void (*cb)(void *, int));

SCTDCDLL_PUBLIC int sc_tdc_start_measure2(const int dev_desc, const int ms);

SCTDCDLL_PUBLIC int sc_tdc_interrupt2(const int dev_desc);

SCTDCDLL_PUBLIC int sc_tdc_get_binsize2(const int dev_desc, double *binsize_ns);

SCTDCDLL_PUBLIC int sc_tdc_get_status2(const int dev_desc, int *status);

SCTDCDLL_PUBLIC int sc_twi_write2
(const int,
const unsigned char address,
const unsigned char *data,
const size_t size,
const int stop);

SCTDCDLL_PUBLIC int sc_twi_read2
(const int,
const unsigned char address,
unsigned char *data,
const size_t size,
const int stop);

SCTDCDLL_PUBLIC int sc_twi_set_epot2
(const int, unsigned int epot, unsigned int value_number, unsigned char value);

SCTDCDLL_PUBLIC int sc_pipe_open2
(const int dev_desc, const enum sc_pipe_type_t type, const void *params);

SCTDCDLL_PUBLIC int sc_pipe_close2(const int dev_desc, const int pipe_id);

SCTDCDLL_PUBLIC int sc_pipe_read2
(const int dev_desc, const int pipe_id, void **buffer, unsigned int timeout);

SCTDCDLL_PUBLIC int
sc_tdc_set_flim_scanner2
(const int dd,
unsigned short pixel_interval,
unsigned short pixel_count,
unsigned short line_count,
unsigned int line_delay_interval,
unsigned int multiline_count,
double *corr_table);

SCTDCDLL_PUBLIC int
sc_tdc_set_flim_scanner2ex
(const int dd,
unsigned short pixel_interval,
unsigned short pixel_count,
unsigned short line_count,
unsigned int line_delay_interval,
unsigned int multiline_count,
double *corr_table,
unsigned int flags);

SCTDCDLL_PUBLIC int
sc_tdc_is_event2
(const enum sc_event_type_index type,
const void *event,
const unsigned event_len_bytes);

SCTDCDLL_PUBLIC int
sc_tdc_set_corrections2(const int dd, const int ch_count,
  const int *corrections, const unsigned char *ch_mask);

SCTDCDLL_PUBLIC int
sc_tdc_get_corrections2(const int dd, int *ch_count, int *corrections);


SCTDCDLL_PUBLIC int sc_tdc_set_common_shift2(const int, const int);
SCTDCDLL_PUBLIC int sc_tdc_set_modulo2(const int, const unsigned int);
SCTDCDLL_PUBLIC int sc_tdc_get_modulo2(const int, unsigned int *);
SCTDCDLL_PUBLIC int sc_tdc_pipe_open2
(const int dd, size_t internal_pipe_size,
const struct sc_PipeCbf *pipe_warning,
const struct sc_PipeCbf *pipe_alert);

SCTDCDLL_PUBLIC int sc_tdc_pipe_close2(const int dd);

SCTDCDLL_PUBLIC ssize_t sc_tdc_pipe_read2
(const int dd, void *buffer, size_t buffer_size_bytes, unsigned timeout);

SCTDCDLL_PUBLIC int sc_tdc_config_get_key
(const int dd, const char *key, char *buf, size_t buf_size, const char *def);

SCTDCDLL_PUBLIC void sc_tdc_config_get_library_version(unsigned [3]);

//v1.1405

SCTDCDLL_PUBLIC int sc_tdc_get_device_properties
(const int dd, int params_num, void *params);

// v1.3013.13
SCTDCDLL_PUBLIC int sc_tdc_get_device_properties2
(const int dd, int params_num, void *params);

//v1.1406.1
SCTDCDLL_PUBLIC int sc_dld_set_hardware_binning
(const int dd, const struct sc3du_t *binning);

//v1.15xx

SCTDCDLL_PUBLIC int sc_tdc_set_iteration_number2(const int dd, int itnum);

//v1.1711.1

SCTDCDLL_PUBLIC int sc_tdc_zero_master_reset_counter
(const int dd);

// v1.3002.0

SCTDCDLL_PUBLIC int sc_flim_get_counters(const int dd,
sc_flimTriggersCounters *);

// v1.3000.5

SCTDCDLL_PUBLIC int sc_tdc_get_intens_cal_f(const int dd,
float *buf, size_t bufsize, size_t *size_required, unsigned *width);

// v1.3000.9

SCTDCDLL_PUBLIC int sc_tdc_set_start_sim_params(
  const int dd,
  const unsigned start_count, const unsigned start_period,
  const unsigned start_delay, const unsigned train_count,
  const unsigned train_period, const unsigned start_mask);

SCTDCDLL_PUBLIC int sc_tdc_get_start_sim_params(
  const int dd,
  unsigned* start_count, unsigned* start_period,
  unsigned* start_delay, unsigned* train_count,
  unsigned* train_period, unsigned* start_mask);

// v1.3017.0
SCTDCDLL_PUBLIC int sc_tdc_overrides_create();

SCTDCDLL_PUBLIC int sc_tdc_overrides_close(int handle);

SCTDCDLL_PUBLIC int sc_tdc_overrides_add_entry(
  int handle,
  const char* section,
  const char* key,
  const char* value);

SCTDCDLL_PUBLIC int sc_tdc_init_inifile_override(
  const char *ini_filename,
  int overrides_handle);

SCTDCDLL_PUBLIC int sc_tdc_set_pulsegen_config(
  int dev_desc,
  int period,
  int length);

#ifdef __cplusplus
}
#endif // __cplusplus

#define ERRSTRLEN       256

// older code bases of end-user software: define SC_TDC_AUTOINCLUDE_CAM_H
// in the build tool
#ifdef SC_TDC_AUTOINCLUDE_CAM_H
#include "scTDC_cam.h"
#endif