在应用程序中获取调制解调器详细资料

Author: 马建国 Date: 1998年 第50期 12版

  开发一个利用调制解调器(以下简称为“猫”)进行串行口通信的应用程序,最大的麻烦莫过于如何面对牌号众多标准不一的猫。比如:每款猫都有各自厂家推荐的初始化命令、设置为硬件流控方式有的猫用“&K3”,有的猫用“\Q3”等。一般的解决办法都是在程序中建立一个已知猫的数据库,放入对应的资料,运行时由用户选择一个适合(或兼容)自己型号的猫。用户觉得此法麻烦,开发者也疲于硬件资料的搜集和更新。
  实际上程序中利用Win95的注册表,可以得到本机猫的几乎所有资料,包括本机安装猫的个数、分别的名称及串口号、每只猫的厂家建议初始化串、命令前置码、命令结束符、命令回报、纠错控制命令、流量控制命令……得到了它们,程序便可准确地发送Modem控制命令及处理返回信息。
  注册表中存放Modem详细资料的位置在HKEY_LOCAL_MACHINE\System\Services\Class\Modem\XXXX\Settings与Responses等路径下,以下列举说明几个重要键值的含义:
  DriverDesc:调制解调器牌号名;
  AttachedTo:所连接的串行口号码;
  Prefix:调制解调器命令前置符,一般都为“AT”;
  FlowControl_Hard、Off、Soft:打开硬件或软件流控、关闭流控命令符;
  Compression_On、Off:打开或关闭数据压缩功能命令;
  Terminator:命令结束符,一般多为“<cr>”(回车符,程序中可用字符常量#13);
  SpeakerMode_Dial、Off、On:扬声器模式控制命令;
  SpeakerVolumn_High、Low、Med:扬声器音量控制命令;
  SpeedNegotiation_Off、On:串行口速率锁定或自动调整命令;
  \Answer下有Modem的摘机应答命令,\Hangup下有挂线命令,\Init下有最重要的Modem厂家建议初始化命令串,以及其它很多命令。
  VB、Delphi等可视化开发工具中都提供有对注册表的封装(如Delphi中的TRegistry,具体用法见在线帮助),利用它们可在程序中方便地查到上述各项之值,在此不多作说明。