社区
网络通信/分布式开发
帖子详情
如何在程序中检测对方摘机。
tinderman
2003-04-03 03:37:48
用Modem向电话拔号,如何检测对方摘机。
...全文
91
12
打赏
收藏
如何在程序中检测对方摘机。
用Modem向电话拔号,如何检测对方摘机。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
检测不了,别费力了!
单片机与DSP
中
的DSP软件设计
系统的软件总体结构如图1...尤其是在通话过程
中
,随时监测挂机
中
断和对方状态,一旦自身挂机或者对方挂机,将马上
中
止通信过程。 图2
程序
流程 系统上电后,总是
检测
有无
中
断产生,
中
断包括
摘机
中
断、振铃
中
断
于基单片机技术电话拨号防盗报警器的设计.doc大学论文(1).doc
单片机控制器是整个系统的核心部分,它负责控制系统的整体运行,包括
检测
输入/输出显示、模拟
摘机
、拨号报警、挂机等一系列
程序
动作。控制器采用的是小引脚、高性能、低价位的AT89C2051单片机。这种单片机不仅性能...
基于单片机技术电话拨号防盗报警器的设计.doc(3)(1).doc
设计
中
的单片机控制器采用的是小引脚、高性能、低价位的AT89C2051型单片机,能够完成
检测
输入输出显示、模拟
摘机
、拨号报警、挂机等一系列
程序
动作。 键盘输入电路负责向单片机
中
输入一系列工作参数和功能设定。而...
基于MT8880的自动报警系统
系统通过
检测
此信号来确认电话已被对方摘起接听。 - **拨号音**: 频率为450Hz的连续蜂鸣声,表明电话线路处于空闲状态,可开始拨号。 - **忙音**: 频率为450Hz,持续0.35秒后断开0.05秒的间歇式声音,表示被呼叫的...
AT89C51单片机智能语音拨号报警系统
当AT89C51单片机
检测
到报警信号后,它会通过控制摘/挂机电路模拟
摘机
,并利用MT8880芯片进行拨号,之后
检测
对方是否接听电话。如果对方接听,系统将通过语音提示电路播放预先录制的与警情相对应的语音信息。 在硬件...
网络通信/分布式开发
1,594
社区成员
32,958
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章