?? 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 + -