您现在所在的是:

串口通信

回帖:7个,阅读:15527 [上一页] [1] [下一页]
905
独钓寒江雪
文章数:1
年度积分:50
历史总积分:905
注册时间:2004/6/23
发站内信
发表于:2004/6/23 15:41:00
#0楼
[size=4]怎么编程实现,请各位指点一二,或者资料。不胜感激
自己弄点小东东,不属于工作。我们可以互相探讨学习
[/size]


[此贴子已经被作者于2004-6-23 15:42:02编辑过]
933
gpthink
文章数:7
年度积分:50
历史总积分:933
注册时间:2004/2/23
发站内信
发表于:2004/7/3 11:38:00
#1楼
我公司有来电显示MODEM
我公司有来电显示MODEM,   010-82656878
专业网络通讯厂商:生产销售/工业光纤收发器,1000M收发器,工业光端机,视频光端机,PDH光端机,协议转换器,E1-232转换器,光纤网卡,工业千兆网卡,光纤MODEM,单多转换器,波分复用器,CWDM,工业光纤交换机,工业MODEM等光通信产品
911
netfbi
文章数:2
年度积分:50
历史总积分:911
注册时间:2003/4/29
发站内信
发表于:2004/7/4 19:05:00
#2楼
通过AT命令可以实现,在 RING 后的会有来电显示 ...
912
weg
文章数:1
年度积分:50
历史总积分:912
注册时间:2004/8/9
发站内信
发表于:2004/8/9 11:58:00
#3楼
用MODEM+TAPI实现来电显示的方法

前言:MODEM 与 TAPI

Windows电话API被称为TAPI。Microsoft公司的TAPI提供单方连接。TAPI的目的是为Window平台提供"个人电话",它包含在Windows95系统中。
一般用户在购买MODEM时,都会得到一个MODEM的驱动CD。由于计算机与MODEM之间的通信方式均通过串口进行,外置MODEM是通过串口线连接计算机与MODEM,内置的MODEM的驱动通过虚拟的一个串口实现通信。而计算机与MODEM之间的通信,则完全通过程序控制串口发送AT命令数据到MODEM。TAPI则扮演了应用程序与串口之间的联系角色,保证了软件开发的一致性。用户只需关注TAPI,而不需关注不同的MODEM的不同的AT命令集。对于特定的MODEM,若知道AT命令集的完整解释,所有的通过TAPI的操作,也完全可以直接通过控制串口来实现。
实现来电显示的方法,如同上面所述可以直接自己解释AT命令集或通过TAPI实现,由于直接通过AT命令集进行处理相对来说较为复杂,本文仅针对TAPI解释。

一、 实现来电显示的系统最小需求。

1. 你的固定电话已经向电信局申请开通了来电显示功能,若没有申请,即使MODEM支持也是白搭。
2. 安装了MODEM的驱动软件。
3. MODEM支持来电显示。关于确定MODEM是否支持来电显示的方法,下面将有介绍。
4. 没有软件也是不行的了,所以你还得下载我的来电显示器,下载的地址:
     HTTP://WWW.NJZTL.COM/cid/TAPICID.HTML

二、 确定MODEM是否支持来电显示的方法。

方法1:
    若已经安装好MODEM驱动软件(即MODEM AT命令集的解释表),就可以用REGEDIT.EXE在系统注册表中查找到MODEM的配置表:

          HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Modem\0000

    其中0000为WINDOWS给MODEM编的号,不同的MODEM在这里可能为0001,0002等,以下缺省当作0000。当然你可以查看 0000\Model 是否为你所使用的MODEM。
   查阅 0000\VoiceProfile的值,例如:27 00 08 00 ,在TAPI 参考(MSDN Library Visual Studio 6.0\DDK Documentation\Design and Implementation Guide\Windows 95 Modem Registry Reference\Voice Modem Registry Settings\VoiceProfile)中的解释为,若第一字节的高位为1 ,即表示MODEM不支持来电显示。

方法2:
   查阅 0000\EnableCallerID\1的值,该值指示TAPI激活来电显示的AT命令,若注册表不存在该项目,那你的MODEM则肯定不支持来电显示。
   一般来说激活来电显示的AT命令为at#cid=1<cr>或at+vcid=1<cr>(<cr>代表回车键chr(13),<lf>代表换行符chr(10),以下类同),由于激活来电显示的命令不是一个普通的AT命令,MODEM一般不保存在缺省配置(即at&w0,at&w1)中,故若你想直接通过控制串口来实现来电显示,每次运行软件时或检测到MODEM重新开机时均需要发此命令到MODEM。
   若使用TAPI来实现来电显示,在执行 lineOpen 函数后,系统会自动初始化MODEM,并发送激活来电显示的AT命令。

方法3:
   一般来说在满足了方法1、方法2的条件的情况下,也并不表明你的MODEM就支持来电显示,但至少离成功已经不远了,若在此时使用我的软件仍然不能实现来电显示,那么你就必需好好研究下面我说的方法。
  统计起来,来电显示在注册表中的相关项目包括:
 
