Changeset 80 for hvcontrol/src/HV.cc
- Timestamp:
- 07/01/09 20:47:49 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
hvcontrol/src/HV.cc
r35 r80 26 26 27 27 28 HV::HV(char** usbdevice, int* usbdevicenumber, FILE* f): fNumberOfBoards(0) { 29 28 HV::HV(char** usbdevice, int* usbdevicenumber, FILE* f,bool TestMode): fNumberOfBoards(0) { 29 30 fTestMode = TestMode; 31 30 32 int i = 0, j = 0, ret = 0; 31 33 … … 50 52 i = 0; 51 53 54 if(fTestMode){ 55 fprintf(stdout,"Test mode: One HVBoard initialized as dummy.\n"); 56 fHVBoard[fNumberOfBoards] = new HVBoard("dummy", 0, &ftdic[fNumberOfBoards],fTestMode); 57 fNumberOfBoards++; 58 return; 59 } 52 60 // Obtain information on FTDI devices 53 61 for (curdev = devlist; (curdev != NULL && i<MAX_NUM_HVBOARDS); i++) { … … 88 96 ftdi_set_latency_timer(&ftdic[fNumberOfBoards], USB_LATENCY_TIMER); 89 97 90 fHVBoard[fNumberOfBoards] = new HVBoard(serial, usbdevicenumber[j], &ftdic[fNumberOfBoards] );98 fHVBoard[fNumberOfBoards] = new HVBoard(serial, usbdevicenumber[j], &ftdic[fNumberOfBoards],fTestMode); 91 99 fNumberOfBoards++; 92 100 /* … … 113 121 114 122 115 / * Bubble-sort HV boards according to board number */123 // Bubble-sort HV boards according to board number 116 124 void HV::ArrangeHVBoards(HVBoard** fHVBoard, int size) { 125 126 if(fTestMode){ 127 return; 128 } 117 129 118 130 HVBoard* tmp; … … 130 142 131 143 HV::~HV() { 144 145 if(fTestMode){ 146 fprintf(stdout,"Test mode: No FTDI device has to be closed.\n"); 147 return; 148 } 132 149 133 150 int i, ret = 0; … … 157 174 158 175 159 HVBoard::HVBoard(char* serial, int number, struct ftdi_context* ftdic ) : fTimeOut(.5)176 HVBoard::HVBoard(char* serial, int number, struct ftdi_context* ftdic,bool TestMode) : fTimeOut(.5) 160 177 { 161 178 179 fTestMode = TestMode; 180 fTestModeWrap = 0; 162 181 FTDI_C = ftdic; 163 182 sprintf(Serial,"%s",serial); … … 209 228 210 229 int HVBoard::Write(unsigned char* data, int size) { 230 if (fTestMode) 231 return 3; // implying that 3 bytes are written 232 211 233 #ifdef DO_CAST 212 234 return ftdi_write_data(FTDI_C, (char*)data, size); … … 217 239 218 240 int HVBoard::Read(unsigned char* data, int size) { 241 if (fTestMode) { 242 data[0] = fTestModeWrap; 243 // fprintf(stdout," Read Data 0X%.2X\n",data[0]); 244 fTestModeWrap++; 245 fTestModeWrap = fTestModeWrap%8; 246 return 1; // one byte read 247 } 219 248 #ifdef DO_CAST 220 249 return ftdi_read_data(FTDI_C, (char*)data, size); … … 233 262 */ 234 263 int HVBoard::TRead(FILE* fptr, unsigned char* rbuf, bool verbose) { 235 264 265 if (fTestMode) { 266 Read(rbuf,BUFFER_LENGTH); 267 return 1; // rbuf read 268 } 269 236 270 char str[STR_LENGTH]; 237 271 … … 278 312 int HVBoard::Reset(FILE* fptr, unsigned char* rbuf, bool verbose) { 279 313 314 if (fTestMode) 315 return 1; 316 280 317 char str[STR_LENGTH]; 281 318 … … 303 340 /* Read status register - uses TRead() and has same return values */ 304 341 int HVBoard::GetStatus(FILE* fptr, unsigned char* rbuf, bool verbose) { 342 if (fTestMode){ 343 // printf("Test mode. (Get Status) \n"); 344 return TRead(fptr,rbuf,verbose); 345 return 1; 346 } 305 347 306 348 char str[STR_LENGTH]; … … 330 372 /* Set high voltage - uses TRead() and has same return values */ 331 373 int HVBoard::SetHV(FILE* fptr, int chain, unsigned int channel, unsigned int hv, unsigned char* rbuf, bool verbose) { 374 375 if (fTestMode){ 376 printf("Test mode: Nothing to be done. \n"); 377 return 1; 378 } 379 332 380 333 381 char str[STR_LENGTH]; … … 380 428 /* Set reference voltage - uses TRead() and has same return values */ 381 429 int HVBoard::SetVRef(FILE* fptr, int chain, unsigned int vref, unsigned char* rbuf, bool verbose) { 382 430 431 if (fTestMode){ 432 printf("Test mode. Nothing to be done.\n"); 433 return 1; 434 } 435 383 436 char str[STR_LENGTH]; 384 437 … … 463 516 */ 464 517 int HVBoard::Init(bool verbose) { 518 465 519 466 520 unsigned char wbuf = REG_STATUS;
Note:
See TracChangeset
for help on using the changeset viewer.