INOS
cinosmcrobot.h
Go to the documentation of this file.
1//******************************************************************************
26//******************************************************************************
27
28#ifndef INC_CINOSMCROBOT_H
29#define INC_CINOSMCROBOT_H
30
31//
32//------------------------------------------------------------------------------
33// defines
34//------------------------------------------------------------------------------
35//
36#define INOS_MCROBOT_CMD_BEGIN_INST(_inst_,_msg_) \
37 CINOSMcRobotCmd* __c = _inst_.iCmdGet(_msg_->GetId()); \
38 if (!__c) {
39#define INOS_MCROBOT_CMD_RUN_INST(_inst_,_cmd_) \
40 __c = _cmd_; \
41 uint32 __e = __c->Check(); \
42 if (__e) { \
43 _inst_.CmdFailed(__c->GetMsg(), __e); \
44 delete __c; \
45 return; \
46 } \
47 _inst_.iCmdAdd(__c); \
48 } \
49 CINOSTaskExMsg* __m = __c->GetMsg(); \
50 if (__m->GetTrigger()){ \
51 uint32 __e = __c->Trigger(); \
52 if (__e) { \
53 _inst_.iCmdRemove(__c); \
54 _inst_.CmdFailed(__m, __e); \
55 return; \
56 } \
57 } \
58 else { \
59 if (__m->GetCanceled()){ \
60 CINOSTaskExMsg* usr = new CINOSTaskExMsg(CINOSTaskEx::eMsgUser, \
61 CINOSMcRobot::eUsrDone); \
62 usr->AddParam(__m->GetId()); \
63 usr->AddParam((uint32)0); \
64 _inst_.PutMsg(usr); \
65 } \
66 else { \
67 uint32 __e = __c->Run(); \
68 if (__e) { \
69 _inst_.iCmdRemove(__c); \
70 _inst_.CmdFailed(__m, __e); \
71 return; \
72 } \
73 } \
74 _inst_.MsgDefer(__m); \
75 }
76#define INOS_MCROBOT_CMD_BEGIN(_msg_) INOS_MCROBOT_CMD_BEGIN_INST((*this),_msg_)
77#define INOS_MCROBOT_CMD_RUN(_msg_) INOS_MCROBOT_CMD_RUN_INST((*this),_msg_)
78
79#define INOS_MCROBOT_CMD_SETOUT(aCmd,aBit,aEvent) \
80 if (!__m->GetTrigger()){ \
81 if (aBit) { \
82 CINOSTaskExMsg* msg = new CINOSTaskExMsg(eMsgCmd, eCmdSetBit); \
83 msg->SetName("SetOut"); \
84 msg->AddParam((uintptr)aBit); \
85 uint8 uBusId; \
86 uint64 uBusTicks; \
87 if (__c->GetEventTicks(aEvent, uBusTicks, uBusId)){ \
88 msg->SetTrigger(uBusTicks, uBusId); \
89 PutMsg(msg); \
90 } \
91 else { \
92 delete msg; \
93 INOS_WARNING("INOS_MCROBOT_CMD_SETOUT(aCmd,aBit,'%s') used without a valid event name",aEvent);\
94 } \
95 } \
96 else { \
97 INOS_WARNING("INOS_MCROBOT_CMD_SETOUT(aCmd,???,'%s') used without a valid bit pointer",aEvent); \
98 } \
99 }
100#define INOS_MCROBOT_CMD_CLROUT(aCmd,aBit,aEvent) \
101 if (!__m->GetTrigger()){ \
102 if (aBit) { \
103 CINOSTaskExMsg* msg = new CINOSTaskExMsg(eMsgCmd, eCmdClrBit); \
104 msg->SetName("ClrOut"); \
105 msg->AddParam((uintptr)aBit); \
106 uint8 uBusId; \
107 uint64 uBusTicks; \
108 if (__c->GetEventTicks(aEvent, uBusTicks, uBusId)){ \
109 msg->SetTrigger(uBusTicks, uBusId); \
110 PutMsg(msg); \
111 } \
112 else { \
113 delete msg; \
114 INOS_WARNING("INOS_MCROBOT_CMD_CLROUT(aCmd,aBit,'%s') used without a valid event name",aEvent);\
115 } \
116 } \
117 else { \
118 INOS_WARNING("INOS_MCROBOT_CMD_CLROUT(aCmd,???,'%s') used without a valid bit pointer",aEvent); \
119 } \
120 }
121#define INOS_MCROBOT_CMD_SENDCMD(aCmd,aCmdId,aEvent) \
122 if (!aCmd->GetMsg()->GetTrigger()){ \
123 CINOSTaskExMsg* msg = new CINOSTaskExMsg(eMsgCmd, aCmdId); \
124 msg->AddParam(aCmd->GetId()); \
125 uint8 uBusId; \
126 uint64 uBusTicks; \
127 if (aCmd->GetEventTicks(aEvent, uBusTicks, uBusId)){ \
128 msg->SetTrigger(uBusTicks, uBusId); \
129 PutMsg(msg); \
130 } \
131 else { \
132 delete msg; \
133 INOS_WARNING("INOS_MCROBOT_CMD_SENDCMD(aCmd,aCmdId,'%s') used without a valid event name",aEvent);\
134 } \
135 }
136#define INOS_MCROBOT_CMD_SENDCMD_NAME(aCmd,aName,aCmdId,aEvent) \
137 if (!aCmd->GetMsg()->GetTrigger()){ \
138 CINOSTaskExMsg* msg = new CINOSTaskExMsg(eMsgCmd, aCmdId); \
139 msg->SetName(aName); \
140 msg->AddParam(aCmd->GetId()); \
141 uint8 uBusId; \
142 uint64 uBusTicks; \
143 if (aCmd->GetEventTicks(aEvent, uBusTicks, uBusId)){ \
144 msg->SetTrigger(uBusTicks, uBusId); \
145 PutMsg(msg); \
146 } \
147 else { \
148 delete msg; \
149 INOS_WARNING("INOS_MCROBOT_CMD_SENDCMD(aCmd,aCmdId,'%s') used without a valid event name",aEvent);\
150 } \
151 }
152#define INOS_MCROBOT_CMD_SENDCMD_PARAM(aCmd,aCmdId,aEvent,aParam) \
153 if (!aCmd->GetMsg()->GetTrigger()){ \
154 CINOSTaskExMsg* msg = new CINOSTaskExMsg(eMsgCmd, aCmdId); \
155 msg->AddParam(aCmd->GetId()); \
156 msg->AddParam(aParam); \
157 uint8 uBusId; \
158 uint64 uBusTicks; \
159 if (aCmd->GetEventTicks(aEvent, uBusTicks, uBusId)){ \
160 msg->SetTrigger(uBusTicks, uBusId); \
161 PutMsg(msg); \
162 } \
163 else { \
164 delete msg; \
165 INOS_WARNING("INOS_MCROBOT_CMD_SENDCMD_PARAM(aCmd,aCmdId,'%s') used without a valid event name",aEvent);\
166 } \
167 }
168//
169//------------------------------------------------------------------------------
170// includes
171//------------------------------------------------------------------------------
172//
173// system
174#include <inos.h>
175#include <cinosmcmodule.h>
176#include <cinosphysicalaxis.h>
177#include <cinoscalib.h>
178#include <cinoscalibs.h>
179#include <cinosshape.h>
180#ifdef INOS_MOVEPATH_SUPPORT
181#include <cinosmovepath.h>
182#endif
183//
184// C++
185//
186// project
187//
188//------------------------------------------------------------------------------
189// type definition
190//------------------------------------------------------------------------------
191//
193typedef const char* tMcAxisName;
194//------------------------------------------------------------------------------
195// forward declarations
196//------------------------------------------------------------------------------
197//
198class CINOSMcRobotAxis;
199class CINOSMcRobotCmd;
200//
201//------------------------------------------------------------------------------
202// class definition
203//------------------------------------------------------------------------------
204//
206{
207 //--- user interface ---------------------------------------------------
208
209 // public types
210 public :
211#ifdef INOS_MOVEPATH_SUPPORT
212 enum EMovePathDone {
217 };
218#endif
219
220 // public member functions
221 public :
222
259 "CreateSpeedset", &CINOSMcRobot::iCreateSpeedset, nullptr, *this,
260 { "Axis", "" },
261 { "SpeedsetName", "" },
262 { "InitialValues", "", nullptr, CINOSTaskExMsgParam::eFlgStructure}
263 };
264
265 // Old variant for backwards compatibility, only added when option "Cmd=SpeedSet" is active and invisible
267 "CreateAxisSpeedSet", &CINOSMcRobot::iCreateSpeedset, nullptr, *this,
268 { "Axis", "" },
269 { "SpeedSetName", "" },
270 { "InitialValues", "", nullptr, CINOSTaskExMsgParam::eFlgStructure},
271 0xFFFFFFFF, "Cmd=SpeedSet", defCharInvisible
272 };
273
282 "DestroySpeedset", &CINOSMcRobot::iDestroySpeedset, nullptr, *this,
283 { "Axis", "" },
284 { "SpeedsetName", "" },
285 };
286
287 // Old variant for backwards compatibility, only added when option "SpeedSet" is active and invisible
289 "DestroyAxisSpeedSet", &CINOSMcRobot::iDestroySpeedset, nullptr, *this,
290 { "Axis", "" },
291 { "SpeedsetName", "" },
292 0xFFFFFFFF, "Cmd=SpeedSet", defCharInvisible
293 };
304 "SetSpeedset", &CINOSMcRobot::iSetSpeedset, nullptr, *this,
305 { "Axis", "" },
306 { "SpeedsetName", "" },
307 { "Values", "", nullptr, CINOSTaskExMsgParam::eFlgStructure}
308 };
309
310 // Old variant for backwards compatibility, only added when option "SpeedSet" is active and invisible
312 "SetAxisSpeedSet", &CINOSMcRobot::iSetSpeedset, nullptr, *this,
313 { "Axis", "" },
314 { "SpeedSetName", "" },
315 { "Values", "", nullptr, CINOSTaskExMsgParam::eFlgStructure},
316 0xFFFFFFFF, "Cmd=SpeedSet", defCharInvisible
317 };
318
336 "GetSpeedset", &CINOSMcRobot::iGetSpeedset, nullptr, *this,
337 { "Axis", "" },
338 { "SpeedsetName", "" },
339 };
340
341 // Old variant for backwards compatibility, only added when option "SpeedSet" is active and invisible
343 "GetAxisSpeedSet", &CINOSMcRobot::iGetSpeedset, nullptr, *this,
344 { "Axis", "" },
345 { "SpeedSetName", "" },
346 0xFFFFFFFF, "Cmd=SpeedSet", defCharInvisible
347 };
348 // single axis methods
349
362 virtual CMcResult MoveAbs (real64 arPosition, real64 arExit, real64 arEnter,
364
377 virtual CMcResult MoveRel (real64 arPosition, real64 arExit, real64 arEnter,
379
389 virtual CMcResult MoveToBorder (real64 arPosition,
391
405 virtual CMcResult MoveToBorderApp (real64 arPosition, real64 arPositionVel,
407
416 virtual CMcResult MoveFromBorder (real64 arPosition,
418
429 virtual CMcResult MoveFromBorderDep (real64 arPosition, real64 arPositionVel,
431
442 virtual CMcResult MoveToDigitalSensor (const char* apName, real64 arPosition,
443 real64 arSet, const char* apParam, CINOSSync* apSync=DF_INOS_SYNCHRONOUS);
444
457 virtual CMcResult MoveToAnalogSensor (const char* apName, real64 arPosition,
458 real64 arLevel, real64 arGreater, const char* apParam,
460
466
472
478
484
490 virtual CMcResult JoyAdc (real64 arSlow, CINOSSync* apSync=DF_INOS_SYNCHRONOUS);
491
497
504
505 // multiple axes methods
506
522 virtual CMcResult On (tMcAxisName apAxis,
527 virtual CMcResult Off (tMcAxisName apAxis,
538 virtual CMcResult Init (tMcAxisName apAxis,
541 virtual CMcResult Calib(tMcAxisName apAxis,
543
556 virtual CMcResult MoveAbs (tMcAxisName apAxis, real64 arPosition,
557 real64 arExit, real64 arEnter, const char* apParam,
559
572 virtual CMcResult MoveRel (tMcAxisName apAxis, real64 arPosition,
573 real64 arExit, real64 arEnter, const char* apParam,
575
585 virtual CMcResult MoveToBorder (tMcAxisName apAxis, real64 arPosition,
587
602 virtual CMcResult MoveToBorderApp (tMcAxisName apAxis, real64 arPosition,
603 real64 arPositionVel, real64 arVelocity, const char* apParam,
605
615 virtual CMcResult MoveFromBorder (tMcAxisName apAxis, real64 arPosition,
617
629 virtual CMcResult MoveFromBorderDep (tMcAxisName apAxis, real64 arPosition,
630 real64 arPositionVel, real64 arVelocity, const char* apParam,
632
644 virtual CMcResult MoveToDigitalSensor (tMcAxisName apAxis, const char* apName,
645 real64 arPosition, real64 arSet, const char* apParam,
647
661 virtual CMcResult MoveToAnalogSensor (tMcAxisName apAxis, const char* apName,
662 real64 arPosition, real64 arLevel, real64 arGreater, const char* apParam,
664
675 virtual CMcResult MoveCarefully (tMcAxisName apAxis, real64 arPosition,
676 real64 arPosError, real64 arCurrent, const char* apParam,
678
681 virtual CMcResult MoveEx (tMcAxisName apAxis, real64 arPosition,
682 real64 arTrgPosition, uint32 auFlags, const char* apTrgName, real64 arTrgLevel,
684
685 #ifdef INOS_MOVEPATH_SUPPORT
693 virtual CMcResult RunPath (const char* apPathName, const char* apSpeedset, const char* apParam, CINOSSync* apSync=DF_INOS_SYNCHRONOUS);
694 #endif
695
700 virtual CMcResult JoyEnb (tMcAxisName apAxis,
702
707 virtual CMcResult JoyDis (tMcAxisName apAxis,
709
715 virtual CMcResult JoyPos (tMcAxisName apAxis,
717
723 virtual CMcResult JoyNeg (tMcAxisName apAxis,
725
731 virtual CMcResult JoyAdc (tMcAxisName apAxis, real64 arSlow,
733
738 virtual CMcResult JoyStop (tMcAxisName apAxis,
740
742 virtual CMcResult WheelEnb (tMcAxisName apAxis,
745 virtual CMcResult WheelDis (tMcAxisName apAxis,
748 virtual CMcResult WheelFactor (tMcAxisName apAxis, real64 arFactor,
750
751 //--- useful for derived classes ---------------------------------------
752 virtual CINOSPhysicalAxis* GetAxisResource(tMcAxisName apAxis) override;
755
756 //--- useful for derived classes ---------------------------------------
757
759 uint32 GetAxisCount() const
760 { return m_uAxesNbr;};
773 const char* GetVirtAxisName(const char* apName) const;
774
777
778 #ifdef INOS_MOVEPATH_SUPPORT
780 virtual class CINOSMovePath* GetMovePath()
781 { return m_pMovePathRun; };
782 #endif
783
784 #ifdef INOS_FORCE_CONTROL_SUPPORT
785
793
800
814 virtual CMcResult ForceApproach(tMcAxisName apAxis, double adPosition, double adPositionVel, double adVelocity,
815 double adForce, double adForceLimit, const char* apParam, CINOSSync* apSync = DF_INOS_SYNCHRONOUS);
816
827 virtual CMcResult ForceDepart(tMcAxisName apAxis, double adPosition, double adPositionVel, double adVelocity,
829
837 virtual CMcResult ForceMove(tMcAxisName apAxis, double adForce, const char* apParam, CINOSSync* apSync = DF_INOS_SYNCHRONOUS);
838
846
856 virtual CMcResult ForceBreak(tMcAxisName apAxis, double adForce, const char* apParam, CINOSSync* apSync = DF_INOS_SYNCHRONOUS);
857
864
871
881
882 #endif
883
885 constexpr static int GetLastCmd() {
886 return eCmdINOSMcRobotLast;
887 }
889 constexpr static int GetLastUsr() {
890 return eUsrINOSMcRobotLast;
891 }
892 //--- internals --------------------------------------------------------
893
894 friend class CINOSMcRobotAxis;
895 friend class CINOSMcRobotCmd;
896 friend class CINOSMcRobotCmdInit;
897 friend class CINOSMcRobotCmdCalib;
898 friend class CINOSMcRobotCmdMove;
899 friend class CINOSMcRobotCmdMoveToBorder;
903 friend class CINOSMcRobotCmdMoveCarefully;
904 friend class CINOSMcRobotCmdMoveEx;
905 friend class CINOSMcRobotCmdLinear;
906 friend class CINOSMcRobotCmdEndless;
907 friend class CINOSMcRobotCmdShape;
908 friend class CINOSMcRobotCmdMoveSafe;
909 friend class CINOSMcRobotCmdValveVC8;
910 friend class CINOSMcRobotCmdPull;
911 friend class CINOSMcRobotSync;
912 friend class CINOSMcRobotForceSync;
913 friend class CINCOaxspos;
914 friend class CINCOcmdaxspos;
915 friend class CINCOaxslifetime;
916 friend class CINITTask;
917
918 // constructor / destructor
919 public :
921 CINOSMcRobot (const char* apName, const char* apParam);
923 CINOSMcRobot (const char* apName, const char* apType, const char* apParam);
925 virtual ~CINOSMcRobot ();
926
927 // protected members
928 protected :
930 virtual bool DispatchCmd(CINOSTaskExMsg* apMsg) override;
932 virtual bool DispatchTmd(CINOSTaskExMsg* apMsg) override;
934 virtual bool DispatchUser(CINOSTaskExMsg* apMsg) override;
936 virtual bool DispatchReply(CINOSTaskExMsg* apMsg) override;
937
939 virtual void iStartup(CINOSTaskExMsg* apMsg) override;
941 virtual void iStartup (real64 arStage) override;
943 virtual void iShutdown(CINOSTaskExMsg* apMsg) override;
944
946 virtual void iStop(CINOSTaskExMsg* apMsg) override;
948 virtual void iCancel(CINOSTaskExMsg* apMsg) override;
949
951 virtual void iOn(CINOSTaskExMsg* apMsg) override;
953 virtual void iOff(CINOSTaskExMsg* apMsg) override;
955 virtual void iInit(CINOSTaskExMsg* apMsg) override;
964 virtual void iInitDone(CINOSMcRobotCmd* apCmd){};
966 virtual void iCalib(CINOSTaskExMsg* apMsg);
970 virtual void iRecover(CINOSTaskExMsg* apMsg) override;
971
972 virtual void iCreateSpeedset(CINOSTaskExMsg* apMsg);
973 virtual void iDestroySpeedset(CINOSTaskExMsg* apMsg);
974 virtual void iSetSpeedset(CINOSTaskExMsg* apMsg);
975 virtual void iGetSpeedset(CINOSTaskExMsg* apMsg);
976
978 virtual void iMoveAbs(CINOSTaskExMsg* apMsg);
980 virtual void iMoveRel(CINOSTaskExMsg* apMsg);
981
983 virtual void iMoveToBorder(CINOSTaskExMsg* apMsg);
985 virtual void iMoveToBorderApp(CINOSTaskExMsg* apMsg);
987 virtual void iMoveFromBorder(CINOSTaskExMsg* apMsg);
989 virtual void iMoveFromBorderDep(CINOSTaskExMsg* apMsg);
995 virtual void iMoveCarefully(CINOSTaskExMsg* apMsg);
997 virtual void iMoveEx(CINOSTaskExMsg* apMsg);
998
1000 virtual void iJoyEnb(CINOSTaskExMsg* apMsg);
1002 virtual void iJoyDis(CINOSTaskExMsg* apMsg);
1007 virtual void iJoyPos(CINOSTaskExMsg* apMsg);
1009 virtual void iJoyNeg(CINOSTaskExMsg* apMsg);
1011 virtual void iJoyAdc(CINOSTaskExMsg* apMsg);
1013 virtual void iJoyStop(CINOSTaskExMsg* apMsg);
1014
1016 virtual void iWheelEnb(CINOSTaskExMsg* apMsg);
1018 virtual void iWheelDis(CINOSTaskExMsg* apMsg);
1020 virtual void iWheelFactor(CINOSTaskExMsg* apMsg);
1021
1023 virtual void iSetBit(CINOSTaskExMsg* apMsg);
1025 virtual void iClrBit(CINOSTaskExMsg* apMsg);
1026
1028 virtual void iLimitSet(CINOSTaskExMsg* apMsg);
1030 virtual void iLimitClr(CINOSTaskExMsg* apMsg);
1032 virtual void iLimitPosSet(CINOSTaskExMsg* apMsg);
1034 virtual void iLimitPosClr(CINOSTaskExMsg* apMsg);
1036 virtual void iLimitNegSet(CINOSTaskExMsg* apMsg);
1038 virtual void iLimitNegClr(CINOSTaskExMsg* apMsg);
1039
1041 virtual void iMonitorError(CINOSTaskExMsg* apMsg);
1043 virtual void iMonitorWarning(CINOSTaskExMsg* apMsg);
1044
1046 virtual void iLinkDown(CINOSTaskExMsg* apMsg) override;
1047
1049 virtual CMcResult PostAxisMessage (tMcAxisName apAxis, uint32 auType,
1050 uint32 auCode, uint32 auFlags);
1051
1052 #ifdef INOS_MOVEPATH_SUPPORT
1054 virtual void iPreparePath(CINOSTaskExMsg* apMsg);
1056 virtual void iPreparePathDone(CINOSTaskExMsg* apMsg, CINOSTaskExMsg* apRpl);
1058 virtual void iRunPath(CINOSTaskExMsg* apMsg);
1059 virtual void iiRunPath(CINOSTaskExMsg* apMsg, CINOSMovePath* apPath, const char* apSpeed, const char* apParam);
1060 void iiRunPath(CINOSTaskExMsg* apMsg, CINOSMovePath* apPath, const char* apSpeed, const char* apParam,
1063 virtual void iRunPathStr(CINOSTaskExMsg* apMsg);
1065 virtual void iRunPathDone(CINOSTaskExMsg* apMsg, CINOSTaskExMsg* apRpl);
1067 virtual uint32 iGetInvolved(CINOSMovePath* apPath);
1069 virtual void iSetStateInvolved(CINOSMovePath* apPath, uint32 auState);
1071 virtual void iResetStateInvolved(CINOSMovePath* apPath, uint32 auNewState, uint32 auOldState);
1072 #endif
1073
1074 #ifdef INOS_FORCE_CONTROL_SUPPORT
1075 virtual void iForceDone(CINOSTaskExMsg* apMsg);
1076 virtual void iForceActivate(CINOSTaskExMsg* apMsg);
1077 virtual void iForceInactivate(CINOSTaskExMsg* apMsg);
1078 virtual void iForceApproach(CINOSTaskExMsg* apMsg);
1079 virtual void iForceDepart(CINOSTaskExMsg* apMsg);
1080 virtual void iForceMove(CINOSTaskExMsg* apMsg);
1081 virtual void iForceMoveStop(CINOSTaskExMsg* apMsg);
1082 virtual void iForceBreak(CINOSTaskExMsg* apMsg);
1083 virtual void iForceTara(CINOSTaskExMsg* apMsg);
1084 virtual void iForceSelect(CINOSTaskExMsg* apMsg);
1085 virtual void iForceCheck(CINOSTaskExMsg* apMsg);
1086 virtual void iForceCancel();
1087
1088 #endif
1089
1091 virtual void iCmdDone(CINOSTaskExMsg* apMsg);
1097 virtual void iCancelDeferred() override;
1102 { return m_pFstCmd;};
1104 virtual void CmdStop(tMsgId auId, uint32 auReply=CINOSTaskEx::eRplStopped);
1105
1107 virtual void iOnSlowMotionChanged(CINOSTaskExMsg* apMsg) override;
1109 virtual void iOnSimLevelChanged(uint32 auOldLevel, uint32 auNewLevel) override;
1110
1112 virtual void iSetModeSetup(CINOSTaskExMsg* apMsg) override;
1114 virtual void iClrModeSetup(CINOSTaskExMsg* apMsg) override;
1116 virtual bool iCheckSetupMode() override;
1117
1118 // internal helper methods
1119
1121 virtual void iStepCanceled(CINOSTaskExMsg* apMsg) override;
1123 virtual void iStepStopped(CINOSTaskExMsg* apMsg) override;
1125 virtual void iStepSkipped(CINOSTaskExMsg* apMsg) override;
1126
1128 virtual void iMsgRejected(CINOSTaskExMsg* apMsg) override;
1129
1131 virtual uint32 iOn(tMcAxisName apAxis);
1133 virtual uint32 iOff(tMcAxisName apAxis);
1135 virtual uint32 iRecover(tMcAxisName apAxis);
1138
1140 virtual bool iGetFlag(tMcAxisName apAxis, uint32 auFlag);
1142 virtual void iSetFlag(tMcAxisName apAxis, uint32 auFlag);
1144 virtual void iClrFlag(tMcAxisName apAxis, uint32 auFlag);
1150 virtual real64 GetRealPosition(tMcAxisName apAxis, const char* apBase);
1152 virtual real64 GetActPosition(tMcAxisName apAxis, const char* apBase);
1154 virtual void SetActPosition(tMcAxisName apAxis, const char* apBase, real64 arPosition);
1155
1160
1166 virtual uint32 GetDistanceCodedPosition(const char* apName, real64 arDistance, real64& arPosition)
1168
1170 virtual bool iInitOk() const;
1172 virtual bool iIsIdle() const;
1173
1175 virtual const char* GetStateText() override;
1176
1179 const char* apParam);
1180
1182 virtual void MsgDone(CINOSTaskExMsg* apMsg, uint32 auResult = 0) override;
1184 virtual void MsgDone(CINOSTaskExMsg* apMsg, ERplId aRplId, uint32 auResult = 0) override;
1189 virtual void CmdFailed(CINOSTaskExMsg* apMsg, uint32 auError);
1190
1191 // external helper methods
1192
1194 CMcResult eMoveAbs (real64 arPosition, real64 arExit, real64 arEnter,
1195 const char* apParam);
1197 CMcResult eMoveRel (real64 arPosition, real64 arExit, real64 arEnter,
1198 const char* apParam);
1200 CMcResult eMoveAbs (tMcAxisName apAxis, real64 arPosition, real64 arExit,
1201 real64 arEnter, const char* apParam);
1203 CMcResult eMoveRel (tMcAxisName apAxis, real64 arPosition, real64 arExit,
1204 real64 arEnter, const char* apParam);
1205
1207 CMcResult eMoveToBorder (real64 arPosition, const char* apParam);
1209 CMcResult eMoveToBorder (tMcAxisName apAxis, real64 arPosition, const char* apParam);
1211 CMcResult eMoveToBorderApp (real64 arPosition, real64 arPositionVel, real64 arVelocity, const char* apParam);
1213 CMcResult eMoveToBorderApp (tMcAxisName apAxis, real64 arPosition, real64 arPositionVel, real64 arVelocity, const char* apParam);
1215 CMcResult eMoveFromBorder (real64 arPosition, const char* apParam);
1217 CMcResult eMoveFromBorder (tMcAxisName apAxis, real64 arPosition, const char* apParam);
1219 CMcResult eMoveFromBorderDep (real64 arPosition, real64 arPositionVel, real64 arVelocity, const char* apParam);
1221 CMcResult eMoveFromBorderDep (tMcAxisName apAxis, real64 arPosition, real64 arPositionVel, real64 arVelocity, const char* apParam);
1223 CMcResult eMoveToDigitalSensor (const char* apName, real64 arPosition,
1224 real64 arSet, const char* apParam);
1227 real64 arPosition, real64 arSet, const char* apParam);
1229 CMcResult eMoveToAnalogSensor (const char* apName, real64 arPosition,
1230 real64 arLevel, real64 arGreater, const char* apParam);
1233 real64 arPosition, real64 arLevel, real64 arGreater, const char* apParam);
1236 real64 arPosError, real64 arCurrent, const char* apParam);
1237
1239 CMcResult eJoyEnb ();
1241 CMcResult eJoyDis ();
1243 CMcResult eJoyPos ();
1245 CMcResult eJoyNeg ();
1247 CMcResult eJoyAdc (real64 arslow);
1249 CMcResult eJoyStop ();
1259 CMcResult eJoyAdc (tMcAxisName apAxis, real64 arSlow);
1262
1264 CMcResult eWheelEnb ();
1266 CMcResult eWheelDis ();
1268 CMcResult eWheelFactor (real64 arFactor);
1275
1276 #ifdef INOS_MOVEPATH_SUPPORT
1278 virtual uint32 iMovePathCheck(
1280 TINOSMovePathVec& vPos,
1281 TINOSMovePathVec& vVel,
1282 TINOSMovePathVec& vAcc,
1283 TINOSMovePathVec& vJrk) {
1284 return 0;
1285 };
1286 #endif // INOS_MOVEPATH_SUPPORT
1287
1288 // options
1289 enum {
1290 eOptMultiple= 0x00010000, // multiple axes support
1291 eOptJoy = 0x00020000, // joystick support
1292 eOptWheel = 0x00040000, // wheel support
1293 eOptLimitInv= 0x00080000, // limit switches inverted
1294 eOptEarlyInit=0x00100000, // early init
1295 eOptResMcR5 = 0x00200000, // reserved for future use
1296 eOptResMcR6 = 0x00400000, // reserved for future use
1297 eOptResMcR7 = 0x00800000 // reserved for future use
1298 };
1299
1300 // commands
1301 enum {
1302 eCmdINOSMcRobotFirst = eCmdINOSMcModuleLast+1,
1303 eCmdMoveAbs,
1304 eCmdMoveRel,
1305 eCmdMoveToBorder,
1306 eCmdMoveToBorderApp,
1307 eCmdMoveFromBorder,
1308 eCmdMoveFromBorderDep,
1309 eCmdMoveToDigitalSensor,
1310 eCmdMoveToAnalogSensor,
1311 eCmdMoveCarefully,
1312 eCmdMoveEx,
1313 eCmdJoyEnb,
1314 eCmdJoyDis,
1315 eCmdJoyPos,
1316 eCmdJoyNeg,
1317 eCmdJoyAdc,
1318 eCmdJoyStop,
1319 eCmdWheelEnb,
1320 eCmdWheelDis,
1321 eCmdWheelFactor,
1322 eCmdSetBit,
1323 eCmdClrBit,
1324 eCmdCalib,
1325 eCmdPreparePath,
1326 eCmdRunPath,
1327 eCmdRunPathStr,
1328 #ifdef INOS_FORCE_CONTROL_SUPPORT
1329 eCmdForceActivate,
1330 eCmdForceInactivate,
1331 eCmdForceApproach,
1332 eCmdForceDepart,
1333 eCmdForceMove,
1334 eCmdForceMoveStop,
1335 eCmdForceBreak,
1336 eCmdForceTara,
1337 eCmdForceSelect,
1338 eCmdForceCheck,
1339 #endif
1340 eCmdINOSMcRobotLast
1341 };
1342
1343 // usr
1344 enum {
1345 eUsrINOSMcRobotFirst = eUsrINOSMcModuleLast+1,
1346 eUsrDone,
1347 eUsrLimitSet,
1348 eUsrLimitClr,
1349 eUsrLimitPosSet,
1350 eUsrLimitPosClr,
1351 eUsrLimitNegSet,
1352 eUsrLimitNegClr,
1353 eUsrMonitorError,
1354 eUsrMonitorWarning,
1355 eUsrJoyDisAxisStopped,
1356 #ifdef INOS_FORCE_CONTROL_SUPPORT
1357 eUsrForceDone,
1358 #endif
1359 eUsrINOSMcRobotLast
1360 };
1361
1362 // reply codes
1363 enum {
1364 eRplNotYet = 0xffffffff
1365 };
1366
1367 // private methods
1368 private :
1370 void Create();
1372 void iCheckLimitHook();
1374 void iHandleCmdHook();
1376 void iMonitorHook();
1377
1379 void InstallHandler(CINOSMcRobotCmd* apCmd);
1381 void RemoveHandler(CINOSMcRobotCmd* apCmd);
1382
1383 uint32 SetSpeedsetValues(CINOSBaseAxisParamSet* apParamSet,
1385
1386 // private members
1387 private :
1389 uint32 m_uAxesNbr;
1391 inosName64 m_cPositionBase;
1393 uintid m_uCheckLimitHookId;
1395 uintid m_uHandleCmdHookId;
1397 uintid m_uMonitorHookId;
1398
1399 #ifdef INOS_SAFETY_SUPPORT
1401 uint32 m_uSOSHookId = 0;
1402 #endif
1403
1405 uint32 m_uBusId;
1407 uint32 m_uCycleTime;
1409 uint32 m_uCycleNumber;
1417 bool m_bJoyDisAsyncStop;
1418
1420 CINOSMcRobotAxis** m_pAxes;
1422 CINOSMcRobotCmd* m_pFstCmd;
1423
1424 #ifdef INOS_MOVEPATH_SUPPORT
1426 inosName64 m_cMovePathName;
1433 #endif
1434
1436 static int32 m_uTmpIndex;
1437
1440};
1441
1442//------------------------------------------------------------------------------
1443// class definition
1444//------------------------------------------------------------------------------
1445//
1447{
1448 //--- user interface -------------------------------------------------------
1449
1450 // public member functions
1451 public :
1454 { return m_uState;};
1461 { return (m_uFlags & auFlag);};
1469 bool GetOption(const char* apOption) const
1470 { return strstr(m_cParam, apOption);};
1473 { return m_uSimLevel.GetValue();};
1475 real64 GetSlowMotion() const
1476 { return m_rSlowMotion.GetValue();};
1479 { m_rSlowMotion.SetValue(arSlowMotion);};
1481 real64 GetMinPositionOn() const
1482 { return m_rMinPositionOn.GetValue();};
1484 real64 GetMaxPositionOn() const
1485 { return m_rMaxPositionOn.GetValue();};
1487 real64 GetPowerTimeout() const
1488 { return m_rPowerTimeout.GetValue();};
1490 const char* GetName() const
1491 { if (m_cAlias[0]) return &m_cAlias[0]; else return &m_cName[0];};
1493 void SetName(const char* apName)
1494 { inos_strncpy(m_cName, apName, sizeof(m_cName));};
1497 { if (m_pAxisRes) return m_pAxisRes->GetResId(); else return 0; };
1500 { return m_uNumber;}
1503 { return m_pAxis;};
1509 {
1510 // zero input available ?
1511 if (NULL == m_pZero){
1512 // no -> try it with a resource update
1513 UpdateResource("Zero");
1514 }
1515 // return
1516 return m_pZero;
1517 };
1520 { return m_pLimitPos;};
1522 bool CheckLimitPos() const;
1525 { return m_pLimitNeg;};
1527 bool CheckLimitNeg() const;
1530 { return m_pBrake;};
1549
1550 // init handling
1551
1554 { return m_uInitType.GetValue()&0xff;};
1557 { return (m_uInitType.GetValue()&0xff00)>>8;};
1560 { return m_uInitDirection.GetValue();};
1563 { return m_uInitEdge.GetValue();};
1566 { return m_uInitCommutation.GetValue();};
1569 { return m_uInitBorder.GetValue();};
1572 { return m_uInitReference.GetValue();};
1578 { return m_rInitReferenceSearchTol.GetValue();};
1581 { return m_rInitReferenceSearchBack.GetValue();};
1583 real64 GetInitReferencePos() const
1584 { return m_rInitReferencePos.GetValue();};
1589 real64 GetInitReferenceTol() const
1590 { return m_rInitReferenceTol.GetValue();};
1593 { return m_uInitCurrentLimit.GetValue();};
1595 real64 GetInitMaxCurrent() const
1596 { return m_rInitMaxCurrent.GetValue();};
1598 real64 GetInitBorderLimit() const
1599 { return m_rInitBorderLimit.GetValue();};
1601 real64 GetInitZeroSlow() const
1602 { return m_rInitZeroSlow.GetValue();};
1604 real64 GetInitZeroLeave() const
1605 { return m_rInitZeroLeave.GetValue();};
1607 real64 GetInitPos() const
1608 { return m_rInitPos.GetValue();};
1611 { m_rInitPos.SetValue(arInitPos); };
1613 real64 GetInitRange() const
1614 { return m_rInitRange.GetValue();};
1616 real64 GetInitSlaveBack() const
1617 { return m_rInitSlaveBack.GetValue();};
1619 const char* GetInitParam() const
1620 { return m_cInitParam.GetValue();};
1626 { return m_uInitMove.GetValue();};
1628 real64 GetInitMovePos() const
1629 { return m_rInitMovePos.GetValue();};
1634 const char* GetInitMoveParam() const
1635 { return m_cInitMoveParam.GetValue();};
1636
1637 // calib
1638
1641 { return m_uCalibType.GetValue();};
1643 real64 GetCalibTolerance() const
1644 { return m_rCalibTolerance.GetValue();};
1646 const char* GetCalibParam() const
1647 { return m_cCalibParam.GetValue();};
1651
1652 // brake handling
1653
1655 bool HasBrake() const
1656 { return m_pBrake;};
1658 int32 GetBrakeWaitOn() const
1659 { return m_iBrakeWaitOn.GetValue();};
1661 int32 GetBrakeWaitOff() const
1662 { return m_iBrakeWaitOff.GetValue();};
1666 void DoBrake()
1667 { if (m_pBrake) m_pBrake->Clear();};
1670 { if (m_pBrake) m_pBrake->Set();};
1671
1672 // joystick handling
1673
1676 { return m_uJoyType.GetValue();};
1679 { return m_uJoyWait.GetValue();};
1682 { return m_uJoyDeltaInc.GetValue();};
1684 real64 GetJoyDeltaUnit() const
1685 { return m_rJoyDeltaUnit.GetValue();};
1687 const char* GetJoyParam() const
1688 { return m_cJoyParam.GetValue();};
1689
1690 // wheel handling
1691
1694 { return m_uWheelType.GetValue();};
1696 real64 GetWheelFactor() const
1697 { return m_rWheelFactor.GetValue();};
1700 { m_rWheelFactor.SetValue(arFactor);};
1703 { return m_uWheelFilterLength.GetValue();};
1705 const char* GetWheelParam() const
1706 { return m_cWheelParam.GetValue();};
1707
1709 const char* GetWheelName() const
1710 { return m_pWheel ? m_pWheel->GetName() : nullptr;};
1711 // monitor
1712
1724 { return m_uMonitorType.GetValue();};
1727 { return m_uMonitorActionError.GetValue();};
1730 { return m_uMonitorActionWarning.GetValue();};
1734
1735 // user properties
1736
1738 virtual void AddProp(const char* apName, nvreal64& aMember,
1739 real64 arDefault, real64 arMin, real64 arMax, const char* apUnit,
1740 uint32 auDigits);
1741
1742 //--- internal -------------------------------------------------------------
1743
1744 friend class CINOSMcRobot;
1745 friend class CINOSMcRobotCmdInit;
1746 friend class CINOSMcRobotCmdCalib;
1747 friend class CINOSMcRobotCmdMove;
1748 friend class CINOSMcRobotCmdLinear;
1749 friend class CINOSMcRobotCmdEndless;
1750
1751 // init types
1752 enum {
1753 eInitStandard = 0,
1754 eInitBorder = 1,
1755 eInitStall = 2,
1756 eInitPosition = 3,
1757 eInitCustom = 4,
1758 eInitShared = 5,
1759 eInitNone = 6,
1760 eInitStallWithTolerance = 7,
1761 eInitResolverAbsolute = 8,
1762 eInitAbsoluteEncoder = 9,
1763 eInitLua,
1764 eInitLast = 10,
1765 };
1766
1767 // options
1768 enum {
1769 eFlgOn = 0x00000200, // axis on ok
1770 eFlgInit = 0x00000400, // axis init ok
1771 eFlgSlave = 0x08000000, // axis is a coupled slave
1772 eFlgPureLimit = 0x10000000, // axis has pure limit switches
1773 eFlgShared = 0x20000000, // axis is shared
1774 eFlgCoupled = 0x40000000, // axis is coupled
1775 eFlgSimulated = 0x80000000, // axis is simulated
1776 };
1777
1778 // monitor
1779 enum {
1780 eMonError = 0x00000001, // error monitor
1781 eMonWarning = 0x00000002 // warning monitor
1782 };
1783
1784 // states
1785 enum {
1786 eStaIdle = 0, // axis is idle
1787 eStaInit = 1, // axis is initialysing
1788 eStaMove = 2, // axis is moving
1789 eStaJoyStick= 3, // axis is in joystick mode
1790 eStaEndless = 4, // axis is endless moving
1791 eStaWheel= 5, // axis is in wheel mode
1792 eStaCalib = 6, // axis is calibrating
1793 eStaMoveToBorder = 7, // axis is moving to border
1794 eStaMoveToBorderApp = 8, // axis is moving to borderapp
1795 eStaMoveToDigitalSensor = 9, // axis is moving to digital sensor
1796 eStaMoveToAnalogSensor = 10, // axis is moving to analog sensor
1797 eStaMoveSafe = 11, // axis is moving safe
1798 eStaMoveCarefully = 12, // axis is moving carefully
1799 eStaJoyStickDisabling = 13, // axis in joystick mode, but it's disabling (i.e. stopping the axis)
1800 eStaMoveEx = 14, // axis is moving extended
1801 eStaMovePath = 15, // axis is part of a running movepath
1802 };
1803
1804 // reference support
1805 enum {
1806 eRefNo = 0, // no reference support
1807 eRefYes = 1, // reference support requested
1808 eRefYesOpposite = 2, // reference support requested (search reference in opposite direction)
1809 eRefYesDistanceCoded= 3, // distance coded reference support requested
1810 };
1811
1812 // reference search types
1813 enum {
1814 eRefSearchDefault = 0, // 'safe controller' it the controller supports it otherwize 'single'
1815 eRefSearchSingle = 1, // only one reference search (the standard for over 25 years)
1816 eRefSearchSafe = 2, // search two times or handle over to controller if it does support 'safe sync'
1817 eRefSearchSafeController= 3, // require 'safe search' by controller
1818 };
1819
1820 // options
1821 enum {
1822 eJoyTypeDigital = 0, // joystick type 'digital'
1823 eJoyTypeAnalog = 1 // joystick type 'analog'
1824 };
1825
1826 // protected member functions
1827 protected :
1830 const char* apParam=0);
1835 { return m_pModule;};
1837 CINCOObject* GetRegister(CINCOObject* apParent=0);
1839 void RegisterIO(CINCOObject* apParent);
1841 bool HasLimit() const;
1843 bool HasPosNegLimit() const;
1849 void Monitor();
1853 virtual bool DispatchReply(CINOSTaskExMsg* apMsg);
1855 void UpdateResource(const char* apName);
1856
1857 // protected member functions
1858 protected :
1870 inosName64 m_cAlias;
1872 char m_cParam[32];
1874 inosResName m_cName;
1876 inosResName m_cZero;
1878 inosResName m_cBrake;
1880 inosResName m_cLimitPos;
1882 inosResName m_cLimitNeg;
1884 inosResName m_cJoyPos;
1886 inosResName m_cJoyNeg;
1888 inosResName m_cJoyAdc;
1890 inosResName m_cWheel;
1892 CINCOObject* m_pRegister;
1927
1940
1945
1952 tMsgId m_LimitNegMsgId;
1953
1954 // axis init members
1955
2004
2005 // axis calib members
2006
2013
2014 // axis brake members
2015
2024
2025 // axis joystick members
2026
2037
2038 // axis wheel members
2039
2048
2049 // monitor members
2050
2063
2066
2067 // check config lock
2068 static CINOSMutex m_Config;
2069
2072};
2073
2074//------------------------------------------------------------------------------
2075// class CINOSMcRobotCmd
2076//------------------------------------------------------------------------------
2077//
2079{
2080 //--- user interface -------------------------------------------------------
2081
2082 // public member functions
2083 public :
2086 void* apCallBackObject = NULL);
2089
2098
2101 eTypAbsolute,
2102 eTypRelative
2103 };
2104
2107 eEvtBgnUnit=0,
2108 eEvtEndUnit=1,
2109 eEvtBgnMs=2,
2110 eEvtEndMs=3,
2111 eEvtBgnCmd=4,
2112 eEvtEndCmd=5,
2113 eEvtBrkUnit=6,
2114 eEvtBrkMs=7,
2115 eEvtBgnMsFix=8,
2116 eEvtEndMsFix=9
2117 };
2118
2120 virtual uint32 Check()=0;
2122 virtual uint32 Trigger()=0;
2124 virtual uint32 Run()=0;
2126 virtual uint32 Stop(uint32 auReply)=0;
2128 virtual uint32 Break()
2129 { return 0;};
2131 virtual uint32 Continue()
2132 { return 0;};
2134 virtual uint32 EmgStop()=0;
2136 virtual void Done(uintid auPartId)=0;
2137
2140 { return m_eState;};
2141
2143 const char* GetName();
2146 { return m_pModule; };
2147
2149 uint32 GetReply() const
2150 { return m_uReply;};
2152 uint32 SetReply(uint32 auReply)
2153 { return m_uReply = auReply;};
2155 uint32 GetResult() const
2156 { return m_uResult;};
2158 uint32 SetResult(uint32 auResult)
2159 { return m_uResult = auResult;};
2162 { return m_pMsg;};
2165 { if (m_pMsg) return m_pMsg->GetSender();else return NULL;};
2168 { m_uId = auId;};
2171 { if (!m_uId) return m_pMsg->GetId(); else return m_uId;};
2172
2174 virtual void AddEvent(const char* apName, real64 arValue, eEventType aeEventType,
2175 bool abFireEvent=true, uint32 auFlags=0){};
2177 virtual bool GetEventTicks(const char* apName, uint64& auBusTicks,
2178 uint8& auBusId)
2179 { auBusTicks=0; auBusId=CINOSBus::GetFirstBus()->GetId(); return false;};
2180
2184
2186 virtual void SetSlowMotion(real64 arSlowMotion)=0;
2188 virtual void GetCmdPosition(real64& arPosition)=0;
2190 virtual void GetActPosition(real64& arPosition)=0;
2192 virtual void GetActVelocity(real64& arVelocity)=0;
2193
2194 #ifdef INOS_USE_CUSTOMER_IMAGE_DATA
2195 void* GetCustomerSpecificData() const;
2196 //; \return The pinter to the customer specific data (or NULL if
2197 //; no such data are set).
2198 void SetCustomerSpecificData(void* apData);
2199 //; Sets apData to be the "customer specific data" of this axis.
2200 //; The function doesn't care about any previously set customer
2201 //; specific data: The caller is 100% responsible for freeing amy
2202 //; resource related to these data!
2203 //; This class will never access the data in any way apart from
2204 //; initialization to NULL during object contstruction!
2205 #endif
2206
2207 //--- internal -------------------------------------------------------------
2208
2209 friend class CINOSMcRobot;
2210 friend class CINOSMcRobotSync;
2211
2212 // protected member functions
2213 protected :
2216 { return m_pCallBack;};
2222 { return m_pCallBackObject; };
2224 int32 GetBusTicks(uint8 auBusId, real64 arMs);
2230 virtual void Handle(){};
2231
2233 enum eFlags {
2234 eFlgBegin = 0x00000001,
2235 eFlgEnd = 0x00000002,
2236 eFlgMoveTime = 0x00000004,
2237 eFlgSlowMotion = 0x00000008,
2238 eFlgFireEvent = 0x00000010,
2239 eFlgLength = 0x00000020,
2240 eFlgDepart = 0x00000040,
2241 eFlgMultipleEvent = 0x00000080,
2242 eFlgEmgStop = 0x40000000,
2243 eFlgDone = 0x80000000
2244 };
2245
2246 // protected members
2247 protected :
2251 uint32 m_uReply;
2263 char m_cEndEvent[32];
2272 #ifdef INOS_USE_CUSTOMER_IMAGE_DATA
2279 #endif
2282
2285};
2286
2287//------------------------------------------------------------------------------
2288// class CINOSMcRobotCmdMove
2289//------------------------------------------------------------------------------
2290//
2292//
2294{
2295 //--- user interface -------------------------------------------------------
2296
2297 // public member functions
2298 public :
2301 real64 arSlowMotion=REAL64(0.0));
2307 void* apCallBackObject, real64 arSlowMotion=REAL64(0.0));
2310
2312 void AddMove(tMcAxisName apAxis, real64 arPosition, const char* apParam,
2313 eMoveType aeMoveType=eTypAbsolute);
2316 eMoveType aeMoveType=eTypAbsolute);
2318 void AddMove(tMcAxisName apAxis, real64 arPosition, const char* apParam,
2319 real64 arSlowMotion, eMoveType aeMoveType=eTypAbsolute);
2320
2323 real64 arVelocity, const char* apParam, eMoveType aeMoveType=eTypAbsolute);
2326 real64 arVelocity, SINOSRampParam* apParam, eMoveType aeMoveType=eTypAbsolute);
2329 real64 arVelocity, const char* apParam, eMoveType aeMoveType=eTypAbsolute);
2332 real64 arVelocity, SINOSRampParam* apParam, eMoveType aeMoveType=eTypAbsolute);
2333
2335 virtual void AddEvent(const char* apName, real64 arValue, eEventType aeEventType,
2336 bool abFireEvent=true, uint32 auFlags=0) override;
2337
2339 virtual bool GetEventTicks(const char* apName, uint64& auBusTicks, uint8& auBusId) override;
2341 virtual uint32 GetEventMultiple(const char* apName);
2344
2346 virtual uint32 Check() override;
2348 virtual uint32 Trigger() override;
2350 virtual uint32 Run() override;
2352 virtual uint32 Stop(uint32 auReply) override;
2354 virtual uint32 EmgStop() override;
2356 virtual void Done(uintid auPartId) override;
2357
2359 virtual void SetSlowMotion(real64 arSlowMotion) override;
2361 virtual void GetSlowMotion(real64& arSlowMotion)
2362 {
2363 if (m_rSlowMotionOverwrite != REAL64(0.0)){
2364 // overwrite active
2366 }
2367 else {
2369 }
2370 }
2372 virtual void GetCmdPosition(real64& arPosition) override;
2376 virtual void GetActPosition(real64& arPosition) override;
2378 virtual void GetActVelocity(real64& arVelocity) override;
2380 virtual void GetCmdVelocity(real64& arVelocity);
2381
2382 //--- internal -------------------------------------------------------------
2383
2384 friend class CINOSMcRobot;
2385
2386 // private methods
2387 private :
2389 void Create (real64 arSlowMotion);
2391 void CalcMoveTime();
2393 uint32 GetSyncTime(const char* apSync, real64& arTime);
2395 void iAddMove(SINOSMcRobotCmdMovePart* apPart, real64 arPosition,
2398 virtual void Handle() override;
2399
2400 // protected members
2401 protected :
2402
2404 uint32 m_uFlags;
2421
2424};
2425
2426//------------------------------------------------------------------------------
2427// class CINOSMcRobotCmdLinear
2428//------------------------------------------------------------------------------
2429//
2432//
2434{
2435 //--- user interface -------------------------------------------------------
2436
2437 // public member functions
2438 public :
2441 void* apCallBack = NULL, real64 arSlowMotion=REAL64(0.0));
2447 void* apCallBack, void* apCallBackObject,
2448 real64 arSlowMotion=REAL64(0.0));
2451
2454 eMoveType aeMoveType=eTypAbsolute, bool abLength=true);
2455
2457 virtual void AddEvent(const char* apName, real64 arValue, eEventType aeEventType,
2458 bool abFireEvent=true, uint32 auFlags=0);
2459
2461 virtual bool GetEventTicks(const char* apName, uint64& auBusTicks, uint8& auBusId);
2462
2464 virtual void SetMoveApp(real64 arAppPos, real64 arAppVel);
2466 virtual void SetMoveDep(real64 arDepPos, real64 arDepVel);
2467
2469 virtual uint32 Check();
2471 virtual uint32 Trigger();
2473 virtual uint32 Run();
2475 virtual uint32 Stop(uint32 auReply);
2477 virtual uint32 EmgStop();
2479 virtual void Done(uintid auPartId);
2480
2482 virtual void SetSlowMotion(real64 arSlowMotion);
2484 virtual void GetCmdPosition(real64& arPosition);
2486 virtual void GetActPosition(real64& arPosition);
2488 virtual void GetActVelocity(real64& arVelocity);
2489
2490 //--- internal -------------------------------------------------------------
2491
2492 // private methods
2493 private :
2495 void Create (const char* apParam, real64 arSlowMotion);
2497 void CalcMoveTime();
2499 uint32 GetSyncTime(const char* apSync, real64& arTime);
2501 virtual void Handle();
2503 #ifdef INOS_SAFETY_SUPPORT
2505 #endif
2506
2507 // private members
2508 private :
2510 inosName64 m_cParam;
2512 uint32 m_uFlags;
2514 real64 m_rMoveTime;
2516 real64 m_rMoveLength;
2518 real64 m_rSlowMotion;
2520 real64 m_rMvPos;
2522 real64 m_rMvVel;
2524 #ifdef INOS_SAFETY_SUPPORT
2525 real64 m_rVorg;
2526 #endif
2528 SINOSRampParam* m_pParam;
2530 CINOSBaseRamp* m_pRamp;
2532 SINOSMcRobotCmdLinearPart* m_pFstPart;
2534 SINOSMcRobotCmdLinearPart* m_pLstPart;
2536 SINOSMcRobotCmdLinearEvent* m_pFstEvent;
2538 SINOSMcRobotCmdLinearEvent* m_pLstEvent;
2539 #ifdef INOS_SAFETY_SUPPORT
2540 uint8 m_uSafetyType;
2541 #endif
2542
2545};
2546
2547//------------------------------------------------------------------------------
2548// class CINOSMcRobotCmdEndless
2549//------------------------------------------------------------------------------
2550//
2561{
2562 //--- user interface -------------------------------------------------------
2563
2564 // public member functions
2565 public :
2568 const char* apParam, void* apCallBack = NULL, real64 arSlowMotion=REAL64(0.0));
2574 const char* apParam, void* apCallBack, void* apCallBackObject,
2575 real64 arSlowMotion=REAL64(0.0));
2578
2580 virtual uint32 Check();
2582 virtual uint32 Trigger();
2584 virtual uint32 Run();
2586 virtual uint32 Stop(uint32 auReply);
2588 virtual uint32 EmgStop();
2590 virtual void Done(uintid auPartId);
2591
2593 virtual void SetSlowMotion(real64 arSlowMotion);
2595 virtual void GetCmdPosition(real64& arPosition);
2597 virtual void GetActPosition(real64& arPosition);
2599 virtual void GetActVelocity(real64& arVelocity);
2600
2601 //--- internal -------------------------------------------------------------
2602
2603 // private methods
2604 private:
2606 void Create(tMcAxisName apAxis, bool abPositive, const char* apParam,
2607 real64 arSlowMotion);
2608
2609 // private members
2610 private :
2612 inosName32 m_cAxis;
2614 inosName64 m_cParam;
2616 CINOSMcRobotAxis* m_pAxis;
2618 uint32 m_uFlags;
2620 bool m_bPositive;
2622 real64 m_rSlowMotion;
2624 SINOSRampParam* m_pParam;
2625
2628};
2629
2630//------------------------------------------------------------------------------
2631// class CINOSMcRobotCmdMoveSafe
2632//------------------------------------------------------------------------------
2633//
2635{
2636 //--- user interface -------------------------------------------------------
2637
2638 // public member functions
2639 public :
2642 real64 arPosition1, real64 arSafe1, real64 arSafe2, const char* apParam1,
2643 tMcAxisName apAxisP, real64 arPositionP, const char* apParamP, void* apCallBack = NULL,
2644 void* apCallBackObject = NULL);
2646 real64 arPosition1, real64 arSafe1, real64 arSafe2, SINOSRampParam* apParam1,
2648 void* apCallBackObject = NULL);
2651 real64 arPosition1, real64 arSafe1, real64 arSafe2, const char* apParam1, const char* apParam2,
2652 tMcAxisName apAxisP, real64 arPositionP, const char* apParamP, void* apCallBack = NULL,
2653 void* apCallBackObject = NULL);
2657 void* apCallBackObject = NULL);
2660
2662 virtual uint32 Check();
2664 virtual uint32 Trigger();
2666 virtual uint32 Run();
2668 virtual uint32 Stop(uint32 auReply);
2670 virtual uint32 EmgStop();
2672 virtual void Done(uintid auPartId);
2673
2675 virtual void SetSlowMotion(real64 arSlowMotion);
2677 virtual void GetCmdPosition(real64& arPosition);
2679 virtual void GetActPosition(real64& arPosition);
2681 virtual void GetActVelocity(real64& arVelocity);
2682
2684 virtual bool GetEventTicks(const char* apName, uint64& auBusTicks, uint8& auBusId);
2685
2686 //--- internal -------------------------------------------------------------
2687
2688 // private methods
2689 private :
2690 // create command
2691 void Create(tMcAxisName apAxis1, real64 arPosition1, real64 arSafe1,
2692 real64 arSafe2, const char* apParam1, const char* apParam2, tMcAxisName apAxisP,
2693 real64 arPositionP, const char* apParamP);
2694 // create command
2695 void Create(tMcAxisName apAxis1, real64 arPosition1, real64 arSafe1,
2698
2699 // private members
2700 private :
2702 bool m_bNamed;
2704 inosName32 m_cAxis1;
2706 CINOSMcRobotAxis* m_pAxis1;
2708 inosName32 m_cAxisP;
2710 CINOSMcRobotAxis* m_pAxisP;
2711
2712 // params
2713
2715 real64 m_rPosition1;
2717 real64 m_rSafe1;
2719 real64 m_rSafe2;
2721 inosName64 m_cParam1;
2723 SINOSRampParam m_sParam1;
2725 inosName64 m_cParam2;
2727 SINOSRampParam m_sParam2;
2728
2730 real64 m_rPositionP;
2732 inosName64 m_cParamP;
2734 SINOSRampParam m_sParamP;
2735
2737 uint64 m_uOnEndTicks;
2739 uint8 m_uOnEndBusId;
2740
2743};
2744
2745//------------------------------------------------------------------------------
2746// class CINOSMcRobotCmdMoveToBorder
2747//------------------------------------------------------------------------------
2748//
2750{
2751 //--- user interface -------------------------------------------------------
2752
2753 // public member functions
2754 public :
2757 real64 arPosition, const char* apParam, void* apCallBack = NULL,
2758 void* apCallBackObject = NULL);
2760 real64 arPosition, real64& arResult, const char* apParam, void* apCallBack = NULL,
2761 void* apCallBackObject = NULL);
2764
2766 virtual uint32 Check();
2768 virtual uint32 Trigger();
2770 virtual uint32 Run();
2772 virtual uint32 Stop(uint32 auReply);
2774 virtual uint32 EmgStop();
2776 virtual void Done(uintid auPartId);
2777
2779 virtual void SetSlowMotion(real64 arSlowMotion);
2781 virtual void GetCmdPosition(real64& arPosition);
2783 virtual void GetActPosition(real64& arPosition);
2785 virtual void GetActVelocity(real64& arVelocity);
2786
2787 //--- internal -------------------------------------------------------------
2788
2789 // private methods
2790 private :
2791 // create command
2792 void Create(tMcAxisName apAxis, real64 arPosition, real64* apResult,
2793 const char* apParam);
2794
2795 // private members
2796 private :
2798 inosName32 m_cAxis;
2800 CINOSMcRobotAxis* m_pAxis;
2802 real64 m_rResult;
2803
2804 // params
2805
2807 real64 m_rPosition;
2809 real64* m_pResult;
2811 inosName64 m_cParam;
2812
2815};
2816
2817//------------------------------------------------------------------------------
2818// class CINOSMcRobotCmdMoveToBorderApp
2819//------------------------------------------------------------------------------
2820//
2822{
2823 //--- user interface -------------------------------------------------------
2824
2825 // public member functions
2826 public :
2829 real64 arPosition, real64 arPositionVel, real64 arVelocity,
2830 const char* apParam, void* apCallBack = NULL,
2831 void* apCallBackObject = NULL);
2833 real64 arPosition, real64 arPositionVel, real64 arVelocity,
2834 real64& arResult, const char* apParam, void* apCallBack = NULL,
2835 void* apCallBackObject = NULL);
2837 real64 arPosition, real64 arPositionVel, real64 arVelocity,
2838 real64& arResult, uint32 auFlags, const char* apParam, void* apCallBack = NULL,
2839 void* apCallBackObject = NULL);
2842
2844 virtual uint32 Check();
2846 virtual uint32 Trigger();
2848 virtual uint32 Run();
2850 virtual uint32 Stop(uint32 auReply);
2852 virtual uint32 EmgStop();
2854 virtual void Done(uintid auPartId);
2855
2857 virtual void SetSlowMotion(real64 arSlowMotion);
2859 virtual void GetCmdPosition(real64& arPosition);
2861 virtual void GetActPosition(real64& arPosition);
2863 virtual void GetActVelocity(real64& arVelocity);
2864
2865 //--- internal -------------------------------------------------------------
2866
2867 // private methods
2868 private :
2869 // create command
2870 void Create(tMcAxisName apAxis, real64 arPosition, real64 arPositionVel,
2871 real64 arVelocity, real64* apResult, uint32 auFlags, const char* apParam);
2872
2873 // private members
2874 private :
2876 inosName32 m_cAxis;
2878 CINOSMcRobotAxis* m_pAxis;
2880 real64 m_rResult;
2881
2882 // params
2883
2885 real64 m_rPosition;
2887 real64 m_rPositionVel;
2889 real64 m_rVelocity;
2891 real64* m_pResult;
2893 uint32 m_uFlags;
2895 inosName64 m_cParam;
2896
2899};
2900
2901//------------------------------------------------------------------------------
2902// class CINOSMcRobotCmdMoveToDigitalSensor
2903//------------------------------------------------------------------------------
2904//
2925{
2926 //--- user interface -------------------------------------------------------
2927
2928 // public member functions
2929 public :
2946 const char* apName, real64 arPosition, bool abSet, const char* apParam,
2947 void* apCallBack = NULL, void* apCallBackObject = NULL);
2970 const char* apName, real64 arPosition, bool abSet, real64& arResult,
2971 const char* apParam, void* apCallBack = NULL, void* apCallBackObject = NULL);
3005 const char* apName, real64 arPosition, bool abSet, real64& arResult,
3006 uint32 auFlags, const char* apParam, void* apCallBack = NULL,
3007 void* apCallBackObject = NULL);
3021 real64 arPositionVel, real64 arVelocity,
3022 const char* apName, real64 arPosition, bool abSet, real64& arResult,
3023 uint32 auFlags, const char* apParam, void* apCallBack = NULL,
3024 void* apCallBackObject = NULL);
3025 real64 m_rPositionVel{};
3026 real64 m_rVelocity{};
3029
3031 virtual void AddEvent(const char* apName, real64 arValue, eEventType aeEventType,
3032 bool abFireEvent=true, uint32 auFlags=0);
3034 virtual bool GetEventTicks(const char* apName, uint64& auBusTicks, uint8& auBusId);
3035
3037 virtual uint32 Check();
3039 virtual uint32 Trigger();
3041 virtual uint32 Run();
3043 virtual uint32 Stop(uint32 auReply);
3045 virtual uint32 EmgStop();
3047 virtual void Done(uintid auPartId);
3048
3050 virtual void SetSlowMotion(real64 arSlowMotion);
3052 virtual void GetCmdPosition(real64& arPosition);
3054 virtual void GetActPosition(real64& arPosition);
3056 virtual void GetActVelocity(real64& arVelocity);
3057
3058 //--- internal -------------------------------------------------------------
3059
3060 // private methods
3061 private :
3062 // create command
3063 void Create(uint32 auType, tMcAxisName apAxis, const char* apName,
3064 real64 arPosition, bool abSet, real64* apResult, uint32 auFlags,
3065 const char* apParam);
3067 void CalcMoveTime();
3069 uint32 GetSyncTime(const char* apSync, real64& arTime);
3070
3071 // private members
3072 private :
3074 inosName32 m_cAxis;
3076 CINOSMcRobotAxis* m_pAxis;
3078 CINOSBit* m_pInput;
3080 real64 m_rResult;
3082 real64 m_rSlowMotion;
3083 real64 m_rMoveTime{};
3084
3085 // params
3086
3088 uint32 m_uCallType;
3090 inosName64 m_cSensor;
3092 real64 m_rPosition;
3094 bool m_bSet;
3096 real64* m_pResult;
3098 uint32 m_uFlags;
3100 uint32 m_uTimeFlags;
3102 inosName64 m_cParam;
3103
3105 SINOSMcRobotCmdMoveEvent* m_pFstEvent{};
3107 SINOSMcRobotCmdMoveEvent* m_pLstEvent{};
3108
3111};
3112
3113//------------------------------------------------------------------------------
3114// class CINOSMcRobotCmdMoveToAnalogSensor
3115//------------------------------------------------------------------------------
3116//
3118{
3119 //--- user interface -------------------------------------------------------
3120
3121 // public member functions
3122 public :
3125 const char* apName, real64 arPosition, real64 arLevel, bool abGreater, const char* apParam,
3126 void* apCallBack = NULL, void* apCallBackObject = NULL);
3128 const char* apName, real64 arPosition, real64 arLevel, bool abGreater, real64& arResult,
3129 const char* apParam, void* apCallBack = NULL, void* apCallBackObject = NULL);
3131 const char* apName, real64 arPosition, real64 arLevel, bool abGreater, real64& arResult,
3132 uint32 auFlags, const char* apParam, void* apCallBack = NULL, void* apCallBackObject = NULL);
3133
3136
3138 virtual uint32 Check();
3140 virtual uint32 Trigger();
3142 virtual uint32 Run();
3144 virtual uint32 Stop(uint32 auReply);
3146 virtual uint32 EmgStop();
3148 virtual void Done(uintid auPartId);
3149
3151 virtual void SetSlowMotion(real64 arSlowMotion);
3153 virtual void GetCmdPosition(real64& arPosition);
3155 virtual void GetActPosition(real64& arPosition);
3157 virtual void GetActVelocity(real64& arVelocity);
3158
3159 //--- internal -------------------------------------------------------------
3160
3161 // private methods
3162 private :
3163 // create command
3164 void Create(uint32 auType, tMcAxisName apAxis, const char* apName,
3165 real64 arPosition, real64 arLevel, bool abGreater, real64* apResult,
3166 uint32 auFlags, const char* apParam);
3167
3168 // private members
3169 private :
3171 inosName32 m_cAxis;
3173 CINOSMcRobotAxis* m_pAxis;
3175 CINOSAdcChannel* m_pInput;
3177 real64 m_rResult;
3178
3179 // params
3180
3182 uint32 m_uCallType;
3184 inosName64 m_cSensor;
3186 real64 m_rPosition;
3188 real64 m_rLevel;
3190 bool m_bGreater;
3192 real64* m_pResult;
3194 uint32 m_uFlags;
3196 inosName64 m_cParam;
3198 SINOSRampParam m_Param;
3199
3202};
3203
3204//------------------------------------------------------------------------------
3205// class CINOSMcRobotCmdMoveCarefully
3206//------------------------------------------------------------------------------
3207//
3209{
3210 //--- user interface -------------------------------------------------------
3211
3212 // public member functions
3213 public :
3216 real64 arPosition, real64 arPosError, real64 arCurLimit,
3217 const char* apParam, void* apCallBack = NULL, void* apCallBackObject = NULL);
3220
3222 virtual uint32 Check();
3224 virtual uint32 Trigger();
3226 virtual uint32 Run();
3228 virtual uint32 Stop(uint32 auReply);
3230 virtual uint32 EmgStop();
3232 virtual void Done(uintid auPartId);
3233
3235 virtual void SetSlowMotion(real64 arSlowMotion);
3237 virtual void GetCmdPosition(real64& arPosition);
3239 virtual void GetActPosition(real64& arPosition);
3241 virtual void GetActVelocity(real64& arVelocity);
3242
3243 //--- internal -------------------------------------------------------------
3244
3245 // private members
3246 private :
3248 inosName32 m_cAxis;
3250 CINOSMcRobotAxis* m_pAxis;
3251
3252 // params
3253
3255 real64 m_rPosition;
3257 real64 m_rCurLimit;
3259 real64 m_rCurLimitOrig;
3261 real64 m_rPosError;
3264 real64 m_rPosErrorOrig;
3266 real64 m_rBorderPosUnused;
3268 inosName64 m_cParam;
3269
3272};
3273
3274//------------------------------------------------------------------------------
3275// class CINOSMcRobotCmdMoveEx
3276//------------------------------------------------------------------------------
3277//
3279{
3280 //--- user interface -------------------------------------------------------
3281
3282 // public member functions
3283 public :
3286 real64 arTrgPosition,
3287 uint32 auFlags, const char* apTrgName, real64 arTrgLevel,
3288 const char* apParam, void* apCallBack = NULL, void* apCallBackObject = NULL);
3291
3293 virtual uint32 Check();
3295 virtual uint32 Trigger();
3297 virtual uint32 Run();
3299 virtual uint32 Stop(uint32 auReply);
3301 virtual uint32 EmgStop();
3303 virtual void Done(uintid auPartId);
3304
3306 virtual void SetSlowMotion(real64 arSlowMotion);
3308 virtual void GetCmdPosition(real64& arPosition);
3310 virtual void GetActPosition(real64& arPosition);
3312 virtual void GetActVelocity(real64& arVelocity);
3313
3314 //--- internal -------------------------------------------------------------
3315
3316 // private members
3317 private :
3319 inosName32 m_cAxis;
3321 CINOSMcRobotAxis* m_pAxis;
3322
3323 // params
3325 real64 m_rPosition;
3327 uint32 m_uFlags;
3329 inosName64 m_cTriggerName;
3331 real64 m_rTrgLevel;
3333 real64 m_rTrgPosition;
3335 inosName64 m_cParam;
3336
3339};
3340
3341//------------------------------------------------------------------------------
3342// class CINOSMcRobotCmdShape
3343//------------------------------------------------------------------------------
3344//
3369
3370//
3371//
3373{
3374 //--- user interface -------------------------------------------------------
3375
3376 // public member functions
3377 public :
3380 uint32 auPoints = 0, void* apCallBack = NULL,
3381 real64 arSlowMotion = REAL64(0.0));
3387 uint32 auPoints, void* apCallBack, void* apCallBackObject,
3388 real64 arSlowMotion = REAL64(0.0));
3391 const char* apParam, uint32 auPoints = 0, void* apCallBack = NULL,
3392 real64 arSlowMotion = REAL64(0.0));
3398 const char* apParam, uint32 auPoints, void* apCallBack,
3399 void* apCallBackObject, real64 arSlowMotion = REAL64(0.0));
3402 const char* apParam, uint32 auPoints = 0, void* apCallBack = NULL,
3403 real64 arSlowMotion = REAL64(0.0));
3409 const char* apParam, uint32 auPoints, void* apCallBack,
3410 void* apCallBackObject, real64 arSlowMotion = REAL64(0.0));
3413
3414 // shape methods
3415
3417 virtual void SetTolerance(real64 arTolerance);
3419 virtual void SetShapeFlags(uint32 auFlags)
3420 { m_uShapeFlags = auFlags; };
3433
3437 virtual void SetEnd();
3441 virtual void Pause(double adTime);
3443 virtual void Linear(tMcAxisName apAxis, double adPosition, uint32 auFlags=0);
3445 virtual void Linear(tMcAxisName apAxis, double adPosition, double adTolerance, uint32 auFlags=0);
3447 virtual void Rapid(tMcAxisName apAxis, double adPosition, uint32 auFlags=0);
3450 double adMid1, double adMid2, double adAngle, bool abAngleAbsolute,
3451 uint32 auFlags=0);
3454 double adMid1, double adMid2, double adAngle, bool abAngleAbsolute,
3455 uint32 auFlags=0);
3458 double adEnd1, double adEnd2, double adMid1, double adMid2,
3459 uint32 auFlags=0);
3462 double adEnd1, double adEnd2, double adMid1, double adMid2,
3463 uint32 auFlags=0);
3466 double adEnd1, double adEnd2, double adRadius, uint32 auFlags=0);
3469 double adEnd1, double adEnd2, double adRadius, uint32 auFlags=0);
3471 virtual void Absolute (tMcAxisName apAxis="");
3473 virtual void Incremental (tMcAxisName apAxis="");
3474
3476 virtual void AddEvent(const char* apName, real64 arValue, eEventType aeEventType,
3477 bool abFireEvent=true, uint32 auFlags=0);
3481 virtual bool GetEventTicks(const char* apName, uint64& auBusTicks, uint8& auBusId);
3483 virtual CINOSShape* GetShape()
3484 { return m_pShape; };
3485
3487 virtual uint32 Check();
3489 virtual uint32 Trigger();
3491 virtual uint32 Run();
3493 virtual uint32 Stop(uint32 auReply);
3495 virtual uint32 Break();
3497 virtual uint32 Continue();
3499 virtual uint32 EmgStop();
3501 virtual void Done(uintid auPartId);
3502
3504 virtual void SetSlowMotion(real64 arSlowMotion);
3506 virtual void GetSlowMotion(real64& arSlowMotion)
3507 {
3509 }
3511 virtual void GetCmdPosition(real64& arPosition);
3513 virtual void GetActPosition(real64& arPosition);
3515 virtual void GetActVelocity(real64& arVelocity);
3517 virtual void GetCmdVelocity(real64& arVelocity);
3519 virtual uint32 GetSets();
3521 virtual uint32 GetActSet();
3523 virtual real64 GetMoveTime();
3524
3525 //--- internal -------------------------------------------------------------
3526
3527 // private methods
3528 private:
3530 void Create (const char* apShapeName, CINOSShape* apShape,
3531 const char* apParam, uint32 auPoints, real64 arSlowMotion);
3532
3533 // protected members
3534 protected :
3535
3537 void SetupParam(const char* apParam);
3538
3540 inosName64 m_cShapeName;
3542 inosName64 m_cParam;
3551 // ! is tolerance requested
3552 bool m_bSetTolerance;
3554 CINOSShape* m_pShape;
3563
3566};
3567
3568//------------------------------------------------------------------------------
3569// class CINOSMcRobotSync
3570//------------------------------------------------------------------------------
3571//
3573{
3574 //--- user interface ---------------------------------------------------
3575
3576 // public members
3577 public:
3580
3581 //--- internals --------------------------------------------------------
3582
3583 // protected members
3584 protected :
3586 virtual void Signal();
3587
3588 // private members
3589 private :
3591 CINOSTaskEx* m_pTask;
3593 tMsgId m_CmdId;
3595 uintid m_uPartId;
3596
3599};
3600
3601
3602//------------------------------------------------------------------------------
3603// class CINOSMcRobotInitSync
3604//------------------------------------------------------------------------------
3605//
3609{
3610 //--- user interface ---------------------------------------------------
3611
3612 // public members
3613 public:
3616
3617 //--- internals --------------------------------------------------------
3618
3619 // protected members
3620 protected :
3622 virtual void SignalEx(CINOSTaskExMsg* apMsg, uint32 auRplId, uint32 auAppError);
3623
3624 // private members
3625 private :
3627 CINOSMcRobot* m_pModule;
3629 CINOSMcRobotCmdInit* m_pInitCmd;
3631 SINOSMcRobotCmdInitPart* m_pPart;
3632
3635};
3636
3637//------------------------------------------------------------------------------
3638// class CINOSMcRobotCmdInit
3639//------------------------------------------------------------------------------
3640//
3642//
3644{
3645 //--- user interface -------------------------------------------------------
3646
3647 // public member functions
3648 public :
3651 void* apCallBackObject = NULL);
3654
3657
3659 virtual uint32 Check();
3661 virtual uint32 Trigger();
3663 virtual uint32 Run();
3665 virtual uint32 Stop(uint32 auReply);
3667 virtual uint32 EmgStop();
3669 virtual void Done(uintid auPartId);
3671 virtual void SetSlowMotion(real64 arSlowMotion){};
3673 virtual void GetCmdPosition(real64& arPosition);
3675 virtual void GetActPosition(real64& arPosition);
3677 virtual void GetActVelocity(real64& arVelocity);
3678
3679 // init types
3680
3701
3702 //--- internal -------------------------------------------------------------
3703
3704 friend class CINITTask;
3705 friend class CINOSMcRobotInitSync;
3706
3707 // proteced member functions
3708 protected :
3721
3724
3726 enum EFlags {
3727 eFlgStopped = 0x40000000,
3728 eFlgDone = 0x80000000
3729 };
3730
3732 enum EOrder {
3733 eOrdNone = 0,
3734 eOrdFirst = 1,
3735 eOrdSecond = 2,
3736 eOrdThird = 3,
3737 eOrdFourth = 4,
3738 eOrdFifth = 5,
3739 eOrdSixth = 6,
3740 eOrdSeventh = 7,
3741 eOrdLast = 7
3742 };
3743
3744 // protected members
3745 protected :
3751 uint32 m_uFlags;
3758
3761};
3762
3763//------------------------------------------------------------------------------
3764// class CINOSMcRobotCmdCalib
3765//------------------------------------------------------------------------------
3766//
3768//
3770{
3771 //--- user interface -------------------------------------------------------
3772
3773 // public member functions
3774 public :
3777 void* apCallBackObject = NULL);
3780
3783
3785 virtual uint32 Check();
3787 virtual uint32 Trigger();
3789 virtual uint32 Run();
3791 virtual uint32 Stop(uint32 auReply);
3793 virtual uint32 EmgStop();
3795 virtual void Done(uintid auPartId);
3797 virtual void SetSlowMotion(real64 arSlowMotion){};
3799 virtual void GetCmdPosition(real64& arPosition);
3801 virtual void GetActPosition(real64& arPosition);
3803 virtual void GetActVelocity(real64& arVelocity);
3804
3805 // calib types
3806
3809
3810 //--- internal -------------------------------------------------------------
3811
3812 friend class CCALIBTask;
3813
3814 // proteced member functions
3815 protected :
3824
3826 enum eFlags {
3827 eFlgStopped = 0x40000000,
3828 eFlgDone = 0x80000000
3829 };
3830
3831 // protected members
3832 protected :
3845
3848};
3849
3850//------------------------------------------------------------------------------
3851// end of file
3852//------------------------------------------------------------------------------
3853
3854#endif // INC_CINOSMCROBOT_H
The mcmodule class.
const char * tMcAxisName
The name of a McRobot axis.
Definition cinosmcrobot.h:193
The CINOSMovePath class.
#define DECLARE_DYNAMIC(aClass)
Definition cinospartitionmemory.h:328
Definition cinosadcchannel.h:53
Definition cinosbaseramp.h:752
Definition cinosbit.h:54
static CINOSBus * GetFirstBus()
Return first valid bus (aka "g_pBus[0]").
Definition cinosbus.h:641
Definition cinosmcmodule.h:126
uint32 GetResId() const
get resource id
Definition cinosmcmodule.h:196
Definition cinosmcmodule.h:1900
Definition cinosmcmodule.h:296
Definition cinosmcrobot.h:1447
const char * GetWheelParam() const
get wheel param
Definition cinosmcrobot.h:1705
uint32 m_uFlags
axis flags
Definition cinosmcrobot.h:1864
CINOSPosChannel * m_pWheel
pointer to wheel pos channel
Definition cinosmcrobot.h:1920
uint32 GetSourceId() const
get source id
Definition cinosmcrobot.h:1496
real64 GetMinPositionOn() const
get minposition at on
Definition cinosmcrobot.h:1481
nvuint32 m_uInitBorder
init border support
Definition cinosmcrobot.h:1967
nvreal64 m_rInitReferenceTol
init reference tolerance
Definition cinosmcrobot.h:1973
inosResName m_cJoyAdc
joystick adc name
Definition cinosmcrobot.h:1888
bool m_bLimitNeg
neg limit reached
Definition cinosmcrobot.h:1949
bool HasLimit() const
return true if axes has limit supervision
void HndBrakeReleaseRequest()
handle brake release request
nvreal64 m_rInitZeroSlow
init zero search slowmotion factor
Definition cinosmcrobot.h:1987
nvreal64 m_rMaxPositionOn
max. allowed position at 'on'
Definition cinosmcrobot.h:1937
CINOSMcRobotAxis(CINOSMcRobot *apModule, uint32 auNumber, const char *apAlias=0, const char *apParam=0)
script constructor
void SetWheelFactor(real64 arFactor)
set wheel factor
Definition cinosmcrobot.h:1699
void SetAxis(CINOSPhysicalAxis *apAxis)
set pointer axis
Definition cinosmcrobot.h:1505
uint32 GetInitOrder() const
get init order
Definition cinosmcrobot.h:1556
real64 GetSlowMotion() const
get slowmotion factor
Definition cinosmcrobot.h:1475
virtual bool DispatchReply(CINOSTaskExMsg *apMsg)
dispatch reply message
real64 GetInitMovePos() const
get init move
Definition cinosmcrobot.h:1628
nvreal64 m_rInitMovePos
init move position
Definition cinosmcrobot.h:2001
nvreal64 m_rInitRange
init search range
Definition cinosmcrobot.h:1993
nvuint32 m_uWheelFilterLength
wheel filter length
Definition cinosmcrobot.h:2045
nvuint32 m_uInitType
init type
Definition cinosmcrobot.h:1957
CINOSBit * GetBrake() const
get pointer brake
Definition cinosmcrobot.h:1529
nvreal64 m_rLifetimeDistance
lifetime distance
Definition cinosmcrobot.h:1933
void ResetState(uint32 auNewState, uint32 auOldState)
reset state
real64 m_rMinPosition
min. position
Definition cinosmcrobot.h:1942
nvuint32 m_uInitCurrentLimit
init currentlimit support
Definition cinosmcrobot.h:1981
nvreal64 m_rJoyDeltaUnit
joystick delta [unit]
Definition cinosmcrobot.h:2034
void RegisterIO(CINCOObject *apParent)
register axis IO's
CINOSMcModuleRes * m_pJoyAdcRes
pointer to joyadc resource
Definition cinosmcrobot.h:1918
void ClrFlag(uint32 auFlag)
clear flag
Definition cinosmcrobot.h:1466
CINOSMcModuleRes * m_pWheelRes
pointer to wheel resource
Definition cinosmcrobot.h:1922
virtual void AddProp(const char *apName, nvreal64 &aMember, real64 arDefault, real64 arMin, real64 arMax, const char *apUnit, uint32 auDigits)
add nvreal property to the 'Prop' folder
virtual ~CINOSMcRobotAxis()
destructor
nvuint32 m_uMonitorActionError
monitor action error [0-no,1-cancel,2-cancel parent]
Definition cinosmcrobot.h:2058
real64 GetInitPos() const
get init position
Definition cinosmcrobot.h:1607
bool HasPosNegLimit() const
return true if axes has pos/neg limit supervision
void CheckLimit()
do limitcheck
uint32 CheckWarning(tMsgId &auMsgId)
check actual axis warning
CINOSBit * m_pZero
pointer to zero input
Definition cinosmcrobot.h:1900
void SaveLifetimeDistance()
save lifetime distance
real64 GetInitReferenceSearchTol() const
get init reference search tolerance
Definition cinosmcrobot.h:1577
nvstring m_cJoyParam
joystick param
Definition cinosmcrobot.h:2036
uint32 GetInitReferenceSearchType() const
get init reference search type
Definition cinosmcrobot.h:1574
nvuint32 m_uInitDirection
init direction
Definition cinosmcrobot.h:1961
SINOSRampParam m_sInitParam
init param's rounded to a integral V value
Definition cinosmcrobot.h:1924
uint32 GetInitEdge() const
get init edge
Definition cinosmcrobot.h:1562
SINOSRampParam * GetRampParam(const char *apParam, SINOSRampParam *apResult=NULL)
get ramp param (handles also names like e.g. Rapid[V=2.0 a=100.0])
CINOSBit * m_pLimitPos
pointer to zero input
Definition cinosmcrobot.h:1904
CINOSBit * m_pJoyPos
pointer to joypos input
Definition cinosmcrobot.h:1908
real64 GetMaxPositionOn() const
get maxposition at on
Definition cinosmcrobot.h:1484
CINOSMcModuleRes * m_pJoyNegRes
pointer to joyneg resource
Definition cinosmcrobot.h:1914
real64 GetInitZeroLeave() const
get zero leave distance
Definition cinosmcrobot.h:1604
void SetState(uint32 auState)
set state
bool HasBrake() const
return true if axis has brake
Definition cinosmcrobot.h:1655
nvuint32 m_uMonitorType
monitor enable request [0-no,1-error,2-warning,3-error/warning]
Definition cinosmcrobot.h:2056
bool GetOption(const char *apOption) const
get option
Definition cinosmcrobot.h:1469
CINOSMcModule * GetModule()
get pointer to my module
Definition cinosmcrobot.h:1834
int32 GetBrakeWaitOn() const
get brake wait on
Definition cinosmcrobot.h:1658
bool CheckLimitNeg() const
check neg limit
CINOSBit * GetZero()
get pointer zero input
Definition cinosmcrobot.h:1508
uint32 GetJoyDeltaInc() const
get joy delta inc
Definition cinosmcrobot.h:1681
CINOSBit * m_pLimitNeg
pointer to zero input
Definition cinosmcrobot.h:1906
SINOSRampParam m_sCalibParam
calib param's rounded to a integral V value
Definition cinosmcrobot.h:1926
uint32 GetMonitorType() const
get monitor type
Definition cinosmcrobot.h:1723
CINOSPhysicalAxis * m_pAxis
pointer to axis
Definition cinosmcrobot.h:1896
bool m_bLimitPos
pos limit reached
Definition cinosmcrobot.h:1947
real64 GetInitRange() const
get init range
Definition cinosmcrobot.h:1613
int32 GetBrakeWaitOff() const
get brake wait off
Definition cinosmcrobot.h:1661
nvuint32 m_uJoyType
joystick type
Definition cinosmcrobot.h:2028
real64 GetCalibTolerance() const
get calib tolerance
Definition cinosmcrobot.h:1643
real64 GetInitMaxCurrent() const
get init max current
Definition cinosmcrobot.h:1595
nvreal64 m_rMinPositionOn
min. allowed position at 'on'
Definition cinosmcrobot.h:1935
uint32 m_uMonitorPending
monitor pending
Definition cinosmcrobot.h:2054
CINOSxmsHandler * m_pBrakeReleaseHnd
brake release handler
Definition cinosmcrobot.h:2023
CINOSBit * GetLimitPos() const
get pointer limit pos input
Definition cinosmcrobot.h:1519
CINOSAdcChannel * m_pJoyAdc
pointer to joyadc channel
Definition cinosmcrobot.h:1916
uint32 GetMonitorActionError() const
get monitor action
Definition cinosmcrobot.h:1726
uint32 GetJoyWait() const
get joy wait
Definition cinosmcrobot.h:1678
void SetWarningMsgId(tMsgId aId)
set warning message id
Definition cinosmcrobot.h:1732
nvreal64 m_rCalibTolerance
calib tolerance
Definition cinosmcrobot.h:2010
tMsgId m_LimitPosMsgId
limit message id
Definition cinosmcrobot.h:1951
nvreal64 m_rInitReferenceSearchTol
init reference search tolerance
Definition cinosmcrobot.h:1977
nvreal64 m_rInitMaxCurrent
init max init current
Definition cinosmcrobot.h:1983
uint32 GetInitReference() const
get init reference support
Definition cinosmcrobot.h:1571
nvstring m_cInitParam
init param
Definition cinosmcrobot.h:1997
nvuint32 m_uMonitorActionWarning
monitor action warning [0-no,1-stop,2-stop parent]
Definition cinosmcrobot.h:2060
uint32 m_uBrakeReleaseRequest
brake release request
Definition cinosmcrobot.h:2021
nvreal64 m_rInitReferencePos
init reference position
Definition cinosmcrobot.h:1971
inosResName m_cZero
zero input name
Definition cinosmcrobot.h:1876
nvuint32 m_uSimLevel
sim level
Definition cinosmcrobot.h:1929
nvint32 m_iBrakeWaitOff
brake wait off [ms]
Definition cinosmcrobot.h:2019
inosResName m_cJoyPos
joystick pos name
Definition cinosmcrobot.h:1884
void SetBrakeReleaseRequest(int32 aiMs)
set brake release request
void SetInitMovePos(real64 arInitMovePos)
set init move
Definition cinosmcrobot.h:1631
uint32 GetWheelFilterLength() const
get wheel filter length
Definition cinosmcrobot.h:1702
void DisableMonitor(uint32 auType)
disable monitor
Definition cinosmcrobot.h:1717
const char * GetInitMoveParam() const
get init move param
Definition cinosmcrobot.h:1634
nvreal64 m_rInitPos
initial position
Definition cinosmcrobot.h:1991
CINCOObject * m_pRegister
pointer to axis properties folder
Definition cinosmcrobot.h:1892
SINOSRampParam * GetAdjCalibParam()
get adjusted calib params
Definition cinosmcrobot.h:1649
nvreal64 m_rPowerTimeout
power timeout
Definition cinosmcrobot.h:1939
inosResName m_cName
axis name
Definition cinosmcrobot.h:1874
tMsgId m_WarningMsgId
warning message id
Definition cinosmcrobot.h:2062
void EnableMonitor(uint32 auType)
enable monitor
Definition cinosmcrobot.h:1714
uint32 GetInitMove() const
get init reference support
Definition cinosmcrobot.h:1625
uint32 GetInitType() const
get init type
Definition cinosmcrobot.h:1553
uint32 GetMonitorActionWarning() const
get monitor warning
Definition cinosmcrobot.h:1729
nvreal64 m_rInitReferenceSearchBack
init reference search back
Definition cinosmcrobot.h:1979
CINOSMcRobot * m_pModule
pointer to my module
Definition cinosmcrobot.h:1866
nvuint32 m_uInitCommutation
init post commutation support
Definition cinosmcrobot.h:1965
real64 GetInitBorderLimit() const
get init border limit
Definition cinosmcrobot.h:1598
nvstring m_cWheelParam
wheel param
Definition cinosmcrobot.h:2047
uint32 CheckLimit(real64 arPosition)
do limitcheck
uint32 m_uMonitorEnabled
monitor enabled
Definition cinosmcrobot.h:2052
nvreal64 m_rInitSlaveBack
init slave backward
Definition cinosmcrobot.h:1995
nvuint32 m_uInitReference
init reference support
Definition cinosmcrobot.h:1969
nvuint32 m_uInitEdge
init input edge
Definition cinosmcrobot.h:1963
CINOSBit * m_pJoyNeg
pointer to joyneg input
Definition cinosmcrobot.h:1912
uint32 GetSimLevel() const
get simlevel
Definition cinosmcrobot.h:1472
void DoBrakeRelease()
brake release
Definition cinosmcrobot.h:1669
void Monitor()
monitor
CINOSBit * GetLimitNeg() const
get pointer limit neg input
Definition cinosmcrobot.h:1524
inosResName m_cWheel
wheel pos channel name
Definition cinosmcrobot.h:1890
void SetName(const char *apName)
set axis name
Definition cinosmcrobot.h:1493
nvuint32 m_uJoyDeltaInc
joystick delta [inc]
Definition cinosmcrobot.h:2032
real64 GetInitReferenceTol() const
get init reference tolerance
Definition cinosmcrobot.h:1589
uint32 GetJoyType() const
get joy type
Definition cinosmcrobot.h:1675
inosResName m_cLimitNeg
zero input name
Definition cinosmcrobot.h:1882
uint32 GetNumber() const
get axis number
Definition cinosmcrobot.h:1499
nvreal64 m_rSlowMotion
slowmotion factor
Definition cinosmcrobot.h:1931
uint32 m_uStateCount
state count
Definition cinosmcrobot.h:1862
CINCOObject * GetRegister(CINCOObject *apParent=0)
get inco registration
CINOSBit * m_pBrake
pointer to brake output
Definition cinosmcrobot.h:1902
SINOSRampParam * GetAdjInitParam()
get adjusted init params
Definition cinosmcrobot.h:1622
void DoBrake()
brake
Definition cinosmcrobot.h:1666
uint32 GetState()
get state
Definition cinosmcrobot.h:1453
const char * GetJoyParam() const
get joy param
Definition cinosmcrobot.h:1687
real64 GetInitZeroSlow() const
get zero slowmotion
Definition cinosmcrobot.h:1601
uint32 CheckConfig()
check axis config
real64 m_rMaxPosition
max. position
Definition cinosmcrobot.h:1944
nvuint32 m_uWheelType
wheel type
Definition cinosmcrobot.h:2041
CINOSMcRobotAxis * m_pNext
pointer to next axis in list
Definition cinosmcrobot.h:2065
void SetInitPos(real64 arInitPos)
set init position
Definition cinosmcrobot.h:1610
char m_cInitGeneric[256]
init generic parameter
Definition cinosmcrobot.h:1959
inosResName m_cJoyNeg
joystick neg name
Definition cinosmcrobot.h:1886
uint32 GetMonitorEnabled(uint32 auType)
get monitoring enabled
Definition cinosmcrobot.h:1720
inosName64 m_cAlias
axis name
Definition cinosmcrobot.h:1870
inosResName m_cBrake
brake output name
Definition cinosmcrobot.h:1878
uint32 GetInitCurrentLimit() const
get init currentlimit support
Definition cinosmcrobot.h:1592
real64 GetJoyDeltaUnit() const
get joy delta unit
Definition cinosmcrobot.h:1684
real64 GetInitSlaveBack() const
get init slave backward
Definition cinosmcrobot.h:1616
bool CheckLimitPos() const
check pos limit
void UpdateResource(const char *apName)
update given axis resource
real64 GetInitReferenceSearchBack() const
get init reference search back
Definition cinosmcrobot.h:1580
uint32 GetWheelType() const
get wheel type
Definition cinosmcrobot.h:1693
bool GetFlag(uint32 auFlag) const
get flag
Definition cinosmcrobot.h:1460
nvint32 m_iBrakeWaitOn
brake wait on [ms]
Definition cinosmcrobot.h:2017
uint32 GetInitBorder() const
get init border support
Definition cinosmcrobot.h:1568
nvreal64 m_rWheelFactor
wheel factor [*]
Definition cinosmcrobot.h:2043
CINOSMcModuleRes * m_pAxisRes
pointer to axis resource
Definition cinosmcrobot.h:1898
const char * GetWheelName() const
get wheel name
Definition cinosmcrobot.h:1709
const char * GetCalibParam() const
get calib params
Definition cinosmcrobot.h:1646
uint32 GetCalibType() const
get calib type
Definition cinosmcrobot.h:1640
uint32 m_uState
axis state
Definition cinosmcrobot.h:1860
nvstring m_cCalibParam
calib param
Definition cinosmcrobot.h:2012
uint32 GetInitCommutation() const
get init post commutation support
Definition cinosmcrobot.h:1565
CINOSMcModuleRes * m_pJoyPosRes
pointer to joypos resource
Definition cinosmcrobot.h:1910
real64 GetPowerTimeout() const
get power timeout
Definition cinosmcrobot.h:1487
nvstring m_cInitMoveParam
init move param
Definition cinosmcrobot.h:2003
real64 GetWheelFactor() const
get wheel factor
Definition cinosmcrobot.h:1696
nvreal64 m_rInitBorderLimit
init borderlimit
Definition cinosmcrobot.h:1985
nvuint32 m_uInitReferenceSearchType
init reference search type
Definition cinosmcrobot.h:1975
inosResName m_cLimitPos
zero input name
Definition cinosmcrobot.h:1880
void SetInitReferencePos(real64 arReferencePos)
set init reference position
Definition cinosmcrobot.h:1586
uint32 m_uNumber
axis number
Definition cinosmcrobot.h:1868
char m_cParam[32]
axis param
Definition cinosmcrobot.h:1872
nvuint32 m_uInitMove
init move support
Definition cinosmcrobot.h:1999
real64 GetInitReferencePos() const
get init reference position
Definition cinosmcrobot.h:1583
DECLARE_DYNAMIC(CINOSMcRobotAxis)
dynamic object handling
const char * GetName() const
get axis name
Definition cinosmcrobot.h:1490
uint32 CheckError(bool abPostMessage=true)
uint32 GetInitDirection() const
get init direction
Definition cinosmcrobot.h:1559
void SetFlag(uint32 auFlag)
set flag
Definition cinosmcrobot.h:1463
nvreal64 m_rInitZeroLeave
init zero leave distance
Definition cinosmcrobot.h:1989
CINOSPhysicalAxis * GetAxis() const
get pointer axis
Definition cinosmcrobot.h:1502
uint32 m_uOrder
prop order
Definition cinosmcrobot.h:1894
const char * GetInitParam() const
get init params
Definition cinosmcrobot.h:1619
nvuint32 m_uCalibType
calib type
Definition cinosmcrobot.h:2008
void SetSlowMotion(real64 arSlowMotion)
set slowmotion factor
Definition cinosmcrobot.h:1478
nvuint32 m_uJoyWait
joystick wait [ms]
Definition cinosmcrobot.h:2030
Definition cinosmcrobot.h:3770
virtual void GetCmdPosition(real64 &arPosition)
get cmd position
virtual void GetActVelocity(real64 &arVelocity)
get act velocity
real64 m_rNegBorder
negative border position found
Definition cinosmcrobot.h:3842
void EmgStopCalib(SINOSMcRobotCmdCalibPart *apPart)
emergency stop calib
virtual void Done(uintid auPartId)
done command
virtual uint32 Stop(uint32 auReply)
stop command
void StopCalib(SINOSMcRobotCmdCalibPart *apPart)
stop calib
virtual void SetSlowMotion(real64 arSlowMotion)
set slowmotion (not supported)
Definition cinosmcrobot.h:3797
virtual uint32 EmgStop()
emergency stop command
CINOSMcRobotCmdCalib(CINOSTaskExMsg *apMsg, void *apCallBack=NULL, void *apCallBackObject=NULL)
constructor
void PreCalib(SINOSMcRobotCmdCalibPart *apPart)
pre calib
virtual uint32 Trigger()
prepare command
void AddCalib(tMcAxisName apAxis)
add calib to command
virtual uint32 Run()
run command
real64 m_rPosBorder
positive border position found
Definition cinosmcrobot.h:3844
SINOSMcRobotCmdCalibPart * m_pFstPart
pointer to first calib part
Definition cinosmcrobot.h:3836
real64 m_rInitPos
reference position found
Definition cinosmcrobot.h:3840
SINOSMcRobotCmdCalibPart * m_pLstPart
pointer to last calib part
Definition cinosmcrobot.h:3838
void Standard(SINOSMcRobotCmdCalibPart *apPart)
standard calib
virtual void GetActPosition(real64 &arPosition)
get act position
virtual ~CINOSMcRobotCmdCalib()
destructor
bool m_bExceptionPending
exception pending
Definition cinosmcrobot.h:3834
eFlags
validity
Definition cinosmcrobot.h:3826
virtual uint32 Check()
check command
DECLARE_DYNAMIC(CINOSMcRobotCmdCalib)
dynamic object handling
void PostCalib(SINOSMcRobotCmdCalibPart *apPart, uint32 auResult=0)
post calib
INOS McRobot command to move one axis endlessly towards a certain direction with a specific speed set...
Definition cinosmcrobot.h:2561
virtual uint32 Trigger()
prepare command
virtual void GetActPosition(real64 &arPosition)
get act position
virtual uint32 Run()
run command
virtual uint32 Check()
check command
virtual void Done(uintid auPartId)
done command
virtual void GetActVelocity(real64 &arVelocity)
get act velocity
CINOSMcRobotCmdEndless(CINOSTaskExMsg *apMsg, tMcAxisName apAxis, bool abPositive, const char *apParam, void *apCallBack, void *apCallBackObject, real64 arSlowMotion=REAL64(0.0))
virtual uint32 Stop(uint32 auReply)
stop command
CINOSMcRobotCmdEndless(CINOSTaskExMsg *apMsg, tMcAxisName apAxis, bool abPositive, const char *apParam, void *apCallBack=NULL, real64 arSlowMotion=REAL64(0.0))
constructor
virtual ~CINOSMcRobotCmdEndless()
destructor
virtual void SetSlowMotion(real64 arSlowMotion)
set slowmotion
virtual uint32 EmgStop()
emergency stop command
virtual void GetCmdPosition(real64 &arPosition)
get cmd position
Definition cinosmcrobot.h:3644
bool m_bExceptionPending
exception pending
Definition cinosmcrobot.h:3753
void AddInit(tMcAxisName apAxis)
add init to command
virtual uint32 Stop(uint32 auReply)
stop command
void EmgStopInit(SINOSMcRobotCmdInitPart *apPart)
emergency stop init
uint32 m_uActOrder
actual init order
Definition cinosmcrobot.h:3747
void Shared(SINOSMcRobotCmdInitPart *apPart)
Shared init.
void Stall(SINOSMcRobotCmdInitPart *apPart)
stall init
SINOSMcRobotCmdInitPart * m_pFstPart
pointer to first init part
Definition cinosmcrobot.h:3755
void Custom(SINOSMcRobotCmdInitPart *apPart)
Custom init.
void Standard(SINOSMcRobotCmdInitPart *apPart)
standard init
void ResolverAbsolute(SINOSMcRobotCmdInitPart *apPart)
Resolver absolute init.
virtual void SetSlowMotion(real64 arSlowMotion)
set slowmotion (not supported)
Definition cinosmcrobot.h:3671
CINOSMcRobotCmdInit(CINOSTaskExMsg *apMsg, void *apCallBack=NULL, void *apCallBackObject=NULL)
constructor
void Position(SINOSMcRobotCmdInitPart *apPart)
Position init.
virtual uint32 Run()
run command
void StopInit(SINOSMcRobotCmdInitPart *apPart)
stop init
EOrder
init order
Definition cinosmcrobot.h:3732
void Border(SINOSMcRobotCmdInitPart *apPart)
border init
void None(SINOSMcRobotCmdInitPart *apPart)
None init.
virtual ~CINOSMcRobotCmdInit()
destructor
EFlags
validity
Definition cinosmcrobot.h:3726
virtual void GetActPosition(real64 &arPosition)
get act position
virtual void Done(uintid auPartId)
done command
virtual void GetCmdPosition(real64 &arPosition)
get cmd position
SINOSMcRobotCmdInitPart * m_pLstPart
pointer to last init part
Definition cinosmcrobot.h:3757
void PostInit(SINOSMcRobotCmdInitPart *apPart, uint32 auResult=0)
post init
void AbsoluteEncoder(SINOSMcRobotCmdInitPart *apPart)
Absolute encoder.
virtual uint32 Check()
check command
uint32 HandleReferenceCnt(SINOSMcRobotCmdInitPart *apPart)
handle reference count
virtual void GetActVelocity(real64 &arVelocity)
get act velocity
void PreInit(SINOSMcRobotCmdInitPart *apPart)
pre init
uint32 ApplyAbsoluteEncoderPos(CINOSMcRobotAxis *mcra)
update actual position from absolute encoder
uint32 CheckBlockedReference(SINOSMcRobotCmdInitPart *apPart)
check blocked reference
void StallTolerance(SINOSMcRobotCmdInitPart *apPart)
stall tolerance init
virtual uint32 Trigger()
prepare command
uint32 m_uFlags
flags
Definition cinosmcrobot.h:3751
uint32 m_uActCount
actual init count
Definition cinosmcrobot.h:3749
DECLARE_DYNAMIC(CINOSMcRobotCmdInit)
dynamic object handling
virtual uint32 EmgStop()
emergency stop command
Definition cinosmcrobot.h:2434
virtual void SetSlowMotion(real64 arSlowMotion)
set slowmotion
CINOSMcRobotCmdLinear(CINOSTaskExMsg *apMsg, const char *apParam, void *apCallBack, void *apCallBackObject, real64 arSlowMotion=REAL64(0.0))
virtual void SetMoveDep(real64 arDepPos, real64 arDepVel)
set depart param
virtual uint32 EmgStop()
emergency stop command
virtual uint32 Stop(uint32 auReply)
stop command
virtual ~CINOSMcRobotCmdLinear()
destructor
virtual void GetCmdPosition(real64 &arPosition)
get cmd position
virtual void Done(uintid auPartId)
done command
virtual uint32 Check()
check command
virtual uint32 Trigger()
prepare command
virtual void SetMoveApp(real64 arAppPos, real64 arAppVel)
set approach param
virtual void AddEvent(const char *apName, real64 arValue, eEventType aeEventType, bool abFireEvent=true, uint32 auFlags=0)
add event to command
virtual uint32 Run()
run command
virtual void GetActVelocity(real64 &arVelocity)
get act velocity
CINOSMcRobotCmdLinear(CINOSTaskExMsg *apMsg, const char *apParam, void *apCallBack=NULL, real64 arSlowMotion=REAL64(0.0))
constructor
void AddLinear(tMcAxisName apAxis, real64 arPosition, eMoveType aeMoveType=eTypAbsolute, bool abLength=true)
add linear to command
virtual bool GetEventTicks(const char *apName, uint64 &auBusTicks, uint8 &auBusId)
get event ticks
virtual void GetActPosition(real64 &arPosition)
get act position
Definition cinosmcrobot.h:3209
virtual ~CINOSMcRobotCmdMoveCarefully()
destructor
virtual void GetCmdPosition(real64 &arPosition)
get cmd position
virtual uint32 Stop(uint32 auReply)
stop command
virtual uint32 Check()
check command
virtual void GetActPosition(real64 &arPosition)
get act position
virtual void GetActVelocity(real64 &arVelocity)
get act velocity
virtual void SetSlowMotion(real64 arSlowMotion)
set slowmotion
CINOSMcRobotCmdMoveCarefully(CINOSTaskExMsg *apMsg, tMcAxisName apAxis, real64 arPosition, real64 arPosError, real64 arCurLimit, const char *apParam, void *apCallBack=NULL, void *apCallBackObject=NULL)
constructor
virtual uint32 Run()
run command
virtual uint32 EmgStop()
emergency stop command
virtual void Done(uintid auPartId)
done command
virtual uint32 Trigger()
prepare command
Definition cinosmcrobot.h:3279
virtual void Done(uintid auPartId)
done command
virtual uint32 Stop(uint32 auReply)
stop command
virtual void GetActPosition(real64 &arPosition)
get act position
virtual void GetActVelocity(real64 &arVelocity)
get act velocity
virtual void SetSlowMotion(real64 arSlowMotion)
set slowmotion
virtual void GetCmdPosition(real64 &arPosition)
get cmd position
virtual ~CINOSMcRobotCmdMoveEx()
destructor
virtual uint32 Trigger()
prepare command
virtual uint32 EmgStop()
emergency stop command
virtual uint32 Check()
check command
CINOSMcRobotCmdMoveEx(CINOSTaskExMsg *apMsg, tMcAxisName apAxis, real64 arPosition, real64 arTrgPosition, uint32 auFlags, const char *apTrgName, real64 arTrgLevel, const char *apParam, void *apCallBack=NULL, void *apCallBackObject=NULL)
constructor
virtual uint32 Run()
run command
Definition cinosmcrobot.h:2635
CINOSMcRobotCmdMoveSafe(CINOSTaskExMsg *apMsg, tMcAxisName apAxis1, real64 arPosition1, real64 arSafe1, real64 arSafe2, const char *apParam1, tMcAxisName apAxisP, real64 arPositionP, const char *apParamP, void *apCallBack=NULL, void *apCallBackObject=NULL)
constructors with one speedset for safe moves
virtual uint32 Run()
run command
virtual uint32 Trigger()
prepare command
virtual void GetCmdPosition(real64 &arPosition)
get cmd position
virtual uint32 Stop(uint32 auReply)
stop command
virtual void SetSlowMotion(real64 arSlowMotion)
set slowmotion
virtual void GetActVelocity(real64 &arVelocity)
get act velocity
virtual bool GetEventTicks(const char *apName, uint64 &auBusTicks, uint8 &auBusId)
get event ticks
virtual uint32 EmgStop()
emergency stop command
virtual void GetActPosition(real64 &arPosition)
get act position
virtual ~CINOSMcRobotCmdMoveSafe()
destructor
virtual uint32 Check()
check command
virtual void Done(uintid auPartId)
done command
CINOSMcRobotCmdMoveSafe(CINOSTaskExMsg *apMsg, tMcAxisName apAxis1, real64 arPosition1, real64 arSafe1, real64 arSafe2, const char *apParam1, const char *apParam2, tMcAxisName apAxisP, real64 arPositionP, const char *apParamP, void *apCallBack=NULL, void *apCallBackObject=NULL)
constructors with two speedset for safe moves
Definition cinosmcrobot.h:3118
virtual void GetActVelocity(real64 &arVelocity)
get act velocity
virtual uint32 Run()
run command
virtual uint32 Check()
check command
virtual uint32 EmgStop()
emergency stop command
virtual void GetCmdPosition(real64 &arPosition)
get cmd position
virtual void GetActPosition(real64 &arPosition)
get act position
virtual uint32 Stop(uint32 auReply)
stop command
CINOSMcRobotCmdMoveToAnalogSensor(CINOSTaskExMsg *apMsg, tMcAxisName apAxis, const char *apName, real64 arPosition, real64 arLevel, bool abGreater, const char *apParam, void *apCallBack=NULL, void *apCallBackObject=NULL)
constructor
virtual void Done(uintid auPartId)
done command
virtual ~CINOSMcRobotCmdMoveToAnalogSensor()
destructor
virtual uint32 Trigger()
prepare command
virtual void SetSlowMotion(real64 arSlowMotion)
set slowmotion
Definition cinosmcrobot.h:2822
virtual void Done(uintid auPartId)
done command
virtual uint32 Stop(uint32 auReply)
stop command
virtual void SetSlowMotion(real64 arSlowMotion)
set slowmotion
virtual uint32 Trigger()
prepare command
virtual void GetCmdPosition(real64 &arPosition)
get cmd position
CINOSMcRobotCmdMoveToBorderApp(CINOSTaskExMsg *apMsg, tMcAxisName apAxis, real64 arPosition, real64 arPositionVel, real64 arVelocity, const char *apParam, void *apCallBack=NULL, void *apCallBackObject=NULL)
constructor
virtual void GetActPosition(real64 &arPosition)
get act position
virtual void GetActVelocity(real64 &arVelocity)
get act velocity
virtual uint32 EmgStop()
emergency stop command
virtual uint32 Check()
check command
virtual ~CINOSMcRobotCmdMoveToBorderApp()
destructor
virtual uint32 Run()
run command
Definition cinosmcrobot.h:2750
virtual void GetActPosition(real64 &arPosition)
get act position
CINOSMcRobotCmdMoveToBorder(CINOSTaskExMsg *apMsg, tMcAxisName apAxis, real64 arPosition, const char *apParam, void *apCallBack=NULL, void *apCallBackObject=NULL)
constructor
virtual uint32 Run()
run command
virtual uint32 Trigger()
prepare command
virtual ~CINOSMcRobotCmdMoveToBorder()
destructor
virtual void GetActVelocity(real64 &arVelocity)
get act velocity
virtual uint32 Check()
check command
virtual void GetCmdPosition(real64 &arPosition)
get cmd position
virtual uint32 Stop(uint32 auReply)
stop command
virtual void SetSlowMotion(real64 arSlowMotion)
set slowmotion
virtual void Done(uintid auPartId)
done command
virtual uint32 EmgStop()
emergency stop command
Move one axis towards a certain direction to search for a sensor. The axis stops when either the sens...
Definition cinosmcrobot.h:2925
CINOSMcRobotCmdMoveToDigitalSensor(CINOSTaskExMsg *apMsg, tMcAxisName apAxis, const char *apName, real64 arPosition, bool abSet, const char *apParam, void *apCallBack=NULL, void *apCallBackObject=NULL)
Default constructor.
virtual ~CINOSMcRobotCmdMoveToDigitalSensor()
destructor
virtual uint32 Stop(uint32 auReply)
stop command
virtual uint32 Check()
check command
virtual void AddEvent(const char *apName, real64 arValue, eEventType aeEventType, bool abFireEvent=true, uint32 auFlags=0)
add event to command
virtual void SetSlowMotion(real64 arSlowMotion)
set slowmotion
virtual void GetActPosition(real64 &arPosition)
get act position
CINOSMcRobotCmdMoveToDigitalSensor(CINOSTaskExMsg *apMsg, tMcAxisName apAxis, real64 arPositionVel, real64 arVelocity, const char *apName, real64 arPosition, bool abSet, real64 &arResult, uint32 auFlags, const char *apParam, void *apCallBack=NULL, void *apCallBackObject=NULL)
virtual uint32 EmgStop()
emergency stop command
virtual bool GetEventTicks(const char *apName, uint64 &auBusTicks, uint8 &auBusId)
get event ticks
virtual uint32 Trigger()
prepare command
CINOSMcRobotCmdMoveToDigitalSensor(CINOSTaskExMsg *apMsg, tMcAxisName apAxis, const char *apName, real64 arPosition, bool abSet, real64 &arResult, const char *apParam, void *apCallBack=NULL, void *apCallBackObject=NULL)
Use this overloaded version if you're interested in the position at which the sensor has been found,...
virtual void Done(uintid auPartId)
done command
CINOSMcRobotCmdMoveToDigitalSensor(CINOSTaskExMsg *apMsg, tMcAxisName apAxis, const char *apName, real64 arPosition, bool abSet, real64 &arResult, uint32 auFlags, const char *apParam, void *apCallBack=NULL, void *apCallBackObject=NULL)
Use this overloaded version if you're interested in the position at which the sensor has been found,...
virtual uint32 Run()
run command
virtual void GetCmdPosition(real64 &arPosition)
get cmd position
virtual void GetActVelocity(real64 &arVelocity)
get act velocity
Definition cinosmcrobot.h:2294
virtual bool GetEventTicks(const char *apName, uint64 &auBusTicks, uint8 &auBusId) override
get event ticks
SINOSMcRobotCmdMovePart * m_pLstPart
pointer to last move part
Definition cinosmcrobot.h:2420
virtual ~CINOSMcRobotCmdMove()
destructor
DECLARE_DYNAMIC(CINOSMcRobotCmdMove)
dynamic object handling
void AddMoveApp(tMcAxisName apAxis, real64 arPosition, real64 arPositionVel, real64 arVelocity, const char *apParam, eMoveType aeMoveType=eTypAbsolute)
add moveapp to command
virtual void GetSlowMotion(real64 &arSlowMotion)
get slowmotion
Definition cinosmcrobot.h:2361
SINOSMcRobotCmdMovePart * m_pFstPart
pointer to first move part
Definition cinosmcrobot.h:2418
virtual void GetActVelocity(real64 &arVelocity) override
get act velocity
real64 m_rDepPosBgn
pos begin (used by movefromborderdep)
Definition cinosmcrobot.h:2412
real64 m_rMoveTime
moving time [ms]
Definition cinosmcrobot.h:2406
CINOSMcRobotCmdMove(CINOSTaskExMsg *apMsg, void *apCallBack, void *apCallBackObject, real64 arSlowMotion=REAL64(0.0))
virtual void GetActPosition(real64 &arPosition) override
get act position
virtual uint32 Check() override
check command
virtual void Done(uintid auPartId) override
done command
real64 m_rSlowMotion
requested slowmotion factor
Definition cinosmcrobot.h:2408
virtual struct SINOSMcRobotCmdMoveEvent * GetMultipleEventWithMaxTicks()
get event with max ticks
void AddMove(tMcAxisName apAxis, real64 arPosition, const char *apParam, real64 arSlowMotion, eMoveType aeMoveType=eTypAbsolute)
add move to command
virtual uint32 EmgStop() override
emergency stop command
virtual void GetCmdPosition(tMcAxisName apAxis, real64 &arPosition)
get cmd position of apAxis
real64 m_rDepPosVel
pos vel (used by movefromborderdep)
Definition cinosmcrobot.h:2414
void AddMove(tMcAxisName apAxis, real64 arPosition, const char *apParam, eMoveType aeMoveType=eTypAbsolute)
add move to command
virtual uint32 Stop(uint32 auReply) override
stop command
virtual uint32 Run() override
run command
virtual uint32 Trigger() override
prepare command
virtual void GetCmdPosition(real64 &arPosition) override
get cmd position
virtual void AddEvent(const char *apName, real64 arValue, eEventType aeEventType, bool abFireEvent=true, uint32 auFlags=0) override
add event to command
virtual void GetCmdVelocity(real64 &arVelocity)
get cmd velocity
bool m_bDepCurLim
cur limit (used by movefromborderdep)
Definition cinosmcrobot.h:2416
void AddMoveDep(tMcAxisName apAxis, real64 arPosition, real64 arPositionVel, real64 arVelocity, const char *apParam, eMoveType aeMoveType=eTypAbsolute)
add movedep to command
virtual void SetSlowMotion(real64 arSlowMotion) override
set slowmotion
real64 m_rSlowMotionOverwrite
requested slowmotion factor overwrite
Definition cinosmcrobot.h:2410
void AddMove(tMcAxisName apAxis, real64 arPosition, SINOSRampParam *apParam, eMoveType aeMoveType=eTypAbsolute)
add move to command
virtual uint32 GetEventMultiple(const char *apName)
get event multiple flag
CINOSMcRobotCmdMove(CINOSTaskExMsg *apMsg, void *apCallBack=NULL, real64 arSlowMotion=REAL64(0.0))
constructor
void AddMoveDep(tMcAxisName apAxis, real64 arPosition, real64 arPositionVel, real64 arVelocity, SINOSRampParam *apParam, eMoveType aeMoveType=eTypAbsolute)
add movedep to command
void AddMoveApp(tMcAxisName apAxis, real64 arPosition, real64 arPositionVel, real64 arVelocity, SINOSRampParam *apParam, eMoveType aeMoveType=eTypAbsolute)
add moveapp to command
uint32 m_uFlags
flags
Definition cinosmcrobot.h:2404
Definition cinosmcrobot.h:3373
virtual void CircleCC(tMcAxisName apAxis1, tMcAxisName apAxis2, double adMid1, double adMid2, double adAngle, bool abAngleAbsolute, uint32 auFlags=0)
add counter clock wise circle part with axes 'apAxis1' and 'apAxis2'
virtual void GetSlowMotion(real64 &arSlowMotion)
get slowmotion
Definition cinosmcrobot.h:3506
virtual void SetTolerance(real64 arTolerance)
set global shape tolerance
CINOSMcRobotCmdShape(CINOSTaskExMsg *apMsg, CINOSShape *apShape, const char *apParam, uint32 auPoints, void *apCallBack, void *apCallBackObject, real64 arSlowMotion=REAL64(0.0))
real64 m_rSlowMotion
requested slowmotion factor
Definition cinosmcrobot.h:3548
virtual void GetActVelocity(real64 &arVelocity)
get act velocity
virtual void SetEnd()
add set end
virtual void CircleCW(tMcAxisName apAxis1, tMcAxisName apAxis2, double adEnd1, double adEnd2, double adMid1, double adMid2, uint32 auFlags=0)
add clock wise circle part with axes 'apAxis1' and 'apAxis2'
virtual SINOSMcRobotCmdShapeEvent * GetEvent(const char *apName)
add event to command
uint32 m_uShapeFlags
shape flags
Definition cinosmcrobot.h:3544
virtual uint32 Run()
run command
virtual void Rapid(tMcAxisName apAxis, double adPosition, uint32 auFlags=0)
add rapid part of 'apAxis' to 'adPosition'
SINOSMcRobotCmdShapeEvent * m_pFstEvent
pointer to first event
Definition cinosmcrobot.h:3560
virtual void SetSpeedReductionConservative()
set 'speed reduction conservative' flag
Definition cinosmcrobot.h:3431
virtual uint32 Continue()
continue command
DECLARE_DYNAMIC(CINOSMcRobotCmdShape)
dynamic object handling
virtual void Linear(tMcAxisName apAxis, double adPosition, uint32 auFlags=0)
add linear part of 'apAxis' to 'adPosition'
virtual void SetCalcSync()
set 'calc synchronous' flag
Definition cinosmcrobot.h:3422
virtual void GetActPosition(real64 &arPosition)
get act position
inosName64 m_cShapeName
shape name
Definition cinosmcrobot.h:3540
CINOSMcRobotCmdShape(CINOSTaskExMsg *apMsg, const char *apParam, uint32 auPoints, void *apCallBack, void *apCallBackObject, real64 arSlowMotion=REAL64(0.0))
virtual void SetShapeFlags(uint32 auFlags)
set shape flags
Definition cinosmcrobot.h:3419
virtual CINOSShape * GetShape()
get shape
Definition cinosmcrobot.h:3483
real64 m_rTolerance
requested shape tolerance
Definition cinosmcrobot.h:3550
virtual uint32 EmgStop()
emergency stop command
CINOSMcRobotCmdShape(CINOSTaskExMsg *apMsg, CINOSShape *apShape, const char *apParam, uint32 auPoints=0, void *apCallBack=NULL, real64 arSlowMotion=REAL64(0.0))
constructor
virtual uint32 GetSets()
get number of sets
virtual void CircleCC(tMcAxisName apAxis1, tMcAxisName apAxis2, double adEnd1, double adEnd2, double adMid1, double adMid2, uint32 auFlags=0)
add counter clock wise circle part with axes 'apAxis1' and 'apAxis2'
virtual void Pause(double adTime)
set dwell time
virtual void Velocity(double adVelocity=DF_INOS_SHAPE_SET_NO_VELOCITY)
set or reset (DF_INOS_SHAPE_SET_NO_VELOCITY) velocity
virtual void AddEvent(const char *apName, real64 arValue, eEventType aeEventType, bool abFireEvent=true, uint32 auFlags=0)
add event to command
virtual void CircleCW(tMcAxisName apAxis1, tMcAxisName apAxis2, double adEnd1, double adEnd2, double adRadius, uint32 auFlags=0)
add clock wise circle part with axes 'apAxis1' and 'apAxis2'
uint32 m_uPoints
requested number of precalc points
Definition cinosmcrobot.h:3546
virtual void SetDryRun()
set 'dry run' flag
Definition cinosmcrobot.h:3428
virtual void GetCmdPosition(real64 &arPosition)
get cmd position
virtual uint32 Stop(uint32 auReply)
stop command
virtual uint32 Trigger()
prepare command
void SetupParam(const char *apParam)
create param
virtual void Done(uintid auPartId)
done command
virtual bool GetEventTicks(const char *apName, uint64 &auBusTicks, uint8 &auBusId)
get event ticks
CINOSMcRobotCmdShape(CINOSTaskExMsg *apMsg, const char *apName, const char *apParam, uint32 auPoints=0, void *apCallBack=NULL, real64 arSlowMotion=REAL64(0.0))
constructor
virtual void SetBegin(uint32 auSetNumber=DF_INOS_SHAPE_SET_NO_NUMBER)
add set begin
CINOSShape * m_pShape
THE shape.
Definition cinosmcrobot.h:3554
bool m_bShapeCreated
shape created flag
Definition cinosmcrobot.h:3556
virtual void Absolute(tMcAxisName apAxis="")
switches the requested axis to absolute mode (apAxis=="" -> all)
inosName64 m_cParam
paramset
Definition cinosmcrobot.h:3542
CINOSMcRobotCmdShape(CINOSTaskExMsg *apMsg, const char *apName, const char *apParam, uint32 auPoints, void *apCallBack, void *apCallBackObject, real64 arSlowMotion=REAL64(0.0))
virtual void CircleCW(tMcAxisName apAxis1, tMcAxisName apAxis2, double adMid1, double adMid2, double adAngle, bool abAngleAbsolute, uint32 auFlags=0)
add clock wise circle part with axes 'apAxis1' and 'apAxis2'
virtual void CircleCC(tMcAxisName apAxis1, tMcAxisName apAxis2, double adEnd1, double adEnd2, double adRadius, uint32 auFlags=0)
add counter clock wise circle part with axes 'apAxis1' and 'apAxis2'
virtual ~CINOSMcRobotCmdShape()
destructor
virtual uint32 Check()
check command
virtual void Linear(tMcAxisName apAxis, double adPosition, double adTolerance, uint32 auFlags=0)
add linear part of 'apAxis' to 'adPosition'
CINOSMcRobotCmdShape(CINOSTaskExMsg *apMsg, const char *apParam, uint32 auPoints=0, void *apCallBack=NULL, real64 arSlowMotion=REAL64(0.0))
constructor
virtual void GetCmdVelocity(real64 &arVelocity)
get cmd velocity
virtual void Incremental(tMcAxisName apAxis="")
switches the requested axis to incremental mode (apAxis=="" -> all)
virtual uint32 Break()
break command
SINOSMcRobotCmdShapeEvent * m_pLstEvent
pointer to last event
Definition cinosmcrobot.h:3562
virtual real64 GetMoveTime()
get move time of shape
SINOSRampParam * m_pParam
param overwrite
Definition cinosmcrobot.h:3558
virtual uint32 GetActSet()
get act set
virtual void ClrCalcSync()
clear 'calc synchronous' flag
Definition cinosmcrobot.h:3425
virtual void SetSlowMotion(real64 arSlowMotion)
set slowmotion
Definition cinosmcrobot.h:2079
virtual ~CINOSMcRobotCmd()
destructor
tMsgId m_uId
command id overwrite
Definition cinosmcrobot.h:2257
uint32 GetResult() const
get command result
Definition cinosmcrobot.h:2155
uint32 GetReply() const
get command reply
Definition cinosmcrobot.h:2149
CINOSTask * GetSender()
get command sender
Definition cinosmcrobot.h:2164
void * m_pCallBack
pointer to callback method if any
Definition cinosmcrobot.h:2265
void RemoveHandler()
remove cyclic handler
virtual uint32 Break()
break command
Definition cinosmcrobot.h:2128
virtual void Done(uintid auPartId)=0
done command
virtual void Handle()
command handler
Definition cinosmcrobot.h:2230
virtual uint32 Continue()
continue command
Definition cinosmcrobot.h:2131
uint32 SetReply(uint32 auReply)
set command reply
Definition cinosmcrobot.h:2152
void SetId(tMsgId auId)
set command id
Definition cinosmcrobot.h:2167
uint32 m_uReplySave
saved command reply
Definition cinosmcrobot.h:2253
CINOSMcRobotCmd * m_pNext
pointer to next command in list
Definition cinosmcrobot.h:2281
int32 GetBusTicks(uint8 auBusId, real64 arMs)
get bus ticks
virtual uint32 Stop(uint32 auReply)=0
stop command
virtual void GetCmdPosition(real64 &arPosition)=0
get cmd position
bool m_bEndEvent
command has 'eEvtEndCmd' event
Definition cinosmcrobot.h:2259
void * m_pCallBackObject
pointer to callback object if any
Definition cinosmcrobot.h:2267
virtual uint32 EmgStop()=0
emergency stop command
virtual void SetSlowMotion(real64 arSlowMotion)=0
set slowmotion
CINOSTaskExMsg * m_pMsg
pointer to according message
Definition cinosmcrobot.h:2269
bool m_bCyclicHandling
command needs cyclic handling
Definition cinosmcrobot.h:2261
tMsgId GetId()
get command id
Definition cinosmcrobot.h:2170
uint32 m_uResult
command result
Definition cinosmcrobot.h:2255
eEventType
event types
Definition cinosmcrobot.h:2106
uint32 SetResult(uint32 auResult)
set command result
Definition cinosmcrobot.h:2158
virtual void GetActPosition(real64 &arPosition)=0
get act position
uint32 m_uReply
command reply
Definition cinosmcrobot.h:2251
virtual uint32 Check()=0
check command
CINOSMcRobot * GetModule()
get pointer to module this command belongs to
Definition cinosmcrobot.h:2145
virtual uint32 Trigger()=0
trigger command
void * GetCallBack()
get callback
Definition cinosmcrobot.h:2215
virtual bool GetEventTicks(const char *apName, uint64 &auBusTicks, uint8 &auBusId)
get event ticks
Definition cinosmcrobot.h:2177
char m_cEndEvent[32]
end event name
Definition cinosmcrobot.h:2263
eCmdState GetState() const
get command state
Definition cinosmcrobot.h:2139
void SetCallBack(void *apCallBack)
set callback
Definition cinosmcrobot.h:2182
virtual uint32 Run()=0
run command
virtual void AddEvent(const char *apName, real64 arValue, eEventType aeEventType, bool abFireEvent=true, uint32 auFlags=0)
add event to command
Definition cinosmcrobot.h:2174
eFlags
validity
Definition cinosmcrobot.h:2233
void * GetCallBackObject()
Definition cinosmcrobot.h:2221
void InstallHandler()
install cyclic handler
eCmdState
command states
Definition cinosmcrobot.h:2091
@ eStaIdle
idle
Definition cinosmcrobot.h:2092
@ eStaReady
ready (to run)
Definition cinosmcrobot.h:2093
@ eStaRunning
running
Definition cinosmcrobot.h:2094
@ eStaDone
done (successfully)
Definition cinosmcrobot.h:2095
@ eStaError
error
Definition cinosmcrobot.h:2096
eMoveType
move types
Definition cinosmcrobot.h:2100
const char * GetName()
get command name
CINOSMcRobotCmd(CINOSTaskExMsg *apMsg, void *apCallBack=NULL, void *apCallBackObject=NULL)
constructor
CINOSTaskExMsg * GetMsg()
get command message
Definition cinosmcrobot.h:2161
virtual void GetActVelocity(real64 &arVelocity)=0
get act velocity
CINOSMcRobot * m_pModule
pointer to my module
Definition cinosmcrobot.h:2271
eCmdState m_eState
command state
Definition cinosmcrobot.h:2249
DECLARE_DYNAMIC(CINOSMcRobotCmd)
dynamic object handling
Definition cinosmcrobot.h:3609
virtual void SignalEx(CINOSTaskExMsg *apMsg, uint32 auRplId, uint32 auAppError)
overloaded signal
CINOSMcRobotInitSync(CINOSMcRobot *apModule, CINOSMcRobotCmdInit *apInitCmd, SINOSMcRobotCmdInitPart *apPart)
constructor
Definition cinosmcrobot.h:3573
CINOSMcRobotSync(tMsgId aCmdId, uintid auPartId=-1)
constructor
virtual void Signal()
overloaded signal
Definition cinosmcrobot.h:206
virtual void iRecover(CINOSTaskExMsg *apMsg) override
internal recover station
virtual CMcResult JoyAdc(real64 arSlow, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Update joystick move. If the module has multiple axes, the first axis is taken, see also Joystick.
CMcResult eMoveRel(tMcAxisName apAxis, real64 arPosition, real64 arExit, real64 arEnter, const char *apParam)
move axis relative
CINOSMcRobot(const char *apName, const char *apParam)
constructor
TINOSTaskExCmdMsg< CINOSMcRobot, const char *, const char * > GetSpeedset
Get speedset of McRobot axis.
Definition cinosmcrobot.h:335
virtual void iCancel(CINOSTaskExMsg *apMsg) override
internal cancel
virtual void iMoveCarefully(CINOSTaskExMsg *apMsg)
internal move carefully to position
virtual void iCalib(CINOSTaskExMsg *apMsg)
internal calib
virtual void iClrModeSetup(CINOSTaskExMsg *apMsg) override
internal clear mode setup
CMcResult eMoveAbs(tMcAxisName apAxis, real64 arPosition, real64 arExit, real64 arEnter, const char *apParam)
move axis absolute
virtual void iMoveFromBorder(CINOSTaskExMsg *apMsg)
internal move from border
virtual real64 GetRealPosition(tMcAxisName apAxis, const char *apBase)
get real position of apAxis based on apBase
virtual void iLimitSet(CINOSTaskExMsg *apMsg)
limit set
CINOSMcRobotAxis * GetAxis(tMcAxisName apAxis) const
get pointer to axis 'apName'
virtual void iSetBit(CINOSTaskExMsg *apMsg)
internal setbit
virtual void SaveLifetimeDistance(tMcAxisName apAxis=NULL)
save lifetime distance of apAxis (or all axes if apAxes == NULL) in nvram
CMcResult eMoveRel(real64 arPosition, real64 arExit, real64 arEnter, const char *apParam)
move axis relative
virtual CMcResult MoveToBorder(tMcAxisName apAxis, real64 arPosition, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search border till arPosition and stop if found.
virtual void iJoyEnb(CINOSTaskExMsg *apMsg)
internal enable joystick mode
virtual void iJoyDisAxisStopped(CINOSTaskExMsg *apUsrMsg)
virtual CMcResult MoveFromBorderDep(real64 arPosition, real64 arPositionVel, real64 arVelocity, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Depart from border.
virtual CMcResult JoyNeg(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Start a joystick move in negative direction. If the module has multiple axes, the first axis is taken...
virtual CMcResult WheelDis(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
disable wheel mode
virtual const char * GetStateText() override
return actual state text
CMcResult eJoyDis(tMcAxisName apAxis)
disable joystick mode
virtual uint32 GetDistanceCodedPosition(const char *apName, real64 arDistance, real64 &arPosition)
Definition cinosmcrobot.h:1166
virtual CMcResult MoveToBorder(real64 arPosition, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search border till arPosition and stop if found (use ReleaseFromBorder before other moves are initiat...
virtual CMcResult WheelEnb(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
enable wheel mode
virtual void iShutdown(CINOSTaskExMsg *apMsg) override
internal shutdown task
virtual void iStartup(real64 arStage) override
internal startup task
virtual CMcResult JoyDis(tMcAxisName apAxis, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Disable joystick mode, see also Joystick.
CMcResult eMoveToAnalogSensor(const char *apName, real64 arPosition, real64 arLevel, real64 arGreater, const char *apParam)
move to analog sensor
virtual uint32 iWaitForPower(tMcAxisName apAxis)
wait for power
CMcResult eWheelDis()
disable wheel mode
virtual bool iIsIdle() const
return true if currently no command running
const char * GetRealAxisName(tMcAxisName apAxis) const
get real axis name
CMcResult eJoyPos(tMcAxisName apAxis)
start joystick move into pos direction
virtual void SetLifetimeDistance(tMcAxisName apAxis, real64 arDistance)
set lifetime distance of apAxis
CMcResult eMoveCarefully(tMcAxisName apAxis, real64 arPosition, real64 arPosError, real64 arCurrent, const char *apParam)
move carefully to position
CMcResult eMoveToBorderApp(tMcAxisName apAxis, real64 arPosition, real64 arPositionVel, real64 arVelocity, const char *apParam)
move to border
virtual void iStepSkipped(CINOSTaskExMsg *apMsg) override
step command skipped
virtual void iSetModeSetup(CINOSTaskExMsg *apMsg) override
internal set mode setup
virtual CMcResult Calib(tMcAxisName apAxis, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
calib axis
virtual CMcResult MoveCarefully(tMcAxisName apAxis, real64 arPosition, real64 arPosError, real64 arCurrent, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
virtual void iClrFlag(tMcAxisName apAxis, uint32 auFlag)
clear axis flag
CMcResult eWheelEnb()
enable wheel mode
virtual CMcResult ForceSelect(tMcAxisName apAxis, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Select given param set.
virtual void iJoyDis(CINOSTaskExMsg *apMsg)
internal disable joystick mode
virtual CMcResult ForceCheck(tMcAxisName apAxis, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Check current force state. Returns the following async results : 'State' : the current force control ...
virtual CMcResult ForceMove(tMcAxisName apAxis, double adForce, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Ramp the commanded force to the requested value [N] with the given param set.
virtual CMcResult MoveFromBorder(tMcAxisName apAxis, real64 arPosition, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Move away from border.
CMcResult eMoveToBorderApp(real64 arPosition, real64 arPositionVel, real64 arVelocity, const char *apParam)
move to border app
virtual CMcResult MoveToBorderApp(tMcAxisName apAxis, real64 arPosition, real64 arPositionVel, real64 arVelocity, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search border till arPosition and stop if found. The current limitation is switched on at the reduced...
CMcResult eMoveToDigitalSensor(const char *apName, real64 arPosition, real64 arSet, const char *apParam)
move to digital sensor
static constexpr int GetLastCmd()
return last mcrobot command id
Definition cinosmcrobot.h:885
virtual CMcResult On(tMcAxisName apAxis, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Axis "On".
CMcResult eJoyEnb(tMcAxisName apAxis)
enable joystick mode
virtual void iWheelEnb(CINOSTaskExMsg *apMsg)
internal enable wheel mode
virtual void iCalibDone(CINOSMcRobotCmd *apCmd)
internal calib done
Definition cinosmcrobot.h:968
virtual CINOSMcRobotAxis * CreateMcRobotAxis(const char *apAlias, const char *apParam)
Creates and adds a new McRobot axis to this module.
virtual void iClrBit(CINOSTaskExMsg *apMsg)
internal clrbit
virtual CMcResult MoveRel(tMcAxisName apAxis, real64 arPosition, real64 arExit, real64 arEnter, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Move relative the requested delta and emit an OnExit and OnEnter event if requested.
virtual void iMonitorError(CINOSTaskExMsg *apMsg)
monitor error
virtual void iInit(tMcAxisName apAxisName, CINOSTaskExMsg *apMsg)
virtual CMcResult WheelEnb(tMcAxisName apAxis, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
enable wheel mode
CMcResult eWheelFactor(tMcAxisName apAxis, real64 arFactor)
set wheel mode factor
virtual bool iInitOk() const
return true if all axes are successfully inited
virtual CMcResult MoveToAnalogSensor(tMcAxisName apAxis, const char *apName, real64 arPosition, real64 arLevel, real64 arGreater, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search analog sensor till arPosition and stop if found.
virtual void iJoyAdc(CINOSTaskExMsg *apMsg)
internal update joystick move
virtual void iStop(CINOSTaskExMsg *apMsg) override
internal stop
virtual void iLimitPosSet(CINOSTaskExMsg *apMsg)
limit pos set
virtual CMcResult PostAxisMessage(tMcAxisName apAxis, uint32 auType, uint32 auCode, uint32 auFlags)
postmessage
CMcResult eJoyNeg(tMcAxisName apAxis)
start joystick move into neg direction
virtual void iInit(CINOSTaskExMsg *apMsg) override
internal init station
virtual CMcResult JoyAdc(tMcAxisName apAxis, real64 arSlow, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Update joystick move, see also Joystick.
virtual ~CINOSMcRobot()
destructor
virtual void iInitDone(CINOSMcRobotCmd *apCmd)
internal init done
Definition cinosmcrobot.h:964
virtual CMcResult MoveAbs(tMcAxisName apAxis, real64 arPosition, real64 arExit, real64 arEnter, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Move to the requested absolute position and emit an OnExit and OnEnter event if requested.
CMcResult eJoyAdc(tMcAxisName apAxis, real64 arSlow)
update joystick move
virtual void SetActPosition(tMcAxisName apAxis, const char *apBase, real64 arPosition)
get actual (current commanded) position of apAxis based on apBase
virtual void iLimitClr(CINOSTaskExMsg *apMsg)
limit clr
virtual real64 iGetSlowMotion(tMcAxisName apAxis)
get slowmotion of apAxis
virtual void iMoveToAnalogSensor(CINOSTaskExMsg *apMsg)
internal move to analog sensor
virtual CMcResult JoyStop(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Stop running joystick move. If the module has multiple axes, the first axis is taken,...
CMcResult eMoveFromBorder(tMcAxisName apAxis, real64 arPosition, const char *apParam)
move from border
virtual CMcResult MoveFromBorder(real64 arPosition, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Move away from border.
CMcResult eJoyStop(tMcAxisName apAxis)
stop joystick move
CMcResult eJoyAdc(real64 arslow)
update joystick move
virtual void iJoyStop(CINOSTaskExMsg *apMsg)
internal stop joystick move
virtual void iOnSimLevelChanged(uint32 auOldLevel, uint32 auNewLevel) override
event handler 'iOnSimLevelChanged'
virtual void iStepCanceled(CINOSTaskExMsg *apMsg) override
step command canceled
virtual CMcResult JoyPos(tMcAxisName apAxis, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Start a joystick move into positive direction, see also Joystick.
virtual bool iGetFlag(tMcAxisName apAxis, uint32 auFlag)
get axis flag
uint32 GetAxisCount() const
get number of axis this module handles
Definition cinosmcrobot.h:759
CMcResult eWheelFactor(real64 arFactor)
set wheel mode factor
virtual CMcResult ForceApproach(tMcAxisName apAxis, double adPosition, double adPositionVel, double adVelocity, double adForce, double adForceLimit, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search requested force [N], stop if found and switch to force mode. In case of success return the asy...
CMcResult eJoyPos()
start joystick move into pos direction
CMcResult eMoveToDigitalSensor(tMcAxisName apAxis, const char *apName, real64 arPosition, real64 arSet, const char *apParam)
move to digital sensor
virtual void iMoveEx(CINOSTaskExMsg *apMsg)
internal move ex
CMcResult eWheelEnb(tMcAxisName apAxis)
enable wheel mode
virtual void iCmdAdd(CINOSMcRobotCmd *apCmd)
internal command add
virtual real64 GetLifetimeDistance(tMcAxisName apAxis)
get lifetime distance of apAxis
virtual void iMsgRejected(CINOSTaskExMsg *apMsg) override
message rejected
virtual void iLimitNegSet(CINOSTaskExMsg *apMsg)
limit neg set
virtual CMcResult MoveToBorderApp(real64 arPosition, real64 arPositionVel, real64 arVelocity, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search border till arPosition and stop if found. The current limitation is switched on at the reduced...
virtual void iMoveToDigitalSensor(CINOSTaskExMsg *apMsg)
internal move to digital sensor
virtual void iCmdDone(CINOSTaskExMsg *apMsg)
internal command done
virtual uint32 iOff(tMcAxisName apAxis)
switch off apAxis
virtual uint32 iOn(tMcAxisName apAxis)
switch on apAxis
virtual void MsgDone(CINOSTaskExMsg *apMsg, ERplId aRplId, uint32 auResult=0) override
message done
virtual bool DispatchUser(CINOSTaskExMsg *apMsg) override
dispatch user message
virtual CMcResult WheelFactor(real64 arFactor, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
set wheel mode factor
virtual void iLimitPosClr(CINOSTaskExMsg *apMsg)
limit pos clr
virtual bool DispatchReply(CINOSTaskExMsg *apMsg) override
dispatch reply message
virtual void iSetFlag(tMcAxisName apAxis, uint32 auFlag)
set axis flag
CMcResult eJoyDis()
disable joystick mode
virtual CMcResult ForceActivate(tMcAxisName apAxis, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Switch from position to force mode.
CMcResult eJoyStop()
stop joystick move
CMcResult eMoveAbs(real64 arPosition, real64 arExit, real64 arEnter, const char *apParam)
move axis absolute
CMcResult eJoyEnb()
enable joystick mode
virtual void iStepStopped(CINOSTaskExMsg *apMsg) override
step command stopped
virtual bool iCheckSetupMode() override
internal check setup mode
virtual void iJoyNeg(CINOSTaskExMsg *apMsg)
internal start joystick move into neg direction
CMcResult eJoyNeg()
start joystick move into neg direction
virtual CMcResult ForceBreak(tMcAxisName apAxis, double adForce, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Ramp the commanded force to the requested value [N] with the given param set. Expect a collapse befor...
virtual bool DispatchTmd(CINOSTaskExMsg *apMsg) override
dispatch triggered command message
virtual CMcResult JoyStop(tMcAxisName apAxis, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Stop running joystick move, see also Joystick.
virtual void iMoveAbs(CINOSTaskExMsg *apMsg)
internal move axis absolute
virtual CMcResult MoveToDigitalSensor(const char *apName, real64 arPosition, real64 arSet, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search digital sensor till arPosition and stop if found.
virtual void iOnSlowMotionChanged(CINOSTaskExMsg *apMsg) override
event handler 'iOnSlowMotionChanged'
virtual bool DispatchCmd(CINOSTaskExMsg *apMsg) override
dispatch command message
virtual void iCancelDeferred() override
overridden because we need to cancel all pending commands
virtual CMcResult JoyNeg(tMcAxisName apAxis, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Start a joystick move into negative direction, see also Joystick.
virtual void CmdFailed(CINOSTaskExMsg *apMsg, uint32 auError)
CMcResult eMoveFromBorder(real64 arPosition, const char *apParam)
move from border
virtual CMcResult Init(tMcAxisName apAxis, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
CMcResult eMoveFromBorderDep(tMcAxisName apAxis, real64 arPosition, real64 arPositionVel, real64 arVelocity, const char *apParam)
move from border dep
virtual CMcResult MoveFromBorderDep(tMcAxisName apAxis, real64 arPosition, real64 arPositionVel, real64 arVelocity, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Depart from border.
virtual CMcResult MoveEx(tMcAxisName apAxis, real64 arPosition, real64 arTrgPosition, uint32 auFlags, const char *apTrgName, real64 arTrgLevel, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
virtual CMcResult MoveAbs(real64 arPosition, real64 arExit, real64 arEnter, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Move to the requested absolute position and emit an OnExit and OnEnter event if requested....
virtual void iOn(CINOSTaskExMsg *apMsg) override
internal on station
virtual CMcResult WheelDis(tMcAxisName apAxis, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
disable wheel mode
virtual CMcResult MoveRel(real64 arPosition, real64 arExit, real64 arEnter, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Move relative the requested delta and emit an OnExit and OnEnter event if requested....
virtual void MsgDone(CINOSTaskExMsg *apMsg, uint32 auResult=0) override
message done
virtual CMcResult ForceInactivate(tMcAxisName apAxis, double adLimit, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Switch from force to position mode with optional active force limitation.
virtual CMcResult WheelFactor(tMcAxisName apAxis, real64 arFactor, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
set wheel mode factor
virtual CMcResult Off(tMcAxisName apAxis, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
CMcResult eWheelDis(tMcAxisName apAxis)
disable wheel mode
virtual CMcResult ForceDepart(tMcAxisName apAxis, double adPosition, double adPositionVel, double adVelocity, double adForceLimit, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Switch to position mode and depart from force point.
CINOSMcRobotAxis * GetAxis(uint32 auIndex) const
virtual void iMoveToBorderApp(CINOSTaskExMsg *apMsg)
internal move to border app
virtual void iMonitorWarning(CINOSTaskExMsg *apMsg)
monitor warning
virtual void iMoveRel(CINOSTaskExMsg *apMsg)
internal move axis relative
virtual void iWheelDis(CINOSTaskExMsg *apMsg)
internal disable wheel mode
virtual void iCmdRemove(CINOSMcRobotCmd *apCmd)
internal command remove
CMcResult eMoveToBorder(tMcAxisName apAxis, real64 arPosition, const char *apParam)
move to border
TINOSTaskExCmdMsg< CINOSMcRobot, const char *, const char * > DestroySpeedset
Definition cinosmcrobot.h:281
CMcResult eMoveFromBorderDep(real64 arPosition, real64 arPositionVel, real64 arVelocity, const char *apParam)
move from border dep
TINOSTaskExCmdMsg< CINOSMcRobot, const char *, const char *, const char * > SetSpeedset
Set/modify the parameters of an existing speedset.
Definition cinosmcrobot.h:303
virtual void iLinkDown(CINOSTaskExMsg *apMsg) override
link down
virtual CMcResult MoveToDigitalSensor(tMcAxisName apAxis, const char *apName, real64 arPosition, real64 arSet, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search digital sensor till arPosition and stop if found.
virtual void iWheelFactor(CINOSTaskExMsg *apMsg)
internal set wheel mode factor
virtual void CmdStop(tMsgId auId, uint32 auReply=CINOSTaskEx::eRplStopped)
internal command stop
virtual void iStartup(CINOSTaskExMsg *apMsg) override
internal startup task
int32 GetAxisIndex(tMcAxisName apAxis) const
get index of axis 'apName' (-1 if not found)
virtual CMcResult JoyDis(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Disable joystick mode. If the module has multiple axes, the first axis is taken, see also Joystick.
virtual CMcResult ForceMoveStop(tMcAxisName apAxis, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Stop the actual ForceMove with the given param set.
CMcResult eMoveToBorder(real64 arPosition, const char *apParam)
move to border
virtual real64 GetActPosition(tMcAxisName apAxis, const char *apBase)
get actual (current commanded) position of apAxis based on apBase
virtual CMcResult JoyEnb(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Enable joystick mode. If the module has multiple axes, the first axis is taken, see also Joystick.
virtual CINOSMcRobotCmd * iCmdGet(tMsgId auId)
internal command get
virtual void iMoveFromBorderDep(CINOSTaskExMsg *apMsg)
internal move from border depart
virtual uint32 iRecover(tMcAxisName apAxis)
recover apAxis
CINOSMcRobot(const char *apName, const char *apType, const char *apParam)
constructor
virtual CMcResult ForceTara(tMcAxisName apAxis, double adForce, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Set current force [N] to given value.
virtual CMcResult JoyEnb(tMcAxisName apAxis, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Enable joystick mode, see also Joystick.
virtual CMcResult MoveToAnalogSensor(const char *apName, real64 arPosition, real64 arLevel, real64 arGreater, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Search analog sensor till arPosition and stop if found.
static constexpr int GetLastUsr()
return last mcrobot user id
Definition cinosmcrobot.h:889
virtual CMcResult JoyPos(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Start a joystick move in positive direction. If the module has multiple axes, the first axis is taken...
virtual void iOff(CINOSTaskExMsg *apMsg) override
internal off station
virtual void iJoyPos(CINOSTaskExMsg *apMsg)
internal start joystick move into pos direction
TINOSTaskExCmdMsg< CINOSMcRobot, const char *, const char *, const char * > CreateSpeedset
Create a new speedset for the McRobot axis. In case that apInitialValue is non-empty,...
Definition cinosmcrobot.h:258
virtual uint32 iGetSimLevel(tMcAxisName apAxis)
get simelevel of apAxis
uint32 GetAxisSourceId(tMcAxisName apAxis) const
get source id of axis 'apName'
virtual void iLimitNegClr(CINOSTaskExMsg *apMsg)
limit neg clr
const char * GetVirtAxisName(const char *apName) const
get virtual axis name
CMcResult eMoveToAnalogSensor(tMcAxisName apAxis, const char *apName, real64 arPosition, real64 arLevel, real64 arGreater, const char *apParam)
move to analog sensor
virtual CINOSMcRobotCmd * iCmdGetFirst() const
internal command get first
Definition cinosmcrobot.h:1101
virtual void iMoveToBorder(CINOSTaskExMsg *apMsg)
internal move to border
virtual void RegisterCheckLimitHook()
register hook for limit switch handler
Definition cinosmovepath.h:566
Definition cinosmutex.h:36
Provides physical aka real axis functionality.
Definition cinosphysicalaxis.h:286
Definition cinosposchannel.h:59
Definition inos_syn.h:67
Definition cinostaskexdef.h:129
Definition cinostaskex.h:396
tMsgId GetId() const
get message id
Definition cinostaskex.h:588
CINOSTask * GetSender() const
get pointer to sender
Definition cinostaskex.h:617
Definition cinostaskex.h:966
ERplId
reply id's
Definition cinostaskex.h:1409
Definition cinostask.h:52
Definition inos_1ms.h:143
uint32 INOS_MCMSG_CODE_ROBOT_DIST_CODED_IMPL_MISSING
Definition inoserror.h:1677
#define INOS_OR(variable, mask)
Definition inosmacro.h:201
#define DF_INOS_SYNCHRONOUS
Definition inosmacro.h:332
#define INOS_AND(variable, mask)
Definition inosmacro.h:210
Definition cinosmcrobot.h:3346
CINOSMcRobotCmdMove::eEventType m_eType
type
Definition cinosmcrobot.h:3351
inosName64 m_cName
name
Definition cinosmcrobot.h:3353
uint64 m_uBusTicks
bus ticks
Definition cinosmcrobot.h:3361
real64 m_rMoveTime
movetime
Definition cinosmcrobot.h:3357
DECLARE_DYNAMIC(SINOSMcRobotCmdShapeEvent)
dynamic object handling
SINOSMcRobotCmdShapeEvent * m_pNext
pointer to next event
Definition cinosmcrobot.h:3364
real64 m_rValue
value
Definition cinosmcrobot.h:3355
uint32 m_uFlags
valid
Definition cinosmcrobot.h:3348
ramp parameters
Definition cinosbaseramp.h:503