📄 equmanger.h
字号:
/****************************************Copyright **************************************************
** 安徽省标准化研究院
** 条码科
**
**
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: equmanger.h
**创 建 人: 梁超
**最后修改日期: 2008年9月10日
**描 述: LPC2114 设备管理
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 梁超
** 版 本: v1.0
** 日 期: 2008年9月10日
** 描 述: 原始版本
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述: 改正注释错误
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef NOT_OK
#define NOT_OK 0xff /* 设备打开错误 */
#endif
#define EQUMANGER_FULL 8 /* 队列满 */
#define EQUMANGER_EMPTY 4 /* 无数据 */
#define EQUMANGER_OK 1 /* 操作成功 */
#define EQUMANGER_NUM 10 /*设备数量 */
#define EQUMANGER_WRITE_MODE 1 /* 操作成功 */
#define EQUMANGER_WRITE_FRONT_MODE 2 /* 操作成功 */
#ifndef QUEUE_DATA_TYPE
#define QUEUE_DATA_TYPE uint8
#endif
#define UDF_MAX_NAME 10 /*设备名称字符长度*/
typedef struct {
INT32S (*devOpen)(void *pd);
INT32S (*devRead)(INT8S *buffer, INT32U blen, INT32U lenToRead, INT8U waitType);
INT32S (*devWrite)(INT8S *buffer, INT32U lenToWrite, INT8U waitType);
INT32S (*devIoctl)(INT32U too, void *pd);
INT32S (*devClose)(void *pd);
} UDFOperations;
typedef struct {
INT8U deviceName[UDF_MAX_NAME]; //设备名
INT8U deviceType; //1—块设备, 2—字符设备;
INT8U canShared; //0---不可共享使用, 1—可共享使用
INT16U openCount; //对于共享设备,此字段为打开次数计数;
UDFOperations op; //设备驱动模块提供的设备操作函数表;
} UDFFramework;
static UDFFramework UDFTable[EQUMANGER_NUM] //设备实体表
// UDFFramework *OSTCBCur; /* Pointer to currently running TCB */
// UDFFramework *OSTCBFreeList; /* Pointer to list of free TCBs */
// UDFFramework *OSTCBHighRdy; /* Pointer to highest priority TCB R-to-R */
//UDFFramework *OSTCBList; /* Pointer to doubly linked list of TCBs */
#ifndef IN_EUQMENT
/*********************************************************************************************************
** 函数名称: UDFCreat
** 功能描述: 设备驱动安装
** 输 入: deviceName :指向设备名称
** deviceType :设备类型 1-块设备,2-字符设备
** canShared :0---不可共享使用, 1—可共享使用
** UDFOpen :打开设备函数参数为
** UDFRead :设备读
** UDFWrite :设备写
** UDFIoctrl :设备控制字
** UDFClose :关闭设备
** UDFState :设备状态
** 输 出: NOT_OK :设备创建结果0成功1失败
** 调用模块:
********************************************************************************************************/
extern uint8 UDFCreat(INT8U *deviceName,
INT8U deviceType,
INT8U canShared,
uint8 (* UDFOpen)(),
uint8 (* UDFRead)(),
uint8 (* UDFWrite)(),
uint8 (* UDFIoctrl)(),
uint8 (* UDFClose)(),
uint8 (* UDFState)()
);
/*********************************************************************************************************
** 函数名称: UDFOpen
** 功能描述: 打开指定设备
** 输 入: deviceName :指向设备名称
** pd :待用参数
** 输 出: NOT_OK :设备打开错误
** EQUMENT_ID :设备打开成功返回设备ID
** 全局变量: 无
** 调用模块:
********************************************************************************************************/
extern INT32S UDFOpen(INT8U *deviceName, void *pd);
/*********************************************************************************************************
** 函数名称: UDFOpen
** 功能描述: 打开指定设备
** 输 入: deviceName :指向设备名称
** pd :待用参数
** 输 出: NOT_OK :设备打开错误
** EQUMENT_ID :设备打开成功返回设备ID
** 全局变量: 无
** 调用模块:
********************************************************************************************************/
extern uint8 UDFRead(INT32U handle, INT8S *buffer, INT32U blen, INT32U lenToRead, INT8U waitType);
/*********************************************************************************************************
** 函数名称: UDFRead
** 功能描述: 获取设备中的数据
** 输 入: handle:设备ID
** buffer:设备缓冲区的指针
** 输 出: NOT_OK:设备参数错误
**
** 全局变量: 无
** 调用模块: OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
********************************************************************************************************/
extern uint8 UDFWrite(INT32U handle, INT8S *buffer, INT32U blen, INT32U lenToRead, INT8U waitType);
/*********************************************************************************************************
** 函数名称: UDFWrite
** 功能描述: 数据写入设备
** 输 入: handle:设备ID
** buffer:设备缓冲区的指针
** 输 出: NOT_OK :参数错误
** 全局变量: 无
** 调用模块: OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
********************************************************************************************************/
extern uint8 UDFIoctrl(INT32U handle, INT8S *buffer, INT32U blen, INT32U lenToRead, INT8U waitType);
/*********************************************************************************************************
** 函数名称: UDFIoctrl
** 功能描述: 设备控制字
** 输 入: handle:设备ID
** Data:消息数据
** 输 出: QUEUE_FULL:队列满
** QUEUE_OK:发送成功
** 全局变量: 无
** 调用模块: OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
********************************************************************************************************/
extern uint8 UDFClose(INT32U handle);
/*********************************************************************************************************
** 函数名称: UDFClose
** 功能描述: 取得队列中数据数
** 输 入: handle:设备ID
** 输 出: 返回关闭状态0成功1失败
** 全局变量: 无
** 调用模块: OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
********************************************************************************************************/
extern uint8 UDFState(INT32U handle);
/*********************************************************************************************************
** 函数名称:UDFState
** 功能描述: 取得设备状态
** 输 入: Buf:指向队列的指针
** 输 出: 队列总容量
** 全局变量: 无
** 调用模块: OS_ENTER_CRITICAL,OS_EXIT_CRITICAL
********************************************************************************************************/
#endif
//#define EN_QUEUE_WRITE 0 /* 禁止(0)或允许(1)FIFO发送数据 */
//#define EN_QUEUE_WRITE_FRONT 0 /* 禁止(0)或允许(1)LIFO发送数据 */
//#define EN_QUEUE_NDATA 0 /* 禁止(0)或允许(1)取得队列数据数目 */
//#define EN_QUEUE_SIZE 0 /* 禁止(0)或允许(1)取得队列数据总容量 */
//#define EN_QUEUE_FLUSH 0 /* 禁止(0)或允许(1)清空队列 */
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -