高分求解拨号的问题,高手请进!!!

icyfire129 2003-09-11 11:36:50
用MODEM进行通讯,请帮忙看看程序,对方受不到呀!
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString str;
int i;
bool zhq;
if( MSComm1->PortOpen )
MSComm1->PortOpen = false;
str = "ATDT12\r\n";
//MSComm1->CommPort = 1;
MSComm1->PortOpen = true;
if (MSComm1->PortOpen)
Memo1->Lines->Add("端口打开成功");
MSComm1->Output = str;
isSuccess = false;
/*开始报文*/
zhq = MyWaitSuccessSign();
if (zhq)
{
Byte bSendBuf[14],bSum;

bSendBuf[0] = 0x68;//const
bSendBuf[1] = 0x08;//data len from 0x63 to cu
bSendBuf[2] = 0x08;//data len from 0x63 to cu
bSendBuf[3] = 0x68;//const
bSendBuf[4] = 0x43;//c binary 01100011
bSendBuf[5] = 0xff;//a 0xff
bSendBuf[6] = 0x81;//const
bSendBuf[7] = 0x00;//const
bSendBuf[8] = 0x31;//const
bSendBuf[9] = 0xff;//a1 = 0xff
bSendBuf[10] = 0xff; //a2 = 0xff
bSendBuf[11] = 0x0; //const
bSum = 0;
for(i = 4;i < 12;i ++)
bSum = bSum + bSendBuf[i];
bSendBuf[12] = bSum % 256; //cu
bSendBuf[13] = 0x16; //const

OleVariant aV;
int da[2] = {0,14};
aV = VarArrayCreate(da,1, varByte);
for(i = 0 ; i < 14 ; i ++ )
aV.PutElement(bSendBuf[i],i);
MSComm1->Output = aV;
Memo1->Lines->Add("数据已发送");
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
AnsiString as;
as = "ATH0";
MSComm1->Output = as;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MSComm1Comm(TObject *Sender)
{
long length;
int i;
long index;
int Bounds[2] = {0,300};
Variant mVal;
long curR = 0x00;
AnsiString fStr;
AnsiString SerialStr;
BYTE Data[300];

OleVariant *mData = new OleVariant(Bounds,1,varByte);

*mData = MSComm1->Input;
SerialStr = mData->VOleStr ;

if(!mData->IsArray()) return ;
mData->ArrayLock();
try
{
for(i = 0 ; i < 255 ;i++)
{
mVal = mData->GetElement(i);
if( mVal != '\r' )
{
Data[i] = mVal ;
Memo1->Lines->Add(IntToStr(Data[i]));
}
}
}
catch (Exception &exception)
{

}
mData->ArrayUnlock();
//Memo1->Lines->Add(AnsiString((char *)Data)));
//Form1->Caption = IntToStr(Data[12]+Data[13]*256+Data[14]*256*256 + Data[15]*256*256*256);
delete mData;
}
//---------------------------------------------------------------------------
bool __fastcall TForm1::MyWaitSuccessSign()
{
//TODO: Add your source code here
Memo1->Lines->Add("开始检测");
MSG msg;
DWORD CurTickCount = GetTickCount(); //得到系统启动的时间
while( !isSuccess )
{
Memo1->Lines->Add("123");
if(PeekMessage( &msg, 0, 0, 0, PM_REMOVE ))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
if (GetTickCount() - CurTickCount >= 30000)
{
return false;
}
}
return true;
}
MEMO1用来显示程序的进程和收到的数据。
现在拨号能好用,把对方的猫接上超级终端,能显示连接成功(CONNECT 2400),但是我这里数据却不发!各位帮帮忙~~~~~~~~~~~~~~
...全文
114 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
icyfire129 2003-09-12
  • 打赏
  • 举报
回复
看来这里已经不行了。。。。。。。。。。。。。。。
icyfire129 2003-09-12
  • 打赏
  • 举报
回复
up
icyfire129 2003-09-12
  • 打赏
  • 举报
回复
不是吧??没有人回帖么?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