人机协同控制模块
视觉算法+运动控制引擎
开发周期缩短40%+

十五.CDiskHelper类

一致性存储类。主要对UC对象进行Serialize函数里面保存成员数据的时候使用。支持多种基本数据类型。除了支持标准文件读写以外,还支持内存文件读写。该类绝大部分函数都为静态函数(不需要声明类实例)。

15.1常量

文件游标移动类型

ST_BEGIN – 文件起始位置

ST_CURRENT – 文件当前位置

ST_END – 文件末尾

15.2功能宏

RV_DH_BEGIN_WRITE_UC(hfile, tag) - 开始写入UC

RV_DH_END_WRITE_UC(hfile, tag) - 结束写入UC

RV_DH_WRITE_VAR(hfile, v) - 写变量

RV_DH_WRITE_TEXT(hfile, text ) - 写文本

RV_DH_WRITE_OBJ(hfile, obj, size) - 写对象

RV_DH_ENCODE_IMAGE(hfile, img, fmt) – 写图象

RV_DH_BEGIN_READ_UC(hfile, tag) – 开始读UC

RV_DH_END_READ_UC(hfile, tag) - 结束读UC

RV_DH_READ_VAR(hfile, v) - 读变量

RV_DH_READ_TEXT(hfile, text, max_size ) – 读文本

RV_DH_READ_OBJ(hfile, obj, size) - 读对象

RV_DH_DECODE_IMAGE(hfile, img) - 读图象

15.3函数

CreateFile

声明:static HANDLE CreateFile(const char* strFilePath, BOOL bInMomery , BOOL bOverWrite , int* pErrCode )

描述:创建文件对象。

参数:const char* strFilePath – 文件路径

BOOL bInMomery – 是否创建内存文件

BOOL bOverWrite – 是否重写

int* pErrCode – 错误码(输出)

返回值:文件句柄

备注

DestroyFile

声明:static void DestroyFile(HANDLE hFile)

描述:销毁文件对象。

参数:HANDLE hFile -文件句柄

返回值:无

备注

GetEntrance

声明:static HANDLE GetEntrance(HANDLE hFile);

描述:获取文件入口点。

参数:HANDLE hFile -文件句柄

返回值:入口句柄

备注

OpenFile

声明:static HANDLE OpenFile(const char* strFilePath, int* pErrCode );

描述:打开文件。

参数:const char* strFilePath- 文件路径

int* pErrCode –错误码

返回值:文件句柄

备注

OpenFileInMemory

声明:static HANDLE OpenFileInMemory(void* pFileData, UINT nSize, int* pErrCode );

描述:打开内存文件。

参数:void* pFileData-文件数据

UINT nSize-数据大小

int* pErrCode-错误码

返回值:文件句柄

备注

CloseFile

声明:static void CloseFile(HANDLE hFile);

描述:关闭文件。

参数:HANDLE hFile -文件句柄

返回值:无

备注

Seek

声明:void Seek(HANDLE device, CDiskHelper::SEEK_TYPE type, int offset);

描述:获取文件入口点。

参数:HANDLE device – 文件句柄

CDiskHelper::SEEK_TYPE type – 起点类型

int offset –偏移量

返回值:无

备注

GetFileSize

声明:static UINT GetFileSize(HANDLE hFile);

描述:获取文件大小。

参数:HANDLE hFile -文件句柄

返回值:文件大小

备注

GetCursorPos

声明:static UINT GetCursorPos(HANDLE hFile)

描述:获取文件当前位置。

参数:HANDLE hFile -文件句柄

返回值:当前位置

备注

LoadBitmap

声明:static BOOL LoadBitmap(RvImage image, const char *strFileName );

描述:从文件中装载图象。

参数:RvImage image-图象对象

const char *strFileName-文件名称(含路径)

返回值:TRUE或FALSE

备注

SaveBitmap

声明: static BOOL SaveBitmap(const RvImage image, const char *strFileName );

描述:将图象对象保存到文件。

参数:const RvImage image-图象对象

const char *strFileName-文件名称(含路径)

返回值:TRUE或FALSE

备注

SaveMask

声明:static BOOL SaveMask(const RvMask mask, const char *strFileName);

描述:将掩模对象保存到文件。

参数:const RvMask mask-掩模

const char *strFileName-文件名称(含路径)

返回值:TRUE或FALSE

备注

SaveBlob

声明: static BOOL SaveBlob(const RvBlob blob, const char *strFileName);

描述:将BLOB对象保存到文件。

参数:const RvBlob blob-BLOB对象

const char *strFileName-文件名称(含路径)

返回值:TRUE或FALSE

备注

BEGIN_OBJ_OUT

声明: static BOOL BEGIN_OBJ_OUT (HANDLE device, DWORD tag)

描述:开始写入对象。

参数:HANDLE device-文件句柄

DWORD tag – 标签

返回值:TRUE或FALSE

备注

BEGIN_OBJ_OUT

声明: static BOOL BEGIN_OBJ_OUT (HANDLE device, DWORD tag)

描述:开始写入对象。

参数:HANDLE device-文件句柄

DWORD tag – 标签

返回值:TRUE或FALSE

备注

END_OBJ_OUT

声明: static BOOL END_OBJ_OUT (HANDLE device, DWORD tag)

