/*
 * blink.h
 *
 *  Created on: 2021/03/24
 *      Author: 0170886
 */

#ifndef BLINK_H_
#define BLINK_H_

/* ブリンクタスクの状態定義 */
typedef enum {
	ST_BLINK_IDLE = 0,		/* 休止状態			*/
	ST_BLINK_LED_OFF,   	/* 点滅状態(消灯)	*/
	ST_BLINK_LED_ON,    	/* 点滅状態(点灯) 	*/
	ST_BLINK_NUM			/* 状態の数 		*/
}ST_BLINK;

/* ブリンクタスク制御情報 */
typedef struct {
	uint32_t		ctl_flg;	/* Control flag  	*/
	ST_BLINK		nowsts;		/* 現在の状態 		*/
	ST_BLINK 		nextsts;	/* 次の状態		 	*/
	int				bcount;		/* 点滅回数 		*/
	T_EVENT 		*prcv_data;	/* 受信データ		*/
}TBL_CTL;

#define GBL_CTLF	gbl_ctl.ctl_flg	/* Control flag     		*/
#define GBL_NOWSTS	gbl_ctl.nowsts	/* Current status		    */
#define GBL_NEXTSTS	gbl_ctl.nextsts	/* Next status		    	*/
#define GBL_BCOUNT	gbl_ctl.bcount  /* 点滅回数 				*/
#define GBL_RCVAD	gbl_ctl.prcv_data/* 受信したメッセージのアドレス 	*/
#define GBL_RCVEV	(gbl_ctl.prcv_data -> event)/* 受信イベント			*/

/* ブリンクタスク制御フラグ */
#define DBL_STSCHG	0x00000001 		    /* 状態遷移有無(Y=1,N=0)	*/

/* ブリンクタスクの関数ポインタの型宣言 */
typedef void (*CALLBACK_BL)( void ) ;

#endif /* BLINK_H_ */
