社区
网络通信/分布式开发
帖子详情
如何在程序中检测对方摘机。
tinderman
2003-04-03 03:37:48
用Modem向电话拔号,如何检测对方摘机。
...全文
176
12
打赏
收藏
如何在程序中检测对方摘机。
用Modem向电话拔号,如何检测对方摘机。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hjb8000
2003-04-04
打赏
举报
回复
载波事件可以检测,猫在启动、接收到对方摘机、对方挂机时都有载波信号产生,如果收到震令铃后再收到载波事件代表与对方连通!!
hjb8000
2003-04-04
打赏
举报
回复
其实也不难,不过下面的程序使用C++BUIDER写的,大致流程:
打开串口,设置串口响应事件时必须设置DCD响应事件
if ( !SetCommState(FhCom, &dcb) ||
!SetCommMask(FhCom, EV_RXCHAR |
//EV_BREAK |
//EV_CTS |
//EV_DSR |
//EV_ERR |
//EV_RING |
EV_TXEMPTY |
//EV_RXFLAG |
EV_RLSD ) ||
在检察串口事件WaitCommEvent(CommHandle, &dwEventMask, &eOverLapped);
判断dwEventMask事件中是否有DCD事件,如果有就给主线程中发消息,在该消息中处理即可
void __fastcall TCommThread::Execute()
{
DWORD dwEventMask;
while(true) {
dwEventMask = 0;
WaitCommEvent(CommHandle, &dwEventMask, &eOverLapped);
ClearCommError(CommHandle, &ErrWord, &comstat);
WaitForSingleObject(eOverLapped.hEvent, INFINITE);
FBytesInQue = comstat.cbInQue;
FBytesOutQue = comstat.cbOutQue;
if ( dwEventMask & EV_TXEMPTY ) { // Êä³ö»º³åÇø¿Õ
//PostMessageToThread( Owner->ThreadID, WM_OUTBUFFEREMPTY, 0 ,0L );
PostMessageToThread( Owner->DataHandleThread->ThreadID, WM_OUTBUFFEREMPTY, 0 ,0L );
}
if ( ( dwEventMask & EV_RXCHAR ) && CanInterrupt &&
( FBytesInQue >= FRThreshold ) ) { // ÊäÈ뻺³åÇø½ÓÊÕµ½Ò»×Ö·û
CanInterrupt = false;
//PostMessageToThread( Owner->ThreadID, WM_OVERRTHRESHOLD,0,0);
PostMessageToThread( Owner->DataHandleThread->ThreadID, WM_OVERRTHRESHOLD,0,0);
}
if ( (dwEventMask & EV_RLSD )||
(dwEventMask & EV_BREAK )||
(dwEventMask & EV_CTS )||
(dwEventMask & EV_DSR )||
(dwEventMask & EV_ERR )||
(dwEventMask & EV_RING )||
(dwEventMask & EV_RXFLAG ) )
{
PostMessageToThread( Owner->DataHandleThread->ThreadID, WM_PHONERING,dwEventMask,0); //ÕýÔÚÕðÁå
}
} // while
}
qsfsea
2003-04-04
打赏
举报
回复
研究一下,thanks!
qsfsea@163.net
tinderman
2003-04-04
打赏
举报
回复
那就更好了,是贴上来大家共享,还是发到我的邮箱:tindersman@163.com
ccinoandjht
2003-04-04
打赏
举报
回复
我有源代码,要吗?
最近我也在做这个,摘机是可以判断了,就是声音效果不佳,最后Boss让我放弃了,
我们公司最后决定用语音卡来实现这个功能!
tinderman
2003-04-04
打赏
举报
回复
To hjb8000(北极熊):多谢指教,不过我是个beginner.不知如何检测。
qsfsea
2003-04-03
打赏
举报
回复
猫一般都不作回铃检测,所以,这个很难
tinderman
2003-04-03
打赏
举报
回复
To: Wally_wu(韦利) ,如何检测呢?
Wally_wu
2003-04-03
打赏
举报
回复
理论上根据返回的错误码可以检测对方摘机
tinderman
2003-04-03
打赏
举报
回复
真的没办法了吗?各位高手帮帮我啊!
qsfsea
2003-04-03
打赏
举报
回复
对了,有个方法,录音,然后分析波形,有点麻烦
qsfsea
2003-04-03
打赏
举报
回复
检测不了,别费力了!
[c语言]在
程序
中
检测
键盘按键
本文详细介绍了如何在
程序
中
使用_getch()函数
检测
键盘输入,并解决上下左右键和死循环问题。通过示例代码和技巧,帮助开发者理解如何灵活运用此功能。
ASAN排查
程序
中
内存问题使用总结
本文详细介绍谷歌的ASan工具,用于
检测
程序
中
内存使用错误,包括堆栈内存越界、空指针操作、内存泄漏等问题。通过三个示例演示ASan的使用方法,包括内存越界、空指针操作和内存泄漏的
检测
。
怎样在java
程序
中
对项目进行硬件
检测
博客聚焦于信息技术领域,探讨在Java
程序
里对项目开展硬件
检测
的相关内容,旨在解决如何利用Java实现项目硬件
检测
的问题。
【Tools】Linux下C和C++
程序
中
内存泄露
检测
本文详细介绍使用Valgrind工具
检测
C/C++
程序
中
的内存错误,包括未初始化内存使用、野指针、越界访问、内存泄漏等常见问题。通过实际代码示例,展示如何定位并解决内存管理错误。
程序
中
几何图形间的距离计算(碰撞
检测
)资源文件
该博客推荐了
程序
中
几何图形间的距离计算(碰撞
检测
)资源文件。此资源包含多种碰撞
检测
算法,从基础图形到复杂像素碰撞都有涉及。可应用于游戏开发、物理引擎等领域,具有方法丰富、易集成等特点,能助力开发更高效。
网络通信/分布式开发
1,594
社区成员
32,944
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章