00001 // V1290 - 32-channel TDC 00002 // ====== 00003 // include file 00004 // with (almost) all functionalities definitions 00005 // 00006 // S.Linev November 2011 - adjust for COSY with many TDCs 00007 // S.Linev August 2011 - remove FRS staff, separate h and c files 00008 // P.-A. Loizeau (PI, Uni-HD) August 2009 00009 // Based on "v1290.h" by D. Gil (Jagiellonian University) February 2005) 00010 // (Based on "v792.h" by M. Hellstrom 29-OCT-2003) 00011 // (original version F. Attallah, GSI Aug-2000) 00012 // 00013 // 00014 // 00015 //----------------------------------------------------------- 00016 00017 #ifndef MTDC1290LIB_H 00018 #define MTDC1290LIB_H 00019 00020 // --------- Pointers --------- 00021 // pl -> long pointer 00022 // pi -> short (integer) 00023 // pc -> character 00024 // ps -> structure 00025 //----------------------------- 00026 00027 typedef struct 00028 { 00029 char name[20] ; 00030 long volatile *pl_output_buffer; 00031 00032 short volatile *pi_geo_addr ; 00033 00034 short volatile *pi_status_reg ; 00035 short volatile *pi_software_clear ; 00036 short volatile *pi_module_reset ; 00037 short volatile *pi_micro_hand ; 00038 short volatile *pi_micro_reg ; 00039 short volatile *pi_control_reg ; 00040 00041 long volatile *pl_event_counter ; 00042 00043 short volatile *pi_firmware_revision ; 00044 short volatile *pi_manufacturer_id1 ; 00045 short volatile *pi_manufacturer_id2 ; 00046 short volatile *pi_manufacturer_id3 ; 00047 short volatile *pi_module_version ; 00048 short volatile *pi_module_type_1 ; 00049 short volatile *pi_module_type_2 ; 00050 short volatile *pi_module_type_3 ; 00051 short volatile *pi_hardware_revision_1 ; 00052 short volatile *pi_hardware_revision_2 ; 00053 short volatile *pi_hardware_revision_3 ; 00054 short volatile *pi_hardware_revision_4 ; 00055 short volatile *pi_serial_number_1 ; 00056 short volatile *pi_serial_number_2 ; 00057 } s_v1290; 00058 00059 00060 // **************** Functions & routines ************************ 00061 00062 int V1290_GetPointers (long ph_v1290_seg, s_v1290 *ps_v1290, char* name); 00063 00064 short V1290_GetModuleInfo (s_v1290 *ps_v1290); 00065 00066 void V1290_GetModuleStatus (s_v1290 *ps_v1290); 00067 00068 int V1290_GetStatusPointer (long *pl_dat, s_v1290 *ps_v1290); 00069 00070 int V1290_GetOutputPointer (long *pl_dat, s_v1290 *ps_v1290); 00071 00072 void V1290_SoftReset (s_v1290 *ps_v1290); 00073 00074 void V1290_ClearData (s_v1290 *ps_v1290); 00075 00076 void V1290_SetControl (s_v1290 *ps_v1290, short control_Pattern); 00077 00078 //--------------------------Start control On/Off functions ------------------------// 00079 void V1290_BusErr_On (s_v1290 *ps_v1290); 00080 00081 void V1290_BusErr_Off (s_v1290 *ps_v1290); 00082 00083 void V1290_Term_On (s_v1290 *ps_v1290); 00084 00085 void V1290_Term_Off (s_v1290 *ps_v1290); 00086 00087 void V1290_TermSw_On (s_v1290 *ps_v1290); 00088 00089 void V1290_TermSw_Off (s_v1290 *ps_v1290); 00090 00091 void V1290_EmptyEvt_On (s_v1290 *ps_v1290); 00092 00093 void V1290_EmptyEvt_Off (s_v1290 *ps_v1290); 00094 00095 void V1290_Align64_On (s_v1290 *ps_v1290); 00096 00097 void V1290_Align64_Off (s_v1290 *ps_v1290); 00098 00099 void V1290_Compensation_On (s_v1290 *ps_v1290); 00100 00101 void V1290_Compensation_Off (s_v1290 *ps_v1290); 00102 00103 void V1290_TestFIFO_On (s_v1290 *ps_v1290); 00104 00105 void V1290_TestFIFO_Off (s_v1290 *ps_v1290); 00106 00107 void V1290_ReadCompSRAM_On (s_v1290 *ps_v1290); 00108 00109 void V1290_ReadCompSRAM_Off (s_v1290 *ps_v1290); 00110 00111 void V1290_EventFIFO_On (s_v1290 *ps_v1290); 00112 00113 void V1290_EventFIFO_Off (s_v1290 *ps_v1290); 00114 00115 void V1290_ExtdTriggTimeTag_On (s_v1290 *ps_v1290); 00116 00117 void V1290_ExtdTriggTimeTag_Off (s_v1290 *ps_v1290); 00118 00119 int V1290_CheckBufferStatus (s_v1290 *ps_v1290); 00120 00121 int V1290_CheckDreadyStatus (s_v1290 *ps_v1290); 00122 00123 void V1290_StandardSetup (s_v1290 *ps_v1290); 00124 00125 #endif