EasyManuals Logo

Balluff MATRIX VISION mvBlueFOX Series User Manual

Balluff MATRIX VISION mvBlueFOX Series
238 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #162 background imageLoading...
Page #162 background image
154
1.18.6.2.3.2 Example 2: Motor does move (return = true)
Status:
Hex: 380086
Dec: 3670150
Binary: 0011 1000 0000 0000 1000 0110
23-20 19-16 15-12 11-08 07-04 03-00 => bit 2 is 1
(status & motorRunning) = 4 => return true
1.18.6.2.3.3 Example 3: Something a little more complex This shows a more complex piece of code of how
the motor focus can be used.
#ifdef _MSC_VER
# include <windows.h>
#else
# include <time.h>
#endif
#include <apps/Common/exampleHelper.h>
#include <iostream>
#include <iomanip>
#include <mvIMPACT_CPP/mvIMPACT_acquire.h>
#include <typeinfo>
using namespace std;
// This whole sample shows the low level access to the focus motor. For some
// of the functions presented here, there are also convenience functions in
// ’mvIMPACT::acquire::MotorFocusControl’
//-----------------------------------------------------------------------------
static void millisleep( long millisec )
//-----------------------------------------------------------------------------
{
#ifdef _MSC_VER
Sleep( millisec );
#else
timespec requested;
requested.tv_sec = millisec / 1000;
requested.tv_nsec = ( millisec % 1000 )
*
1000000L;
nanosleep( &requested, NULL );
#endif
}
//-----------------------------------------------------------------------------
class MotorControl
//-----------------------------------------------------------------------------
{
private:
const MotorFocusControl mfc;
const string version;
// private, so as to hide the command strings from the outside world
TDMR_ERROR write( const string& command ) const
{
mfc.motorFocusSendBuffer.writeS( command );
const TDMR_ERROR retval = static_cast<TDMR_ERROR>( mfc.motorFocusSend.call() );
#if _DEBUG
if( retval != DMR_NO_ERROR )
{
cerr « "Call to command ’" « command « "’ failed with error ’" « DMR_ErrorCodeToString( retval )
« "’" « endl;
}
#endif
return retval;
}
void waitForCommandReceipt( const string& expectedReply ) const
{
const size_t length = expectedReply.length();
string reply;
while( ( ( reply = getReply() ).length() < length ) ||
( reply.length() == length && reply != expectedReply ) ||
( reply.length() > length && reply.substr( 0, length ) != expectedReply ) )
{
cout « "Waiting for confirmation of command " « expectedReply.substr( 1, length - 1 ) « " (" «
reply « ")" « endl;
}
}
TDMR_ERROR writeConfirmed( const string& command ) const
{
const TDMR_ERROR retval = write( command );
if( retval == DMR_NO_ERROR )
{
waitForCommandReceipt( command.substr( 0, 3 ) );
}
return retval;
}
MATRIX VISION GmbH

Table of Contents

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Balluff MATRIX VISION mvBlueFOX Series and is the answer not in the manual?

Balluff MATRIX VISION mvBlueFOX Series Specifications

General IconGeneral
BrandBalluff
ModelMATRIX VISION mvBlueFOX Series
CategoryDigital Camera
LanguageEnglish

Related product manuals