📄 drvctltask.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 + -