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