📄 fs.h
字号:
/****************************************Copyright (c)****************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name: fs.h
** Latest modified Date: 2007-10-08
** Latest Version: 1.0
** Descriptions: ZLG/FS V1.5用户接口头文件
**
**--------------------------------------------------------------------------------------------------------
** Created by: Chenmingji
** Created date: 2007-10-08
** Version: 1.0
** Descriptions: The original version
**
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
*********************************************************************************************************/
#ifndef __FILE_H
#define __FILE_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/*********************************************************************************************************
函数返回值
*********************************************************************************************************/
#define RETURN_OK 0x00 /* 操作成功 */
#define NOT_FIND_DISK 0x01 /* 逻辑盘不存在 */
#define DISK_FULL 0x02 /* 逻辑盘满 */
#define SECTOR_NOT_IN_CACHE 0x03 /* 扇区没有被cache */
#define NOT_EMPTY_CACHE 0x04 /* 没有空闲cache */
#define SECTOR_READ_ERR 0x05 /* 读扇区错误 */
#define CLUSTER_NOT_IN_DISK 0x06 /* 逻辑盘中没有此簇 */
#define NOT_FIND_FDT 0x07 /* 没有发现文件(目录) */
#define NOT_FAT_DISK 0x08 /* 非FAT文件系统 */
#define FDT_OVER 0x09 /* FDT索引超出范围 */
#define FDT_EXISTS 0x0a /* 文件(目录)已经存在 */
#define ROOT_FDT_FULL 0x0b /* 根目录满 */
#define DIR_EMPTY 0x0C /* 目录空 */
#define DIR_NOT_EMPTY 0x0d /* 目录不空 */
#define PATH_NOT_FIND 0x0e /* 路径未找到 */
#define FAT_ERR 0x0f /* FAT表错误 */
#define FILE_NAME_ERR 0x10 /* 文件(目录)名错误 */
#define FILE_EOF 0x11 /* 文件结束 */
#define FILE_LOCK 0x12 /* 文件被锁定 */
#define NOT_FIND_FILE 0x13 /* 没有发现指定文件 */
#define NOT_FIND_DIR 0x14 /* 没有发现指定目录 */
#define GET_TIME_ERR 0x15 /* 获取时间错误 */
#define DISK_NO_FORMAT 0x16 /* 逻辑盘没有格式化 */
#define NO_MEMERY 0x17 /* 内存不足 */
#define FIND_FILE 0x18 /* 找到文件 */
#define FIND_DIR 0x19 /* 找到目录 */
#define FDT_EOF 0x20 /* FTD表结束 */
#define DRIVE_NOT_MOUNT 0x21 /* 逻辑盘未加载 */
#define DRIVE_FREE 0x22 /* 空闲逻辑盘 */
#define DRIVE_NOT_USE 0x23 /* 未使用的逻辑盘 */
#define BAD_DRIVE_VER 0x24 /* 错误的驱动程序版本 */
#define DRIVE_OPEN_ERR 0x25 /* 驱动程序初始化错误 */
#define DISK_NOT_READY 0x26 /* 设备未准备好 */
#define DRIVE_BE_USING 0x27 /* 设备正在使用 */
#define NOT_RUN 0xfd /* 命令未执行 */
#define BAD_COMMAND 0xfe /* 错误命令 */
#define PARAMETER_ERR 0xff /* 非法参数 */
/*********************************************************************************************************
文件和临时目录句柄
*********************************************************************************************************/
typedef INT32U HANDLE; /* 文件句柄 */
typedef INT32U DHANDLE; /* 临时目录句柄 */
#define NOT_OPEN_FILE ((HANDLE)(~0lu)) /* 不能打开文件 */
#define NOT_OPEN_DIR ((DHANDLE)(~0lu)) /* 不能打开临时目录 */
#define Not_Open_FILE NOT_OPEN_FILE /* 兼容老版本,将被废除 */
#define Not_Open_DIR NOT_OPEN_DIR /* 兼容老版本,将被废除 */
/*********************************************************************************************************
文件指针调整方式
*********************************************************************************************************/
#define SEEK_SET 0 /* 从文件开始处移动文件指针 */
#define SEEK_CUR 1 /* 从文件当前位置移动文件指针 */
#define SEEK_END 2 /* 从文件尾移动文件指针 */
/*********************************************************************************************************
底层驱动命令
*********************************************************************************************************/
#define DISK_DRIVE_VER 0 /* 查看驱动程序版本号,必须实现 */
#define DISK_CHECK_CMD 1 /* 查看命令是否实现,必须实现 */
#define DISK_DRIVE_OPEN 2 /* 打开驱动程序,必须实现 */
#define DISK_DRIVE_CLOSE 3 /* 关闭驱动程序,必须实现 */
#define DISK_DEVICE_OPEN 4 /* 打开设备,必须实现 */
#define DISK_DEVICE_CLOSE 5 /* 关闭设备,必须实现 */
#define DISK_MULT_READ 6 /* 多扇区读,必须实现 */
#define DISK_MULT_WRITE 7 /* 多扇区写,必须实现 */
#define DISK_CHECK_DEVICE 8 /* 查看设备是否存在,必须实现 */
#define DISK_GET_SECTOR_NUMBER 9 /* 获得设备总扇区数,可选命令 */
#define DISK_GET_BYTES_PER_SECTOR 10 /* 获得每扇区字节数,可选命令 */
#define DISK_GET_SECTORS_PER_BLOCK 11 /* 获取每块扇区数,可选命令 */
#define DISK_LOW_FORMAT 12 /* 低级格式化,可选命令 */
#define DISK_FREE_SECTOR 13 /* 释放扇区,可选命令 */
#define DISK_INIT 14 /* 初始化,兼容老版本命令,废除 */
#define DISK_CLOSE 15 /* 关闭,兼容老版本命令,废除 */
#define DISK_READ_SECTOR 16 /* 读扇区,兼容老版本命令,废除 */
#define DISK_WRITE_SECTOR 17 /* 写扇区,兼容老版本命令,废除 */
#define DISK_CHECK_CHANGE 18 /* 兼容老版本命令,废除 */
#define DISK_DRIVER_VER 0 /* 兼容老版本命令,废除 */
/*********************************************************************************************************
底层驱动返回值
*********************************************************************************************************/
#define DISK_RETURN_OK 0x00 /* 成功 */
#define DISK_READ_OK 0x01 /* 读成功 */
#define DISK_READ_NOT_OK 0x80 /* 读失败 */
#define DISK_WRITE_OK 0x02 /* 写成功 */
#define DISK_WRITE_NOT_OK 0x82 /* 写失败 */
#define DISK_INIT_OK 0x03 /* 初始化成功 */
#define DISK_INIT_NOT_OK 0x83 /* 初始化失败 */
#define DISK_TRUE 0x04 /* 真 */
#define DISK_FALSE 0x84 /* 假 */
#define BAD_DISK_COMMAND 0xffff /* 错误命令 */
/*********************************************************************************************************
用户设置的时间格式
*********************************************************************************************************/
struct dateTime {
INT16U da_year; /* 公元年 */
INT8U da_mon; /* 月 */
INT8U da_day; /* 月中日期 */
INT8U da_dow; /* 星期中日期 */
INT8U ti_hour; /* 时 */
INT8U ti_min; /* 分 */
INT8U ti_sec; /* 秒 */
INT8U ti_hund; /* 百分之一秒 */
};
typedef struct dateTime DATE_TIME;
/*********************************************************************************************************
给底层驱动读写命令的参数结构体
*********************************************************************************************************/
struct diskParameter {
INT32U ulSectorIndex; /* 操作的扇区 */
void *pvRsvdForLow; /* 保留给底层驱动程序 */
/* 由于区分驱动程序支持的设备 */
INT8U *pucBuf; /* 数据存储位置 */
unsigned int uiNSectors; /* 扇区数目 */
};
typedef struct diskParameter DISK_PARAMETER;
/*********************************************************************************************************
下面微函数声明
*********************************************************************************************************/
/*********************************************************************************************************
** Function name: FileInit
** Descriptions: 初始化文件系统
** input parameters: none
** output parameters: none
** Returned value: none
*********************************************************************************************************/
extern void FileInit(void);
/*********************************************************************************************************
** Function name: GetFsVer
** Descriptions: 获得文件系统版本
** input parameters: none
** output parameters: none
** Returned value: 文件系统版本x100,如1.50就是150
*********************************************************************************************************/
extern unsigned int GetFsVer(void);
/*********************************************************************************************************
** Function name: FileOpen
** Descriptions: 以指定方式打开文件
** input parameters: cpDirFileName: 用户使用的文件名
** cpType: 打开方式
** output parameters: none
** Returned value: 文件句柄,NOT_OPEN_FILE为不能打开
*********************************************************************************************************/
extern HANDLE FileOpen(const char *pcDirFileName, const char *pcType);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -