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

📄 drvctltask.h

📁 epson usb2.0 控制芯片 S1R72V05 固件程序。
💻 H
字号:
/*
 *	description	:
 *	Maker		:
 *	Copyright	: (C)2004,SEIKO EPSON Corp. All Rights Reserved.
 */

#ifndef DRVCTL_H
#define DRVCTL_H

#include "SPRDEF.h"
#include "OSCall.h"
#include "serial.h"

// RCV/SND DRIVER CONTROL TASK
#define TSK_EXINFO_RCV				(NULL)
#define TSK_EXINFO_SND				(NULL)
#define TSK_ATTRIBUTE_RCV			(OS_TA_HLNG)
#define TSK_ATTRIBUTE_SND			(OS_TA_HLNG)
#define TSK_PRIORITY_RCV			(2)
#define TSK_PRIORITY_SND			(2)
#define TSK_STACK_SIZE_RCV			(1024)
#define TSK_STACK_SIZE_SND			(1024)
#define TSK_STACK_ADD_RCV			(0)
#define TSK_STACK_ADD_SND			(0)

// RCV/SND Task memory pool with fix length for message transmitting
#define MBX_MAX_PRI_RCV				(2)
#define MBX_MAX_PRI_SND				(1)
#define MPF_ATTRIBUTE_RCV_MSG		(OS_TA_TFIFO)
#define MPF_ATTRIBUTE_SND_MSG		(OS_TA_TFIFO)
#define MPF_BLOCK_CNT_RCV_MSG		(4)
#define MPF_BLOCK_CNT_SND_MSG		(4)
#define MPF_BLOCK_SIZE_RCV_MSG		(36)
#define MPF_BLOCK_SIZE_SND_MSG		(36)
#define MPF_BLOCK_ADD_RCV_MSG		(NULL)
#define MPF_BLOCK_ADD_SND_MSG		(NULL)

// RCV/SND Task mail box
#define MBX_ATTRIBUTE_RCV			(OS_TA_TFIFO)
#define MBX_ATTRIBUTE_SND			(OS_TA_TFIFO)
#define	MBX_PRI_ADD_RCV				(NULL)
#define	MBX_PRI_ADD_SND				(NULL)

//--------------------------------------------------------------------------
// Semaphore for task synchronism
//--------------------------------------------------------------------------
#define SEM_ATTRIBUTE_DBG				(OS_TA_TFIFO)	// Semaphore attribute
#define SEM_CNT_DBG						(0)				// Initial value
#define SEM_MAX_CNT_DBG					(1)				// Max number

/******** Define ********/
#define COMBUFSZ	(82)						/* Buff Max Size */
#define RCVDATAMAX  (11)						/* Saving number of past data received */

#define TSIO_CD 	0x01						/* Carrier detect for receiving */
#define TSIO_CTS	0x02						/* CTS signal ON ( 1 ) / OFF ( 0 ) */
#define TSIO_TXEMP	0x04						/* Transmitting buffer empty */
#define TSIO_PE 	0x08						/* Parity error */
#define TSIO_OE 	0x10						/* Overrun error */
#define TSIO_FE 	0x20						/* Framing error */
#define TSIO_BD 	0x40						/* Detecting of break state */
#define TSIO_DSR	0x80						/* DSR signal ON ( 1 ) / OFF ( 0 ) */
/******** typedef *******/

typedef struct _stSio
{
	UB siostat; 			/* Serial I/O status */
	UB rxchr;				/* Start character of receiving buffer ( Not used) */
	UH rxlen;				/* Data length of receiving buffer */
	UH frbufsz; 			/* Empty size of transmitting buffer */
	UH eotcnt;				/* Number of end character of receiving buffer */

} stSio;

typedef struct _MSG_DRVCTL_HEAD{					/* Message common header	*/

	T_MSG	header;									/* Area for OS use	   */
	OS_ID	useMpfId; 								/* Memory pool ID to use	*/
	OS_ID	msgSndTskId;							/* Task ID of transmitter*/
	USHORT	msgNo;									/* Message number 		*/
	USHORT	msgLength;								/* Message data length	*/

}MSG_DRVCTL_HEAD,	*PMSG_DRVCTL_HEAD;

typedef struct _DRVCTL{								/* DBG task mail box */

	MSG_DRVCTL_HEAD		head;						/* Message header part 	*/
	UCHAR				pMsgData[COMBUFSZ];			/* Message data part		*/

} DRVCTL_MSG, *PDRVCTL;

/*****************Function*****************/
extern void RcvDrvCtlTask( INT ch );
extern void SndDrvCtlTask( INT ch );

/***************** - TOPPERS - *****************/
// Serial I/O initialization
Inline OS_ER InitSio(INT ch, const B *param)
{
	return 0;
}
// Serial I/O finish
Inline void ExitSio( INT ch )
{
	serial_cls_por( ch );
}
// Serial 1 character input
Inline OS_ER GetSio(INT ch , UB *pc , TMO tmout )
{
	return 0;
}
// Serial 1 character output
Inline OS_ER PutSio(INT ch, UB c, TMO tmout )
{
	return 0;
}
// Serial I/O control
Inline OS_ER CtlSio(INT ch, UH fncd )
{
	return serial_ctl_por( ch , fncd );
}
// Serial I/O state reference
Inline OS_ER RefSio(INT ch, stSio pkSios )
{
	return 0;
}
// Serial transmitting buffer - flush
Inline OS_ER FlsSio( INT ch, TMO tmout )
{
	return 0;
}


#endif

⌨️ 快捷键说明

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