📄 mcutools.cpp
字号:
}
if(fCustom){
mLEDCode->Text = "LED16Codec:\t\t; Character Encode"; // Character
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],3)+ postfix + "\t\t; "+ s + " LSB");
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1],3)+ postfix + "\t\t; "+ s + " MSB");
}
mLEDCode->Lines->Add(" ");
}else{
mLEDCode->Text = "LED16Char:\t\t; Character Encode"; // Character
for (i=0;i<26;i++){
s.printf("%c",'A'+i);
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0],3)+ postfix + "\t\t; "+ s + " LSB");
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1],3)+ postfix + "\t\t; "+ s + " MSB");
}
mLEDCode->Lines->Add(" ");
mLEDCode->Lines->Add("LED16Num:\t\t; Number Encode"); // Number
for (i=26;i<42;i++){
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0],3)+ postfix + "\t\t; "+ s.IntToHex(i-26,1) + " LSB");
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1],3)+ postfix + "\t\t; "+ s.IntToHex(i-26,1) + " MSB");
}
}
} else {
if(fCustom){
mLEDCode->Text = "const unsigned char LED16Char[]={\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 LED16Char[]={\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 LED16Num[]={\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(rbLED14->Checked){
try{
patA = (1<<edLED14A->Text.ToInt());
patB = (1<<edLED14B->Text.ToInt());
patC = (1<<edLED14C->Text.ToInt());
patD = (1<<edLED14D->Text.ToInt());
patE = (1<<edLED14E->Text.ToInt());
patF = (1<<edLED14F->Text.ToInt());
patG1 = (1<<edLED14G1->Text.ToInt());
patG2 = (1<<edLED14G2->Text.ToInt());
patH = (1<<edLED14H->Text.ToInt());
patJ = (1<<edLED14J->Text.ToInt());
patK = (1<<edLED14K->Text.ToInt());
patL = (1<<edLED14L->Text.ToInt());
patM = (1<<edLED14M->Text.ToInt());
patN = (1<<edLED14N->Text.ToInt());
}
catch(EConvertError &E)
{
Application->MessageBox("Please input bit information correctly!","Error",MB_OK | MB_ICONERROR);
return;
}
if(vleLEDCodec->RowCount > 0 || !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))
|(patG1 & ((pat & (1<<6))?0xffff:0x0000))
|(patG2 & ((pat & (1<<7))?0xffff:0x0000))
|(patH & ((pat & (1<<8))?0xffff:0x0000))
|(patJ & ((pat & (1<<9))?0xffff:0x0000))
|(patK & ((pat & (1<<10))?0xffff:0x0000))
|(patL & ((pat & (1<<11))?0xffff:0x0000))
|(patM & ((pat & (1<<12))?0xffff:0x0000))
|(patN & ((pat & (1<<13))?0xffff:0x0000));
fCustom = true;
}
}else{
led[0].wd = patA|patB|patC|patE|patF|patG1|patG2; //A
led[1].wd = patF|patE|patG1|patG2|patC|patD; //B
led[2].wd = patA|patD|patE|patF; //C
led[3].wd = patA|patB|patC|patD|patM|patJ; //D
led[4].wd = patA|patD|patE|patF|patG1|patG2; //E
led[5].wd = patA|patE|patF|patG1|patG2; //F
led[6].wd = patA|patC|patD|patE|patF|patG2; //G
led[7].wd = patB|patC|patE|patF|patG1|patG2; //H
led[8].wd = patA|patD|patM|patJ; //I
led[9].wd = patB|patC|patD; //J
led[10].wd = patG1|patE|patF|patK|patL; //K
led[11].wd = patD|patE|patF; //L
led[12].wd = patB|patC|patE|patF|patH|patK; //M
led[13].wd = patB|patC|patE|patF|patH|patL; //N
led[14].wd = patA|patB|patC|patD|patE|patF; //O
led[15].wd = patA|patB|patE|patF|patG1|patG2; //P
led[16].wd = patA|patB|patC|patD|patE|patF|patL; //Q
led[17].wd = patA|patB|patE|patF|patG1|patG2|patL; //R
led[18].wd = patA|patC|patD|patF|patG1|patG2; //S
led[19].wd = patA|patM|patJ; //T
led[20].wd = patB|patC|patD|patE|patF; //U
led[21].wd = patE|patF|patN|patK; //V
led[22].wd = patB|patC|patE|patF|patL|patN; //W
led[23].wd = patH|patK|patL|patN; //X
led[24].wd = patB|patC|patD|patF|patG1|patG2; //Y
led[25].wd = patA|patK|patN|patD; //Z
led[26].wd = patA|patB|patC|patD|patE|patF; //0
led[27].wd = patB|patC; //1
led[28].wd = patA|patB|patD|patE|patG1|patG2; //2
led[29].wd = patA|patB|patC|patD|patG1|patG2; //3
led[30].wd = patB|patC|patF|patG1|patG2; //4
led[31].wd = patA|patC|patD|patF|patG1|patG2; //5
led[32].wd = patA|patC|patD|patE|patF|patG1|patG2; //6
led[33].wd = patA|patB|patC; //7
led[34].wd = patA|patB|patC|patD|patE|patF|patG1|patG2; //8
led[35].wd = patA|patB|patC|patD|patF|patG1|patG2; //9
led[36].wd = patA|patB|patC|patE|patF|patG1|patG2; //A
led[37].wd = patF|patE|patG1|patG2|patC|patD; //B
led[38].wd = patA|patD|patE|patF; //C
led[39].wd = patA|patB|patC|patD|patM|patJ; //D
led[40].wd = patA|patD|patE|patF|patG1|patG2; //E
led[41].wd = patA|patE|patF|patG1|patG2; //F
}
if(cbLEDReverse->Checked){
if(fCustom){
for (i=1;i<vleLEDCodec->RowCount;i++){
led[i].wd ^= 0xffff;
}
}else{
for (i=0;i<42;i++){
led[i].wd ^= 0xffff;
}
}
}
if(rb4Bits->Checked){
if(rbASM->Checked ){
if(rbPre->Checked){
prefix = edHex->Text.Trim();
}else{
postfix = edHex->Text.Trim();
}
if(fCustom){
mLEDCode->Text = "LED14Codec:\t\t; Character Encode"; // Character
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 + " LSB");
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[0]>>4) & 0x0f,2)+ postfix + "\t\t; "+ s + " ...");
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 = "LED14Char:\t\t; Character Encode"; // Character
for (i=0;i<26;i++){
s.printf("%c",'A'+i);
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0] & 0x0f,2)+ postfix + "\t\t; "+ s + " LSB");
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[0]>>4) & 0x0f,2)+ postfix + "\t\t; "+ s + " ...");
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");
}
mLEDCode->Lines->Add(" ");
mLEDCode->Lines->Add("LED14Num:\t\t; Number Encode"); // Number
for (i=26;i<42;i++){
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0] & 0x0f,2)+ postfix + "\t\t; "+ s.IntToHex(i-26,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-26,1) + " ...");
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1] & 0x0f,2)+ postfix + "\t\t; "+ s.IntToHex(i-26,1) + " ...");
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[1]>>4) & 0x0f,2)+ postfix + "\t\t; "+ s.IntToHex(i-26,1) + " MSB");
}
}
} 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] & 0x0f,2)+ (",\t\t// ")+ s + " LSB");
mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[0]>>4) & 0x0f,2)+ (",\t\t// ")+ s + " ...");
mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1] & 0x0f,2)+ (",\t\t// ")+ s + " ...");
mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[1]>>4) & 0x0f,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] & 0x0f,2)+ (",\t\t// ")+ s + " LSB");
mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[0]>>4) & 0x0f,2)+ (",\t\t// ")+ s + " ...");
mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1] & 0x0f,2)+ (",\t\t// ")+ s + " ...");
mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[1]>>4) & 0x0f,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++){
mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0] & 0x0f,2)+ (",\t\t// ")+ s.IntToHex(i-26,1) + " LSB");
mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[0]>>4) & 0x0f,2)+ (",\t\t// ")+ s.IntToHex(i-26,1) + " ...");
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 = "LED14Char:\t\t; Character Encode"; // Character
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],3)+ postfix + "\t\t; "+ s + " LSB");
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1],3)+ postfix + "\t\t; "+ s + " MSB");
}
}else{
mLEDCode->Text = "LED14Char:\t\t; Character Encode"; // Character
for (i=0;i<26;i++){
s.printf("%c",'A'+i);
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0],3)+ postfix + "\t\t; "+ s + " LSB");
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1],3)+ postfix + "\t\t; "+ s + " MSB");
}
mLEDCode->Lines->Add(" ");
mLEDCode->Lines->Add("LED14Num:\t\t; Number Encode"); // Number
for (i=26;i<42;i++){
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0],3)+ postfix + "\t\t; "+ s.IntToHex(i-26,1) + " LSB");
mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1],3)+ postfix + "\t\t; "+ s.IntToHex(i-26,1) + " MSB");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -