📄 upgrade.h
字号:
#ifndef _CLASS_CUpgradeFile_h_
#define _CLASS_CUpgradeFile_h_
#if (!__LARGE__)
#error You must choose Large Memory Model at compile time(选择大模式编译)
#endif
#include <stdio.h>
#define constUpgradeOKFileName "\\uprade!!.OK"
enum{STATUS_NEGOTIATE=0,STATUS_TRANSFER,STATUS_UPRGRADEEND,STATUS_END};
class CUpgradeFile
{
public:
void Start();
CUpgradeFile();
virtual ~CUpgradeFile();
protected:
short CreateNewFile(unsigned long FileLen,char *filename);
short Handle_Answer_0xB2();
short Handle_0xB2();
short Handle_Check_0xB1();
unsigned char Handle_0xB1();//0=OK
void SendErrorMessagePackage(unsigned char ErrorCode);
void CreateSuccMarkFile();
short Operate_SendB0_WaitB1();//发送B0等待连接协商
short Operate_SendB1_WaitB2();//发送B1等待传输数据
short Operate_SendB2_WaitTransDataEND();//发送B2等待传输数据结束
short Operate_SendTransDataEND_WaitB1();//发送传输数据结束等待新文件协商
short CheckFileCrcCode();
short CheckDiskFreeSpace(unsigned long newFileLen);
FILE *ptrFile;
short m_CurWorkStatus;
private:
short ReadUpgradeParameter(const unsigned char *ptrData);//从数据包获得升级数据参数 0=OK 1=Error
//升级数据参数
unsigned char m_UnSuccFileCount;//剩余未发送的文件数
unsigned char m_UprModel;//升级模式
unsigned long m_lFileLen;//升级文件长度
unsigned short m_uPackageSize;//升级文件每包大小
unsigned short m_uPackageCount;//升级包数。
unsigned long m_lFileCrcCode1,m_lFileCrcCode2;//升级文件最终校验码
char m_strFileName[65];//升级文件名
char *m_ptrSuccPackMark;
unsigned short m_SuccPackCount;
unsigned short m_CurRecvFileIndex;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -