blob: a252cd89c9bc196af7dee26366964a07995307c1 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011 Profactor 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:
* Gerhard Ebenhofer - initial API and implementation and/or initial documentation
*******************************************************************************/
#ifndef _PCTIMEHA_H_
#define _PCTIMEHA_H_
#include "timerha.h"
/*! \ingroup pc_hal
*\ingroup EXTEVHAND
*\brief the timer handler for the pc architecture.
*/
class CExternTimerHandler : public CTimerHandler{
public:
static void externNextTick();
static TForteUInt32 getExternTicksPerSecond(void){ return csm_nTicksPerSecond; };
explicit CExternTimerHandler(CDeviceExecution& pa_poDeviceExecution);
virtual ~CExternTimerHandler();
/*!\brief Pointer to a general timer used for code outside FBs, like devlog, TIME() and so on
*/
static CExternTimerHandler *sm_poFORTEExtTimer;
/*!\brief Enables this event source
*
*/
virtual void enableHandler(void);
/*!\brief Disable this event source
*/
virtual void disableHandler(void);
/*!\brief Sets the priority of the event source
*
* \param pa_nPriority new priority of the event source
*/
virtual void setPriority(int pa_nPriority);
/*!\brief Get the current priority of the event source
*
* \return current priority
*/
virtual int getPriority(void) const;
/*! \brief Get the time base of the runtime
*
* \return internal runtime ticks per millisecond
*/
virtual TForteUInt32 getTicksPerSecond(void){ return csm_nTicksPerSecond; };
private:
/*!\brief default time base of the used timer. in useconds.
*/
static const TForteInt32 csm_nTicksPerSecond;
/*!\brief callback function for the system timer
*/
};
#endif /*PCTIMEHA_H_*/