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

📄 equmanger.h

📁 在μC/OS-II下
💻 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 + -