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

📄 mcutools.cpp

📁 MCUTool.exe 源代码 !!!超级单片机开发工具!!! 单片机开发过程中用到的多功能工具
💻 CPP
📖 第 1 页 / 共 5 页
字号:
                    {
                        Application->MessageBox("Please input temperature correctly!","Error",MB_OK | MB_ICONERROR);
                        sgRTVal->Col = 0;
                        return;
                    }
                }
        }
}
//---------------------------------------------------------------------------



void __fastcall TfrmMain::cbTIncClick(TObject *Sender)
{
        edTStep->Enabled = cbTInc->Checked;
}
//---------------------------------------------------------------------------


void __fastcall TfrmMain::btnRTCalcClick(TObject *Sender)
{
	int i,value,scale;
	double r;
        String s;

        if(!edR->Text.Trim().IsEmpty()){
                try{
                        r = edR->Text.Trim().ToDouble();
                }
                catch(EConvertError &E)
                {
                        Application->MessageBox("Please input R value correctly!","Error",MB_OK | MB_ICONERROR);
                        edR->SetFocus();
                        return;
                }
        }else{
                Application->MessageBox("Please input R value!","Error",MB_OK | MB_ICONWARNING);
                edR->SetFocus();
                return;
        }


        if(rbRTCStyle->Checked){
                if(rbRT8Bits->Checked){
                        scale = 0xff;
                        mRT->Text = "unsigned char rtTable[] = {";
                }else{
                        scale = 0x3ff;
                        mRT->Text = "unsigned int rtTable[] = {";
                }
        }else{
                if(rbRT8Bits->Checked){
                        scale = 0xff;
                }else{
                        scale = 0x3ff;
                }
                mRT->Text = "rtTable:";
        }

    try{
	for(i=1;i < sgRTVal->RowCount;i++){
		     // 255
                if(!(sgRTVal->Cells[0][i].Trim().IsEmpty()) && !(sgRTVal->Cells[1][i].Trim().IsEmpty())){
                        if(rbCir1->Checked){
	                	value = (scale * r)/(r + sgRTVal->Cells[1][i].Trim().ToDouble());
                        }else{
        		        value = (scale * sgRTVal->Cells[1][i].Trim().ToDouble())/(r + sgRTVal->Cells[1][i].Trim().ToDouble());
                        }
                        if(rbRTCStyle->Checked){
                                if(i == sgRTVal->RowCount-1 || sgRTVal->Cells[0][i+1].Trim().IsEmpty() || sgRTVal->Cells[1][i+1].Trim().IsEmpty()){
                	        	s.sprintf("\t0x0%x\t// %3.2f\t\t%3.4f",value,sgRTVal->Cells[0][i].Trim().ToDouble(),sgRTVal->Cells[1][i].Trim().ToDouble());
                                } else {
                	        	s.sprintf("\t0x0%x,\t// %3.2f\t\t%3.4f",value,sgRTVal->Cells[0][i].Trim().ToDouble(),sgRTVal->Cells[1][i].Trim().ToDouble());
                                }
                        } else {
                                if(rbRTPrefix->Checked){
                                        if(edDB->Text.IsEmpty()){

        	                	        s.sprintf("\tDB\t") + edRTFix->Text;
                                                s.cat_sprintf("0%x\t; %3.2f\t\t%3.4f",value,sgRTVal->Cells[0][i].Trim().ToDouble(),sgRTVal->Cells[1][i].Trim().ToDouble());
                                        }else{
        	        	                s.sprintf("0%x\t; %3.2f\t\t%3.4f",value,sgRTVal->Cells[0][i].Trim().ToDouble(),sgRTVal->Cells[1][i].Trim().ToDouble());
                                                s = "\t" + edDB->Text + "\t" + edRTFix->Text + s;
                                        }
                                }else{
                                        if(edDB->Text.IsEmpty()){

        	        	                s.sprintf("\tDB\t0%x",value) + edRTFix->Text;
                                                s.cat_sprintf("\t; %3.2f\t\t%3.4f",sgRTVal->Cells[0][i].Trim().ToDouble(),sgRTVal->Cells[1][i].Trim().ToDouble());
                                        }else{
                                                s = "\t" + edDB->Text + "\t";
                                                s.cat_sprintf("0%x",value);
                                                s = s + edRTFix->Text;
                	        	        s.cat_sprintf("\t; %3.2f\t\t%3.4f",sgRTVal->Cells[0][i].Trim().ToDouble(),sgRTVal->Cells[1][i].Trim().ToDouble());
                                        }
                                }
                        }
                        mRT->Lines->Add(s);
                }
	}
    }
    catch(EConvertError &E)
    {
        Application->MessageBox("Please input resister value correctly!","Error",MB_OK | MB_ICONERROR);
        sgRTVal->Col = 1;
        sgRTVal->SetFocus();
        return;
    }

        if(rbRTCStyle->Checked){
                mRT->Lines->Add("};\r\n");
        }else{
                mRT->Lines->Add("\r\n");
        }

}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::Button1Click(TObject *Sender)
{
    mRT->SelectAll();
    mRT->CopyToClipboard();
    mRT->SelLength = 0;
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::btnRTHelpClick(TObject *Sender)
{
    mRT->Text = "Welcome to use RT Calculator! Usage:";
    mRT->Lines->Add(" ");
    mRT->Lines->Add("1. First, select the circuit type, R value, AD sample precision;");
    mRT->Lines->Add("2. Input data or read from file;");
    mRT->Lines->Add("3. You can save the data inputed to a file;");
    mRT->Lines->Add("4. Select target program language (C/ASM), for ASM, input the");
    mRT->Lines->Add("    data define instruct, default is DB, and sign for HEX, such");
    mRT->Lines->Add("    as 0xFF, $FF, FFH, etc.");
    mRT->Lines->Add("5. Click \"Calc\";");
    mRT->Lines->Add("6. Click \"Copy\" will copy the result to the clipboard, OK!");
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
        String          s;
        TStringList *ParallelPorts=new TStringList;
 	DWORD	        NTVersion;

	NTVersion = GetVersion();
	if( NTVersion >= 0x80000000 ) {

		IsNT = FALSE;
	} else {

		IsNT = TRUE;
	}


        Application->OnException = ExceptionHandle;

        int w;

        w=10;
        TrPoint[0].x=0;
        TrPoint[0].y=0;
        TrPoint[1].x=0;
        TrPoint[1].y=w;
        TrPoint[2].x=stH->Width-w;
        TrPoint[2].y=stH->Height;
        TrPoint[3].x=stH->Width;
        TrPoint[3].y=stH->Height;
        TrPoint[4].x=stH->Width;
        TrPoint[4].y=stH->Height-w;
        TrPoint[5].x=w;
        TrPoint[5].y=0;
        HRGN hRgnH = CreatePolygonRgn(TrPoint,6,ALTERNATE);
        SetWindowRgn(stH->Handle,hRgnH,TRUE);
        HRGN hRgnL = CreatePolygonRgn(TrPoint,6,ALTERNATE);
        SetWindowRgn(stL->Handle,hRgnL,TRUE);

        TrPoint[0].x=0;
        TrPoint[0].y=stH->Height-w;
        TrPoint[1].x=0;
        TrPoint[1].y=stH->Height;
        TrPoint[2].x=w;;
        TrPoint[2].y=stH->Height;
        TrPoint[3].x=stH->Width;
        TrPoint[3].y=w;
        TrPoint[4].x=stH->Width;
        TrPoint[4].y=0;
        TrPoint[5].x=stH->Width-w;
        TrPoint[5].y=0;

        HRGN hRgnK = CreatePolygonRgn(TrPoint,6,ALTERNATE);
        SetWindowRgn(stK->Handle,hRgnK,TRUE);
        HRGN hRgnN = CreatePolygonRgn(TrPoint,6,ALTERNATE);
        SetWindowRgn(stN->Handle,hRgnN,TRUE);



        StatusBar1->Panels->Items[4]->Text = DateTimeToStr(Now());

        sgRTVal->Cells[0][0] = "Temp";
        sgRTVal->Cells[1][0] = "Rt(Kom)";

        btnHelpClick(Sender);
        btnRTHelpClick(Sender);

        cl1Value = 0;
        cl2Value = 1;
        cl3Value = 0;
        cl4Value = 1;
        cl5Value = "±5%";

        TRegistry *my=new TRegistry;            // enum the serial com ports
        my->RootKey=HKEY_LOCAL_MACHINE;
        my->OpenKey("HARDWARE\\DEVICEMAP\\SERIALCOMM",true);
        COMList->Sorted=false;
        my->GetValueNames(COMList->Items);
        COMList->Items->BeginUpdate();
        for(int i=0;i<COMList->Items->Count;i++){
                s = COMList->Items->Strings[i];
                int index;
                index = s.LastDelimiter("\\");
                s = s.SubString(index+1,s.Length() - index);
                strcpy(SerialPortSet.DeviceName[i],s.c_str());
                COMList->Items->Strings[i]=my->ReadString(COMList->Items->Strings[i]);
                strcpy(SerialPortSet.PortName[i],COMList->Items->Strings[i].c_str() );
                clbSerialList->Items->Add((AnsiString)SerialPortSet.PortName[i] + ": " + (AnsiString)SerialPortSet.DeviceName[i]);
        }
        COMList->Items->EndUpdate();
        COMList->Sorted=true;
        COMList->ItemIndex = 0;

        // Get the ports exist in the system
        TRegistry *myp=new TRegistry;            // enum the parallel ports
        myp->RootKey=HKEY_LOCAL_MACHINE;
        myp->OpenKey("HARDWARE\\DEVICEMAP\\PARALLEL PORTS",true);
        ParallelPorts->Sorted = false;
        myp->GetValueNames(ParallelPorts);
        for(int i=0;i<ParallelPorts->Count;i++ ){
                s = ParallelPorts->Strings[i];
                int index;
                index = s.LastDelimiter("\\");
                s = s.SubString(index+1,s.Length() - index);
                strcpy(ParallelPortSet.DeviceName[i],s.c_str());
                ParallelPorts->Strings[i]=myp->ReadString(ParallelPorts->Strings[i]);
                s = ParallelPorts->Strings[i];
                index = s.LastDelimiter("\\");
                s = s.SubString(index+1,s.Length() - index);
                strcpy(ParallelPortSet.PortName[i],s.c_str() );
                clbParallelList->Items->Add((AnsiString)ParallelPortSet.PortName[i] + ": " + (AnsiString)ParallelPortSet.DeviceName[i]);
        }

        TIniFile *ini;

        ini = new TIniFile( ChangeFileExt( Application->ExeName, ".INI" ) );
        ini->ReadSectionValues("LED7 Patterns",vlLEDPatterns->Strings);
        ini->ReadSectionValues("LED7 Graph Patterns",vleLEDCodec->Strings);

⌨️ 快捷键说明

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