📄 mcutools.cpp
字号:
{
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 + -