28#ifndef INC_CINOSMCMODULE_H
29#define INC_CINOSMCMODULE_H
35#define INOS_MCMODULE_STEP_INST(_inst_,_msg_) \
36 if (!(_msg_->GetData() && (_msg_->GetData()->GetFlag()&CINOSMcDataInst::eFlgIgnoreStep)) &&\
37 !_msg_->GetTrigger() && \
38 !IsDispatcher(_msg_->GetSender()) && \
39 ((_inst_.GetMode() == CINOSMcModule::eModStep) || \
40 ((_inst_.GetParent()&&(_inst_.GetParent()->GetMode() == CINOSMcModule::eModStep)) &&\
41 ((_inst_.GetParent()&&(!_inst_.GetParent()->GetModule(_msg_->GetSender()->GetName()))))))){\
43 inos_strncpy(msg, _msg_->GetName(), sizeof(msg)); \
44 uint32 uRes = SendMessage(INOS_MCMSG_TYPE_STEP, INOS_MCMSG_CODE_MODULE_STEP,\
45 INOS_MCMSG_FLAG_RESUME|INOS_MCMSG_FLAG_SKIP| \
46 INOS_MCMSG_FLAG_CANCEL|INOS_MCMSG_FLAG_STOP, \
48 if (uRes & INOS_MCMSG_FLAG_CANCEL){ \
49 _inst_.iStepCanceled(_msg_); \
50 return _inst_.MsgDone(_msg_, CINOSTaskEx::eRplCanceled, 0); \
52 if (uRes & INOS_MCMSG_FLAG_STOP){ \
53 _inst_.iStepStopped(_msg_); \
54 return _inst_.MsgDone(_msg_, CINOSTaskEx::eRplStopped, 0); \
56 if (uRes & INOS_MCMSG_FLAG_SKIP){ \
57 _inst_.iStepSkipped(_msg_); \
58 return _inst_.MsgDone(_msg_, CINOSTaskEx::eRplSkipped, 0); \
61#define INOS_MCMODULE_STEP(_msg_) INOS_MCMODULE_STEP_INST((*this), _msg_)
63typedef char inosResName[128];
64#define DF_INOS_MCMODULE_MAXCOUNT 8
65#define DF_INOS_MCMODULE_MAXAVERAGE 32
66#define DF_INOS_MCMODULE_EMGDELAY 100
77#include <cinosserialinout.h>
79#include <cinosmcmessage.h>
80#include <cinosmcjob.h>
81#include <cinosmcscript.h>
82#include <cinosmcdata.h>
83#include <cinosmccron.h>
93#if defined(INOS_COORDINATOR_SUPPORT)
100class CINOSMcGuardian;
123#define INOS_RESOURCE_TYPE(type,id) ((type&0xF) + ((id&0xfff)<<4))
150 eResFlgNone = 0x00000000,
151 eResFlgMandatory = 0x00000001,
152 eResFlgCountUp = 0x00000002,
153 eResFlgCountDown = 0x00000004,
155 eResFlgCountUpDown = (eResFlgCountUp + eResFlgCountDown),
157 eResFlgStat = eResFlgCountUpDown
189 void SetSetId(int16 aiSetId,
const char* apParam=0);
191 void SetClrId(int16 aiClrId,
const char* apParam=0);
213 template <
class T>
void GetResource(T*& apResource);
221 bool GetHookInfo(uint8& aoBusId, uint16& aoCycleId, uint32& aoCycleTime)
const;
284 virtual long Put(
void* aSource,
long aIndex=0,
long aOffset=0);
364 virtual CMcResult
Stop(
const char* apParam);
392 virtual CMcResult
Cancel(
const char* apParam);
450 {
"Values",
"",
nullptr, CINOSTaskExMsgParam::eFlgStructure},
451 {
"Overwrite",
false},
467 virtual CMcResult
MoveData(
const char* apSrcName,
const char* apDstModule,
491 virtual CMcResult
RunJob(
const char* apName,
const char* apParam,
494 virtual CMcResult
RunScript(
const char* apName,
const char* apData,
519 virtual CMcResult
SetOut(
const char* apName, real64 arValue,
532 virtual CMcResult
WaitBitEx(
const char* apName, real64 arValue, real64 arTimeout,
533 real64 arErrorType, real64 arErrorCode, real64 arErrorFlags,
536 virtual CMcResult
WaitInp(
const char* apName, real64 arValue, real64 arTimeout,
539 virtual CMcResult
WaitAdcNB(
const char* apName, uint32 auSlope, real64 arValue, real64 arTimeout,
542 virtual CMcResult
WaitPosNB(
const char* apName, uint32 auSlope, real64 arValue, real64 arTimeout,
545 virtual CMcResult
WaitAxis(
const char* apName, uint32 auSlope, real64 arValue, real64 arTimeout,
548 virtual CMcResult
WaitAxisEx(
const char* apName, uint32 auSlope, real64 arValue, real64 arTimeout, uint32 auFlags,
558 virtual CMcResult
SetCounter(uint32 auType, uint32 auNbr, uint32 auValue,
593 #if defined(INOS_COORDINATOR_SUPPORT)
594 virtual CINOSMcCoord* GetCoord();
597 #if defined(INOS_LUAINTERPRETER)
598 virtual CINOSMcLua* GetLua();
601 virtual CINOSMcBaseJob*
GetJob(
const char* apName);
605 virtual CINOSMcBaseScript*
GetScript(
const char* apName);
611 virtual CINOSMcData*
GetData(
const char* apName);
613 virtual CINOSMcData*
GetData(
const char* apPrefix, uint32 auNr);
615 virtual CINOSMcData*
GetData(
const char* apPrefix,
const char* apName);
645 virtual real64
GetProp(
const char* apName, real64 arDefValue, CINOSMcData* apData);
647 virtual void GetProp(
const char* apName,
const char* apDefault,
char* apBuffer, uint32 auLength, CINOSMcData* apData);
650 template<
class T> T* GetResource(
const char* apName);
652 CINOSBit* GetInpResource(
const char* apName);
654 CINOSBit* GetOutResource(
const char* apName);
656 CINOSBit* GetFlgResource(
const char* apName);
703 uint32
RegisterHook(uintid& aoHookId,
const char* apResName,
void* apHandler,
void* apObject, int32 aiOrder);
749 const char* apParam);
764 CINCOProcedure* apProc)
override;
768 bool abRegisterInco=
true)
override;
770 virtual void AddCommand(
const char* apName, uint32 auCode, uint32 auType=eMsgCmd)
override;
775 const char* apFunctionName,
777 bool abRegisterInco =
true)
override;
779 virtual void RemChildCommand(
const char* apModuleName,
const char* apFunctionName)
override;
788 return eCmdINOSMcModuleLast;
792 return eUsrINOSMcModuleLast;
799 friend class CINOSMcValve;
800 friend class CINOSMcFastLoad;
801 friend void _INI_0000_CINOSMcModule();
802 friend void _INI_0300_CINOSMcModule();
803 friend void _INI_0500_CINOSMcModule();
804 friend void _INI_1000_CINOSMcModule();
806 friend int l_add_command(lua_State *L);
813 CINOSMcModule (
const char* apName,
const char* apType,
const char* apParam);
823 eCmdINOSMcModuleFirst = eCmdINOSTaskExLast+1,
842 eCmdDestroySubModule,
853 eCmdRunRegisteredLuaFunction,
886 eUsrINOSMcModuleFirst = eUsrINOSTaskExLast+1,
893 eUsrSlowMotionChanged,
898 eUsrSafetyConfigUpdate,
903 eIntINOSMcModuleFirst = eIntINOSTaskExLast + 1,
911 eStaINOSMcModuleFirst = eStaINOSTaskExLast+1,
948 eOptCoord = 0x00000100,
949 eOptMode = 0x00000200,
950 eOptGuard = 0x00000400,
951 eOptConc = 0x00000800,
952 eOptCron = 0x00001000,
953 eOptSafety = 0x00002000,
954 eOptResMcM4 = 0x00004000,
955 eOptResMcM5 = 0x00008000
959 enum EFlags : uint64 {
960 eFlgResource= 0x00000100,
962 eFlgInit = 0x00000400,
963 eFlgSetup = 0x00000800,
964 eFlgJob = 0x00001000,
965 eFlgBackup = 0x00002000,
966 eFlgPaused = 0x00004000,
967 eFlgSafe = 0x00008000,
968 eFlgCreated = 0x0000010000000000LL
973 eReqOff = 0x00000100,
974 eReqStop = 0x00000200,
975 eReqCancel = 0x00000400,
976 eReqStep = 0x00000800,
977 eReqStart = 0x00001000,
978 eReqPause = 0x00002000,
979 eReqSafe = 0x00004000,
980 eReqSetup = 0x00008000
985 eCrtWaitObj = 0x00000100,
986 eCrtResMcM1 = 0x00000200,
987 eCrtResMcM2 = 0x00000400,
988 eCrtResMcM3 = 0x00000800,
989 eCrtResMcM4 = 0x00001000,
990 eCrtResMcM5 = 0x00002000,
991 eCrtResMcM6 = 0x00004000,
992 eCrtResMcM7 = 0x00008000
1025 uint32 auFlags = CINOSMcModuleRes::eResFlgMandatory, CINCOObject* apObj = 0);
1027 uint32 auType, uint32 auFlags = CINOSMcModuleRes::eResFlgMandatory,
1028 CINCOObject* apObj = 0);
1030 uint32 auType, uint32 auFlags = CINOSMcModuleRes::eResFlgMandatory,
1031 CINCOObject* apObj = 0);
1033 void* apPtr, uint32 auType, uint32 auFlags = CINOSMcModuleRes::eResFlgMandatory,
1034 CINCOObject* apObj = 0);
1039 template <
typename F>
1040 void iForEachResource(F&& f) {
1041 m_pRes->ForEach(std::move(f));
1044 virtual void EnbResource(
char* apName);
1046 virtual void DisResource(
char* apName);
1050 #ifdef INOS_SAFETY_SUPPORT
1051 virtual void SafetyConfigUpdate();
1061 real64 arStart, real64 arEnd,
const char* apParam);
1080 #ifdef INOS_MULTICORE
1081 virtual uint32 iSwitchCore(uint8 auCoreId)
override;
1089 #ifdef INOS_SAFETY_SUPPORT
1206 #if defined(INOS_COORDINATOR_SUPPORT)
1212 #if defined(INOS_LUAINTERPRETER)
1213 virtual void iRunLuaJob(
CINOSTaskExMsg* apMsg,
const char* apFunction);
1215 virtual void iRunLuaScript(
CINOSTaskExMsg* apMsg,
const char* apFunction);
1221 #if defined(INOS_LUAINTERPRETER)
1291 real64 arTimeout = 0.0,
1292 real64 arSimTimeout = 0.0
1296 real64 arTimeout = 0.0);
1341 virtual void iOnCntSet(uint32 auType, uint32 auNbr, uint32 auVal,
1366 virtual void SetFlag(uint64 auFlag,
bool abUpdateState =
false)
override
1374 virtual void ClrFlag(uint64 auFlag,
bool abUpdateState =
false)
override
1422 real64 arValue, real64 arTimeout, real64& arUsed);
1425 int32 aiValue, real64 arTimeout, real64& arUsed);
1428 real64 arValue, real64 arTimeout, real64& arUsed);
1431 real64 arValue, real64 arTimeout, real64& arUsed);
1434 real64 arTimeout, real64& arUsed);
1452 uint32
CreateModule(
const char* apName,
const char* apType,
const char* apParam);
1458 {
return m_pData; };
1463 virtual void JobCounterInc();
1465 virtual void JobCounterDec();
1482 intptr& aiSetId, uint32& auSetSubId, int16& aiSetType, inosName32& apSetParam,
1483 intptr& aiClrId, int16& aiClrType, inosName32& apClrParam);
1485 void ParseResCmd(
const char* apSrc, inosName32& aCmd, inosName32& aParam);
1487 void AddResources(
const char* apName, uint32 auType);
1489 void RunStream(
const char* apName);
1493 #if defined(INOS_LUAINTERPRETER)
1494 bool RunLuaScripts();
1497 virtual const char* GetModuleScriptName(
const char* apCmd);
1501 bool IsDone(
tMsgId aCmdId);
1506 virtual void iWaitObjReply(
ERplId aeReply);
1508 virtual void iWaitObjReply(
ERplId aeReply,
tMsgId atMsgId,
1512 void WaitObjReplyAll(
ERplId aeReply);
1515 void iWaitObjHook();
1518 void RegisterWaitObjHookLazy();
1519 void UnregisterWaitObjHook();
1522 virtual void RequestScriptMutex()
1527 virtual void ReleaseScriptMutex()
1535 #if defined(INOS_COORDINATOR_SUPPORT)
1536 CINOSMcCoord* m_pCoord;
1540 #if defined(INOS_LUAINTERPRETER)
1545 #if !defined(INOS_DESKTOP)
1546 CINOSMcFastLoad* m_pFastLoad{};
1550 CINOSMcGuardian* m_pGuardian;
1553 CINCOObject* m_piRes;
1555 CINCOObject* m_piCounter;
1574 bool m_bInpListChanged;
1576 bool m_bOutListChanged;
1578 TINOSDoubleLinkedList<CINOSMcModuleRes>* m_pRes;
1580 TINOSDoubleLinkedList<CINOSMcModuleRes>* m_pInp;
1582 TINOSDoubleLinkedList<CINOSMcModuleRes>* m_pOut;
1584 CListNode* m_pInpNode;
1586 CListNode* m_pOutNode;
1594 bool m_bIgnoreUph[DF_INOS_MCMODULE_MAXCOUNT];
1597 uintid m_uModuleHlpHookId;
1603 bool m_bEmergencyOnPurpose;
1605 uint32 m_uEmergencyCnt;
1616 uintid m_uWaitObjHookId = 0;
1620 TINOSDoubleLinkedList<CINCOTable> m_LuaScripts;
1625 bool iHasEmergency();
1627 bool iIsEmergency();
1658 nvuint32 m_uSimLevel;
1687 #if defined(INOS_KERNEL_MSGID_64)
1745 #ifdef INOS_SAFETY_SUPPORT
1747 CINOSBit* m_pDiSTOConfirm =
nullptr;
1749 uint32 m_uTgtErrorFlags = 0;
1756 static bool s_bRegisterInContainer;
1767template <
class T>
void CINOSMcModuleRes::GetResource(T*& apResource)
1770 apResource = (T*) NULL;
1774 case CINOSMcModuleRes::eResDigInp :
1775 case CINOSMcModuleRes::eResDigOut :
1776 case CINOSMcModuleRes::eResDigFlg :
1777 case CINOSMcModuleRes::eResAnaInp :
1778 case CINOSMcModuleRes::eResAnaOut :
1779 case CINOSMcModuleRes::eResPos : {
1782 apResource =
dynamic_cast<T*
>(chn);
1786 case CINOSMcModuleRes::eResAxis : {
1789 apResource =
dynamic_cast<T*
>(axs);
1793 case CINOSMcModuleRes::eResControl : {
1796 apResource =
dynamic_cast<T*
>(ctr);
1800 case CINOSMcModuleRes::eResSio : {
1808 case CINOSMcModuleRes::eResModule : {
1811 apResource =
dynamic_cast<T*
>(mod);
1822template <
class T> T* CINOSMcModule::GetResource(
const char* apName)
1827 res->GetResource(s);
1841 friend class CINOSMcModuleWaitBit;
1842 friend class CINOSMcModuleWaitAdc;
1857 INOS_CONCURRENCY_CHECK_FREE(apMsg);
1911 virtual void Handle(){
1915 real64 rValue = real64(*m_pVar);
1921 if (rValue>m_rValue){
1923 Reply(CINOSTaskEx::eRplOk);
1932 if (rValue>=m_rValue){
1934 Reply(CINOSTaskEx::eRplOk);
1943 if (rValue<m_rValue){
1945 Reply(CINOSTaskEx::eRplOk);
1954 if (rValue<=m_rValue){
1956 Reply(CINOSTaskEx::eRplOk);
1965 if (rValue==m_rValue){
1967 Reply(CINOSTaskEx::eRplOk);
1989 real64 arValue, real64 arTimeout, real64& arUsed)
1993 if (((aeTypWait==eTypWaitGt) && (real64(val)>arValue)) ||
1994 ((aeTypWait==eTypWaitGte) && (real64(val)>=arValue)) ||
1995 ((aeTypWait==eTypWaitLt) && (real64(val)<arValue)) ||
1996 ((aeTypWait==eTypWaitLte) && (real64(val)<=arValue)) ||
1997 ((aeTypWait==eTypWaitEq) && (real64(val)==arValue))){
1999 arUsed = REAL64(0.0);
2001 return CINOSTaskEx::eRplOk;
2007 return eRplCanceled;
2021 m_eWaitObj = eRplError;
2032 RegisterWaitObjHookLazy();
2040 m_sWaitObj.
Wait(INOS_WAIT_FOREVER);
std::function< uint32()> TINOSMcModuleCondHandler
Definition cinosmcmodule.h:116
std::function< bool()> TINOSMcModuleCondFunc
callback function that checks if a wait condition is fulfilled
Definition cinosmcmodule.h:113
#define DECLARE_DYNAMIC_T(aClass, aT)
Definition cinospartitionmemory.h:330
#define IMPLEMENT_DYNAMIC_T(aClass, aT)
Definition cinospartitionmemory.h:363
Definition cinosadcchannel.h:53
Provides axis functionality.
Definition cinosbaseaxis.h:676
Definition cinoscontainer.h:104
Definition cinoscontrol.h:164
Definition cinosdacchannel.h:52
Definition cinosmcmodule.h:126
const char * GetFullName()
get full resource name
Definition cinosmcmodule.h:202
inosName64 m_cFullName
inco name
Definition cinosmcmodule.h:233
uint32 m_uResFlags
resource flags
Definition cinosmcmodule.h:257
uint32 m_uResState
resource state
Definition cinosmcmodule.h:255
bool m_bSet
bit state (only input)
Definition cinosmcmodule.h:261
void DisResource()
disable resource
Definition cinosmcmodule.h:182
uint32 m_uResTyp
resource type
Definition cinosmcmodule.h:251
inosName m_cUnit
resource unit
Definition cinosmcmodule.h:239
uint32 m_uResId
resource id
Definition cinosmcmodule.h:253
void EnbResource()
enable resource
Definition cinosmcmodule.h:179
bool GetIO(real64 &arValue) const
get actual state of an IO
uint32 GetResState()
get state
char * m_pCmdClr
pointer to clear command (if any)
Definition cinosmcmodule.h:243
uint32 GetResId() const
get resource id
Definition cinosmcmodule.h:196
CINCOObject * m_pObj
pointer to my parent inco object
Definition cinosmcmodule.h:279
void RegisterStat(CINCOObject *apParent)
Add statistics registry to given object.
inosName32 m_cClrParam
cleared command param
Definition cinosmcmodule.h:275
void SetOut(real64 arValue)
set output
void SetObj(CINCOObject *apObj)
set pointer to parent object
Definition cinosmcmodule.h:215
CINCOObject * GetObj()
get pointer to parent object
Definition cinosmcmodule.h:218
void SetSetId(int16 aiSetId, const char *apParam=0)
set setid
void SetClrId(int16 aiClrId, const char *apParam=0)
set clrid
void * m_pResPtr
pointer to resource pointer
Definition cinosmcmodule.h:247
intptr m_iClrId
cleared command id and type (only input)
Definition cinosmcmodule.h:268
uint32 GetResType()
get resource type
Definition cinosmcmodule.h:193
bool GetHookInfo(uint8 &aoBusId, uint16 &aoCycleId, uint32 &aoCycleTime) const
get hook info
inosName32 m_cSetParam
set command param
Definition cinosmcmodule.h:273
inosResName m_cName
resource name (including command names)
Definition cinosmcmodule.h:235
void Handle()
handle resource
char * m_pCmdSet
pointer to set command (if any)
Definition cinosmcmodule.h:241
void * m_pDummy
dummy
Definition cinosmcmodule.h:249
const char * GetOrgName()
get original resource name
Definition cinosmcmodule.h:199
DECLARE_DYNAMIC(CINOSMcModuleRes)
dynamic object handling
CINOSMcModuleRes(const char *apName, const inosResName *apValue, void *apPtr, uint32 auType, CINOSMcModule *apModule, uint32 auFlags)
constructor
intptr m_iSetId
set command id and type(only input)
Definition cinosmcmodule.h:263
uint16 m_uIncoIndex
inco name index
Definition cinosmcmodule.h:271
const char * GetIncoName()
get inco resource name
Definition cinosmcmodule.h:205
CINOSMcModule * m_pModule
pointer to module
Definition cinosmcmodule.h:245
bool m_bEnabled
resource enabled (inp command handling)
Definition cinosmcmodule.h:259
const char * GetUnit()
get resource unit
Definition cinosmcmodule.h:208
inosName64 m_cPureName
resource name
Definition cinosmcmodule.h:237
Definition cinosmcmodule.h:1839
CINOSTaskExMsg * m_pMsg
pointer to my message (defined if async handling)
Definition cinosmcmodule.h:1884
CINOSMcModuleWaitObj()
constructor
Definition cinosmcmodule.h:1845
bool m_bSignaled
signaled
Definition cinosmcmodule.h:1888
virtual void SetMsg(CINOSTaskExMsg *apMsg)
Set message.
Definition cinosmcmodule.h:1856
void Reply(CINOSTaskEx::ERplId aeReply)
do reply
Definition cinosmcmodule.h:1863
virtual uint32 Complete(CINOSMcModule *apModule, CINOSTaskEx::ERplId &aeReply, real64 arTimeout)
called before MsgDone, to allow subclasses to modify the result
Definition cinosmcmodule.h:1877
CINOSMcModule * m_pModule
pointer to my module
Definition cinosmcmodule.h:1882
int32 m_iStart
tick count at start
Definition cinosmcmodule.h:1886
CINOSMcModuleWaitObj * m_pNext
pointer to next in chain
Definition cinosmcmodule.h:1890
DECLARE_DYNAMIC(CINOSMcModuleWaitObj)
dynamic object handling
virtual void Handle()=0
handler
Definition cinosmcmodule.h:1900
Definition cinosmcmodule.h:296
virtual void iInit(CINOSTaskExMsg *apMsg)
internal init
virtual uint32 GetSimLevel()
get simlevel
virtual void iUpdate()
update state
virtual void irplRunScript(CINOSTaskExMsg *apMsg, CINOSTaskExMsg *apRpl)
internal run script for coordinator
CINOSMcDataInst * m_pOffDataInst
pointer to off script data instance
Definition cinosmcmodule.h:1726
virtual void iSetModeAuto(CINOSTaskExMsg *apMsg)
internal set auto mode
void iAddOutResource(CINOSTaskExMsg *apMsg)
see AddOutResource
uint32 m_uActJobs
number of actual running scripts/jobs
Definition cinosmcmodule.h:1668
virtual CINOSMcData * GetData(uint32 auNr)
get pointer to data auNr
virtual CMcResult On(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Switch module on.
virtual void iValveActivate(CINOSTaskExMsg *apMsg)
activate a valve
virtual CMcResult Start(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Depending on the current module state this method has different meanings. If the module is in state o...
virtual void iCronDisable(CINOSTaskExMsg *apMsg)
internal disable cron job
virtual void iWaitInp(CINOSTaskExMsg *apMsg)
internal non blocking waitbit
CINOSMcValves * m_pValves
pointer to valves
Definition cinosmcmodule.h:1724
virtual void iOn(CINOSTaskExMsg *apMsg)
internal on
virtual CMcResult WaitBitEx(const char *apName, real64 arValue, real64 arTimeout, real64 arErrorType, real64 arErrorCode, real64 arErrorFlags, const char *apErrorText, real64 arErrorSend, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
waitbit
DECLARE_DYNAMIC(CINOSMcModule)
dynamic object handling
virtual CMcResult CronTouch(const char *apName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
touch cron job apName
virtual void iSetMode(const char *apName)
internal set mode
nvuint32 m_uActCmdId
paused cmd id
Definition cinosmcmodule.h:1690
virtual void iMoveData(CINOSTaskExMsg *apMsg)
internal move data
virtual bool TestBit(const char *apName)
internal test bit with resource name 'apName'
uint64 * m_pCntTimeBase[8]
timebase of last count
Definition cinosmcmodule.h:1718
virtual void iOnCntSet(uint32 auType, uint32 auNbr, uint32 auVal, uint64 auTb)
counter handler
virtual CMcResult Backup(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Backup current state and call backup of all my chidren.
virtual void iOnCntInc(CINOSTaskExMsg *apMsg)
event handler 'OnCntInc'
nvuint32 * m_pCntCmd[8]
commanded counters
Definition cinosmcmodule.h:1698
virtual void iSetMode(CINOSTaskExMsg *apMsg)
internal run registered lua function
nvreal64 * m_pCntTim[8]
cycle time [ms]
Definition cinosmcmodule.h:1714
uint32 m_uCntNbr
number of counters
Definition cinosmcmodule.h:1696
TINOSTaskExCmdMsg< CINOSMcModule, const char *, bool > SetItems
Sets items (Prop, Act, Res etc.) of a module. Setting items of a sub-module is not allowed.
Definition cinosmcmodule.h:448
uint8 m_uLcMask
bus mask
Definition cinosmcmodule.h:1736
int32 m_iSimLevel
simulation level
Definition cinosmcmodule.h:1657
virtual void iWaitPos(CINOSTaskExMsg *apMsg)
internal non blocking waitbit
uint32 DestroyModule(const char *apName)
destroy module
virtual const char * GetModuleName()
get module name
Definition cinosmcmodule.h:724
virtual void iSetModeStep(CINOSTaskExMsg *apMsg)
internal set step mode
virtual void ihndlWait(CINOSTaskExMsg *apMyMsg, CINOSTaskExMsg *apNewMsg)
handle for deferred wait messages
virtual void iWaitAxis(CINOSTaskExMsg *apMsg)
internal non blocking wait axis
virtual CMcResult WaitAdcNB(const char *apName, uint32 auSlope, real64 arValue, real64 arTimeout, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
waitadc non blocking
virtual void iStepCanceled(CINOSTaskExMsg *apMsg)
step command canceled
Definition cinosmcmodule.h:1386
uint32 m_uMode
actual selected mode
Definition cinosmcmodule.h:1655
static constexpr int GetLastCmd()
return last mcmodule command id
Definition cinosmcmodule.h:787
virtual void iRunScript(CINOSTaskExMsg *apMsg)
internal run script
virtual void irplSafe(CINOSTaskExMsg *apMsg, CINOSTaskExMsg *apRpl)
internal safe reply
virtual void irplOff(CINOSTaskExMsg *apMsg, CINOSTaskExMsg *apRpl)
internal off reply
static CINOSMcModule * GetMachine(uint32 auIndex)
virtual CMcResult SetModeAuto(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
switch module to auto mode
virtual void iCreateData(CINOSTaskExMsg *apMsg)
internal create data
uint32 m_uEmgFilter
emergency filter
Definition cinosmcmodule.h:1672
void iAddAdcResource(CINOSTaskExMsg *apMsg)
see AddAdcResource
virtual CMcResult Prepare(real64 arStage, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Prepare module for given stage. This method only makes sense if its internal implementation is overwr...
virtual CMcResult IsActionAllowed(const char *apScriptName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
get fastload clearance
virtual CMcResult CronEnable(const char *apName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
enable cron job apName
nvreal64 m_rSlowMotionSetup
setup slowmotion factor
Definition cinosmcmodule.h:1662
virtual void OnTargetError()
target error handler
virtual CINOSMcBaseJob * GetJob(const char *apName)
get pointer to coordinator
bool m_bUniqueResourceNaming
Definition cinosmcmodule.h:1643
tMsgId m_uActJobId
paused job
Definition cinosmcmodule.h:1693
virtual CINCOObject * GetResObj()
get pointer to 'Res' inco folder
virtual void SetSimLevel(uint32 auSimLevel, bool abNonVolatile)
set simlevel
virtual void iRecover(CINOSTaskExMsg *apMsg)
internal recover
virtual void iStop(CINOSTaskExMsg *apMsg)
internal stop
virtual CINOSMcData * GetData(const char *apPrefix, uint32 auNr)
get pointer to data apPrefix (allows to iterate through a subfolder)
friend class CINOSMcCron
return true if command with id is done (currently just used by cron
Definition cinosmcmodule.h:1500
ERplId WaitVar(T *apVar, ETypWait aeTypWait, real64 arValue, real64 arTimeout, real64 &arUsed)
internal wait for variable and return reply code (eRplOk/Stopped/Canceled/Error)
virtual void iEmgSet(CINOSTaskExMsg *apMsg)
internal switch core
virtual CMcResult RunScript(const char *apName, const char *apData, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
run script
virtual CMcResult ValveActivate(const char *apName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
activate a valve
CINOSBit * m_pDiEmergency
pointer to emergency input
Definition cinosmcmodule.h:1743
virtual void AddCommand(CINOSTaskExMsg *apMsg, uint64 aChar, uint16 aKeyLevel, bool abRegisterInco=true) override
add inco command
virtual void SetSlowMotion(real64 arSlowMotion, bool abNonVolatile)
set slowmotion factor
virtual ~CINOSMcModule()
module destructor
virtual void iDestroyScript(CINOSTaskExMsg *apMsg)
internal destroy script
virtual CMcResult Init(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Init module. After a successful init the module is in state ready.
virtual void RemChildCommand(const char *apModuleName, const char *apFunctionName) override
remove child command
virtual CMcResult ClrModeSetup(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
switch setup mode off
virtual CMcResult Stop()
Stop a running production job.
virtual CMcResult PutMsg(CINOSTaskExMsg *apMsg, tMsgId aMsgId=0) override
put message to queue and return command id
virtual bool iCheckSetupMode()
internal check setup mode
virtual void AddCommand(const char *apName, uint32 auCode, CINCOProcedure *apProc) override
add inco command
virtual void irplInit(CINOSTaskExMsg *apMsg, CINOSTaskExMsg *apRpl)
internal init reply
virtual CMcResult DestroyJob(const char *apName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
destroy Job
virtual void iCronDisableAll()
internal disable all cron job
virtual void iCheckRes(CINOSTaskExMsg *apMsg)
internal check resources
void iAddInpResource(CINOSTaskExMsg *apMsg)
see AddInpResource
virtual CMcResult GetIO(const char *apName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
virtual CMcResult DestroyScript(const char *apName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
destroy script
virtual CMcResult DestroyData(const char *apName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
destroy data (container)
virtual void iGetIO(CINOSTaskExMsg *apMsg)
internal setout
nvstring m_cJobName
module properties
Definition cinosmcmodule.h:1648
uint8 m_uCntTimeBaseIndex[8]
timebase index
Definition cinosmcmodule.h:1720
virtual uint32 GetMode()
get actual mode
Definition cinosmcmodule.h:717
virtual void iManual(CINOSTaskExMsg *apMsg)
internal manual
virtual void RemChildModule(const char *apModuleName) override
remove child module
virtual CMcResult SetCounter(uint32 auType, uint32 auNbr, uint32 auValue, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
set counter
nvuint32 * m_pCntBad[8]
bad counters
Definition cinosmcmodule.h:1702
CINOSMcModule(const char *apName, const char *apParam)
module constructor
virtual CMcResult Restore(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Restore backuped state call restore of all my chidren.
virtual CMcResult Off(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Switch module off.
static CINOSMcModule * GetMachine(const char *apName)
void DisableModuleHlpHook()
disable module helper hook
virtual void iWaitAdc(CINOSTaskExMsg *apMsg)
handle for internal non blocking waitbit
virtual CMcResult CronDisable(const char *apName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
disable cron job apName
virtual CMcResult Stop(CINOSSync *apSync)
Stop a running production job.
nvuint32 m_uActChecksum
paused checksum
Definition cinosmcmodule.h:1685
virtual real64 GetProp(const char *apName, real64 arDefValue, CINOSTaskExMsg *apMsg)
get module property
virtual CMcResult CntDec(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
decrement actual counter 0
virtual void iStartup(CINOSTaskExMsg *apMsg) override
internal startup task
virtual void iEmgClr(CINOSTaskExMsg *apMsg)
emergency cleared
nvuint32 m_uActJobResult
act job result
Definition cinosmcmodule.h:1681
virtual ERplId WaitBit(CINOSBit *apBit, uint32 auValue, real64 arTimeout, real64 &arUsed)
internal wait for bit and return reply code (eRplOk/Stopped/Canceled/Error)
virtual bool GetEmergency()
get emergency
virtual CMcResult Cancel(const char *apParam)
Cancel everything.
virtual CMcResult CronCount(const char *apName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
count cron job apName
nvuint32 m_uActJobState
act job state
Definition cinosmcmodule.h:1679
virtual void iSetItems(CINOSTaskExMsg *apMsg)
internal set items
nvreal64 m_rOnDelay
ondelay [ms]
Definition cinosmcmodule.h:1664
virtual bool DispatchCmd(CINOSTaskExMsg *apMsg) override
dispatch command message
virtual CMcResult DestroySubModule(const char *apName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Destroy requested sub module.
virtual CMcResult Stop(const char *apParam)
Stop a running production job.
virtual void iOnSimLevelChanged(uint32 auOldLevel, uint32 auNewLevel)
event handler 'iOnSimLevelChanged'
virtual void iCntInc(CINOSTaskExMsg *apMsg)
internal inc counter
virtual CINOSMcData * GetData(const char *apPrefix, const char *apName)
get pointer to data apPrefix.apName
nvuint32 m_uAutoInit
auto init [yes/no]
Definition cinosmcmodule.h:1666
virtual ERplId WaitAdc(CINOSAdcChannel *apAdc, ETypWait aeTypWait, real64 arValue, real64 arTimeout, real64 &arUsed)
internal wait for adc and return reply code (eRplOk/Stopped/Canceled/Error)
static uint32 ShutdownRequest()
virtual void SetBit(const char *apName)
internal set bit with resource name 'apName'
tMsgId AddInpResource(const char *apResName, const char *apImageName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
virtual void irplCancel(CINOSTaskExMsg *apMsg, CINOSTaskExMsg *apRpl)
internal cancel reply
inosName32 m_cMode
actual selected mode
Definition cinosmcmodule.h:1653
virtual void iDestroySubModule(CINOSTaskExMsg *apMsg)
internal destroy sub module
virtual void iDestroyData(CINOSTaskExMsg *apMsg)
internal destroy data
nvstring m_cActJobName
module actuals
Definition cinosmcmodule.h:1677
virtual bool DispatchEvent(CINOSTaskExMsg *apMsg) override
dispatch event message
void AddInp(CINOSMcModuleRes *apInp)
add input
virtual void iSafe(CINOSTaskExMsg *apMsg)
internal safe
virtual ERplId WaitPos(CINOSPhysicalAxis *apAxis, ETypWait aeTypWait, real64 arValue, real64 arTimeout, real64 &arUsed)
internal wait for axis pos and return reply code (eRplOk/Stopped/Canceled/Error)
virtual void iSetCounter(CINOSTaskExMsg *apMsg)
internal set counter
virtual void RemScript(const char *apName)
remove script apName
CINOSMcModule(const char *apName, const char *apType, const char *apParam)
module constructor
virtual ERplId WaitVar(CINOSTaskExMsg *apMsg, const char *apName, ETypWait aeTypWait, real64 arValue, real64 arTimeout, real64 &arUsed)
internal wait for variable and return reply code (eRplOk/Stopped/Canceled/Error)
virtual void AdjTrigger(CINOSTaskExMsg *apMsg, real64 arCmdTime)
adjust trigger
nvstring m_cJobParam
job param
Definition cinosmcmodule.h:1650
virtual void iIsActionAllowed(CINOSTaskExMsg *apMsg)
get clearance to fastload a script
virtual void iClrModeSetup(CINOSTaskExMsg *apMsg)
internal clr setup mode
virtual bool DispatchReply(CINOSTaskExMsg *apReply) override
dispatch reply
virtual CMcResult Pause(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Pause a running production job.
virtual void iPrepare(CINOSTaskExMsg *apMsg)
internal prepare
virtual CMcResult WaitAxis(const char *apName, uint32 auSlope, real64 arValue, real64 arTimeout, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
waitaxis non blocking
virtual void irplPause(CINOSTaskExMsg *apMsg, CINOSTaskExMsg *apRpl)
internal pause reply
virtual CMcResult CntAdj(int32 aiValue, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
adjust actual counter 0 by aiValue
virtual CMcResult Confirm(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Acknowledge the first pending message with the flag INOS_MCMSG_FLAG_CONFIRM.
virtual CMcResult SetModeStep(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
switch module to step mode
static uint32 DestroyMachine(const char *apName)
virtual void iOnSimLevelChanged(CINOSTaskExMsg *apMsg)
event handler 'iOnSimLevelChanged'
virtual void ClrBit(const char *apName)
internal test bit with resource name 'apName'
virtual void iiCancel(bool abHandleOffRequest=true)
internal cancel
virtual CMcResult RunJob(const char *apName, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
run job
bool m_bResRegistred
resources registred
Definition cinosmcmodule.h:1741
virtual CINOSMcGuardian * GetGuardian() const
get pointer to guardian
static uint32 CreateMachine(CINOSMcModule *&apNewModule, const char *apName, const char *apType, const char *apParam)
nvuint32 * m_pCntUph[8]
uph [units/hour]
Definition cinosmcmodule.h:1704
virtual void iShutdown(CINOSTaskExMsg *apMsg) override
internal shutdown task
virtual void AddChildCommand(const char *apModuleName, const char *apFunctionName, CINOSTaskExMsg *apCmdMsg, bool abRegisterInco=true) override
add child command
virtual CMcResult CreateScript(const char *apName, const char *apType, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
create script
virtual void MsgDone(CINOSTaskExMsg *apMsg, ERplId aRplId, uint32 auResult=0) override
message done
void iAddDacResource(CINOSTaskExMsg *apMsg)
see AddDacResource
virtual CMcResult SetModeSetup(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
switch setup mode on
virtual bool IsModeAllowed(const char *apMode)
return true if switching to aMode is allowed
uint32 RegisterHook(uintid &aoHookId, const char *apResName, void *apHandler, void *apObject, int32 aiOrder)
Register a hook with the given parameters running in the context of the given resource handler.
virtual void ClrFlag(uint64 auFlag, bool abUpdateState=false) override
clr flag
Definition cinosmcmodule.h:1374
virtual void iStartup(real64 arStage) override
internal startup task
virtual CMcResult Safe(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Put module into a safe state.
nvlstring m_cActScriptName
paused script name
Definition cinosmcmodule.h:1683
virtual CMcResult CntInc(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
increment actual counter 0
virtual CMcResult CreateSubModule(const char *apName, const char *apType, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Create a sub module, see also Creation.
virtual void MsgDone(CINOSTaskExMsg *apMsg, uint32 auResult=0) override
message done
virtual void RemCommand(const char *apName) override
remove internal command
virtual void irplHome(CINOSTaskExMsg *apMsg, CINOSTaskExMsg *apRpl)
internal home reply
virtual void iHome(CINOSTaskExMsg *apMsg)
internal home
nvreal64 * m_pCntUphFactor[8]
uph factor [*]
Definition cinosmcmodule.h:1708
void WaitCond(TINOSMcModuleCondFunc aFunc, TINOSMcModuleCondHandler aSuccessFunc, TINOSMcModuleCondHandler aTimeoutFunc, real64 arTimeout=0.0, real64 arSimTimeout=0.0)
Wait on arbitrary condition or timeout.
static constexpr int GetLastUsr()
return last mcmodule user id
Definition cinosmcmodule.h:791
virtual CMcResult WaitAxisEx(const char *apName, uint32 auSlope, real64 arValue, real64 arTimeout, uint32 auFlags, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
waitaxis non blocking
virtual void iPause(CINOSTaskExMsg *apMsg)
internal pause
virtual uint32 iDestroySubModule(const char *apName)
internal destroy sub module
tMsgId MsgDeferWait(CINOSTaskExMsg *apMsg, CINOSMcModuleWaitObj *apWaitObj, real64 arTimeout=0.0)
defer message until wait condition fulfilled or timeout [ms] expired
tMsgId m_uSTOMessageId
sto message id
Definition cinosmcmodule.h:1637
virtual void iBackup(CINOSTaskExMsg *apMsg)
internal backup
virtual void iRetry(CINOSTaskExMsg *apMsg)
internal retry
virtual bool iPostStartup() override
internal post startup
virtual void iOnMsgAck(CINOSTaskExMsg *apMsg)
event handler 'OnMsgAck'
inosName m_cCntUnit[8]
unit buffers
Definition cinosmcmodule.h:1722
virtual void iOnSlowMotionChanged(CINOSTaskExMsg *apMsg)
event handler 'iOnSlowMotionChanged'
virtual bool PreDispatchMsg(CINOSTaskExMsg *apMsg) override
Pre dispatcher.
virtual void EmergencyOnPurposeFollows()
set emergency on purpose
nvuint32 * m_pCntUphType[8]
uph type [0-standard, 1-ignore first and last, 2-start/average]
Definition cinosmcmodule.h:1706
virtual void irplRestore(CINOSTaskExMsg *apMsg, CINOSTaskExMsg *apRpl)
internal restore reply
virtual void iCntDec(CINOSTaskExMsg *apMsg)
internal dec counter
virtual real64 GetProp(const char *apName, real64 arDefValue, CINOSMcData *apData)
get data property
virtual void iWaitBitEx(CINOSTaskExMsg *apMsg)
internal waitbit
virtual CMcResult CreateJob(const char *apName, const char *apType, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
create job
virtual void iStartupDone()
virtual void iSetOut(CINOSTaskExMsg *apMsg)
internal setout
virtual CMcResult Recover(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Recover module from a pending error.
virtual bool DispatchInternal(CINOSTaskExMsg *apMsg) override
dispatch internal message
virtual void irplRecover(CINOSTaskExMsg *apMsg, CINOSTaskExMsg *apRpl)
internal recover reply
virtual ERplId WaitMs(real64 arTime)
Synchronous wait for delay.
virtual real64 GetSlowMotion()
get slowmotion factor
uint32 CreateModule(const char *apName, const char *apType, const char *apParam)
create module
virtual CINOSMcData * GetData(const char *apName)
get pointer to data apName
virtual void iCronTouch(CINOSTaskExMsg *apMsg)
internal touch cron job
virtual void iCancel(CINOSTaskExMsg *apMsg)
internal cancel
virtual uint32 iCreateSubModule(const char *apName, const char *apType, const char *apParam)
internal create sub module
virtual void PostCreate(void *apParent) override
called after creation
virtual CMcResult CreateData(const char *apName, const char *apType, const char *apParam, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
create data (container)
virtual void iStart(CINOSTaskExMsg *apMsg)
internal start
void AddOut(CINOSMcModuleRes *apOut)
add output
virtual void iCreateJob(CINOSTaskExMsg *apMsg)
internal create script
virtual CMcResult SetOut(const char *apName, real64 arValue, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
virtual void iRestore(CINOSTaskExMsg *apMsg)
internal restore
virtual CINOSMcModule * GetModule(const char *apName)
get pointer to child module apName
virtual void AddChildModule(const char *apModuleName) override
add child module
void SetModuleBase(const char *apAllowedBases)
virtual CMcResult ValveRelease(const char *apName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
release a valve
virtual void iOnCntDec(CINOSTaskExMsg *apMsg)
event handler 'OnCntDec'
virtual CINOSMcModule * FindSubModule(const char *apName)
get pointer to child or sub-module apName (this may be expensive).
virtual void iSetModeSetup(CINOSTaskExMsg *apMsg)
internal set setup mode
virtual CINOSMcBaseScript * GetScript(const char *apName)
get pointer to script apName
tMsgId m_uEmergencyMessageId
emergency message id
Definition cinosmcmodule.h:1635
tMsgId AddDacResource(const char *apResName, const char *apImageName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
virtual CINOSMcModule * GetModule(uint32 auIndex)
get pointer to child module auIndex
nvuint32 * m_pCntAct[8]
actual counters
Definition cinosmcmodule.h:1700
virtual void iLinkDown(CINOSTaskExMsg *apMsg)
link down
virtual void iWaitTimeout(CINOSTaskExMsg *apMsg)
internal wait timeout
virtual void iMsgRejected(CINOSTaskExMsg *apMsg)
message rejected
Definition cinosmcmodule.h:1393
virtual void iGetResource(CINOSTaskExMsg *apMsg)
internal get resource
virtual uint32 GetEmergencyDelay()
get emergency delay [ms]
virtual void iDestroyJob(CINOSTaskExMsg *apMsg)
internal destroy Job
virtual void AddCommand(const char *apName, uint32 auCode, uint32 auType=eMsgCmd) override
add internal command
virtual CMcResult WaitPosNB(const char *apName, uint32 auSlope, real64 arValue, real64 arTimeout, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
waitpos non blocking
virtual CMcResult Cancel()
Cancel everything.
virtual void SetFlag(uint64 auFlag, bool abUpdateState=false) override
set flag
Definition cinosmcmodule.h:1366
virtual void iCronEnable(CINOSTaskExMsg *apMsg)
internal enable cron job
virtual void iCreateSubModule(CINOSTaskExMsg *apMsg)
internal create sub module
void EnableModuleHlpHook()
enable module helper hook
static CINOSMcModule * FindModule(const char *apName)
get pointer global module apName (this may be expensive).
virtual bool DispatchUser(CINOSTaskExMsg *apMsg) override
dispatch user message
virtual CMcResult Manual(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Acknowledge the first pending message with the flag INOS_MCMSG_FLAG_MANUAL (obsolete)
nvuint32 * m_pCntUphAverage[8]
uph average
Definition cinosmcmodule.h:1712
virtual void iOff(CINOSTaskExMsg *apMsg)
internal off
virtual void iiOn(CINOSTaskExMsg *apMsg)
very internal on
uint32 UnRegisterHook(uintid aoHookId, const char *apResName)
Unregister a hook.
virtual CINOSMcBaseScript * GetScript(uint32 auNr)
get pointer to script auNr
virtual uint32 GetCntValue(uint32 auType, uint32 auNbr)
get counter Value
virtual void GetProp(const char *apName, char *apBuffer, uint32 auLength, CINOSTaskExMsg *apMsg)
get module property
virtual void irplRunJob(CINOSTaskExMsg *apMsg, CINOSTaskExMsg *apRpl)
internal run job reply
virtual CMcResult MoveData(const char *apSrcName, const char *apDstModule, const char *apDstName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
move data (container)
virtual void iValveRelease(CINOSTaskExMsg *apMsg)
release a valve
virtual void iCronCount(CINOSTaskExMsg *apMsg)
internal count cron job
CINOSContainer< CINOSMcData > * GetDataContainer()
get pointer to data container
Definition cinosmcmodule.h:1457
virtual void AdjTrigger(CINOSTaskExMsg *apMsg, CINOSBaseAxis *m_pAxis, real64 arStart, real64 arEnd, const char *apParam)
adjust trigger
virtual bool DoPostEmergencyMessage()
return true if emergency postmessage requested
Definition cinosmcmodule.h:627
virtual bool DispatchTmd(CINOSTaskExMsg *apMsg) override
dispatch triggered message
virtual void iModuleHlpHook()
module helper hook
virtual void iResume(CINOSTaskExMsg *apMsg)
internal resume
nvreal64 m_rSlowMotion
slowmotion factor
Definition cinosmcmodule.h:1660
virtual void PostEmergency()
post emergency message
virtual void iCntAdj(CINOSTaskExMsg *apMsg)
internal adj counter
virtual bool PreDestroy(bool &bDeleteSelf) override
called before destruction (return false if destruction not allowed)
uint32 m_uEmgDelay
emergency delay
Definition cinosmcmodule.h:1670
virtual bool DoPostSTOMessage()
return true if STO postmessage requested
Definition cinosmcmodule.h:630
virtual ERplId WaitPos(CINOSPosChannel *apPos, ETypWait aeTypWait, int32 aiValue, real64 arTimeout, real64 &arUsed)
internal wait for pos and return reply code (eRplOk/Stopped/Canceled/Error)
virtual CINOSMcModuleRes * AddResource(const char *apName, uint32 auType, uint32 auFlags=CINOSMcModuleRes::eResFlgMandatory, CINCOObject *apObj=0)
add resource
virtual CINOSBit * GetEmergencyInput()
get pointer to emergency input
Definition cinosmcmodule.h:624
virtual CMcResult SetMode(const char *apName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
switch module to mode 'apName'
virtual void iStepStopped(CINOSTaskExMsg *apMsg)
step command stopped
Definition cinosmcmodule.h:1388
virtual void iiStop()
internal stop
virtual CMcResult PostEmergencyStopMessage()
post emergency stop message
virtual void iiOff()
very internal off
virtual void iCreateScript(CINOSTaskExMsg *apMsg)
internal create script
virtual CMcResult Retry(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Acknowledge the first pending message with the flag INOS_MCMSG_FLAG_RETRY.
virtual CMcResult Cancel(CINOSSync *apSync)
Cancel everything.
nvreal64 * m_pCntLft[8]
left time [sec]
Definition cinosmcmodule.h:1716
tMsgId AddOutResource(const char *apResName, const char *apImageName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
virtual void iOnMsgSet(CINOSTaskExMsg *apMsg)
event handler 'OnMsgSet'
virtual void GetProp(const char *apName, const char *apDefault, char *apBuffer, uint32 auLength, CINOSMcData *apData)
get data property
virtual void iStepSkipped(CINOSTaskExMsg *apMsg)
step command skipped
Definition cinosmcmodule.h:1390
virtual CMcResult Home(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Bring module into home position.
virtual void iMoveDataInt(CINOSTaskExMsg *apMsg)
internal move data
CINOSMcModule * GetParent() const
get pointer to parent
virtual void iOnCntSet(CINOSTaskExMsg *apMsg)
event handler 'OnCntSet'
tMsgId AddAdcResource(const char *apResName, const char *apImageName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
virtual CMcResult WaitInp(const char *apName, real64 arValue, real64 arTimeout, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
waitbit non blocking
virtual void irplOn(CINOSTaskExMsg *apMsg, CINOSTaskExMsg *apRpl)
internal on reply
virtual void irplStop(CINOSTaskExMsg *apMsg, CINOSTaskExMsg *apRpl)
internal stop reply
virtual void iConfirm(CINOSTaskExMsg *apMsg)
internal confirm
nvuint32 * m_pCntUphStart[8]
uph start
Definition cinosmcmodule.h:1710
virtual void iSetCntCmd(uint32 auNbr, uint32 auVal)
set cmd counter
virtual void iRunJob(CINOSTaskExMsg *apMsg)
internal runjob
virtual CMcResult Resume(CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
Acknowledge the first pending message with the flag INOS_MCMSG_FLAG_RESUME This method is used to go ...
Definition cinosmcrobot.h:206
Definition cinosmutex.h:36
ICACHE void Release(bool aSuspend=false, uint32 auState=defINOSTaskPureSuspended)
ICACHE uint32 Request(uint32 aTimeout=INOS_WAIT_FOREVER)
Provides physical aka real axis functionality.
Definition cinosphysicalaxis.h:286
Definition cinosposchannel.h:59
Definition cinosprocessimagechannel.h:111
virtual uint32 Wait(uint32 aTimeout=0xFFFFFFFF)
wait for signaled state for max. aTimeout usec
virtual void Reset()
Reset object state.
Definition cinostaskex.h:396
void AddResult(T, const char *apResultName=NULL)
Definition cinostaskex.h:2499
tMsgId GetId() const
get message id
Definition cinostaskex.h:588
Definition cinostaskex.h:966
virtual const char * GetTreeName()
get requested binary tree name
Definition cinostaskex.h:999
void SetCritical(uint32 auCritical)
set critical
Definition cinostaskex.h:1957
bool GetRequest(uint32 auRequest) const
return true if request set
Definition cinostaskex.h:1055
virtual CMcResult ClrFlag(const char *apName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
clear flag apName
void ClrCritical(uint32 auCritical)
clr critical
Definition cinostaskex.h:1960
virtual CMcResult SetFlag(const char *apName, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
set flag apName
ERplId
reply id's
Definition cinostaskex.h:1409
Template class that can be used for methods that take the command message as function argument.
Definition cinostaskextmpl.h:1373
#define g_pINOS1ms
Definition inos_1ms.h:501
#define DF_INOS_SYNCHRONOUS
Definition inosmacro.h:332
#define ASSERT_ALWAYS(f)
Definition inosmacro.h:696
int32 tMsgId
Definition inostype.h:186