📄 unit1.cpp
字号:
}
ShowOperateInfo((char*)retval);
break;
case 4:
if(Edit_Flagval->Text.Length()==1){
Edit_Flagval->Text="0"+ Edit_Flagval->Text;
}
Str_F_val=("0x"+Edit_Flagval->Text).c_str();
flag = strtol(Str_F_val, &temp, 16);
ResetToReady(Sendval,retval,toUniteStr(temp,CurrUID,2).c_str(),flag,nBytesRead);
ShowOperateInfo((char*)Sendval);
temp2=(char*)retval;
if(temp2==""){
ShowOperateInfo("No Reply");
break;
}
ClearTagDetailInfo();
if(temp2.SubString(temp2.Length()-7,2)=="00"){
ShowTagDetail("Reset Success!");
}else{
ShowTagDetail("Reset Faild!");
}
ShowOperateInfo((char*)retval);
break;
case 5:
if(Edit_Flagval->Text.Length()==1){
Edit_Flagval->Text="0"+ Edit_Flagval->Text;
}
if(Edit_AFIval->Text.Length()==1){
Edit_AFIval->Text="0"+ Edit_AFIval->Text;
}
Str_F_val=("0x"+Edit_Flagval->Text).c_str();
flag = strtol(Str_F_val, &temp, 16);
Str_F_val=("0x"+Edit_AFIval->Text).c_str();
AFIval = strtol(Str_F_val, &temp, 16);
// Str_F_val=("0x"+EditPBAddrval->Text).c_str();
//nblock = strtol(Str_F_val, &temp, 16);
WriteAFI(Sendval,retval,AFIval,flag,toUniteStr(temp,CurrUID,2).c_str(),nBytesRead);
ShowOperateInfo((char*)Sendval);
temp2=(char*)retval;
if(temp2==""){
ShowOperateInfo("No Reply");
break;
}
ClearTagDetailInfo();
if(temp2.SubString(temp2.Length()-7,2)=="00"){
ShowTagDetail("Write AFI Success!");
}else{
ShowTagDetail("Write AFI Faild!");
}
ShowOperateInfo((char*)retval);
break;
case 6:
if(Edit_Flagval->Text.Length()==1){
Edit_Flagval->Text="0"+ Edit_Flagval->Text;
}
Str_F_val=("0x"+Edit_Flagval->Text).c_str();
flag = strtol(Str_F_val, &temp, 16);
LockAFI(Sendval,retval,flag,toUniteStr(temp,CurrUID,2).c_str(),nBytesRead);
ShowOperateInfo((char*)Sendval);
temp2=(char*)retval;
if(temp2==""){
ShowOperateInfo("No Reply");
break;
}
ClearTagDetailInfo();
if(temp2.SubString(temp2.Length()-7,2)=="00"){
ShowTagDetail("Lock AFI Success!");
}else{
ShowTagDetail("Lock AFI Faild!");
}
ShowOperateInfo((char*)retval);
break;
case 7:
ClearTagDetailInfo();
if(Edit_Flagval->Text.Length()==1){
Edit_Flagval->Text="0"+ Edit_Flagval->Text;
}
if(EditPBAddrval->Text.Length()==1){
EditPBAddrval->Text="0"+ EditPBAddrval->Text;
}
Str_F_val=("0x"+Edit_Flagval->Text).c_str();
flag = strtol(Str_F_val, &temp, 16);
Str_F_val=("0x"+EditPBAddrval->Text).c_str();
nblock = strtol(Str_F_val, &temp, 16);
//int _stdcall ReadSingleBlock(BYTE Sendval[],BYTE retval[],int nBlock,BYTE UID[],DWORD &nBytestoRead)
BYTE Curr[16];
toUniteByte(CurrUID.c_str(),Curr);
ReadSingleBlock(Sendval,retval,nblock,flag,Curr,nBytesRead);
for(int i=0;i<8;i+=2){
temp1+=(char)retval[11+i];
temp1+=(char)retval[11+i+1];
temp1+='\b';
}
ShowOperateInfo((char*)Sendval);
temp2=(char*)retval;
if(temp2==""){
ShowOperateInfo("No Reply");
break;
}
ShowOperateInfo((char*)retval);
if(temp2.Length()<24){
ShowTagDetail("Read Single Block Error!");
break;
}
ShowTagDetail(temp1);
break;
case 8:
ClearTagDetailInfo();
if(Edit_Flagval->Text.Length()==1){
Edit_Flagval->Text="0"+ Edit_Flagval->Text;
}
if(EditPBAddrval->Text.Length()==1){
EditPBAddrval->Text="0"+ EditPBAddrval->Text;
}
if(Edit_Data1->Text.Length()==1){
Edit_Data1->Text="0"+ Edit_Data1->Text;
}
if(Edit_Data2->Text.Length()==1){
Edit_Data2->Text="0"+ Edit_Data2->Text;
}
if(Edit_Data3->Text.Length()==1){
Edit_Data3->Text="0"+ Edit_Data3->Text;
}
if(Edit_Data4->Text.Length()==1){
Edit_Data4->Text="0"+ Edit_Data4->Text;
}
Str_F_val=("0x"+Edit_Flagval->Text).c_str();
flag = strtol(Str_F_val, &temp, 16);
Str_F_val=("0x"+EditPBAddrval->Text).c_str();
nblock = strtol(Str_F_val, &temp, 16);
//Edit_Data3->Text
Bval[0]=strtol(("0x"+Edit_Data1->Text).c_str(), &temp, 16);
Bval[1]=strtol(("0x"+Edit_Data2->Text).c_str(), &temp, 16);
Bval[2]=strtol(("0x"+Edit_Data3->Text).c_str(), &temp, 16);
Bval[3]=strtol(("0x"+Edit_Data4->Text).c_str(), &temp, 16);
//IntToHex(1,1);
//HexToInt(1);
WriteSingleBlock(Sendval,retval,nblock,Bval,toUniteStr(temp,CurrUID,2).c_str(),flag,nBytesRead);
ShowOperateInfo((char*)Sendval);
temp2=(char*)retval;
if(temp2==""){
ShowOperateInfo("No Reply");
break;
}
ShowOperateInfo((char*)retval);
//查询是否写入成功
BYTE send[200];//发送命令字符串
BYTE ret[2000];//返回值
ReadSingleBlock(send,ret,nblock,35,toUniteStr(temp,CurrUID,2).c_str(),nBytesRead);
while(++count<=3){
temp3=(char*)ret;
if(temp3.Length()==27||temp3.Length()==25){
temp3="";
break;
}
ReadSingleBlock(send,ret,nblock,35,toUniteStr(temp,CurrUID,2).c_str(),nBytesRead);
}
//if(temp3.Length()!=27){ShowOperateInfo(temp3.Length());}
for(int i=0;i<8;i+=2){
temp1+=(char)ret[11+i];
temp1+=(char)ret[11+i+1];
temp3+=IntToHex(Bval[i/2],2);
}
if(temp1==temp3){
ShowTagDetail("write success");
} else{
// ShowOperateInfo(temp1);
//ShowOperateInfo(temp3);
//ShowOperateInfo(temp1==temp3?"true":"false");
ShowTagDetail("write error");
}
break;
case 9:
if(Edit_Flagval->Text.Length()==1){
Edit_Flagval->Text="0"+ Edit_Flagval->Text;
}
if(EditPBAddrval->Text.Length()==1){
EditPBAddrval->Text="0"+ EditPBAddrval->Text;
}
Str_F_val=("0x"+Edit_Flagval->Text).c_str();
flag = strtol(Str_F_val, &temp, 16);
Str_F_val=("0x"+EditPBAddrval->Text).c_str();
nblock = strtol(Str_F_val, &temp, 16);
LockBlock(Sendval,retval,flag,nblock,toUniteStr(temp,CurrUID,2).c_str(),nBytesRead);
ShowOperateInfo((char*)Sendval);
temp2=(char*)retval;
if(temp2==""){
ShowOperateInfo("No Reply");
break;
}
ClearTagDetailInfo();
if(temp2.SubString(temp2.Length()-7,2)=="00"){
ShowTagDetail("Lock Block Success!");
}else{
ShowTagDetail("Lock Block Faild!");
}
ShowOperateInfo((char*)retval);
break;
case 10:
if(Edit_Flagval->Text.Length()==1){
Edit_Flagval->Text="0"+ Edit_Flagval->Text;
}
if(Edit_1stBlkAddr->Text.Length()==1){
Edit_1stBlkAddr->Text="0"+ Edit_1stBlkAddr->Text;
}
if(Edit_NoOfBlk->Text.Length()==1){
Edit_NoOfBlk->Text="0"+ Edit_NoOfBlk->Text;
}
if(Edit_NoOfBlk->Text.Length()==1){
Edit_NoOfBlk->Text="0"+ Edit_NoOfBlk->Text;
}
ClearTagDetailInfo();
Str_F_val=("0x"+Edit_Flagval->Text).c_str();
flag = strtol(Str_F_val, &temp, 16);
Str_F_val=("0x"+Edit_1stBlkAddr->Text).c_str();
nStartBlock = strtol(Str_F_val, &temp, 16);
Str_F_val=("0x"+Edit_NoOfBlk->Text).c_str();
nLength = strtol(Str_F_val, &temp, 16);
ReadMultiBlock(Sendval,retval,toUniteStr(temp,CurrUID,2).c_str(),nStartBlock,nLength,flag,nBytesRead);
ShowOperateInfo((char*)Sendval);
temp2=(char*)retval;
if(temp2==""){
ShowOperateInfo("No Reply");
break;
}
ShowOperateInfo((char*)retval);
if(temp2.Length()<24){
ShowTagDetail("Read Multi Block Error!");
break;
}
for(int i=0;i<8*(1+Edit_NoOfBlk->Text.ToInt());i+=2){
temp1+=(char)retval[11+i];
temp1+=(char)retval[11+i+1];
temp1+='\b';
}
for(int i=0;i<temp1.Length();i+=12){
ShowTagDetail(temp1.SubString(i,12));
}
break;
case 11:
Application->CreateForm(__classid(TForm3), &Form3);
Form3->Tag_val->Text=CurrUID;
Form3->FlagVal=Edit_Flagval->Text;
break;
case 12:
if(Edit_Flagval->Text.Length()==1){
Edit_Flagval->Text="0"+ Edit_Flagval->Text;
}
if(Edit_DISFIDval->Text.Length()==1){
Edit_DISFIDval->Text="0"+ Edit_DISFIDval->Text;
}
Str_F_val=("0x"+Edit_Flagval->Text).c_str();
flag = strtol(Str_F_val, &temp, 16);
Str_F_val=("0x"+Edit_DISFIDval->Text).c_str();
DSIFID = strtol(Str_F_val, &temp, 16);
// Str_F_val=("0x"+EditPBAddrval->Text).c_str();
//nblock = strtol(Str_F_val, &temp, 16);
WriteDSFID(Sendval,retval,flag,DSIFID,toUniteStr(temp,CurrUID,2).c_str(),nBytesRead);
ShowOperateInfo((char*)Sendval);
temp2=(char*)retval;
if(temp2==""){
ShowOperateInfo("No Reply");
break;
}
ClearTagDetailInfo();
if(temp2.SubString(temp2.Length()-7,2)=="00"){
ShowTagDetail("Write DSFID Success!");
}else{
ShowTagDetail("Write DSFID Faild!");
}
ShowOperateInfo((char*)retval);
break;
case 13:
//int _stdcall LockDSFID(BYTE Sendval[],BYTE retval[],int flag,BYTE UID[],DWORD &nBytestoRead)
Str_F_val=("0x"+Edit_Flagval->Text).c_str();
flag = strtol(Str_F_val, &temp, 16);
LockDSFID(Sendval,retval,flag,toUniteStr(temp,CurrUID,2).c_str(),nBytesRead);
ShowOperateInfo((char*)Sendval);
temp2=(char*)retval;
if(temp2==""){
ShowOperateInfo("No Reply");
break;
}
ClearTagDetailInfo();
if(temp2.SubString(temp2.Length()-7,2)=="00"){
ShowTagDetail("Lock DSFID Success!");
}else{
ShowTagDetail("Lock DSFID Faild!");
}
ShowOperateInfo((char*)retval);
break;
case 14:
ClearTagDetailInfo();
Str_F_val=("0x"+Edit_Flagval->Text).c_str();
flag = strtol(Str_F_val, &temp, 16);
// int _stdcall GetSysInfo(BYTE Sendval[],BYTE retval[],int Flag,BYTE UID[],DWORD &nBytestoRead)
GetSysInfo(Sendval,retval,flag,toUniteStr(temp,CurrUID,2).c_str(),nBytesRead);
ShowOperateInfo((char*)Sendval);
temp2=(char*)retval;
if(temp2==""){
ShowOperateInfo("No Reply");
break;
}
ShowOperateInfo((char*)retval);
if(retval[44]!='\n'){
ShowTagDetail("error");
break;
}
for(int i=29;i<29+10;i+=2){
temp1+=(char)retval[i];
temp1+=(char)retval[i+1];
temp1+='\b';
}
ShowTagDetail("DSFID:"+temp1.SubString(0,3)+" AFI:"+temp1.SubString(3,3));
ShowTagDetail("VICC Memory Size:"+temp1.SubString(6,6));
ShowTagDetail("IC Refrence:"+temp1.SubString(12,3));
break;
case 15:
ClearTagDetailInfo();
Str_F_val=("0x"+Edit_Flagval->Text).c_str();
flag = strtol(Str_F_val, &temp, 16);
Str_F_val=("0x"+Edit_1stBlkAddr15->Text).c_str();
nStartBlock = strtol(Str_F_val, &temp, 16);
Str_F_val=("0x"+Edit_BlkCnt->Text).c_str();
nLength = strtol(Str_F_val, &temp, 16);
//int _stdcall GetMultiBlockSecirotuStatus(BYTE Sendval[],BYTE retval[],int flag,int nStartBlock,int nLength,BYTE UID[],DWORD &nBytestoRead)
GetMultiBlockSecirotuStatus(Sendval,retval,flag,nStartBlock,nLength,toUniteStr(temp,CurrUID,2).c_str(),nBytesRead);
for(int i=0;i<2*(2+nLength);i+=2){
temp1+=(char)retval[7+i];
temp1+=(char)retval[7+i+1];
temp1+='\b';
}
ShowOperateInfo((char*)Sendval);
temp2=(char*)retval;
if(temp2==""){
ShowOperateInfo("No Reply");
break;
}
ShowOperateInfo((char*)retval);
ShowTagDetail(temp1);
break;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
run();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Enable_Run=true;
}
//---------------------------------------------------------------------------
int __fastcall TForm1::HasTag(){
for(int i=0;i<UIDCount;i++){
if(UIDArray[i]=='\0'){
return -1;
}
if(UIDArray[i]==CurrUID){
return i;
}
}
return -1;
}
void _fastcall TForm1::SaveMessage(){
Memo1->Lines->SaveToFile("log"+FormatDateTime("yyyyMMddhhmm",Now())+".txt");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClearTagInfo1Click(TObject *Sender)
{
ClearTagInfo();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClearTagDetail1Click(TObject *Sender)
{
ClearTagDetailInfo();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClearMessage1Click(TObject *Sender)
{
ClearOperateInfo();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::about1Click(TObject *Sender)
{
USEFORM("version.cpp", Form2);
try
{
//Application->Initialize();
//Application->CreateForm(__classid(TForm1), &Form1);
Application->CreateForm(__classid(TForm2), &Form2);
//Application->MainForm
//Application->Run();
//Form2->Visible=true;
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
// Application->ShowException(&exception);
}
}
//Form2->
//Form2->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SavetoLogFile1Click(TObject *Sender)
{
SaveMessage();
ShowOperateInfo("save meesage to file success .");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Enable_Run=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if(Enable_Run&&Button1->Caption=="close"){
run();
//Sleep(1000);
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -