📄 iodriver.h
字号:
/****************************************************************************/
/* */
/* Copyright (C) 2005 SHENZHEN MEIJIN CO.LTD */
/* */
/* FILE NAME: IoDriver.h */
/* MODULE NAME: 硬件驱动管理 */
/* DESCRIPTION: 本文件主要定义内核驱动相关的宏和接口函数 */
/* */
/****************************************************************************/
/* NAME DATE REMARKS */
/* ========== ============ ==============================================*/
/* 谢永良 2005-03-18 创建 */
/****************************************************************************/
#ifndef __IODRIVER_H__
#define __IODRIVER_H__
//#define AD_SAMPLE_SHOW_EN 1
/* 定义标准I/O驱动名称 */
#define DRV_NAME_LCD "LCD" // LCD显示输出设备
#define DRV_NAME_KEYBOARD "KEYBOARD" // KEYBOARD键盘输入设备
#define DRV_NAME_NFLASH "NFLASH" // NandFlash存储设备
#define DRV_NAME_SDCARD "SDCARD" // SD Card
#define DRV_NAME_USB "USB" // USB传输设备
#define DRV_NAME_AUDIO "AUDIO" // AUDIO输入设备
#define DRV_NAME_ACM_G723 "ACM_G723" // AUDIO输入设备
#define DRV_NAME_ACM_MP3 "ACM_MP3" // AUDIO输入设备
#define DRV_NAME_ACM_WMA "ACM_WMA" // AUDIO输入设备
#define DRV_NAME_ACM_ADPCM "ACM_ADPCM" // AUDIO输入设备
#define DRV_NAME_POWERMNG "POWERMNG" // 电源电压管理
#define DRV_NAME_DATETIME "DATETIME" //DATETIME日期时间设备
#define DRV_NAME_ALARM "ALARM" //ALRAM闹铃设备
#define DRV_NAME_BEEP "BEEP" //BEEP
#ifdef __ED928__
#define DRV_NAME_TOUCHPANEL "TOUCHPANEL" //手写板
#define DRV_NAME_EXTLCD "EXTLCD" //副屏
#endif
NU_DRIVER *GetIODriverFromName( UINT8 *pDrvName ); // 根据驱动的名字得到驱动结构的指针
BOOL IODriverInitialize(VOID); // IO驱动初始化 */
//VOID IoDrvSetVolume(UINT volume); // 设置音量
UINT32 G723SetFileHdr(UINT8 *pBuf, UINT32 dwDataLen); //设置G723头结构
extern void PenEventProc(int nPenEvent, int nPenX, int nPenY); //驱动笔点事件的处理函数.
/* 驱动程序入口 */
void LcdDriver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
void KeyDriver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
#ifdef _WIN32
void PowerDriver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
#else
VOID PMDriver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
#endif
void LedDriver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
void AudioDriver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
void AcmG723Driver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
void AcmMp3Driver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
void AcmWmaDriver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
void AcmAdpcmDriver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
void NFlashDriver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
void USBDriver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
void SDCardDriver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
void DtTmDriver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
void AlarmDriver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
void BeepDriver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
#ifdef __ED928__
void PenDriver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
void ExtLcdDriver_Func(NU_DRIVER *driver, NU_DRIVER_REQUEST *request);
#endif
/****************************************************************************/
/********************* LCD显示输出设备驱动相关的定义与说明 ******************/
/*定义LCD初始化时的亮度*/
#ifdef _WIN32
#define LCD_INIT_BKLIGHT 7 // 4 is Old
#else
#include "..\\..\\Driver\\C33Driver\\LCDInit.h"
#endif
#define LCD_IOCTL_ON 1 /* 打开LCD显示 */
#define LCD_IOCTL_OFF 2 /* 关闭LCD显示 */
#define LCD_IOCTL_BLON 3 /* 打开背光 */
#define LCD_IOCTL_BLOFF 4 /* 关闭背光 */
#define LCD_IOCTL_GETINFO 5 /* 得到LCD的显示区域大小 */
#define LCD_IOCTL_SETOPRAREA 6 /* 设置LCD的显示区域 */
#define LCD_IOCTL_CREATEBMPHEAD 7 /* 建立一个Bitmap信息头结构 */
#define LCD_IOCTL_GETRANGE 8 /* 得到对比度的最大最小值 */
#define LCD_IOCTL_GETCONTRAST 9 /* 得到对比度 */
#define LCD_IOCTL_SETCONTRAST 10 /* 设置到对比度 */
#define LCD_IOCTL_SETINDICATOR 11 /* 设置Indicator指示标志 */
#define LCD_IOCTL_CLRSCREEN 12 /* 清屏 */
#define LCD_IOCTL_CHGGRAYLVL 13 /* 切换灰度等级*/
#define LCD_IOCTL_GETBKLIGHTRANGE 14 /* 得到背光亮度的最大最小值 */
#define LCD_IOCTL_GETBKLIGHT 15 /* 得到当前的背光亮度值 */
#define LCD_IOCTL_SETBKLIGHT 16 /* 设置当前的背光亮度值 */
#define LCD_IOCTL_GETCONTRASTRANGE 17
#define LCD_SCREEN_WIDTH 480
#define LCD_SCREEN_HEIGHT (320)
#ifdef __ED928__
#define EXTLCD_SCREEN_HEIGHT 64
#define EXTLCD_SCREEN_UNDISP_HEIGHT 0 //由于规划与代码的不一致,小屏前加一端不显示区域
#else
#define EXTLCD_SCREEN_HEIGHT 0
#define EXTLCD_SCREEN_UNDISP_HEIGHT 0
#endif
#define DEFAULT_COLOR_LEVEL 1
/* 区域结构定义(专用于驱动中)(请注意此结构与GUI的坐标结构统一) */
typedef struct
{
UINT16 x;
UINT16 y;
UINT16 width;
UINT16 height;
} MDRV_RECT;
/* 位图结构定义(专用于驱动中) */
typedef struct
{
UINT32 biSize; /*结构体长度*/
UINT32 biWidth; /*位图宽度*/
UINT32 biHeight; /*位图高度*/
UINT16 biPlanes; /*层面数*/
UINT16 biBitCount; /*每个点的颜色表示需要的位数,参见iBitCount说明*/
UINT32 biCompression; /*压缩参数*/
UINT32 biSizeImage; /*解压后的大小*/
UINT32 biXPelsPerMeter; /*水平分辨率 */
UINT32 biYPelsPerMeter; /*垂直分辨率 */
UINT32 biClrUsed; /*使用的颜色数*/
UINT32 biClrImportant; /*重要的颜色*/
} MDRV_BITMAPINFOHEADER;
// 信息打印函数
/*#define NU_Printf HW_Printf
VOID NU_Printf(char *fmt, ...);
VOID HW_XYPrintf(UINT8 x, UINT8 y, char *fmt, ...);
*/
/****************************************************************************/
/****************************************************************************/
/****************************************************************************/
/******************* DateTime日期时间设备驱动的相关定义与说明 ***************/
/* 定义DateTime日期、时间状态事件 */
#define DTTM_IO_DATE 1 //仅得到或设置日期
#define DTTM_IO_TIME 2 //仅得到或设置时间
#define DTTM_IO_DATETIME 3 //得到或设置日期与时间
/* 时间日期的相关结构 */
typedef struct tagSYSTEM_DATETIME
{
UINT16 wYear;
UINT16 wMonth;
UINT16 wDay;
UINT16 wHour;
UINT16 wMinute;
UINT16 wSecond;
UINT16 wMilliseconds;
} SYSTEM_DATETIME, *PSYSTEM_DATETIME;
/****************************************************************************/
/*********************** Alarm闹铃设备驱动的相关定义与说明 ******************/
//时间日期结构同上
#define ALARM_IOCTL_SETCALLBACK 1 /*设置响闹时间到时事件的回调函数*/
#define ALARM_IOCTL_DISABLE 2 /*停止响闹*/
#define ALARM_IOCTL_ENABLE 3 /*使能响闹*/
//定义回调函数类型
typedef void (*FPALARMEV_CALLBACK)(void);
/****************************************************************************/
/********************* BEEP喇叭发声设备驱动的相关定义与说明 *****************/
/* 定义Beep喇叭响闹输出事件 */
#define BEEP_IOCTL_OUTONCE 1 /*以一定的频率和时间响闹一次*/
#define BEEP_IOCTL_STARTSEQUENCE 2 /*开始按照某频率响闹*/
#define BEEP_IOCTL_ENDSEQUENCE 3 /*结束按某频率的连续响闹*/
extern UINT8 g_bPrescaleUsed; // 标识PRESCALE正在被使用
#define PRECALS_NOT_USED 0
#define PRECALS_USED 1
/****************************************************************************/
/****************************************************************************/
/********************** PEN笔输入设备驱动的相关定义与说明 *******************/
// pendrv.c
/* 定义Pen状态设置事件 */
#define PEN_IOCTL_SETCALLBACK 1 /*设置处理笔点事件的回调函数*/
/* 定义Pen事件宏 */
#define PEN_EVENT_DOWN 1 /* 笔按下 */
#define PEN_EVENT_MOVE 2 /* 笔移动 */
#define PEN_EVENT_UP 3 /* 笔抬起 */
//定义回调函数类型
typedef void (*FPPENEV_CALLBACK)(int nPenEvent, int nPenX, int nPenY);
/* nPenEvent - 笔触事件(笔按下、或笔移动、或笔抬起) */
/* nPenX - 笔点的原始X坐标; */
/* nPenY - 笔点的原始Y坐标; */
void PenOpenIRQ(); // enable
void PenCloseIRQ(); // disable
/****************************************************************************/
// Init Ap and DiagSection
void BootInitDiagSection(void);
void BootInitApSection(void);
/****************************************************************************/
/****************** KEYBOARD键盘输入设备驱动的相关定义与说明 ****************/
BOOL ScanSysDiagnosisKey(VOID); // 扫描系统自检组合键的状态
BOOL ScanOnOffKey(VOID); // 扫描开关机键的状态
// 定义缺省的长按键间隔时长
#define KEY_LONGPRESS_TIMELEN 1000 // 1000ms, 即1秒钟
#ifdef WIN32
#define KEY_REPEAT_FIRST 500 // 按键首次重复的时间间隔, 即500毫秒
#define KEY_REPEAT_SEQUENCE 100 // 按键重发的时间间隔, 即100毫秒
#else
#define KEY_REPEAT_FIRST 500 // 按键首次重复的时间间隔, 即500毫秒
#define KEY_REPEAT_SEQUENCE 100 // 按键重发的时间间隔, 即100毫秒
#endif
#define KEY_STATUS_DOWN 1
#define KEY_STATUS_REPEAT 2
#define KEY_STATUS_LONGPRESS 3
#define KEY_STATUS_UP 4
UINT32 GetKeyEvent(VOID); // 获取按键事件(高16位表示按键状态,低16位为键值)
/****************************************************************************/
/****************************************************************************/
/****************************************************************************/
/************************ USB传输设备驱动的相关定义与说明 *******************/
#define USB_IOCTL_CONNECT 1 /*连接USB设备*/
#define USB_IOCTL_DISCONNECT 2 /*断开USB设备*/
#define USB_IOCTL_CHECKSUSPEND 3 /*检查USB是否连接到主机*/
#define USB_INIT_BULK 0 /*以BULK方式初始化设备*/
#define USB_INIT_MASSSTORAGE 1 /*以MASS STORAGE方式初始化设备*/
/****************************************************************************/
/****************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -