예제 #1
1
	void OnDocumentComplete(LPDISPATCH pDisp, LPCTSTR szUrl) {
		CString str;

		str = _T("<b>Internal:</b><br>");
		for (int i = 0; i < 0x14; ++i) {
			if ((i & 3) == 0)
				str.AppendFormat(_T("<tt>$%X: </tt>"), i + 0x4000);
			
			str.Append(_T("<tt style=\"color:green\">"));
			str.AppendFormat(_T("$%02X "), m_pInternalRegs->R_2A03[i]);
			str.Append(_T("</tt>"));

			str.Append((i & 3) == 3 ? _T("<br>") : _T(""));
		}
		if (m_iChip & SNDCHIP_VRC6) {
			str.Append(_T("<br>"));
			for (int i = 0; i < 9; ++i) {
				if ((i % 3) == 0)
					str.AppendFormat(_T("<tt>$%X: </tt>"), (i / 3) * 0x1000 + 0x9000);
				str.Append(_T("<tt style=\"color:green\">"));
				str.AppendFormat(_T("$%02X "), m_pInternalRegs->R_VRC6[i]);
				str.Append(_T("</tt>"));

				str.Append((i % 3) == 2 ? _T("<br>") : _T(""));
			}
		}

		SetElementHtml(_T("resultInternal"), str.AllocSysString());

		str = _T("<b>Exported:</b><br>");
		for (int i = 0; i < 0x14; ++i) {
			if ((i & 3) == 0)
				str.AppendFormat(_T("<tt>$%X: </tt>"), i + 0x4000);

			str.AppendFormat(_T("<tt style=\"color:%s\">"), (m_pExternalRegs->R_2A03[i] == m_pInternalRegs->R_2A03[i]) ? _T("green") : _T("red"));
			str.AppendFormat("$%02X ", m_pExternalRegs->R_2A03[i]);
			str.Append(_T("</tt>"));

			str.AppendFormat((i & 3) == 3 ? _T("<br>") : _T(""));
		}
		if (m_iChip & SNDCHIP_VRC6) {
			str.Append(_T("<br>"));
			for (int i = 0; i < 9; ++i) {
				if ((i % 3) == 0)
					str.AppendFormat(_T("<tt>$%X: </tt>"), (i / 3) * 0x1000 + 0x9000);

				str.AppendFormat(_T("<tt style=\"color:%s\">"), (m_pExternalRegs->R_VRC6[i] == m_pInternalRegs->R_VRC6[i]) ? _T("green") : _T("red"));
				str.AppendFormat(_T("$%02X "), m_pExternalRegs->R_VRC6[i]);
				str.Append(_T("</tt>"));

				str.Append((i % 3) == 2 ? _T("<br>") : _T(""));
			}
		}

		SetElementHtml(_T("resultExternal"), str.AllocSysString());

		str.Format(_T("APU frames since last row: %i<br><br>"), m_iUpdateFrames);
		str.AppendFormat(_T("File size: %i kB"), m_iFileSize / 1024);
		SetElementHtml(_T("other"), str.AllocSysString());
	}
예제 #2
0
void CMiniMule::UpdateContent(UINT uUpDatarate, UINT uDownDatarate)
{
    ASSERT( GetCurrentThreadId() == _uMainThreadId );
    if (m_bResolveImages)
    {
        static const LPCTSTR _apszConnectedImgs[] =
            {
                _T("CONNECTEDNOTNOT.GIF"),
                _T("CONNECTEDNOTLOW.GIF"),
                _T("CONNECTEDNOTHIGH.GIF"),
                _T("CONNECTEDLOWNOT.GIF"),
                _T("CONNECTEDLOWLOW.GIF"),
                _T("CONNECTEDLOWHIGH.GIF"),
                _T("CONNECTEDHIGHNOT.GIF"),
                _T("CONNECTEDHIGHLOW.GIF"),
                _T("CONNECTEDHIGHHIGH.GIF")
            };

        UINT uIconIdx = theApp.emuledlg->GetConnectionStateIconIndex();
        if (uIconIdx >= ARRSIZE(_apszConnectedImgs))
        {
            ASSERT(0);
            uIconIdx = 0;
        }

        TCHAR szModulePath[_MAX_PATH];
        if (GetModuleFileName(AfxGetResourceHandle(), szModulePath, ARRSIZE(szModulePath)))
        {
            CString strFilePathUrl(CreateFilePathUrl(szModulePath, INTERNET_SCHEME_RES));
            CComPtr<IHTMLImgElement> elm;
            GetElementInterface(_T("connectedImg"), &elm);
            if (elm)
            {
                CString strResourceURL;
                strResourceURL.Format(_T("%s/%s"), strFilePathUrl, _apszConnectedImgs[uIconIdx]);
                elm->put_src(CComBSTR(strResourceURL));
            }
        }
    }

    SetElementHtml(_T("connected"), CComBSTR(theApp.IsConnected() ? GetResString(IDS_YES) : GetResString(IDS_NO)));
    SetElementHtml(_T("upRate"), CComBSTR(theApp.emuledlg->GetUpDatarateString(uUpDatarate)));
    SetElementHtml(_T("downRate"), CComBSTR(theApp.emuledlg->GetDownDatarateString(uDownDatarate)));
    UINT uCompleted = 0;
    if (thePrefs.GetRemoveFinishedDownloads())
        uCompleted = thePrefs.GetDownSessionCompletedFiles();
    else if (theApp.emuledlg && theApp.emuledlg->transferwnd && theApp.emuledlg->transferwnd->downloadlistctrl.m_hWnd)
    {
        int iTotal;
        uCompleted = theApp.emuledlg->transferwnd->downloadlistctrl.GetCompleteDownloads(-1, iTotal);	 // [Ded]: -1 to get the count of all completed files in all categories
    }
    SetElementHtml(_T("completed"), CComBSTR(CastItoIShort(uCompleted, false, 0)));
    SetElementHtml(_T("freeSpace"), CComBSTR(CastItoXBytes(GetFreeTempSpace(-1), false, false)));
}
예제 #3
0
void CMiniMule::Localize()
{
    SetElementHtml(_T("connectedLabel"), CComBSTR(GetResString(IDS_CONNECTED)));
    SetElementHtml(_T("upRateLabel"), CComBSTR(GetResString(IDS_PW_CON_UPLBL)));
    SetElementHtml(_T("downRateLabel"), CComBSTR(GetResString(IDS_PW_CON_DOWNLBL)));
    SetElementHtml(_T("completedLabel"), CComBSTR(GetResString(IDS_DL_TRANSFCOMPL)));
    SetElementHtml(_T("freeSpaceLabel"), CComBSTR(GetResString(IDS_STATS_FREESPACE)));

    CComPtr<IHTMLElement> a;
    GetElementInterface(_T("openIncomingLink"), &a);
    if (a)
    {
        a->put_title(CComBSTR(RemoveAmbersand(GetResString(IDS_OPENINC))));
        a.Release();
    }
    GetElementInterface(_T("optionsLink"), &a);
    if (a)
    {
        a->put_title(CComBSTR(RemoveAmbersand(GetResString(IDS_EM_PREFS))));
        a.Release();
    }
    GetElementInterface(_T("restoreWndLink"), &a);
    if (a)
    {
        a->put_title(CComBSTR(RemoveAmbersand(GetResString(IDS_MAIN_POPUP_RESTORE))));
        a.Release();
    }

    CComPtr<IHTMLImgElement> img;
    GetElementInterface(_T("openIncomingImg"), &img);
    if (img)
    {
        img->put_alt(CComBSTR(RemoveAmbersand(GetResString(IDS_OPENINC))));
        img.Release();
    }
    GetElementInterface(_T("optionsImg"), &img);
    if (img)
    {
        img->put_alt(CComBSTR(RemoveAmbersand(GetResString(IDS_EM_PREFS))));
        img.Release();
    }
    GetElementInterface(_T("restoreWndImg"), &img);
    if (img)
    {
        img->put_alt(CComBSTR(RemoveAmbersand(GetResString(IDS_MAIN_POPUP_RESTORE))));
        img.Release();
    }
}
예제 #4
0
void CTryData4Dlg::OnTimer(UINT nIDEvent) 
{
	static bool bTwice = false;
	if(m_currPage == 0)	//is quiting
		return;
	if(bTwice)
		return;
	bTwice = true;
	SWISTATUS ss;
	CDHtmlDialog::OnTimer(nIDEvent);
	if (nIDEvent == 1)
	{
		CString status;
		m_CheckTicks++;
		if(m_CheckTicks == 1){
			status.Format("正在进行License检查");
			SetElementText(_T("checking"),status.AllocSysString());
			}
		if(m_CheckTicks == 2){	
			if(!CheckLicense())
			{
				MessageBox("本软件无法在本机上使用,请联系供应商");
				m_currPage = 0;
				::AfxGetMainWnd()->PostMessage(WM_CLOSE,1,0);
			}
			status.Format("正在连接控制板");
			SetElementText(_T("checking"),status.AllocSysString());
			}
		if(m_CheckTicks == 3){
			if(!m_Switch.Open(SPORT_SWITCH))
			{
				MessageBox("连接控制板失败","电阻校验",MB_OK);
				m_currPage = 0;
				::AfxGetMainWnd()->PostMessage(WM_CLOSE,1,0);
			}
		
			status.Format("正在连接纳伏计");
			SetElementText(_T("checking"),status.AllocSysString());
			}
		if(m_CheckTicks == 4){
			if(!m_Navmeter.Open(SPORT_NAVMETER))
			{
				MessageBox("连接纳伏计失败","电阻校验",MB_OK);
				m_currPage = 0;
				::AfxGetMainWnd()->PostMessage(WM_CLOSE,1,0);
			}

			status.Format("正在连接数据库");
			SetElementText(_T("checking"),status.AllocSysString());
		}
		if(m_CheckTicks == 5){
			if(!SqlInit(g_Path+_T("\\Data\\test.mdb")))
			{
				MessageBox("连接数据库失败","电阻校验",MB_OK);
				m_currPage = 0;
				::AfxGetMainWnd()->PostMessage(WM_CLOSE,1,0);
			}
			status.Format("正在装载程序");
			SetElementText(_T("checking"),status.AllocSysString());
		}
		if(m_CheckTicks == 6){
			if(!m_Program.InstallScheme(PathQuery2(CLSGROUP,IDTYPE)))
			{
				MessageBox("程序装载失败","电阻校验",MB_OK);
				m_currPage = 0;
				::AfxGetMainWnd()->PostMessage(WM_CLOSE,1,0);
			}
		}
		if(m_CheckTicks == 7){
			m_currPage = INDEX;		Handler("init",m_sRegSel,m_sRegLst,true);
//			m_currPage = CONFIG;	Handler("init",m_sConfSel,m_sConfLst,true);
//			m_currPage = DATA;		Handler("init",m_sDataSel,m_sDataLst,true);
//			m_currPage = JIAOHE;	Handler("init",m_sJhSel,m_sJhLst,true);
			KillTimer(1);
			m_currPage = INDEX;
			m_cmdStep = CMD_LOADHTML;
			//create the chart dialog
			m_pChartDlg = new CChartDlg(this);
			m_pChartDlg->Create(IDD_DIALOG2,this);
			m_pChartDlg->ShowWindow(SW_HIDE);
			//create the wait dialog
			m_pWaitDlg = new CWaitDialog(this);
			m_pWaitDlg->Create(IDD_DIALOG3,this);
			m_pWaitDlg->ShowWindow(SW_HIDE);

			SetTimer(2,30,NULL);
		}
	}	
	
	if(nIDEvent == 2)
	{
		if(m_cmdStep == CMD_INITHTML){
			IHTMLElement* newElement;
			if((m_currPage == INDEX) && (S_OK == GetElement("idvals",&newElement)))
			{
				m_sRegvals = this->GetAttribute(newElement,m_elemTypes[1]);
				Handler("init",m_sRegSel,m_sRegLst);
			}
			if((m_currPage == CONFIG) && (S_OK == GetElement("idvals",&newElement)))
			{
				m_sConfigvals = this->GetAttribute(newElement,m_elemTypes[1]);
				Handler("init",m_sConfSel,m_sConfLst);
			}
			if((m_currPage == JIAOHE) && (S_OK == GetElement("idvals",&newElement)))
			{

				m_sJhvals = this->GetAttribute(newElement,m_elemTypes[1]);
				Handler("init",m_sJhSel,m_sJhLst);
			}
			if((m_currPage == DATA) && (S_OK == GetElement("idvals",&newElement)))
			{
				if(g_TesterConf.m_Ps.iTimes == 0) //come to the data page directly from reg page 
				{
					m_currPage = CONFIG;
					m_sConfigvals = CString(",cklt9,rstdlt9,alphalt9,betalt9,cklt8,rstdlt8,alphalt8,betalt8,cklt1,rstdlt1,alphalt1,betalt1,cklt2,rstdlt2,alphalt2,betalt2,cklt3,rstdlt3,alphalt3,betalt3,cklt4,rstdlt4,alphalt4,betalt4,cklt5,rstdlt5,alphalt5,betalt5,cklt6,rstdlt6,alphalt6,betalt6,cklt7,rstdlt7,alphalt7,betalt7,confdxcl,zdpselect,lcselect,confcysj,confcycs,confwd,");
					Handler("init",m_sConfSel,m_sConfLst,true);


					m_currPage = JIAOHE;
					m_sJhvals = CString(",jhsel19,jhsel18,jhsel17,jhsel16,jhsel15,jhsel14,jhsel13,jhsel12,jhsel11,jhsel10,jhsel9,jhsel8,jhsel7,jhsel6,jhsel5,jhsel4,jhsel3,jhsel2,jhsel1,jhsel0,");
					Handler("init",m_sJhSel,m_sJhLst,true);
					m_sJhvals.Empty();

					m_currPage = DATA;
				}

				m_sDatavals = this->GetAttribute(newElement,m_elemTypes[1]);
				Handler("init",m_sDataSel,m_sDataLst);
				if(m_sDataLst.IsEmpty() || (m_sDataLst == " ,"))
				{
						InternalRoutines('9');//update value to page
				}
				Handler("update",m_sDataSel,m_sDataLst);
				
			}
			if(m_currPage == REPORT)
			{
				Handler("init",m_sReportSel,m_sReportLst);
			}
			m_cmdStep = CMD_IDLEHTML;
		}
		if((m_cmdStep == CMD_CONTHTML)||(m_cmdStep == CMD_CONTHTML2)){
			int group = -1;
			switch(m_currPage)
			{
			case JIAOHE:	group=IDJH;break;
			case DATA:		group=IDTEST;break;
			default: break;
			}
			if(group >= 0)
			{
				CStdioFile csf;
				if(csf.Open(g_Path+CString(PathQuery2(CLSJS,group)),CFile::modeRead))
				{
					CString content(""),line;
					while(csf.ReadString(line))
					{
						content += line;
					}
					csf.Close();
					SetElementHtml("cont",content.AllocSysString());
				}
			}
			if(m_cmdStep == CMD_CONTHTML2)
				m_cmdStep = CMD_INITHTML;
			else
				m_cmdStep = CMD_CONTHTML2;
		}
		if(m_cmdStep == CMD_LOADHTML && m_currPage > 0){
			LoadFromResource(m_currPage);
			m_cmdStep = CMD_CONTHTML;
		}
				CString str;
				CTime t = CTime::GetCurrentTime();
				str = t.Format("%H:%M:%S");
				SetElementText("curtime",str.AllocSysString());
		
		if(m_State == SUSPEND)			m_State = IDLE;
		if(m_State == BEERROR)			m_State = SUSPEND;

		if((m_State == IDLE)||(m_State == BEERROR))
		{
			if(m_CheckTicks++ > CHECKWAIT)
			{
				m_CheckTicks = 0;
#if 1
				SWISTATUS ss = m_Switch.GetSwitchStatus();
				while(ss.bOl1)
				{
					MessageBox("发生过载","电阻校验",MB_OK);
					ss = m_Switch.GetSwitchStatus();
				}

				CString str;
				str.Format("外标准[%s],被测[%s]",ss.bKN[0]?"接通":"未接",ss.bRn?"接通":"未接");
				SetElementText("swistatus",str.AllocSysString());
#endif;
			}
		}
		if(m_State == RUNNING)
		{
			char type;
			CString line;
//			m_State = SUSPEND;
				while((m_Program.m_iStackDepth > 0) )
				{
					if(m_Program.NextLine(type,line))//loop until some pausable command
					{
						if((type == 'z') || (type == 'd') || (type == 'w'))
						{
							HandleCommand(type,line);
							continue;
						}
						break;
					}
					
					 
				}
			    if(m_Program.m_iStackDepth <= 0)
				{
					Abort();
				}else{
					if(!HandleCommand(type,line))
					{
						m_State = BEERRO;
						Abort();
					}
				}
		}
	}
	bTwice = false;
	return;

}