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

📄 upgrade.h

📁 运行环境:DOS, 通过串口升级的下位程序, 需配合上位升级程序FileUpgrade运行, 可用于嵌入式DOS系统中.
💻 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 + -