int TMrfTal_RBUDP::readOutputBuffer(TMrfData& data, const u_int32_t& wordcount, const u_int32_t& appendat, const bool& truncate) const { if (deviceIsOpen()) { int words_read; if (data.getNumWords() < appendat + wordcount + 1) { data.setNumWords(appendat + wordcount + 1); } if (initReadout() < 0) { if (truncate) { data.clearDataStream(); } rb_errcode |= rb_error::read_failed; return 0; } else if ((words_read = doReadout(wordcount, reinterpret_cast<u_int8_t*>(&data.regdata[appendat]))) < 0) { if (truncate) { data.clearDataStream(); } rb_errcode |= rb_error::read_failed; return 0; } else { if (truncate) { data.setNumWords(appendat + words_read + 1); } //rb_errcode = 0; return words_read; } } else { rb_errcode |= rb_error::device_not_open; return 0; } }
void init_readout(READOUT_GRADIENT_T *grad, char name[], double lro, double np, double sw) { if ((ix > 1) && !sglarray) return; initReadout(grad); /* initialize with default values */ grad->numPointsFreq = np/2.0; /* assign number of points in frequncy direction */ grad->acqTime = np/(2*sw); /* set acquisition time */ grad->maxGrad = gmax; /* assign maximum allowed gradient */ grad->fov = lro*10; /* set field of view [cm] */ strcpy(grad->name,name); /* assign waveform name */ }
void init_readout_butterfly(READOUT_GRADIENT_T *grad, char name[], double lro, double np, double sw, double gcrush, double tcrush) { if ((ix > 1) && !sglarray) return; initReadout(grad); /* initialize with default values */ grad->numPointsFreq = np/2.0; /* assign number of points in frequncy direction */ grad->acqTime = np/2/sw; /* set acquisition time */ grad->maxGrad = gmax; /* assign maximum allowed gradient */ grad->fov = lro*10; /* set field of view [cm] */ strcpy(grad->name,name); /* assign waveform name */ grad->enableButterfly = TRUE; /* enable butterfly gradients */ grad->cr1amp = grad->cr2amp = gcrush; /* assign crusher amplitude */ grad->crusher1Duration = grad->crusher2Duration = tcrush; /* assign crusher duration */ grad->crusher1CalcFlag = grad->crusher2CalcFlag = MOMENT_FROM_DURATION_AMPLITUDE; }