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

📄 hpi.h

📁 一个U盘的文件系统源代码!!!C语言编写
💻 H
字号:
/*******************************Copyright (c)***************************************

                              桑海为实业发展有限公司
                         自  动  化  钢  琴  研  究  所
                           http://www.pianoshw.com
                           E-mail:shw@pianoshw.com

----------------------------------文件信息-------------------------------------------

文  件  名 : HPI.H
创  建  人 : 吴应斌
创 建 日 期: 2004-6-7 10:18
功 能 描 述: SL811人机接口函数说明(HPI.C)

************************************************************************************/

#ifndef _HPI_H_
#define _HPI_H_

/*---------------------------------------------------------------------------------*/

#define CMD_RESET					0x00	//磁盘复位命令

#define CMD_DETECT_DEVICE			0x01	//检测磁盘命令
#define CMD_DETECT_DEVICE_RSP		0x04	//检测磁盘应答

#define CMD_OPEN_FILE				0x06	//打开文件命令
#define CMD_CREATE_FILE				0x07	//创建文件命令
#define CMD_READ_FILE				0x08	//读取文件命令
#define CMD_WRITE_FILE				0x09	//写入文件命令

#define CMD_CREATE_FILE_RSP			0x0A	//创建文件应答
#define CMD_READ_FILE_RSP			0x0B	//读取文件应答
#define CMD_WRITE_FILE_RSP			0x0C	//写入文件应答
#define CMD_OPEN_FILE_RSP			0x0D	//打开文件应答

#define CMD_LIST					0x10	//列出文件目录命令
#define CMD_REMOVE_FILE				0x11	//删除指定文件命令
#define CMD_GET_CAPACITY			0x12	//获取磁盘空间命令

#define CMD_GET_FREE_CAPACITY		0x13	//获取磁盘剩余空间命令
#define CMD_SET_FILE_POINTER		0x15	//移动文件指针命令

#define CMD_LIST_RSP				0x20	//列出文件目录应答
#define CMD_REMOVE_FILE_RSP			0x21	//删除指定文件应答
#define CMD_GET_CAPACITY_RSP		0x22	//获取磁盘空间应答

#define CMD_GET_FREE_CAPACITY_RSP	0x23	//获取磁盘剩余空间应答
#define CMD_SET_FILE_POINTER_RSP	0x25	//移动文件指针应答

#define CMD_GET_VERSION				0x30	//获取软件版本命令
#define CMD_GET_VERSION_RSP			0x40	//获取软件版本应答

#define CMD_DIR_DOWN				0x70
#define CMD_DIR_DOWN_RSP			0x80
#define CMD_DIR_UP					0x71
#define CMD_DIR_UP_RSP				0x81	
	
#define ERC_OK						0x0000	//结果正确

#define ERC_NODEVICE				0x0001	//未检测到磁盘
#define ERC_DEVICEFULL				0x0002	//磁盘空间已满
#define ERC_DEVICEERR				0x000A	//磁盘异常
#define ERC_FILEEXIST				0x0010	//要创建的文件已存在
#define ERC_FILENOTFOUND			0x0011	//要读取的文件不存在
#define ERC_LENGTHEXCEED			0x0012	//要读取的文件长度超出
#define ERC_REACHEND				0x0013	//要读取的文件已到结尾
#define ERC_FILENOTOPENED			0x0014	//文件未打开
#define ERC_STATEERR				0x0050	//状态错误
#define ERC_SYSERR					0x00FA	//系统错误

#define COMERC_CMDERR				0x01	//ERC错误
#define COMERC_TIMEOUT				0x02	//ERC超时


typedef struct _UART_CMD_GETVERSION
{
	unsigned char para;
	unsigned char Reserved[62];
}UART_CMD_GETVERSION,*PUART_CMD_GETVERSION;

typedef struct _UART_CMD_OPENFILE
{
	unsigned char filename[11];
	unsigned char Reserved[52];
}UART_CMD_OPENFILE,*PUART_CMD_OPENFILE;

typedef struct _UART_CMD_READFILE
{
	unsigned int readLength;
	unsigned char Reserved[61];
}UART_CMD_READFILE,*PUART_CMD_READFILE;

typedef struct _UART_CMD_CREATEFILE
{
	unsigned char item[32];
	unsigned char para;
	unsigned char Reserved[30];
}UART_CMD_CREATEFILE,*PUART_CMD_CREATEFILE;

typedef struct _UART_CMD_WRITEFILE
{
	unsigned char para;
	unsigned int writeLength;
	unsigned char Reserved[60];
}UART_CMD_WRITEFILE,*PUART_CMD_WRITEFILE;


typedef struct _UART_CMD_REMOVEFILE
{
	unsigned char para;
	unsigned char filename[11];
	unsigned char Reserved[51];
}UART_CMD_REMOVEFILE,*PUART_CMD_REMOVEFILE;

