|
아래 소스에서 P1Readvalue 에 스트링 값으로 "00E0"이 들어 있을때..
Ponoffchk함수로 넘어 갈경우 에러가 생기드라구요.. "E"를 보낼수 없다그러든거 같든데.
숫자로만 "0020" 된건 아무 문제 없이 함수를 호출 할수 있는데..
도대체.. 이넘을 어떻게 해결을 해야 할지 모르겠네요.
AnsiString 이란넘 편할땐 무지 편하드니만.
char *ch[5] 이런걸 다른 함수에다 넘길려면.. 함수를 어떻게 정의해줘야 하나요?
void __fastcall TForm1::ComPort1RxChar(TObject *Sender, int Count)
{
AnsiString Str;
ComPort1->ReadStr(Str,Count);
if(Count != 7) {
Str1 = Str1 + Str;
if(Count != 7 && Str.SubString(Count,1) == ETX) {
P1Readvalue = (Str1.SubString(11,4));
P2Readvalue = (Str1.SubString(17,4));
P3Readvalue = (Str1.SubString(23,4));
Str1="";
Ponoffchk(1,P1Readvalue);
// Memo3->Lines->Add(P1Readvalue);
Ponoffchk(2,P2Readvalue);
// Memo3->Lines->Add(P2Readvalue);
Ponoffchk(3,P3Readvalue);
// Memo3->Lines->Add(P3Readvalue);
}
}
Memo1->Lines->Add(Str);
Memo1->Lines->Add(Count);
}
void __fastcall TForm1::Ponoffchk(int i, AnsiString PRead)
{
int Temp1,Temp2,Temp3,Temp4;
Memo2->Lines->Add(PRead);
Temp1 = StrToInt(PRead.SubString(1,1));
Binarychk(i,12,Temp1);
Temp2 =StrToInt(PRead.SubString(2,1));
Binarychk(i,8,Temp2);
Temp3 =StrToInt(PRead.SubString(3,1));
Binarychk(i,4,Temp3);
Temp4 =StrToInt(PRead.SubString(4,1));
Binarychk(i,0,Temp4);
}
|