17 #include "primarydriverwiththread.h"
18 #include "xnodeconnector.h"
22 class Ui_FrmMotorDriver;
28 Transaction &tr_meas,
const shared_ptr<XMeasure> &meas);
44 const shared_ptr<XScalarEntry> &
position()
const {
return m_position;}
46 const shared_ptr<XDoubleNode> &
target()
const {
return m_target;}
47 const shared_ptr<XUIntNode> &
stepMotor()
const {
return m_stepMotor;}
48 const shared_ptr<XUIntNode> &
stepEncoder()
const {
return m_stepEncoder;}
49 const shared_ptr<XDoubleNode> &
currentStopping()
const {
return m_currentStopping;}
50 const shared_ptr<XDoubleNode> &
currentRunning()
const {
return m_currentRunning;}
51 const shared_ptr<XDoubleNode> &
speed()
const {
return m_speed;}
52 const shared_ptr<XDoubleNode> &
timeAcc()
const {
return m_timeAcc;}
53 const shared_ptr<XDoubleNode> &
timeDec()
const {
return m_timeDec;}
54 const shared_ptr<XBoolNode> &active()
const {
return m_active;}
55 const shared_ptr<XBoolNode> &ready()
const {
return m_ready;}
56 const shared_ptr<XBoolNode> &slipping()
const {
return m_slipping;}
57 const shared_ptr<XBoolNode> µStep()
const {
return m_microStep;}
58 const shared_ptr<XBoolNode> &hasEncoder()
const {
return m_hasEncoder;}
59 const shared_ptr<XTouchableNode> &store()
const {
return m_store;}
60 const shared_ptr<XTouchableNode> &clear()
const {
return m_clear;}
61 const shared_ptr<XUIntNode> &auxBits()
const {
return m_auxBits;}
62 const shared_ptr<XBoolNode> &round()
const {
return m_round;}
63 const shared_ptr<XUIntNode> &roundBy()
const {
return m_roundBy;}
64 const shared_ptr<XTouchableNode> &forwardMotor()
const {
return m_forwardMotor;}
65 const shared_ptr<XTouchableNode> &reverseMotor()
const {
return m_reverseMotor;}
66 const shared_ptr<XTouchableNode> &stopMotor()
const {
return m_stopMotor;}
68 virtual void getStatus(
const Snapshot &shot,
double *position,
bool *slipping,
bool *ready) = 0;
69 virtual void changeConditions(
const Snapshot &shot) = 0;
71 virtual void setTarget(
const Snapshot &shot,
double target) = 0;
72 virtual void setForward() = 0;
73 virtual void setReverse() = 0;
74 virtual void stopRotation() = 0;
75 virtual void setActive(
bool active) = 0;
76 virtual void setAUXBits(
unsigned int bits) = 0;
78 virtual void storeToROM() = 0;
79 virtual void clearPosition() = 0;
81 const shared_ptr<XScalarEntry> m_position;
83 const shared_ptr<XDoubleNode> m_target;
84 const shared_ptr<XUIntNode> m_stepMotor;
85 const shared_ptr<XUIntNode> m_stepEncoder;
86 const shared_ptr<XDoubleNode> m_currentStopping;
87 const shared_ptr<XDoubleNode> m_currentRunning;
88 const shared_ptr<XDoubleNode> m_speed;
89 const shared_ptr<XDoubleNode> m_timeAcc;
90 const shared_ptr<XDoubleNode> m_timeDec;
91 const shared_ptr<XBoolNode> m_active;
92 const shared_ptr<XBoolNode> m_ready;
93 const shared_ptr<XBoolNode> m_slipping;
94 const shared_ptr<XBoolNode> m_microStep;
95 const shared_ptr<XBoolNode> m_hasEncoder;
96 const shared_ptr<XUIntNode> m_auxBits;
97 const shared_ptr<XTouchableNode> m_clear;
98 const shared_ptr<XTouchableNode> m_store;
99 const shared_ptr<XBoolNode> m_round;
100 const shared_ptr<XUIntNode> m_roundBy;
101 const shared_ptr<XTouchableNode> m_forwardMotor;
102 const shared_ptr<XTouchableNode> m_reverseMotor;
103 const shared_ptr<XTouchableNode> m_stopMotor;
105 shared_ptr<XListener> m_lsnTarget, m_lsnConditions,
106 m_lsnClear, m_lsnStore, m_lsnForwardMotor, m_lsnReverseMotor, m_lsnStopMotor, m_lsnAUX;
107 xqcon_ptr m_conPosition, m_conTarget, m_conStepMotor, m_conStepEncoder,
108 m_conCurrentStopping, m_conCurrentRunning, m_conSpeed,
109 m_conTimeAcc, m_conTimeDec, m_conActive, m_conReady, m_conSlipping,
110 m_conMicroStep, m_conHasEncoder, m_conClear, m_conStore,
111 m_conForwardMotor, m_conReverseMotor, m_conStopMotor,
112 m_conAUXBits, m_conRound, m_conRoundBy;