typedef struct _UART_CMD_SETFILEPOINTER
{
	unsigned char para;
	unsigned long pointer;
	unsigned char Reserved[58];
}UART_CMD_SETFILEPOINTER,*PUART_CMD_SETFILEPOINTER;

typedef union _CMD_BLOCK
{
	UART_CMD_OPENFILE Cmd_OpenFile;
	UART_CMD_READFILE Cmd_ReadFile;
	UART_CMD_CREATEFILE Cmd_CreateFile;
	UART_CMD_WRITEFILE	Cmd_WriteFile;
	UART_CMD_REMOVEFILE	Cmd_RemoveFile;
	UART_CMD_SETFILEPOINTER Cmd_SetFilePointer;
	UART_CMD_GETVERSION Cmd_GetVersion;
}CMD_BLOCK, * PCMD_BLOCK;

typedef struct _UART_RSP_DETECTDEVICE
{
	unsigned char Reserved[60];
}UART_RSP_DETECTDEVICE,*PUART_RSP_DETECTDEVICE;

typedef struct _UART_RSP_GETCAPACITY
{
	unsigned long disksize;
	unsigned long freedisksize;
	unsigned char Reserved[52];
}UART_RSP_GETCAPACITY,*PUART_RSP_GETCAPACITY;

typedef struct _UART_RSP_GETFREECAPACITY
{
	unsigned long diskfreesize;
	unsigned char Reserved[56];
}UART_RSP_GETFREECAPACITY,*PUART_RSP_GETFREECAPACITY;

typedef struct _UART_RSP_LIST
{
	unsigned int len;
	unsigned char Reserved[58];
}UART_RSP_LIST,*PUART_RSP_LIST;

typedef struct _UART_RSP_OPENFILE
{
	unsigned char item[32];
	unsigned char Reserved[28];
}UART_RSP_OPENFILE,*PUART_RSP_OPENFILE;

typedef struct _UART_RSP_READFILE
{
	unsigned int readLength;
	unsigned char Reserved[58];
}UART_RSP_READFILE,*PUART_RSP_READFILE;

typedef struct _UART_RSP_CREATEFILE
{
	unsigned char Reserved[60];
}UART_RSP_CREATEFILE,*PUART_RSP_CREATEFILE;

typedef struct _UART_RSP_WRITEFILE
{
	unsigned char Reserved[60];
}UART_RSP_WRITEFILE,*PUART_RSP_WRITEFILE;

typedef struct _UART_RSP_REMOVEFILE
{
	unsigned char Reserved[60];
}UART_RSP_REMOVEFILE,*PUART_RSP_REMOVEFILE;

typedef struct _UART_RSP_SETFILEPOINTER
{
	unsigned char Reserved[60];
}UART_RSP_SETFILEPOINTER,*PUART_RSP_SETFILEPOINTER;

typedef struct _UART_RSP_GETVERSION
{
	unsigned int version;
	unsigned char Reserved[58];
}UART_RSP_GETVERSION,*PUART_RSP_GETVERSION;

typedef union _RSP_BLOCK
{
	UART_RSP_DETECTDEVICE Rsp_DetectDevice;
	UART_RSP_GETCAPACITY Rsp_GetCapacity;
	UART_RSP_GETFREECAPACITY Rsp_GetFreeCapacity;
	UART_RSP_LIST	Rsp_List;
	UART_RSP_OPENFILE Rsp_OpenFile;
	UART_RSP_READFILE Rsp_ReadFile;
	UART_RSP_CREATEFILE Rsp_CreateFile;
	UART_RSP_WRITEFILE Rsp_WriteFile;
	UART_RSP_REMOVEFILE	Rsp_RemoveFile;
	UART_RSP_SETFILEPOINTER Rsp_SetFilePointer;
	UART_RSP_GETVERSION Rsp_GetVersion;
}RSP_BLOCK, * PRSP_BLOCK;

typedef struct _UART_CMD_BLOCK
{
	unsigned char cmd;
	CMD_BLOCK CmdBlock;
}UART_CMD_BLOCK, * PUART_CMD_BLOCK;

typedef struct _UART_RSP_BLOCK
{
	unsigned char cmd;
	unsigned char result;
	unsigned int errcode;
	RSP_BLOCK RspBlock;
	unsigned int len;
	unsigned char *pbuffer;
}UART_RSP_BLOCK, * PUART_RSP_BLOCK;


void UartSendRsp(void);
void UartHandler(void);
unsigned char DetectDevice(void);
unsigned char List(void);
unsigned char OpenFile(unsigned char *pBuffer);
unsigned char ReadFile(unsigned int readLength,unsigned char *pBuffer);
unsigned char CreateFile(unsigned char *pBuffer);
unsigned char WriteFile(unsigned int writeLength,unsigned char *pBuffer);
unsigned char RemoveFile(unsigned char *pBuffer);
unsigned char GetCapacity(void);
unsigned char GetFreeCapacity(void);
unsigned char SetFilePointer(unsigned long pointer);
unsigned char GetFirmwareVersion(void);

/*---------------------------------------------------------------------------------*/
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -