Пример #1
0
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;
    }
}
Пример #2
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 */
   }
Пример #3
0
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;
   }