124 const char* apInpName,
const char* apOutName);
130 virtual void Activate(
bool abCheckVal =
true,
bool abSimulateVal =
false,
131 bool abSimulateOut =
false,
bool abSimulateAct =
false);
133 virtual void InActivate();
138 virtual uint32 Tune(
const char* apParam);
140 virtual uint32 TuneAccept(
const char* apParam);
147 ICACHE
virtual uint32 Pull(real64 arValue, real64 arVelocity,
148 real64 arAcceleration, real64 arJerk);
151 virtual void GetCmdValue(real64& arValue);
153 virtual void GetCmdVelocity(real64& arVelocity);
155 virtual void GetCmdAcceleration(real64& arAcceleration);
157 virtual void GetCmdJerk(real64& arJerk);
159 ICACHE
virtual void SetActValue(real64 arValue,
bool abIgnorePosError=
false);
161 ICACHE
virtual void GetActValue(real64& arValue);
163 virtual void GetActVelocity(real64& arVelocity);
165 virtual void GetActAcceleration(real64& arAcceleration);
167 virtual void GetActJerk(real64& arJerk);
169 virtual void GetActValError(real64& arValError);
172 virtual uint32 GetParam(
const char* apName, real64& arResult);
174 virtual volatile real64* GetParamAdr(
const char* apName);
176 virtual uint32 SetParam(
const char* apName, real64 arValue);
179 void SetFlag(uint32 auFlag)
182 void ClrFlag(uint32 auFlag)
188 ICACHE
virtual uint32 GetState();
190 ICACHE
virtual uint32 GetState(uint32& auSubState);
192 virtual uint32 SetError(uint32 auError);
194 ICACHE
virtual uint32 GetError(
bool abResolveExternal =
false);
196 virtual uint32 GetWarning();
198 virtual void AcceptError(uint32 auError=0xffffffff);
200 virtual void AcceptWarning(uint32 auWarning=0xffffffff);
203 virtual void GetCycleTime(real64& arCycleTime);
205 virtual void SetCycleTime(real64 arCycleTime);
207 virtual uint16 GetCycleNumber();
209 virtual uint16 GetCycleId();
211 virtual uint8 GetBusId();
214 virtual const char* GetUnit()
217 virtual uint32 GetCharacteristics()
218 {
return m_uCharacteristics; };
220 virtual uint8 GetTypeChar() {
return m_uTypeChar;};
223 { m_pParent = apParent;};
225 virtual const char* GetType() {
return m_pType;};
228 virtual CINCOObject* GetRegister();
231 virtual bool OnEmergency()
232 {
return (m_uError & m_uErrorDis) != 0;};
239 friend class CINCOpidDelayToHalt;
241 friend class CINOSRemoteControlWorker;
245 virtual void Reset();
248 virtual void StopJump();
250 virtual void StopTune();
252 virtual void Jump(real64 arSrc, real64 arDst){};
254 virtual void PreControl(){};
256 virtual void Control();
258 virtual void SetOutput(real64 arOutput);
260 virtual void CalcError();
262 virtual bool IsSettled(
bool abAdjAllowed=
false)
273 virtual const char* GetStateText();
292 uint32 m_uWarningMask;
304 CINCOObject* m_pRegister;
306 CINCOObject* m_pError;
308 CINCOObject* m_pErrorMask;
310 CINCOObject* m_pErrorDis;
312 CINCOObject* m_pWarning;
314 CINCOObject* m_pWarningMask;
316 CINCOObject* m_pFlag;
326 CINCOObject* m_pProp;
347 real64 m_rCycleTime_1;
349 real64 m_rCycleTimeMs;
351 real64 m_rDelayToHalt;
353 real64 m_rActivateTimeout;
355 int32 m_iActivateStart;
359 real64 m_rSettleTime;
361 real64 m_rSettleTimeout;
363 int32 m_iSettleStart;
383 uint32 m_uVactLength;
389 real64 m_rVactRaw[DF_INOS_BASE_CONTROLLER_MAX_V_FILTER];
423 uint32 m_uCharacteristics;
425 uint32 m_uDelayToHalt;
427 int32 m_iDelayToHalt;