173 const char* apController,
const char* apInpName,
const char* apOutName);
188 virtual uint32
Activate(
bool abCheckVal =
true,
bool abSimulateVal =
false,
189 bool abSimulateOut =
false,
bool abSimulateAct =
false,
197 virtual void CreateRemoteTargetControl(
const char* apTarget,
198 real64 arRemoteUpdateTime,
201 virtual void AttachRemoteTargetControl(
const char* apTarget,
202 real64 arRemoteUpdateTime,
205 virtual uintptr DoCollectData();
210 virtual uint32 Move(real64 arValue,
216 virtual uint32 Move(real64 arPosition,
const char* apParam,
219 virtual uint32 Toggle(real64 arvalue, real64 arValue2);
230 virtual real64 GetMoveTime(real64 arValue);
232 virtual real64 GetMoveTime(real64 arValue,
SINOSRampParam* apParam);
234 virtual real64 GetMoveTime(real64 arValue,
const char* apParam);
236 virtual real64 GetMoveTime(real64 arValue, real64 arDelta);
238 virtual real64 GetMoveTime(real64 arValue, real64 arDelta,
SINOSRampParam* apParam);
240 virtual real64 GetMoveTime(real64 arValue, real64 arDelta,
const char* apParam);
242 virtual real64 GetMoveTime(real64 arStartValue, real64 arEndValue,
246 virtual real64 GetMoveTime(real64 arStartValue, real64 arEndValue,
250 virtual real64 GetMoveTime(real64 arStartValue, real64 arEndValue,
251 real64 arDelta,
const char* apParam);
254 virtual uint32 GetMoveTicks(real64 arValue);
256 virtual uint32 GetMoveTicks(real64 arPosition,
SINOSRampParam* apParam);
258 virtual uint32 GetMoveTicks(real64 arValue,
const char* apParam);
260 virtual uint32 GetMoveTicks(real64 arValue, real64 arDelta);
262 virtual uint32 GetMoveTicks(real64 arValue, real64 arDelta,
SINOSRampParam* apParam);
264 virtual uint32 GetMoveTicks(real64 arValue, real64 arDelta,
const char* apParam);
266 virtual uint32 GetMoveTicks(real64 arStartValue, real64 arEndValue,
270 virtual uint32 GetMoveTicks(real64 arStartValue, real64 arEndValue,
274 virtual uint32 GetMoveTicks(real64 arStartValue, real64 arEndValue,
275 real64 arDelta,
const char* apParam);
278 virtual real64 GetMoveDist(real64 arValue, real64 arTime);
280 virtual real64 GetMoveDist(real64 arValue, real64 arTime,
283 virtual real64 GetMoveDist(real64 arValue, real64 arTime,
284 const char* apParam);
286 virtual real64 GetMoveDist(real64 arValue, uint32 auTicks);
288 virtual real64 GetMoveDist(real64 arValue, uint32 auTicks,
291 virtual real64 GetMoveDist(real64 arValue, uint32 auTicks,
292 const char* apParam);
294 virtual real64 GetMoveDist(real64 arStartValue, real64 arEndValue,
298 virtual real64 GetMoveDist(real64 arStartValue, real64 arEndValue,
302 virtual real64 GetMoveDist(real64 arStartValue, real64 arEndValue,
303 real64 arTime,
const char* apParam);
306 virtual real64 GetMoveDist(real64 arStartValue, real64 arEndValue,
310 virtual real64 GetMoveDist(real64 arStartValue, real64 arEndValue,
314 virtual real64 GetMoveDist(real64 arStartValue, real64 arEndValue,
315 uint32 auTicks,
const char* apParam);
318 virtual uint64 GetTargetTicks();
323 virtual uint32 Pull(real64 arS, real64 arV, real64 arA, real64 arJ);
332 { m_pRamp->Enable();};
336 { m_pRamp->Disable();};
346 virtual uint32 Stop(real64 arValue,
352 virtual uint32 Stop(real64 arValue,
const char* apParam,
363 virtual const char* GetName();
365 virtual const char* GetUnit();
367 virtual uint32 GetCharacteristics();
369 virtual void SetCmdValue(real64 arValue);
371 virtual void GetCmdValue(real64& arValue);
373 virtual void SetCmdVelocity(real64 arVelocity);
375 virtual void GetCmdVelocity(real64& arVelocity);
377 virtual void SetCmdAcceleration(real64 arAcceleration);
379 virtual void GetCmdAcceleration(real64& arAcceleration);
381 virtual void SetCmdDeceleration(real64 arDeceleration);
383 virtual void GetCmdDeceleration(real64& arDeceleration);
385 virtual void SetCmdJerk(real64 arJerk, uint32 auNumber = DF_INOS_RAMP_JERK_ALL);
387 virtual void GetCmdJerk(real64& arJerk, uint32 auNumber = 0);
389 virtual void GetCmdRealJerk(real64& arJerk, uint32 auNumber = 0);
391 virtual void SetCmdSlowMotion(real64 arSlowMotion);
393 virtual void GetCmdSlowMotion(real64& arSlowMotion);
395 virtual uint32 SetActValue(real64 arValue);
397 virtual void GetActValue(real64& arValue);
399 virtual void GetActVelocity(real64& arVelocity);
401 virtual void GetActAcceleration(real64& arAcceleration);
403 virtual void GetActJerk(real64& arJerk);
405 virtual uint32 SetRealValue(real64 arValue);
407 virtual void GetRealValue(real64& arValue);
409 virtual void SetMinValue(real64 arValue);
411 virtual void GetMinValue(real64& arValue);
413 virtual void SetMaxValue(real64 arValue);
415 virtual void GetMaxValue(real64& arValue);
417 virtual void SetMaxVelocity(real64 arVelocity);
419 virtual void GetMaxVelocity(real64& arVelocity);
421 virtual void SetMaxAcceleration(real64 arAcceleration);
423 virtual void GetMaxAcceleration(real64& arAcceleration);
425 virtual void SetMaxDeceleration(real64 arDeceleration);
427 virtual void GetMaxDeceleration(real64& arDeceleration);
429 virtual void SetMaxJerk(real64 arJerk);
431 virtual void GetMaxJerk(real64& arJerk);
433 virtual void SetCycleTime(real64 arCycleTime);
435 virtual void GetCycleTime(real64& arCycleTime);
437 virtual uint16 GetCycleNumber();
439 virtual uint16 GetCycleId();
441 virtual uint8 GetBusId();
443 virtual uint32 SetParam(
const char* apName, real64 arValue);
445 virtual uint32 GetParam(
const char* apName, real64& arResult);
447 virtual volatile real64* GetParamAdr(
const char* apName);
449 void SetFlag(uint32 auFlag)
452 void ClrFlag(uint32 auFlag)
458 virtual uint32 GetState();
460 virtual uint32 GetState(uint32& auRmpState, uint32& auCtrState);
462 virtual uint32 GetError();
464 virtual uint32 GetError(uint32& auRmpError, uint32& auCtrState);
466 virtual uint32 GetWarning();
468 virtual uint32 GetWarning(uint32& auRmpWarning, uint32& auCtrWarning);
470 virtual void AcceptError();
472 virtual void AcceptError(uint32 auError);
474 virtual void AcceptError(uint32 auError, uint32 auRmpError, uint32 auCtrError);
476 virtual void AcceptWarning();
478 virtual void AcceptWarning(uint32 auWarning);
480 virtual void AcceptWarning(uint32 auWarning, uint32 auRmpWarning, uint32 auCtrError);
484 virtual void eCreateParamSet(
const char* apSetName);
489 virtual void DestroyParamSet(
const char* apSetName);
491 virtual bool SelectParamSet(
const char* apSetName);
496 static void eCreateGlobalParamSet(
const char* apSetName);
501 static void DestroyGlobalParamSet(
const char* apSetName);
508 virtual CINCOObject* GetRegister();
515 virtual uintid RegisterErrorHook(
void* apHandler,
void* apObject = 0);
517 virtual void UnRegisterErrorHook(uintid auHookId);
519 virtual const char* GetInputName();
521 virtual const char* GetOutputName();
523 virtual const char* GetEnbOutputName();
525 virtual const char* GetActivateOutputName();
528 static void SetBusError();
530 static void AcceptBusError();
532 static void SetSafetyError();
534 static void AcceptSafetyError();
536 static void SetApplicationError();
538 static void AcceptApplicationError();
541 virtual void UpdateIncoItems(
bool i_bForceUpdate);
548 friend void _INI_0400_CINOSControl();
549 friend class CINOSRemoteControlWorker;
554 {
return (strcmp(GetName(), aControl.GetName())<0);}
556 {
return (strcmp(GetName(), aControl.GetName())==0);}
557 int operator < (
const char* aName)
558 {
return (strcmp(GetName(), aName)<0);}
559 int operator == (
const char* aName)
560 {
return (strcmp(GetName(), aName)==0);}
566 virtual void SetError(uint32 auErrors);
568 bool Enter(uint32 auCommand,
CINOSSync* apSync = 0);
575 {
return m_CmdLock.
GetOwner() != 0;};
577 virtual void iInActivate();
583 virtual void iControl();
585 virtual void iPostWrite();
587 static void SetTargetError();
589 void OnTargetError();
593 void OnSafetyError();
595 void OnApplicationError();
597 CINOSBit* SearchOutput(
const char* apName)
const;
600 virtual void CallErrorHooks();
610 void eActivate(
bool abCheckVal,
bool abSimulateVal,
bool abSimulateOut,
617 void eAttachRemoteTargetControl(
const char* apTarget, real64 arRemoteUpdateTime,
bool abCreate);
619 void eMove(real64 arPosition,
const char* apParam);
631 void eAcceptWarning();
633 void eTune(
const char* apParam);
635 void eTuneAccept(
const char* apParam);
662 uint32 m_uWarningMask;
669 CINCOObject* m_pRegister;
671 CINCOObject* m_pCommand;
673 CINCOObject* m_pTest;
675 CINCOObject* m_pError;
677 CINCOObject* m_pErrorDis;
679 CINCOObject* m_pErrorMask;
681 CINCOObject* m_pWarning;
683 CINCOObject* m_pWarningMask;
685 CINCOObject* m_pFlag;
687 CINCOObject* m_pState;
709 uintid m_uPostHookId;
713 uintid m_uBusErrorHookId;
715 SINOSControlErrorHook* m_pErrorHooks;
717 TINOSNameBalancedBinaryTree<CINOSControlParamSet>* m_pParamSets;
719 static TINOSNameBalancedBinaryTree<CINOSControlParamSet>* m_pGlobalParamSets;
721 real64 m_rCycleTimeMs;
729 inosName64 m_cInputName;
731 inosName64 m_cOutputName;
733 inosName64 m_cEnbOutputName;
735 inosName64 m_cActivateOutputName;
737 inosName64 m_cSelectedParamName;
739 inosName64 m_cRemoteTargetName;
741 CINOSBusModule* m_pRemoteControlModule;
743 uint32 m_uRemoteUpdateTime;
765 bool m_bUpdatePending =
false;
767 SINOSCollectedControlData* m_pCollectedData =
nullptr;
769 uint32 m_uRemoteCollectedDataAddr = 0;
771 uint32 m_uRemoteCollectedDataVersion = 0;
775 uint32 m_uActivateCheckVal;
777 uint32 m_uActivateSimulateVal;
779 uint32 m_uActivateSimulateOut;
781 uint32 m_uActivateSimulateAct;
785 inosName32 m_cMoveParam;
787 inosName32 m_cCreateRemoteControlTarget;
789 real64 m_cCreateRemoteControlUpdateTime;
790 bool m_bCreate{
false};
792 char m_cTuneParam[64];
798 static uint32 eCreate(
char* apName,
char* apRamp,
char* apController,
799 char* apInpName,
char* apOutName);
801 static uint32 eDestroy(
char* apName);
806 static TINOSNameBalancedBinaryTree<CINOSControl>* m_pControls;
808 static CINCOObject* m_psRegister;
810 static CINCOObject* m_psCmd;
812 static CINCOObject* m_psEntity;
814 static char m_ceName[64];
816 static char m_ceRamp[32];
818 static char m_ceController[32];
820 static char m_ceInput[32];
822 static char m_ceOutput[32];