描述:结束写入对象。

参数:HANDLE device-文件句柄

DWORD tag – 标签

返回值:TRUE或FALSE

备注

PICK_OBJ_TAG

声明: static BOOL PICK_OBJ_TAG(HANDLE device,DWORD* pTag );

描述:提取当前位置的对象标签。

参数:HANDLE device-文件句柄

DWORD* pTag – 标签指针(输出)

返回值:TRUE或FALSE

备注:该函数不会移动文件游标。

BEGIN_OBJ_IN

声明: static BOOL BEGIN_OBJ_IN (HANDLE device, DWORD tag);

描述:开始将对象数据读出。

参数:HANDLE device-文件句柄

DWORD tag– 标签

返回值:TRUE或FALSE

备注

END_OBJ_IN

声明: static BOOL END_OBJ_IN (HANDLE device, DWORD tag);

描述:结束对象数据读出。

参数:HANDLE device-文件句柄

DWORD tag– 标签

返回值:TRUE或FALSE

备注

EncodeImage

声明: static BOOL EncodeImage(HANDLE hFile, const RvImage image, int nFormat )

描述:对图象进行编码并写入。

参数:HANDLE hFile – 文件句柄

const RvImage image –图象

int nFormat –格式

返回值:TRUE或FALSE

备注

DecodeImage

声明: static BOOL DecodeImage(HANDLE hFile, RvImage image );

描述:对图象进行解码并读出。

参数:HANDLE hFile – 文件句柄

const RvImage image –图象

返回值:TRUE或FALSE

备注

EncodeMask

声明: static BOOL EncodeMask(HANDLE hFile, const RvMask mask);

描述:对掩模进行编码并写入。

参数:HANDLE hFile – 文件句柄

const RvMask mask –掩模

返回值:TRUE或FALSE

备注

DecodeMask

声明: static BOOL DecodeMask(HANDLE hFile, RvMask mask, BOOL bRestrictSize );

描述:对掩模进行编码并写入。

参数:HANDLE hFile – 文件句柄

RvMask mask –掩模

BOOL bRestrictSize- 是否限制格式。

返回值:TRUE或FALSE

备注:如果bRestrictSize为TRUE,那么函数将检查输入的mask是否与文件里面的mask大小是否一致。如果不一致,将返回FALSE。

EncodeBlob

声明: static BOOL EncodeBlob(HANDLE hFile, const RvBlob obj)

描述:对BLOB进行编码并写入。

参数:HANDLE hFile – 文件句柄

const RvBlob obj – BLOB对象

返回值:TRUE或FALSE

备注

DecodeBlob

声明: static BOOL DecodeBlob(HANDLE hFile, RvBlob obj);

描述:对BLOB进行解码并读出。

参数:HANDLE hFile – 文件句柄

RvBlob obj – BLOB对象

返回值:TRUE或FALSE

备注

Write

声明: static BOOL Write (HANDLE device, const char* strVal);

static BOOL Write (HANDLE device, char val);

static BOOL Write (HANDLE device, short val);

static BOOL Write (HANDLE device, unsigned short val);

static BOOL Write (HANDLE device, int val);

static BOOL Write (HANDLE device, UINT val);

static BOOL Write (HANDLE device, DWORD val);

static BOOL Write (HANDLE device, float val);

static BOOL Write (HANDLE device, double val);

static BOOL Write (HANDLE device, RvPoint val);

static BOOL Write (HANDLE device, __int64 val);

static BOOL Write (HANDLE device, unsigned __int64 val);

static BOOL Write (HANDLE device,void* pData, size_t size);

描述:对不同数据类型的数据进行写入。

参数:HANDLE hFile – 文件句柄

返回值:TRUE或FALSE

备注

Read

声明: static BOOL Read(HANDLE device, int* pV);

static BOOL Read(HANDLE device, char* pV);

static BOOL Read(HANDLE device, short* pV);

static BOOL Read(HANDLE device, unsigned short* pV);

static BOOL Read(HANDLE device, char* pV, int size); //读¨¢取¨?字Á?符¤?串ä?

static BOOL Read(HANDLE device, float* pV);

static BOOL Read(HANDLE device, double* pV);

static BOOL Read(HANDLE device, UINT* pV);

static BOOL Read(HANDLE device, DWORD* pV);

static BOOL Read(HANDLE device, __int64* pV);

static BOOL Read(HANDLE device, unsigned __int64* pV);

static BOOL Read(HANDLE device, RvPoint* pV);

static BOOL Read(HANDLE device, void* pData, size_t size);

描述:对不同数据类型的数据进行读出。

参数:HANDLE hFile – 文件句柄

返回值:TRUE或FALSE

备注



QQ技术交流群:
微信技术交流群:
Marklab工作室
研发中心: 广东省东莞市大岭山镇元岭小区翠云街1巷16号
商务中心: 广东省东莞市松湖智谷B6栋225b

二维码1 二维码2 二维码3


Marklab工作室 版权所有  粤ICP备13082990号-2   友情链接 hao123 绿盟 搜狗 站长之家 太平洋下载 天极下载 淘宝店 软云动力

赞助和协作单位 广东省科学院自动化研究所 深圳市东百胜技术有限公司

统计显示 ▼