BlueFlashToolDlg.h 4.42 KB
// BlueFlashToolDlg.h : header file
//
//{{AFX_INCLUDES()
#include "mscomm.h"
#include "afxwin.h"
//}}AFX_INCLUDES

#if !defined(AFX_BLUEFLASHTOOLDLG_H__DE44DC07_CA43_417C_A12F_149A2C736BB5__INCLUDED_)
#define AFX_BLUEFLASHTOOLDLG_H__DE44DC07_CA43_417C_A12F_149A2C736BB5__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////
// CBlueFlashToolDlg dialog

class CBlueFlashToolDlg;

typedef struct ThreadData
{
	CBlueFlashToolDlg* pDlg;
	BYTE blue_device_type;
	int nIndex;
	HANDLE	m_hThread;
	bool StopThread;
	CString Filename;
	CMSComm *pctrlMSComm;
}FLASH_THREAD_DATA;


class CBlueFlashToolDlg : public CDialog
{
// Construction
public:
	void UpdateGroupsCaptions();
	CBlueFlashToolDlg(CWnd* pParent = NULL);	// standard constructor
	CComboBox myctrlComboComPort[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
	//多选框
	CButton *pcheckButton[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
	//下载按钮
	CButton myctrlStartButton[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
	//SN显
	CStatic myStaticSn[MAX_TOPWELL_DEVICE_NUM];
	//进度条
	CProgressCtrl myctrlProcess[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
	//控件
	CMSComm *pctrlMSComm[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
	//20个PCB检测指示器
	CStatic myctrlPcbState[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];;
	//每条线的UART口是否有效
	bool ifUartEnable[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
	//待写入的SN号
	int mySN_readwrite[MAX_TOPWELL_DEVICE_NUM];
	//现成数据
	FLASH_THREAD_DATA	myThreadData[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];;
	//存在UART口
	CWordArray myAryExistPort;
	//可用UART口
	CWordArray myAryNoneOpenedPort;
	//已经被占用UART口
	CWordArray myAryAlreadyOpenedPort;
	//不存在的UART口
	CWordArray myAryNotExistPort;

	char strSignalFlashReady[16];
	char strSignalFlashing[13];

	HBITMAP myBitmapWait;
	HBITMAP myBitmapReady;
	CFont myfontButton;

	BYTE *mybufferForFile;
	BYTE *mybufferForFileUSB;
	int myLenForFile;
	int myLenForFileUSB;
	topwell_SN_write_struct *pSN_write;


	int DBG_print(const char * strMsg, ...);


// Dialog Data
	//{{AFX_DATA(CBlueFlashToolDlg)
	enum { IDD = IDD_BLUEFLASHTOOL_DIALOG };
	CMSComm	mycom_debug;
	CMSComm mycom[2][25];;
//	CMSComm mycom02;
//	CMSComm mycom03;
//	CMSComm mycom04;
//	CMSComm mycom05;
//	CMSComm mycom06;
//	CMSComm mycom07;
//	CMSComm mycom08;
//	CMSComm mycom09;
//	CMSComm mycom10;
//	CMSComm mycom11;
//	CMSComm mycom12;
//	CMSComm mycom13;
//	CMSComm mycom14;
//	CMSComm mycom15;
//	CMSComm mycom16;
//	CMSComm mycom17;
//	CMSComm mycom18;
//	CMSComm mycom19;
//	CMSComm mycom20;
//	CMSComm mycom21;
//	CMSComm mycom22;
//	CMSComm mycom23;
//	CMSComm mycom24;
//	CMSComm mycom25;
//	CMSComm mycom26;
//	CMSComm mycom27;
//	CMSComm mycom28;
//	CMSComm mycom29;
//	CMSComm mycom30;
//	CMSComm mycom31;
//	CMSComm mycom32;
//	CMSComm mycom33;
//	CMSComm mycom34;
//	CMSComm mycom35;
//	CMSComm mycom36;
//	CMSComm mycom37;
//	CMSComm mycom38;
//	CMSComm mycom39;
//	CMSComm mycom40;
//	CMSComm mycom41;
//	CMSComm mycom42;
//	CMSComm mycom43;
//	CMSComm mycom44;
//	CMSComm mycom45;
//	CMSComm mycom46;
//	CMSComm mycom47;
//	CMSComm mycom48;
//	CMSComm mycom49;
//	CMSComm mycom50;

	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CBlueFlashToolDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CBlueFlashToolDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnButtonSetting();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
public:
	DECLARE_EVENTSINK_MAP()
	afx_msg void OnBnClickedButtonInitComport();
	afx_msg void OnDestroy();

	void OnCommMscommDebug();
	bool OpenComport(int earOrUsb, int index);
	void OnCommMscomm1(UINT nID);
	bool SendFileToComPort(BLUE_DEVICE_TYPE earOrUsb, int index);
	
	//调试信息列表
	CListBox mylistDebugInfo;
	//
	CButton mycheckUsbAll;

	

	afx_msg void OnBnClickedStartAll();
	// 拔出或者插入UART线, 更新列表信息
	void UartDeviceChange(void);
	bool LoadBin(int blueDeviceType);
	bool SaveBin(int blueDeviceType);
	bool SaveBin(int blueDeviceType,int index);
};

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

#endif // !defined(AFX_BLUEFLASHTOOLDLG_H__DE44DC07_CA43_417C_A12F_149A2C736BB5__INCLUDED_)