18class ProjectDataPropertyPage;
19class CheckPositionsPropertyPage;
20class ScanMethodPositionPropertyPage;
57 bool IgnoreFixtureOffset{
false};
154 bool doMoveTo(
int scan,
int index = -1,
double frac = 0.0,
bool perp =
false);
434 virtual bool moveTo(
int scan,
int index,
double frac,
bool perp) = 0;
470 virtual bool rotate(
int scan,
int index) = 0;
508 void SetStatePrivate(EState state);
518 void HandleParamMappingApply(QWidget*);
521 bool _controllerAllocated;
525 bool _programmingVelocity;
529 std::string _namePrefix;
545 Vector3D _fixtureOffset;
547 int _activeScanIndex;
#define SF_DECL_IFACE(InterfaceType, ParamType, FuncName)
Declares a public static function in the class where it is used. Where: InterfaceType: Global typenam...
Definition TClassRegistration.h:71
Property page for editing check positions.
Definition CheckPositionsPropertyPage.h:19
Class to store application configuration. Uses the global application settings or a given ini-file.
Definition ConfigStore.h:17
Class for reading and writing ini-profiles.
Definition IniProfile.h:17
Create a local variable by calling the protected constructor.
Definition Variable.h:953
Definition ProjectDataPropertyPage.h:15
Keeps the project and all scan areas to inspect.
Definition ProjectData.h:25
Object for scripts to interact with the inspection project.
Definition ProjectScriptObject.h:14
Dialog containing multiple property pages.
Definition qt/PropertySheetDialog.h:15
Abstract base class for implementing scan binders.
Definition ScanBinder.h:30
int getActiveScanIndex() const
Gets the active scan index when the state is active or higher an -1 when not active.
ScanMethod * getScan(int scan) const
Gets the scan method of the project.
virtual void sustain(const timespec &ts)=0
Abstract method which is called regularly to do background processing.
const Vector3D & getFixtureOffset() const
Gets the fixture offset for the project applied on each scan.
bool doMoveTo(int scan, int index=-1, double frac=0.0, bool perp=false)
Moves the manipulator to a specific position of the scan area.
bool doActivate(int scan)
Activates possible added links and parameters in a derived instance.
EState
Enumeration of states of a scan binder.
Definition ScanBinder.h:215
@ sbsCHECKING
Binder is active and the controller is allocated.
Definition ScanBinder.h:236
@ sbsREADY
Waiting for activation by a command and the controller is freed.
Definition ScanBinder.h:228
@ sbsWAITING
Waiting to execute.
Definition ScanBinder.h:230
@ sbsACTIVE
Binder is active and the controller is allocated.
Definition ScanBinder.h:234
@ sbsSUSPENDED
Execution of the current task is suspended.
Definition ScanBinder.h:232
@ sbsABORTED
Binder movement was aborted abruptly.
Definition ScanBinder.h:223
@ sbsSCANNING
Binder is active and scanning.
Definition ScanBinder.h:238
virtual bool evaluate(int scan)=0
Abstract method which starts evaluation on the passed scan.
ProjectData * getProjectData()
Gets the project data pointer.
void createScanEntry(ScanEntry *se)
Called by the project to make the binder create the additional information.
void setAcqPopManual(RsaTypes::EPopManual pop_manual)
Sets the pop to manual state on the acquisition device.
~ScanBinder() override
Virtual overridden destructor.
void doClear()
Clears any settings of the scan binder to their initial state.
bool doPreInitialize()
Do some initialization which must be done before scan initializations.
virtual bool check(int scan)=0
Abstract method which checks the scan binder.
ConfigStore & getConfigStore()
Gets configuration store instance for reading and write the state of a derived class.
ScanBinder(const Parameters ¶meters)
Constructor for passing general structure for derived classes for the class factory.
bool canAllocateController() const
Gets true if the controller can be allocated.
void setProgVelocityEnable(bool enabled)
Enables or disables programming velocity.
virtual QWidget * GetFrame()=0
Abstract method which gets the scan binder control widget.
double getScanProgress() const
Gets the scan progress when scanning otherwise it returns -1.
InfoBase * getScanInfoBase(const ScanMethod *sm)
Gets the scan information of the passed scan method pointer.
const Variable & getMediumVelocity() const
Gets the medium sound velocity variable.
bool allocateController(bool alloc)
Allocates or frees the controller for this project.
const gmi::AxesCoord & getToolPosition() const
Gets the project park position.
InfoBase * getScanInfoBase(int scan)
Gets the scan base information of the passed project scan list index.
std::string_view getStateName() const
Gets the current state name.
bool isProgVelocityEnable() const
Checks is programming velocity is enabled.
virtual Vector3D getOffset() const
Gets the sum of offsets generated by a derived class if overridden.
void destroyScanEntry(const ScanEntry *se)
Called by the project to make the binder delete the additional information.
bool doStop()
Stops activity immediately.
virtual bool stop()=0
Abstract method which stops activity immediately.
int doGetIndex() const
Gets the current scanning index. This is mainly for displaying progress purposes.
virtual void doStoreConfig(IniEnvelope &ini, bool rd)
Abstract method which can be overridden to read and write additional configuration settings.
Definition ScanBinder.h:501
int getScanIndex()
Gets the current project active scan index.
virtual bool abort()=0
Abstract method which aborts and immediately stop all movement.
const gmi::Controller * getController() const
bool isAcqPopManualReady() const
Gets true if the pop manual process is completed.
virtual void readProfile(IniProfile &inifile)=0
Abstract method which reads the settings from the passed inifile.
Vector3D doGetOffset() const
Gets the sum of offsets generated by the derived scan binder. When not, this method returns the same ...
bool doStartScan(int scan)
Starts scan movements and a scan method for data recording.
virtual bool startScan(int scan)=0
Abstract method which starts scan movements and a scan method for acquisition.
virtual bool activate(int scan)=0
Abstract method which activates the parameters or links for the passed scan on the derived class.
void doAddPropertyPages(PropertySheetDialog *sheet, bool scan)
Adds property pages for derived classes by calling virtual method AddPropertyPages....
bool doRotate(int scan, int index=-1)
Starts rotating the scan axis if one is available for rotation. It uses the scan rotation speed at th...
bool doEvaluate(int scan)
Start in evaluation mode and a scan method in evaluation mode. This means the angle on the surface is...
const InfoBase * getScanInfoBase(int scan) const
Gets the const scan base information of the passed project scan list index.
const gmi::AxesCoord & getParkPosition() const
Gets the project park position.
bool setState(EState state)
Sets the state of the binder.
gmi::Controller * getController()
Gets the allocated controller for this project if not allocated it throws an exception and should be ...
virtual InfoBase * createScanInfo()=0
Must be overridden in a derived class.
bool doMoveToQuery(int scan)
Queries for a surface position of the user.
virtual bool moveTo(int scan, int index, double frac, bool perp)=0
Abstract method which moves the controller to the location on the surface of a scan area.
const gmi::AxesCoord & getAcceleration() const
Gets the acceleration used to manipulate.
virtual bool resume()=0
Abstract method which resumes a suspended action.
void doWriteProfile(IniProfile &inifile)
Writes the settings to the passed inifile.
bool doInitialize()
Initializes the scan method. Is each time a project changes.
QWidget * doGetFrame()
Creates a scan binder frame if possible.
bool getSetValue(const IdInfo *info, Value *value, Value::vector_type *params, bool flag_set) override
Overridden from base class.
virtual void addPropertyPages(PropertySheetDialog *sheet, bool scan)=0
Abstract method which adds property pages to the passed sheet. See DoAddPropertyPages.
virtual bool rotate(int scan, int index)=0
Abstract method which starts rotation on the passed scan and index position for velocity calculations...
const IdInfo * getInfo(const std::string &name) const override
Overridden from base class.
virtual bool getGenericInfoList(StringList &)=0
Abstract method which retrieves the list of linked variables or results. The name contains the descri...
bool doMoveToSysPos(ESystemPosition sp)
Moves to one of the system positions.
bool canRotate(int scan) const
Checks if the passed scan-index is able to rotate regardless the current state.
bool isRotating() const
Checks if the rotating is active.
void doSustain(const timespec &ts)
Called from the project and rooted to the virtual Sustain function.
EState getState() const
Gets the state of the instance.
const gmi::AxesCoord & getVelocity() const
Gets the velocity used to manipulate.
virtual void clear()=0
Abstract method which clears the settings of the derived instance initial state.
virtual void addPropertyPages(PropertySheetDialog *sheet)
Adds the scan binder property pages of the base class. May be overridden by derived class.
bool doAbort()
Abort immediately stop all movement.
virtual bool suspend(bool immediate)=0
Abstract method which suspends action.
bool doCheck(int scan)
Starts position checking mode and a scan method in checking mode. This means the angle on the surface...
virtual void stateChange(EState prev, EState cur)=0
Abstract method which is called when the current state changes.
const InfoBase * getScanInfoBase(const ScanMethod *sm) const
Gets the const scan information of the passed scan method pointer.
bool doSuspend(bool immediate)
Suspends action at a convenient position or immediate.
virtual void writeProfile(IniProfile &inifile)=0
Abstract method which writes the settings to the passed inifile.
bool isControllerAllocated() const
Gets true is the controller is allocated.
void storeConfig(bool rd)
Reads and writes system configuration data.
bool getScanPos(gmi::AxesCoord &pos, int scan, int index, double frac, bool perp) const
Gets the scan position at the passed scan index.
const Variable::PtrVector & getVars() const
Gets the local variables of the scan binder.
virtual bool initialize()=0
Abstract method which initializes the instance for action.
static std::string_view getStateName(EState state)
Gets the state name string.
virtual int getIndex()=0
Abstract method which gets the current scanned index.
bool doResume()
Resumes a suspended action.
void doReadProfile(IniProfile &inifile)
Reads the settings from the passed inifile.
Definition ScanEntry.h:12
Definition ScanMethodPositionPropertyPage.h:15
Definition ScanMethod.h:22
Template for linking pointers of member function to Variable instances.
Definition VariableHandler.h:38
Value container class able to performing arithmetic functions.
Definition Value.h:19
EEvent
Events send to the handler set with sf::Variable::setHandler.
Definition VariableTypes.h:130
Class for creating and referencing global or local created parameters or settings called variables....
Definition Variable.h:16
All axis values in one structure accompanied by some handy manipulation methods.
Definition AxesCoord.h:13
Pure virtual class for implementation of motion controllers.
Definition Controller.h:13
#define _IPJ_CLASS
Definition ipj/iface/global.h:35
Definition Application.h:10
constexpr std::string_view DEFAULT_SCAN_BINDER_NAME("<default>")
ESystemPosition
Fixed system dependent axis positions.
Definition ipj/iface/Namespace.h:239
constexpr std::string_view SEC_BINDER_GENERAL("Scan Binder")
constexpr std::string_view KEY_IGNORE_OFFSET("Ignore Project Offset")
EPopManual
Enumerate for the pop manual function.
Definition RsaTypes.h:507
Structure used a base class for derived binder classes to store scan dependant information.
Definition ScanBinder.h:36
virtual void ReadWrite(IniProfile *ini, bool rd)
Read or writes the scan scan-binder information to profile. Derived classes need to inherit this memb...
InfoBase()=default
Default constructor.
virtual ~InfoBase()=default
Virtual constructor so the memory management can be done in the scan binders base class.
Mandatory structure for initialization of derive class.
Definition ScanBinder.h:64
ProjectData * _project_data
Definition ScanBinder.h:65
Used to create static lookup lists.
Definition ScriptObject.h:62