⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mac-sensor-timers.h

📁 无线传感器网络中,基于ns2仿真平台,mannasim的源代码,研究ns2必不可少的
💻 H
字号:
/******************************************************************
 * This code was developed as part of the MIT uAMPS project.      *
 ******************************************************************/

#ifndef __mac_sensor_timers_h__
#define __mac_sensor_timers_h__

/* ======================================================================
   Timers
   ====================================================================== */
class MacSensor;

class MacSensorTimer : public Handler {
public:
	MacSensorTimer(MacSensor* m, double s = 0) : mac(m) {
		busy_ = paused_ = 0; stime = rtime = 0.0; slottime_ = s;
	}

	virtual void handle(Event *e) = 0;

	virtual void start(Packet *p, double time);
	virtual void stop(Packet *p);
	virtual void pause(void) { assert(0); }
	virtual void resume(void) { assert(0); }

	inline int busy(void) { return busy_; }
	inline int paused(void) { return paused_; }
	inline double slottime(void) { return slottime_; }
	inline double expire(void) {
		return ((stime + rtime) - Scheduler::instance().clock());
	}

protected:
	MacSensor 	*mac;
	int		busy_;
	int		paused_;
	Event		intr;
	double		stime;	// start time
	double		rtime;	// remaining time
	double		slottime_;
};


class DeferSensorTimer : public MacSensorTimer {
public:
	DeferSensorTimer(MacSensor *m, double s) : MacSensorTimer(m,s) {}
	void	handle(Event *e);
};

class RxSensorTimer : public MacSensorTimer {
public:
	RxSensorTimer(MacSensor *m) : MacSensorTimer(m) {}

	void	handle(Event *e);
};

class TxSensorTimer : public MacSensorTimer {
public:
	TxSensorTimer(MacSensor *m) : MacSensorTimer(m) {}

	void	handle(Event *e);
};

#endif /* __mac_sensor_timers_h__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -