📄 mcutools.cpp
字号:
}
} else {
if(fCustom){
mLEDCode->Text = "const unsigned char LED14Char[]={\t\t// Character Encode"; // Character
for (i=1;i<vleLEDCodec->RowCount;i++){
s = vleLEDCodec->Keys[i];
mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0],2)+ (",\t\t// ")+ s + " LSB");
mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1],2)+ (i==vleLEDCodec->RowCount-1?"\t\t// ":",\t\t// ")+ s + " MSB");
}
mLEDCode->Lines->Add("};");
}else{
mLEDCode->Text = "const unsigned char LED14Char[]={\t\t// Character Encode"; // Character
for (i=0;i<26;i++){
s.printf("%c",'A'+i);
mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0],2)+ (",\t\t// ")+ s + " LSB");
mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1],2)+ (i==25?"\t\t// ":",\t\t// ")+ s + " MSB");
}
mLEDCode->Lines->Add("};");
mLEDCode->Lines->Add(" ");
mLEDCode->Lines->Add("const unsigned char LED14Num[]={\t\t// Number Encode"); // Number
for (i=26;i<42;i++){
s.printf("%c",'A'+i);
mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0],2)+ (",\t\t// ")+ s.IntToHex(i-26,1) + " LSB");
mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1],2)+ (i==41?"\t\t// ":",\t\t// ")+ s.IntToHex(i-26,1) + " MSB");
}
mLEDCode->Lines->Add("};");
}
}
}
}
if(rbLED7->Checked){
try{
patA = (1<<edLED7A->Text.ToInt());
patB = (1<<edLED7B->Text.ToInt());
patC = (1<<edLED7C->Text.ToInt());
patD = (1<<edLED7D->Text.ToInt());
patE = (1<<edLED7E->Text.ToInt());
patF = (1<<edLED7F->Text.ToInt());
patG = (1<<edLED7G->Text.ToInt());
}
catch(EConvertError &E)
{
Application->MessageBox("Please input bit information correctly!","Error",MB_OK | MB_ICONERROR);
return;
}
if(vleLEDCodec->RowCount > 2 || !vleLEDCodec->Cells[1][1].IsEmpty()){
for(i=1;i<vleLEDCodec->RowCount ;i++){
if(vleLEDCodec->Cells[1][i].IsEmpty()){
led[i].wd = 0;
continue;
}
try{
pat = vleLEDCodec->Cells[1][i].ToInt();
}catch(...){
pat = 0;
}
led[i].wd = (patA & ((pat & (1<<0))?0xffff:0x0000))
|(patB & ((pat & (1<<1))?0xffff:0x0000))
|(patC & ((pat & (1<<2))?0xffff:0x0000))
|(patD & ((pat & (1<<3))?0xffff:0x0000))
|(patE & ((pat & (1<<4))?0xffff:0x0000))
|(patF & ((pat & (1<<5))?0xffff:0x0000))
|(patG & ((pat & (1<<6))?0xffff:0x0000));
fCustom = true;
}
}else{
led[0].wd = patA|patB|patC|patD|patE|patF;
led[1].wd = patB|patC;
led[2].wd = patA|patB|patD|patE|patG;
led[3].wd = patA|patB|patC|patD|patG;
led[4].wd = patB|patC|patF|patG;
led[5].wd = patA|patC|patD|patF|patG;
led[6].wd = patA|patC|patD|patE|patF|patG;
led[7].wd = patA|patB|patC;
led[8].wd = patA|patB|patC|patD|patE|patF|patG;
led[9].wd = patA|patB|patC|patD|patF|patG;
led[10].wd = patA|patB|patC|patE|patF|patG;
led[11].wd = patC|patD|patE|patF|patG;
led[12].wd = patA|patD|patE|patF;
led[13].wd = patB|patC|patD|patE|patG;
led[14].wd = patA|patD|patE|patF|patG;
led[15].wd = patA|patE|patF|patG;
}
if(cbLEDReverse->Checked){
if(fCustom){
for (i=1;i<vleLEDCodec->RowCount;i++){
led[i].wd ^= 0xff;
}
}else{
for (i=0;i<16;i++){
led[i].wd ^= 0xff;
}
}
}
if(rb4Bits->Checked){
if(rbASM->Checked ){
if(rbPre->Checked){
prefix = edHex->Text.Trim();
}else{
postfix = edHex->Text.Trim();
}
if(fCustom){
mLEDCode->Text = "LED7Code:";
for (i=1;i<vleLEDCodec->RowCount;i++){
s = vleLEDCodec->Keys[i];
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0] & 0x0f ,2)+ postfix + "\t\t; "+ s.IntToHex(i,1) + " LSB");
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[0]>>4) & 0x0f ,2)+ postfix + "\t\t; "+ s.IntToHex(i,1) + " MSB" );
// mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1] & 0x0f,2)+ postfix + "\t\t; "+ s + " ...");
// mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[1]>>4) & 0x0f,2)+ postfix + "\t\t; "+ s + " MSB");
}
}else{
mLEDCode->Text = "LED7Code:";
for (i=0;i<16;i++){
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0] & 0x0f ,2)+ postfix + "\t\t; "+ s.IntToHex(i,1) + " LSB");
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[0]>>4) & 0x0f ,2)+ postfix + "\t\t; "+ s.IntToHex(i,1) + " MSB" );
// mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1] & 0x0f,2)+ postfix + "\t\t; "+ s + " ...");
// mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[1]>>4) & 0x0f,2)+ postfix + "\t\t; "+ s + " MSB");
}
}
} else {
if(fCustom){
mLEDCode->Text = "const unsigned char LED7Code[]={\n";
for (i=1;i<vleLEDCodec->RowCount;i++){
s = vleLEDCodec->Keys[i];
mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0] & 0x0f ,2)+(",\t\t// ")+ s.IntToHex(i,1) + " LSB");
mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[0]>>4) & 0x0f ,2)+(i==15?"\t\t// ":",\t\t// ")+ s.IntToHex(i,1) + " MSB");
// mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1] & 0x0f,2)+ (",\t\t// ")+ s.IntToHex(i-26,1) + " ...");
// mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[1]>>4) & 0x0f,2)+ (i==41?"\t\t// ":",\t\t// ")+ s.IntToHex(i-26,1) + " MSB");
}
mLEDCode->Lines->Add("};");
}else{
mLEDCode->Text = "const unsigned char LED7Code[]={\n";
for (i=0;i<16;i++){
mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0] & 0x0f ,2)+(",\t\t// ")+ s.IntToHex(i,1) + " LSB");
mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[0]>>4) & 0x0f ,2)+(i==vleLEDCodec->RowCount-1?"\t\t// ":",\t\t// ")+ s.IntToHex(i,1) + " MSB");
// mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1] & 0x0f,2)+ (",\t\t// ")+ s.IntToHex(i-26,1) + " ...");
// mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[1]>>4) & 0x0f,2)+ (i==41?"\t\t// ":",\t\t// ")+ s.IntToHex(i-26,1) + " MSB");
}
}
mLEDCode->Lines->Add("};");
}
} else {
if(rbASM->Checked ){
if(rbPre->Checked){
prefix = edHex->Text.Trim();
}else{
postfix = edHex->Text.Trim();
}
if(fCustom){
mLEDCode->Text = "LED7Code:";
for (i=1;i<vleLEDCodec->RowCount;i++){
s = vleLEDCodec->Keys[i];
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].wd ,3)+ postfix + "\t\t; "+ s);
}
}else{
mLEDCode->Text = "LED7Code:";
for (i=0;i<16;i++){
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].wd ,3)+ postfix + "\t\t; "+ s.IntToHex(i,1));
}
}
} else {
if(fCustom){
mLEDCode->Text = "const unsigned char LED7Code[]={\n";
for (i=1;i<vleLEDCodec->RowCount;i++){
s = vleLEDCodec->Keys[i];
mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].wd ,2)+(i==vleLEDCodec->RowCount-1 ?"\t\t// ":",\t\t// ")+ s);
}
mLEDCode->Lines->Add("};");
}else{
mLEDCode->Text = "const unsigned char LED7Code[]={\n";
for (i=0;i<16;i++){
mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].wd ,2)+(i==15?"\t\t// ":",\t\t// ")+ s.IntToHex(i,1));
}
mLEDCode->Lines->Add("};");
}
}
}
}
mLEDCode->Lines->Add(" ");
// }else{
// MessageBox(NULL,"No LEDs Selected! Please select one or more LED type and fit the pattern before encoder.","Error!",MB_OK);
// }
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::edLED16A1Enter(TObject *Sender)
{
edLED16A1->SelectAll();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::edLED16A1Click(TObject *Sender)
{
edLED16A1->SelectAll();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::edLED16A2Click(TObject *Sender)
{
edLED16A2->SelectAll();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::edLED14AClick(TObject *Sender)
{
edLED14A->SelectAll();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::edLED14BClick(TObject *Sender)
{
edLED14B->SelectAll();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::edLED14CClick(TObject *Sender)
{
edLED14C->SelectAll();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::edLED14DClick(TObject *Sender)
{
edLED14D->SelectAll();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::edLED14EClick(TObject *Sender)
{
edLED14E->SelectAll();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::edLED14FClick(TObject *Sender)
{
edLED14F->SelectAll();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::edLED14G1Click(TObject *Sender)
{
edLED14G1->SelectAll();
}
//------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -