Example #1
0
int CPI_E761_ZStage::OnTravelHighEnd(MM::PropertyBase* pProp,
		MM::ActionType eAct) {
	MMThreadGuard guard(g_PI_ThreadLock);

	if (eAct == MM::BeforeGet) {
		double val;
		BOOL ret = E7XX_qTMX(g_DeviceId, axisName_, &val);
		if (!ret)
			return processErr();
		pProp->Set(val);
	}
	return DEVICE_OK;
}
Example #2
0
int CPI_E761_XYStage::OnTravelRange(MM::PropertyBase* pProp,
		MM::ActionType eAct) {
	if (eAct == MM::BeforeGet) {
		MMThreadGuard guard(g_PI_ThreadLock);

		double lowArray[2];
		double highArray[2];

		BOOL ret = E7XX_qTMN(g_DeviceId, axisName_, lowArray);
		if (!ret)
			return processErr();
		ret = E7XX_qTMX(g_DeviceId, axisName_, highArray);
		if (!ret)
			return processErr();

		char str[1024];
		snprintf(str, 1024, "Travel range: axis 1: %g~%gum / axis 2: %g~%gum",
				lowArray[0], highArray[0], lowArray[1], highArray[1]);
		pProp->Set(str);
	}

	return DEVICE_OK;
}
Example #3
0
void mexFunction(int nlhs, mxArray *plhs[],
                 int nrhs, const mxArray *prhs[])
{
	// usage
	if (nrhs != 1)
    {
		mexPrintf("\nUsage: nmssPSYAxisHighEnd(<controller_handle>), where <controller_handle> must be a valid controller handle.");
        return;
    }
	
	int iControllerHandle = mxGetScalar(prhs[0]);

	try
	{
		// switch on servo
		int bServoState[1];
		bServoState[0] = true;
		if(!E7XX_SVO(iControllerHandle, "2", bServoState)) throw true;

		// high limit of the moving range
		double dRet[1];
		if (!E7XX_qTMX (iControllerHandle, "2", dRet)) throw true;
		
		double* pdRet;
		plhs[0] = mxCreateString(sOK);
		plhs[1] = mxCreateDoubleMatrix(1, 1, mxREAL);
		pdRet = mxGetPr(plhs[1]);
		*pdRet = dRet[0];
	}
	catch(bool bError) 
	{
		// something went wrong, oh my god!
		nmssPSError(iControllerHandle, nlhs, plhs);
	}

	return;
}