主键 值 说明
0000\CallerIDOutside "O"
0000\CallerIDPrivate "P"
0000\VoiceProfile 27 00 08 00
0000\EnableCallerID\1 AT+VCID=1<cr>
0000\Responses\<cr><lf>DATE = 93 00 00 00 00 00 00 00 00 00 来电显示的日期
0000\Responses\TIME = 94 00 00 00 00 00 00 00 00 00 来电显示的时间
0000\Responses\NMBR = 95 00 00 00 00 00 00 00 00 00 来电显示的号码
0000\Responses\NAME = 96 00 00 00 00 00 00 00 00 00 来电显示的名称

    有关Responses的完整解释请查阅最新的MSDN,或到Microsoft的网站上查找,至少在我的TAPI 参考(MSDN Library Visual Studio 6.0\DDK Documentation\Design and Implementation Guide\Windows 95 Modem Registry Reference\Data Modem Registry Entries\Responses)中的解释就不正确。
    若要最终确定你的MODEM是否支持来电显示,请用WINDOWS的超级终端软件,进入超级终端后选择要测试的MODEM,执行命令AT+VCID=1<cr>。而后拨打电话,等待并查看返回的信息,若在一到两个振铃信号之后仍然没有返回信息,很不幸你的MODEM不支持来电显示。一般来说来电显示的信息为:
     
      DATE = 0522 "来电日期 MMDD
      TIME = 1632 "来电时间 HHMM
      NMBR = 139519828 "来电号码

换成标准的表示法即为:

<cr><lf>DATE = 0522<cr><lf>TIME = 1632<cr><lf>NMBR = 13951982895<cr><lf>

请注意在此(<cr><lf>DATE =)(TIME =)(NMBR =)应与其在注册表中的名称相互对应。

例如:若对应于值95 00 00 00 00 00 00 00 00 00的名称为(NMBR=),而实际应为(NMBR =),则TAPI将不能解释出来电显示,此时你应当修改对应于值95 00 00 00 00 00 00 00 00 00的名称为(NMBR =),同理注册表中(<cr><lf>DATE =)(TIME =)也应确保与返回的信息相同,在实际中就发现有的MODEM存在此类问题,修改过注册表后就一切正常。

三、 MODEM+TAPI实现来电显示的过程。

1、 使用lineInitializeEx初始化TAPI。
2、 用lineOpen打开TAPI线路,其中权限为LINECALLPRIVILEGE_OWNER,媒体模式为LINEMEDIAMODE_DATAMODEM。
3、 当振铃时,TAPI传送LINECALLSTATE_OFFERING消息到应用程序,应用程序同时获得一个会话句柄。
4、 当交换机发送来电信号到MODEM时,MODEM负责对来电信号的解释并传送信息到TAPI,TAPI解释收到的数据,并传送LINECALLINFOSTATE_CALLERID消息到应用程序,应用程序调用 lineGetCallInfo获得返回的来电信息。
5.当线路空闲或用户结束会话时,TAPI传送 LINECALLSTATE_IDLE 或 LINECALLSTATE_DISCONNECTED到应用程序,应用程序应在此时释放会话资源以等待下一次来电处理。

四、 关与实现来电显示的源程序

本程序采用VB6编写,需要的文件都包含在压缩包cid.zip中
cid.vbp        工程文件
frmMain.frm 主画面文件
VBTapi.bas   TAPI的定义及过程
TAPILine.cls 包装好的TAPI类
Cwait.cls    包装好的延时类
cid.exe       已编译好的来电显示程序
cid.mdb       用于保存来电信息的数据库

软件需求:
1、需要的VB支持文件 MSVBVM60.DLL(未包含在安装程序中,98及以上机器有)。
2、数据库环境为ADO 2.1(未包含在安装程序中,98及以上机器有)。

本来电显示器已经经过我较全面的测试,可以针对任何内置与外置型的MODEM。

909
zwydg
文章数:3
年度积分:50
历史总积分:909
注册时间:2004/8/10
发站内信
发表于:2004/8/10 23:51:00
#4楼
我也想通过modem来听电话,但接通后对方只听到modem的滴滴声,我什么也没听到

我是先打开超级终端,接上modem后,对方拔进,我能看到提示“RING" ,我输入ATA,
应该是应答了吧?但对方就老是只听到滴滴声
请问各位大哥这是什么原因?有什么办法(或at命令)可以解决这个问题?谢谢
我打出通话是正常的。
匿名用户
文章数:N/A
年度积分:0
历史总积分:0
注册时间:2004/10/2
发站内信
发表于:2004/10/2 4:14:00
#5楼
该用户被锁定,回复内容不予显示!
742
szchengx
文章数:-3
年度积分:50
历史总积分:742
注册时间:2004/11/29
发站内信
发表于:2007/7/31 12:00:00
#6楼
此楼内容不符合板块规定,不予显示! 查看原帖内容>>
匿名用户
文章数:N/A
年度积分:0
历史总积分:0
注册时间:2006/10/14
发站内信
发表于:2008/3/15 9:25:00
#7楼
该用户被锁定,回复内容不予显示!

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

109.2007