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

📄 my850page.cpp

📁 嵌入式系统的文件下载源码。实现各类文件的无线下载功能
💻 CPP
字号:

#include "My850Page.h"

#define MSG_BARCODE	UMSG_TYPE_USR + 100
#define CODE_LEN 28
#define	RECORD_LEN (CODE_LEN + 2)

void BarCodeProcess(BARCODEINFO *p);
static UMSG g_msg;

void BarCodeProcess(BARCODEINFO *p)
{
	memset(&g_msg, 0, sizeof(UMSG));
	g_msg.nMessage = MSG_BARCODE; 
	g_msg.nParam = p->code_length;
	g_msg.nData = (int)p->code_buf;
	g_msg.pDataEx = (void *)p->code_type;
	UPostMessage(&g_msg);
}


CMy850Page::CMy850Page()
{
}

CMy850Page::~CMy850Page()
{
}

void CMy850Page::OnInit(void)
{
	CUPage::OnInit();

	RECT r;
	r.left = 20;
	r.right = WIN_WIDTH - 20;
	r.top = 30;
	r.bottom = 45;
	m_lFileCnt.Create(this, "File Content:", 0, &r);

	r.top = 60;
	r.bottom = 75;
	m_eFileCnt.Create(this, NULL, 0, &r);
	m_eFileCnt.SetMaxInputLen(CODE_LEN);
		
	
	//open file
	ZFILE *fp;
	fp = zfopen("FileAccess.txt", "r+");
	if (fp == NULL)
		fp = zfopen("FileAccess.txt", "w+");
	zfclose(fp);

	m_fFile.Open("FileAccess.txt", RECORD_LEN);	
	
	
	// open scanner, if failed and quit 
	if(m_scanner.UOpenScanner() < 0)
	{
		printf("open scanner fail\n");
		USleep(1000);
		PostMessage(this, UM_QUIT);
	}
	
	//register callback function for receiveing code data
	m_hscan = m_scanner.URegScannerCallBack(BarCodeProcess, 100);
	if(!m_hscan)
	{
		CUMsgBox box("Register callback fail!", MSGBOX_NORMAL);
		box.DoModal();
		PostMessage(this, UM_QUIT);
	}
}



void CMy850Page::OnOK(void)
{
	//write data to file
	FileAccess(m_eFileCnt.GetTextPtr());
}

void CMy850Page::OnUserMsg(UMSG *pMsg)
{
	if(pMsg->nMessage == MSG_BARCODE)
	{
		m_eFileCnt.SetText((char *)pMsg->nData);
		PostMessage(this, UM_PAINT);
	}
}

void CMy850Page::OnQuit(void)
{
	if(m_hscan)
		m_scanner.UUnRegScannerCallBack(m_hscan);
	m_scanner.UCloseScanner();

	m_fFile.Close();

	CUPage::OnQuit();
}

void CMy850Page::FileAccess(const char *cFileCnt)
{
	//change record format
	char cInsertBuff[RECORD_LEN];
	memset(cInsertBuff, 0, RECORD_LEN);
	sprintf(cInsertBuff, "%s", cFileCnt);
	sprintf(cInsertBuff + CODE_LEN, "\r\n");

	//insert data
	m_fFile.InsertRecord((void *)cInsertBuff, 0, RECORD_LEN);
	
	CUMsgBox box("Success accessing the file!");
	box.DoModal();

	//refresh the m_eFileCnt
	m_eFileCnt.SetText("");
	m_eFileCnt.Show();
}

⌨️ 快捷键说明

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