拨号的问题,请大家帮忙看看,在线。。。。。。。着急中!!!!!
源程序如下:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString asBohao;
asBohao = "ATDT13\r\n";
if (MSComm1->PortOpen)
MSComm1->PortOpen = false;
MSComm1->PortOpen = true;
MSComm1->Output = asBohao;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MSComm1Comm(TObject *Sender)
{
AnsiString MyInput;
int ByteNum;//收到的字节数
int BuffPtr;//接收缓冲区的指针,请声明为全局变量,
OleVariant RxBuff;//一个用于接收的OleVariant变量,
int w;
RxBuff=MSComm1->Input;
MyInput=WideString(RxBuff);
Memo1->Lines->Add(MyInput);
w = MyInput.Pos("BIS");
if (w > 0)
{
Memo1->Lines->Add("Modem connected!");
SendData();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SendData()
{
//发送数据
int i,j;
Byte bSendBuf[21],bSum;
OleVariant oleBuf;
int Bounds[2] = {0,21};
oleBuf= VarArrayCreate(Bounds,1, varByte);
AnsiString strBuff;
bSendBuf[0] = 0x68;
bSendBuf[1] = 15;
bSendBuf[2] = 15;
bSendBuf[3] = 0x68;
bSendBuf[4] = 0x43;//ok 99
bSendBuf[5] = 0%256;
bSendBuf[6] = 0x9a;
bSendBuf[7] = 0x01;
bSendBuf[8] = 0x06;
bSendBuf[9] = 1234%256;
bSendBuf[10] = 1234/256;
bSendBuf[11] = 0x01;
bSendBuf[12] = 1 % 256;
bSendBuf[13] = 1 % 256;
bSendBuf[14] = 0 % 256;
bSendBuf[15] = 0 % 256;
bSendBuf[16] = 11 % 256;
bSendBuf[17] = 10 % 256;
bSendBuf[18] = 3 % 256;
bSum = 0;
for(j = 4 ; j <= 18 ; j++)
bSum = bSum + bSendBuf[j];
bSendBuf[19] = bSum;
bSendBuf[20] = 0x16;
AnsiString asd = "";
for (i = 0 ;i < 21; i ++)
oleBuf.PutElement(bSendBuf[i],i);
MSComm1->Output = oleBuf;
Memo1->Lines->Add(WideString(oleBuf));
}
现在的问题是拨号和接收(在超级终端调试的时候)正常,但是发送报文却不对!用超级终端调试的时候对方看见的却是“hc”应该是报文的前两个字节,但是后面的却没有了!MEMO上看见的却是一堆乱码。我这么写代码有什么错误么?????着急呀!!!!