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

📄 command_unit.h

📁 USBUSB开发资料类
💻 H
字号:
//============================================================================================================
//
//		头文件:		Command_Unit.h
//
//============================================================================================================

//============================================================================================================
#ifndef __My_Command_Func_H_
#define __My_Command_Func_H_
//============================================================================================================



//============================================================================================================
//	引用头文件
//============================================================================================================


//============================================================================================================
//
//		定义	常量	和		变量
//
//============================================================================================================
//*******************************
//任务的工作状态
//*******************************
#define	cCMD_WorkStatus_SearchUDisk	0x0000
#define	cCMD_WorkStatus_SearchSig	0x0001
#define	cCMD_WorkStatus_WaitCmd		0x0002
#define	cCMD_WorkStatus_WaitCmdData	0x0004
#define	cCMD_WorkStatus_DoCmd		0x0008
#define	cCMD_WorkStatus_SendStatus	0x0010
#define	cCMD_EndEvent_ReadWrite		0x8000
//*******************************
//和主机通讯的命令和状态代码
//*******************************
#define cCMD_CMD_RESET				0x00
/////////////////////////////////////
#define cCMD_CMD_DETECT_DEVICE		0x01
#define cCMD_CMD_DETECT_DEVICE_RSP	0x04
/////////////////////////////////////
#define cCMD_CMD_MAKE_DIR			0x32
#define cCMD_CMD_IN_DIR				0x33
#define cCMD_CMD_OUT_DIR			0x34
#define cCMD_CMD_ROOT_DIR			0x35
//----------
#define cCMD_CMD_MAKE_DIR_RSP		0x42
#define cCMD_CMD_IN_DIR_RSP			0x43
#define cCMD_CMD_OUT_DIR_RSP		0x44
#define cCMD_CMD_ROOT_DIR_RSP		0x45
/////////////////////////////////////									
#define cCMD_CMD_OPEN_FILE			0x06
#define cCMD_CMD_CREATE_FILE		0x07
#define cCMD_CMD_READ_FILE			0x08
#define cCMD_CMD_WRITE_FILE			0x09
//----------
#define cCMD_CMD_CREATE_FILE_RSP	0x0A
#define cCMD_CMD_READ_FILE_RSP		0x0B
#define cCMD_CMD_WRITE_FILE_RSP		0x0C
#define cCMD_CMD_OPEN_FILE_RSP		0x0D
/////////////////////////////////////
#define cCMD_CMD_LIST				0x10
#define cCMD_CMD_REMOVE_FILE		0x11
#define cCMD_CMD_GET_CAPACITY		0x12
#define cCMD_CMD_GET_FREE_CAPACITY	0x13
#define cCMD_CMD_FORMAT_DISK		0x14
#define cCMD_CMD_SET_FILE_POINTER	0x15
//-----------
#define cCMD_CMD_LIST_RSP			0x20
#define cCMD_CMD_REMOVE_FILE_RSP	0x21
#define cCMD_CMD_GET_CAPACITY_RSP	0x22
#define cCMD_CMD_GET_FREE_CAPACITY_RSP	0x23
#define cCMD_CMD_FORMAT_DISK_RSP		0x24
#define cCMD_CMD_SET_FILE_POINTER_RSP	0x25
/////////////////////////////////////
#define cCMD_CMD_GET_VERSION		0x30
#define cCMD_CMD_GET_VERSION_RSP	0x40
/////////////////////////////////////
#define cCMD_CMD_GET_ReadSector		0x50
#define cCMD_CMD_GET_ReadSector_RSP	0x51
/////////////////////////////////////
#define cCMD_CMD_DIR_DOWN			0x70
#define cCMD_CMD_DIR_DOWN_RSP		0x80
#define cCMD_CMD_DIR_UP				0x71
#define cCMD_CMD_DIR_UP_RSP			0x81		
///////////////////////////////////////////////
#define cCMD_ERC_OK				0x0000
/////////////////////////////////////
#define cCMD_ERC_NODEVICE		0x0001
#define cCMD_ERC_DEVICEFULL		0x0002
#define cCMD_ERC_DEVICEERR		0x000a
#define cCMD_ERC_FILEEXIST		0x0010
#define cCMD_ERC_FILENOTFOUND	0x0011
#define cCMD_ERC_LENGTHEXCEED	0x0012
#define cCMD_ERC_REACHEND		0x0013
#define cCMD_ERC_FILENOTOPENED	0x0014
#define cCMD_ERC_DIRNOTEMPTY	0x0015
#define cCMD_ERC_STATEERR		0x0050
#define cCMD_ERC_SYSERR			0x00fa
/////////////////////////////////////
#define cCMD_COMERC_CMDERR		0x01
#define cCMD_COMERC_TIMEOUT		0x02
//============================================================================================================

//============================================================================================================
//
//		定义	各种命令	的结构体
//
//============================================================================================================
//========================================================
//*******************************
//ReadSector结构体
//*******************************
typedef	__packed	struct	tCMD_ReadSector_CMD
{
	BYTE	Res1;
	DWORD	SectorAddr;
	BYTE	Res[58];
} TCMD_ReadSector_CMD, *PCMD_ReadSector_CMD;
//*******************************
//Write结构体
//*******************************
typedef	__packed	struct	tCMD_Write_CMD
{
	BYTE	Res1;
	WORD	DataLength;
	BYTE	Res[60];
} TCMD_Write_CMD, *PCMD_Write_CMD;
//---
typedef	__packed	struct	tCMD_Write_RSP
{
	BYTE	Res[60];
} TCMD_Write_RSP, *PCMD_Write_RSP;
//*******************************
//List结构体
//*******************************
typedef	__packed	struct	tCMD_List_RSP
{
	WORD	DataLength;
	BYTE	Res[58];
} TCMD_List_RSP, *PCMD_List_RSP;
//*******************************
//InDir结构体
//*******************************
typedef	__packed	struct	tCMD_InDir_CMD
{
	char	Name[8];
	BYTE	Res[55];
} TCMD_InDir_CMD, *PCMD_InDir_CMD;
//*******************************
//OpenFile结构体
//*******************************
typedef	__packed	struct	tCMD_OpenFile_CMD
{
	char	FileName[8];
	char	ExtName[3];
} TCMD_OpenFile_CMD, *PCMD_OpenFile_CMD;
//*******************************
//SetPointer结构体
//*******************************
typedef	__packed	struct	tCMD_SetPointer_CMD
{
	BYTE	Res;
	DWORD	NewFilePointer;
} TCMD_SetPointer_CMD, *PCMD_SetPointer_CMD;
//*******************************
//结构体
//*******************************
typedef	__packed	struct	tCMD__CMD
{
	BYTE	Res[63];
} TCMD__CMD, *PCMD__CMD;
//---
typedef	__packed	struct	tCMD__RSP
{
	BYTE	Res[60];
} TCMD__RSP, *PCMD__RSP;
//============================================================================================================


//============================================================================================================
//
//		定义	接收和发送	的命令结构体
//
//============================================================================================================
//*******************************
//一些常量
//*******************************
#define	cCMD_Signature	0xBBAA
#define	cCMD_Signature0	0xAA
#define	cCMD_Signature1	0xBB
#define	cCMD_MAXOUTDATA	4096
#define	cCMD_MAXINDATA	4096
//========================================================
//*******************************
//接收数据结构体
//*******************************
typedef	__packed	struct	tCMD_CommandBlock
{
	WORD	Signature;			//应该是一个常量	cCMD_Signature
	BYTE	Command;			//命令代码
	BYTE	Parameter[63];		//命令的参数
	BYTE	Data[cCMD_MAXOUTDATA];			//命令携带的数据
} TCMD_CommandBlock, *PCMD_CommandBlock;
//*******************************
//发送数据结构体
//*******************************
typedef	__packed	struct	tCMD_StatusBlock
{
//	WORD	Signature;			//应该是一个常量	cCMD_Signature
	BYTE	Command;			//应答代码
	BYTE	Result;				//应答结果
	WORD	ErrorCode;			//错误代码
	BYTE	Parameter[60];		//应答的参数
	BYTE	Data[cCMD_MAXINDATA];		//应答携带的数据
} TCMD_StatusBlock, *PCMD_StatusBlock;
//============================================================================================================


//============================================================================================================
//****************************************
//定义	文件目录表(短文件名8.3格式)		的属性
//****************************************
#define	cFS_ATTR_READ_ONLY 0x01
#define	cFS_ATTR_HIDDEN 0x02
#define	cFS_ATTR_SYSTEM 0x04
#define	cFS_ATTR_VOLUME_ID 0x08
#define	cFS_ATTR_DIRECTORY 0x10
#define	cFS_ATTR_ARCHIVE 0x20
#define	cFS_ATTR_LONG_NAME	(cFS_ATTR_READ_ONLY |	cFS_ATTR_HIDDEN |	cFS_ATTR_SYSTEM |	cFS_ATTR_VOLUME_ID)
#define	cFS_ATTR_LONG_NAME_MASK	(cFS_ATTR_LONG_NAME	|	cFS_ATTR_DIRECTORY	|	cFS_ATTR_ARCHIVE)
//****************************************
//定义	文件目录表(短文件名8.3格式)		的结构体
//****************************************
typedef	__packed	struct tFS_DirItem
{
	char	FileName[8];	//ofs:0.文件名
	char	ExtName[3];		//ofs:8.扩展名
	BYTE	Attribute;		//ofs:11.文件属性。典型值:存档(0x20)、卷标(0x08)。
	BYTE	ResForNT;		//ofs:12.WinNT保留
	BYTE	CreateTimeTenth;//ofs.13.
	WORD	CreateTime;		//ofs.14.创建时间
	WORD	CreateDate;		//ofs.16.创建日期
	WORD	LastAccDate;	//ofs.18.最后访问日期
	WORD	StartClusterHI;	//ofs.20.开始簇号(高16位)
	WORD	Time;			//ofs:22.时间
	WORD	Data;			//ofs:24.日期
	WORD	StartClusterLO;	//ofs:26.开始簇号(低16位)
	DWORD	FileLength;		//ofs:28.文件长度
}	TFS_DirItem,	*PFS_DirItem; 
//============================================================================================================



//============================================================================================================
//
//		定义	输出的函数
//
//============================================================================================================
//输出的
void	CMD_Init(DWORD*	WriteBuffer,	DWORD*	ReadBuffer);
BOOL	CMD_WriteFile(	DWORD	DataLength	);
BOOL	CMD_ReadFile(	DWORD*	DataLength	);
BOOL	CMD_CreateFile(	char*	pFileName,	char*	pExtName	);
BOOL	CMD_OpenFile(	char*	pFileName,	char*	pExtName	);
BOOL	CMD_SetPointer(	DWORD	FilePointer	);
BOOL	CMD_Detect(	 void	);
BOOL	CMD_GetVersion(	WORD*	pVersion	);
BOOL	CMD_InDir(	char*	pDirName	);
BOOL	CMD_OutDir(	 void	);
BOOL	CMD_RootDir(	 void	);
BOOL	CMD_MakeDir(	char*	pDirName	);
BOOL	CMD_Remove(	char*	pFileName,	char*	pExtName	);
BOOL	CMD_GetCapacity(	DWORD*	AvailableSpace,	DWORD*	FreeSpace	);

//============================================================================================================




//============================================================================================================
#endif  // __My_Command_Func_H_
//============================================================================================================
//
//			End	of	File
//
//============================================================================================================

⌨️ 快捷键说明

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