社区
网络通信/分布式开发
帖子详情
如何在程序中检测对方摘机。
tinderman
2003-04-03 03:37:48
用Modem向电话拔号,如何检测对方摘机。
...全文
92
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所示。键盘监控的初始化、液晶显示的初始化、时间、采样频率、显示状态等各种信息。 图1 系统软件结构 监控模块随时判断各种
中
断是否到达,这其
中
包括
摘机
中
断、挂机
中
断、振铃
中
断、键盘
中
断、液晶显示定时
中
断等。监控模块
程序
完成查询以上工作并调用各个相应的处理子
程序
。 系统的
程序
流程如图2所示。在整个
程序
中
,挂机
中
断具有最高优先权,只要发生挂机
中
断,
程序
就返回到监控状态。尤其是在通话过程
中
,随时监测挂机
中
断和对方状态,一旦自身挂机或者对方挂机,将马上
中
止通信过程。 图2
程序
流程 系统上电后,总是
检测
有无
中
断产生,
中
断包括
摘机
中
断、振铃
中
断
于基单片机技术电话拨号防盗报警器的设计.doc大学论文(1).doc
于基单片机技术电话拨号防盗报警器的设计.doc大学论文(1).doc
基于单片机技术电话拨号防盗报警器的设计.doc(3)(1).doc
基于单片机技术电话拨号防盗报警器的设计.doc(3)(1).doc
基于MT8880的自动报警系统
基于MT8880的自动报警系统,自动拨号
程序
,收发
程序
,延时
程序
,
中
断
程序
AT89C51单片机智能语音拨号报警系统
本文介绍的报警系统就是在此基础上发展起来的一种智能语音拨号报警系统, 该系统可广泛用于各种对安防要求较高的场合, 如智能楼宇、商场、银行和工厂等。
网络通信/分布式开发
1,594
社区成员
32,958
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章