Example #1
0
BOOL	CGretagScan::GetDensity(CCommRequest *pRequest, double *data)
{
	int	code[5];
	int i;
	double temp;
	BOOL	status = FALSE;

	if(!sscanf_n_i(pRequest->m_lpszResult, 1, 1, code))
	{
		ErrorMessage(ERR_MEASUREMENT_DATA);
		goto bail;
	}
	if(code[0] != 189)
	{
		ErrorMessage(ERR_MEASUREMENT_DATA);
		goto bail;
	}

	//convert to data
	sscanf_n(pRequest->m_lpszResult ,3 ,4, data);

	//resequence
	temp = data[0];
	for(i = 0; i < 3; i++)
		data[i] = data[i+1];
	data[3] = temp;
	status = TRUE;

bail:
	return status;
}
Example #2
0
BOOL	CGretagScan::GetLab(CCommRequest *pRequest, double *data)
{
	int	code[5];

	if(!sscanf_n_i(pRequest->m_lpszResult, 1, 1, code))
	{
		ErrorMessage(ERR_MEASUREMENT_DATA);
		return FALSE;
	}
	if(code[0] != 187)
	{
		ErrorMessage(ERR_MEASUREMENT_DATA);
		return FALSE;
	}

	//convert to data
	sscanf_n(pRequest->m_lpszResult ,4 ,3, data);

	return TRUE;
}
Example #3
0
McoStatus SpectroChart::getNextPatch(long patchnum,double *lab)
{
char j1[255],j2[255],j3[255];
char st[5000];
char *p;
int32	tc;
double xyz[3];
int32 X,Y,Z;
McoStatus status = MCO_SUCCESS;
int	code;
double t;
int 	i;

if (sp == 0L) return MCO_SERIAL_ERROR;

// do a calibration if 100 patches have been read so far
if (patchCount >= 100) status = Calibrate();
if (status != MCO_SUCCESS) return status;

// move to the patch
status = moveToPatch(patchnum,0);
if (status != MCO_SUCCESS) return status;

// send read command
status = sendReadCommand(st);
if (status != MCO_SUCCESS) return status;



if (mode == ReadLabMode)
	{
	// now read the data in
	sp->sendData("; 186 9 1\r\n",11);
	sp->getNextLine(st,5000,thermd);

	// check for an error
	sscanf_n_i(st,1,1,&code);
	if (code != 187) return MCO_FAILURE;
	
	// read in the data
	sscanf_n(st,2,3,lab);

	// check for an error again
	sscanf_n_i(st,6,1,&code);
	if (code != 0) return MCO_FAILURE;

	// now apply the tweak if it exist
	if (tweak != NULL) tweak->eval(lab,lab,1);
	}
else if (mode == ReadDensityMode)
	{
	// now read the data in
	sp->sendData("; 188 9\r\n",9);
	sp->getNextLine(st,5000,thermd);

	// check for an error
	sscanf_n_i(st,1,1,&code);
	if (code != 189) return MCO_FAILURE;
		
	// read in the black
	sscanf_n(st,1,4,lab);
	
	// check for an error again
	sscanf_n_i(st,6,1,&code);
	if (code != 0) return MCO_FAILURE;
	
	t = lab[0];
	lab[0] = lab[1];
	lab[1] = lab[2];
	lab[2] = lab[3];
	lab[3] = t;
	
	if (lab != paperDensity) for (i=0; i<4; i++)
		{
		lab[i] -= paperDensity[i];
		if (lab[i] < 0) lab[i] = 0;
		}

	
	}

patchCount++;



return MCO_SUCCESS;
}