00001
00002
00010
00011 #ifndef __CVT_V812_DEF_H
00012 #define __CVT_V812_DEF_H
00013
00015
00017 #include "cvt_common_defs.h"
00018 #include "cvt_board_commons.h"
00020
00022
00024
00030
00031 typedef struct
00032 {
00033 cvt_board_data m_common_data;
00034
00035
00036
00037 } cvt_V812_data;
00038
00040
00042 #define CVT_V812_THRESHOLD_0_ADD 0x0000
00043 #define CVT_V812_THRESHOLD_1_ADD 0x0002
00044 #define CVT_V812_THRESHOLD_2_ADD 0x0004
00045 #define CVT_V812_THRESHOLD_3_ADD 0x0006
00046 #define CVT_V812_THRESHOLD_4_ADD 0x0008
00047 #define CVT_V812_THRESHOLD_5_ADD 0x000A
00048 #define CVT_V812_THRESHOLD_6_ADD 0x000C
00049 #define CVT_V812_THRESHOLD_7_ADD 0x000E
00050 #define CVT_V812_THRESHOLD_8_ADD 0x0010
00051 #define CVT_V812_THRESHOLD_9_ADD 0x0012
00052 #define CVT_V812_THRESHOLD_10_ADD 0x0014
00053 #define CVT_V812_THRESHOLD_11_ADD 0x0016
00054 #define CVT_V812_THRESHOLD_12_ADD 0x0018
00055 #define CVT_V812_THRESHOLD_13_ADD 0x001A
00056 #define CVT_V812_THRESHOLD_14_ADD 0x001C
00057 #define CVT_V812_THRESHOLD_15_ADD 0x001E
00058 #define CVT_V812_OUT_WIDTH_0_7_ADD 0x0040
00059 #define CVT_V812_OUT_WIDTH_8_15_ADD 0x0042
00060 #define CVT_V812_DEAD_TIME_0_7_ADD 0x0044
00061 #define CVT_V812_DEAD_TIME_8_15_ADD 0x0046
00062 #define CVT_V812_MAJORITY_ADD 0x0048
00063 #define CVT_V812_PATTERN_INHIBIT_ADD 0x004A
00064 #define CVT_V812_TEST_PULSE_ADD 0x004C
00065 #define CVT_V812_FIXED_CODE_ADD 0x00FA
00066 #define CVT_V812_MANUFACTURER_ADD 0x00FC
00067 #define CVT_V812_VERSION_ADD 0x00FD
00069 #define CVT_V812_THRESHOLD_ADD_STEP 2
00071
00072 // Registers data size
00073
00074 #define CVT_V812_THRESHOLD_DATA_SIZE cvD16
00075 #define CVT_V812_OUT_WIDTH_0_7_DATA_SIZE cvD16
00076 #define CVT_V812_OUT_WIDTH_8_15_DATA_SIZE cvD16
00077 #define CVT_V812_DEAD_TIME_0_7_DATA_SIZE cvD16
00078 #define CVT_V812_DEAD_TIME_8_15_DATA_SIZE cvD16
00079 #define CVT_V812_MAJORITY_DATA_SIZE cvD16
00080 #define CVT_V812_PATTERN_INHIBIT_DATA_SIZE cvD16
00081 #define CVT_V812_TEST_PULSE_DATA_SIZE cvD16
00082 #define CVT_V812_FIXED_CODE_DATA_SIZE cvD16
00083 #define CVT_V812_MANUFACTURER_DATA_SIZE cvD16
00084 #define CVT_V812_VERSION_DATA_SIZE cvD16
00086
00087 // Registers address modifiers
00088
00089 #define CVT_V812_THRESHOLD_AM cvA32_S_DATA
00090 #define CVT_V812_OUT_WIDTH_0_7_AM cvA32_S_DATA
00091 #define CVT_V812_OUT_WIDTH_8_15_AM cvA32_S_DATA
00092 #define CVT_V812_DEAD_TIME_0_7_AM cvA32_S_DATA
00093 #define CVT_V812_DEAD_TIME_8_15_AM cvA32_S_DATA
00094 #define CVT_V812_MAJORITY_AM cvA32_S_DATA
00095 #define CVT_V812_PATTERN_INHIBIT_AM cvA32_S_DATA
00096 #define CVT_V812_TEST_PULSE_AM cvA32_S_DATA
00097 #define CVT_V812_FIXED_CODE_AM cvA32_S_DATA
00098 #define CVT_V812_MANUFACTURER_AM cvA32_S_DATA
00099 #define CVT_V812_VERSION_AM cvA32_S_DATA
00101
00102
00107
00108 typedef enum
00109 {
00110 CVT_V812_THRESHOLD_0_INDEX,
00111 CVT_V812_THRESHOLD_1_INDEX,
00112 CVT_V812_THRESHOLD_2_INDEX,
00113 CVT_V812_THRESHOLD_3_INDEX,
00114 CVT_V812_THRESHOLD_4_INDEX,
00115 CVT_V812_THRESHOLD_5_INDEX,
00116 CVT_V812_THRESHOLD_6_INDEX,
00117 CVT_V812_THRESHOLD_7_INDEX,
00118 CVT_V812_THRESHOLD_8_INDEX,
00119 CVT_V812_THRESHOLD_9_INDEX,
00120 CVT_V812_THRESHOLD_10_INDEX,
00121 CVT_V812_THRESHOLD_11_INDEX,
00122 CVT_V812_THRESHOLD_12_INDEX,
00123 CVT_V812_THRESHOLD_13_INDEX,
00124 CVT_V812_THRESHOLD_14_INDEX,
00125 CVT_V812_THRESHOLD_15_INDEX,
00126 CVT_V812_OUT_WIDTH_0_7_INDEX,
00127 CVT_V812_OUT_WIDTH_8_15_INDEX,
00128 CVT_V812_DEAD_TIME_0_7_INDEX,
00129 CVT_V812_DEAD_TIME_8_15_INDEX,
00130 CVT_V812_MAJORITY_INDEX,
00131 CVT_V812_PATTERN_INHIBIT_INDEX,
00132 CVT_V812_TEST_PULSE_INDEX,
00133 CVT_V812_FIXED_CODE_INDEX,
00134 CVT_V812_MANUFACTURER_INDEX,
00135 CVT_V812_VERSION_INDEX,
00136 } CVT_V812_REG_INDEX;
00137
00138
00139 #define CVT_V812_FIXED_CODE_VALUE 0xFAF5
00140 #define CVT_V812_MANUFACTURER_NUMBER_VALUE 0x02
00141 #define CVT_V812_MODULE_TYPE_VALUE 0x0051
00143
00144
00147
00148 typedef enum
00149 {
00150 CVT_V812_THRESHOLD_ALL= -1,
00151 CVT_V812_THRESHOLD_0= 0,
00152 CVT_V812_THRESHOLD_1,
00153 CVT_V812_THRESHOLD_2,
00154 CVT_V812_THRESHOLD_3,
00155 CVT_V812_THRESHOLD_4,
00156 CVT_V812_THRESHOLD_5,
00157 CVT_V812_THRESHOLD_6,
00158 CVT_V812_THRESHOLD_7,
00159 CVT_V812_THRESHOLD_8,
00160 CVT_V812_THRESHOLD_9,
00161 CVT_V812_THRESHOLD_10,
00162 CVT_V812_THRESHOLD_11,
00163 CVT_V812_THRESHOLD_12,
00164 CVT_V812_THRESHOLD_13,
00165 CVT_V812_THRESHOLD_14,
00166 CVT_V812_THRESHOLD_15,
00167 CVT_V812_MAX_THRESHOLD
00168 } cvt_V812_threshold_id ;
00169
00170 #define CVT_V812_THRESHOLD_ADD_STEP 2
00172
00173 // Global variables declaration
00174
00175
00177
00179
00181
00182
00183
00185
00186
00188
00198
00199 BOOL cvt_V812_open( cvt_V812_data* p_data, UINT16 base_address, long vme_handle);
00200
00202
00210
00211 BOOL cvt_V812_close( cvt_V812_data* p_data);
00212
00214
00215
00216
00218
00219
00221
00222
00223
00225
00227
00238
00239 BOOL cvt_V812_set_threshold( cvt_V812_data* p_data, cvt_V812_threshold_id threshold_id, UINT16 value);
00240
00242
00250
00251 BOOL cvt_V812_set_output_width( cvt_V812_data* p_data, UINT8 value);
00252
00254
00262
00263 BOOL cvt_V812_set_dead_time( cvt_V812_data* p_data, UINT8 value);
00264
00266
00274
00275 BOOL cvt_V812_set_majority_threshold( cvt_V812_data* p_data, UINT8 value);
00276
00278
00286
00287 BOOL cvt_V812_set_pattern_inhibit( cvt_V812_data* p_data, UINT16 value);
00288
00290
00297
00298 BOOL cvt_V812_set_test_pulse( cvt_V812_data* p_data);
00299
00301
00310
00311 BOOL cvt_V812_get_fixed_code( cvt_V812_data* p_data, UINT16 *p_value);
00312
00314
00323
00324 BOOL cvt_V812_get_manufacturer_number( cvt_V812_data* p_data, UINT8 *p_value);
00325
00327
00336
00337 BOOL cvt_V812_get_module_type( cvt_V812_data* p_data, UINT16 *p_value);
00338
00340
00348
00349 BOOL cvt_V812_get_version( cvt_V812_data* p_data, UINT8 *p_value);
00350
00352
00361
00362 BOOL cvt_V812_get_serial_number( cvt_V812_data* p_data, UINT16 *p_value);
00363
00365
00366
00367
00369
00370 #endif