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

📄 downloadthread.h

📁 free sources for gsm
💻 H
字号:
#if !defined(AFX_DOWNLOADTHREAD_H__F50CE256_8EE7_4459_BB62_EAAF94F83115__INCLUDED_)
#define AFX_DOWNLOADTHREAD_H__F50CE256_8EE7_4459_BB62_EAAF94F83115__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DownloadThread.h : header file
//

#include "SerialComm.h"
#include "FlashDescription.h"
#include "FlashSectorList.h"
#include "FlashCharacteristic.h"

#define DL_THREAD_LOCKED	0
#define DL_THREAD_RUNNING	1
#define DL_THREAD_WORKING	2

#define DL_MSG_WORK_GO		WM_USER+1
#define DL_MSG_TARGETDETECT	WM_USER+2
#define DL_MSG_DLLOADER		WM_USER+3
#define DL_MSG_PROGRESS		WM_USER+4
#define DL_MSG_ERR			WM_USER+5
#define DL_MSG_WORK_CANCEL	WM_USER+6
#define DL_MSG_WORK_DONE	WM_USER+7
#define DL_MSG_THREAD_EXIT	WM_USER+8

enum
{
	BOOT_CREQ5087_4_ERR,
	SEND_BOOT_CONFIRM_ERR,
	CLEAR_DTR_ERR,
	DL_TARGET_DETECTED,
	SEND_SYSTEM_CFG_ERR,
	SEND_JUMP_ADDR_ERR,
	SEND_CHAR_ERR,
	BOOT_CCON_ERR,
	STACK_POINTER_ERR,
	FLASH_TYPE_ACK_ERR,
	FLASH_TYPE_READ_ERR,
	FLASH_TYPE_UNKNOWN,
	SET_GPIO_ERR,
	CHANGE_SPEED_ERR,
	DOWNLOAD_MODULE_ERR,
	GET_SECTOR_LIST_ERR,
	GET_SECTOR_SIZE_ERR,
	DOWNLOAD_SECTOR_ERR,
	TFS_INIT_ERR,
	TFS_WRITE_VER_ERR,
	TFS_WRITE_PATH_ERR,
	TFS_WRITE_FILE_ERR,
	ERASE_SECTOR_ERR,
	DL_LOADER_DONE,
	DL_FLASH_ERASE,
	DL_FLASH_BIN_LOADING,
	DL_FLASH_TFS_LOADING,
};

/////////////////////////////////////////////////////////////////////////////
// CDownloadThread thread

class CDownloadThread : public CWinThread
{
	DECLARE_DYNCREATE(CDownloadThread)
protected:
	CDownloadThread();           // protected constructor used by dynamic creation

// Attributes
public:
	BYTE* m_pFileClaData;
	BYTE* m_pFileTFSData;
	CSerialComm	m_CommPort;
	CFile	m_FileTrace;
	CFile	m_fileBin;
	CFile	m_fileTfs;
	CWnd*	m_pWnd;
	HANDLE	m_hEvt;
	int		m_nThreadState;
	UINT	m_nPercent;
	UINT	m_nBaudRatePos;
	BOOL	m_bPortInit;
	BOOL	m_bStop;
	BOOL	m_bRun;
	int		m_nPort;
	int		m_nBaudRate;
	int		m_nDownloadMode; // 0 = BIN & TFS , 1 = BIN Only , 2 = TFS Only
	CString	m_strBinPathName;
	CString	m_strTfsPathName;
	BYTE	m_FlashManufacturer;
	BYTE	m_FlashId;
	DWORD	m_dwBinLength;
	DWORD	m_dwTfsLength;

// Operations
public:
	BOOL	SetOwner(CWnd* pView);
	void	ResetEvt();
	void	SetEvt();
	int		GetThreadState();
	void	CancelDload();
	HANDLE	GetThreadHandle();
	void	Destroy();
	void	SetRunFlag(BOOL bRun);
	BOOL	SetBaud(int nBaud);
	BOOL	SetPort(int nPort);
	BOOL	SetDownloadMode(int nDownloadMode);
	BOOL	SetBinPathName(CString szBinPathName);
	BOOL	SetTfsPathName(CString szTfsPathName);
	BOOL	InitFlashDescription();
	BOOL	InitTFSDescription(CString TfsFileName);
	void	WriteFileTrace(CString strData);
	BOOL	InitCommPort(UINT nBaud);
	BOOL	ReadCharFromUart(clock_t lTimeout, BYTE *byReceivedChar);
	BOOL	WriteCharToUart(BYTE txChar);

	BOOL	DownloadStart();
	BOOL	SendFirstRecord();
	BOOL	SendToRam();
	BOOL	GetTypeFlash();
	void	DisplayFlashName();
	BOOL	GetFlashIndex(BYTE* Index);
	BOOL	SetGPIO();
	BOOL	SetSpeedAndPMU();
	BOOL	ChangeSpeed();
	BOOL	SpeedControl();
	BOOL	DownloadExtendMobule();
	BOOL	FileOpen();
	BOOL	SendToFlash();
	BOOL	DownloadSoftware(UINT vp_AddrBase);
	BOOL	GetSectorList(CFlashSectorList* pp_FlashSectorList, UINT vp_StartAddress, DWORD vp_SectionSize);
	BOOL	GetSectorNumberWithStartAddr(UINT vp_StartAddress, UINT* pp_SectorNumber);
	BOOL	GetSectorSize(UINT vp_SectorNb, UINT* pp_SectorSize);
	BOOL	DownloadSectorCommand(UINT vp_StartAddress, UINT vp_SectorSize, UINT vp_BlockSize);
	BOOL	NandFormat();
	BOOL	DownloadTFSSoftware();
	BOOL	TFS_Init();
	BOOL	TFS_WriteVersion();
	BOOL	TFS_WritePath(int PathNum);
	BOOL	TFS_WriteFile(int FileNum, UINT *pCheckSum, UINT *pNbrCharSent);
	BOOL	SwitchOffCommand();
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CDownloadThread)
	public:
	virtual BOOL InitInstance();
	virtual int ExitInstance();
	virtual int Run();
	//}}AFX_VIRTUAL

// Implementation
protected:
	virtual ~CDownloadThread();

	// Generated message map functions
	//{{AFX_MSG(CDownloadThread)
		// NOTE - the ClassWizard will add and remove member functions here.
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_DOWNLOADTHREAD_H__F50CE256_8EE7_4459_BB62_EAAF94F83115__INCLUDED_)

⌨️ 快捷键说明

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