blob: bfacc0972cd5664d2714a1667a7f27bd080d6610 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2013 fortiss GmbH
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Alois Zoitl - initial API and implementation and/or initial documentation
*******************************************************************************/
#ifndef _E_TIMEOUT_H_
#define _E_TIMEOUT_H_
#include <esfb.h>
#include <typelib.h>
#include "../arch/timerha.h"
#include "ATimeOut.h"
// cppcheck-suppress noConstructor
class FORTE_E_TimeOut : public CEventSourceFB{
DECLARE_FIRMWARE_FB(FORTE_E_TimeOut)
private:
static const TForteInt16 scm_anEOWithIndexes[];
static const SAdapterInstanceDef scm_astAdapterInstances[];
FORTE_ATimeOut& TimeOutSocket(){
return (*static_cast<FORTE_ATimeOut*>(m_apoAdapters[0]));
}
;
static const int scm_nTimeOutSocketAdpNum = 0;
static const SFBInterfaceSpec scm_stFBInterfaceSpec;
FORTE_FB_DATA_ARRAY(0, 0, 0, 1)
;
bool mActive; //!> flag to indicate that the timed fb is currently active
STimedFBListEntry mTimeListEntry; //!> The Timer list entry of this timed FB
virtual void executeEvent(int pa_nEIID);
public:
EVENT_SOURCE_FUNCTION_BLOCK_CTOR(FORTE_E_TimeOut){
mActive = false;
mTimeListEntry.mTimeOut = 0;
mTimeListEntry.mInterval = 0;
mTimeListEntry.mNext = 0;
mTimeListEntry.mType = e_SingleShot;
mTimeListEntry.mTimedFB = this;
};
virtual ~FORTE_E_TimeOut(){};
virtual EMGMResponse changeFBExecutionState(EMGMCommandType pa_unCommand);
};
#endif //_E_TIMEOUT_H_