广州高深商电子技术有限公司 用户登录
                                                      用户注册 ......
                                                      首页 公告 收款机 抽奖机 来电管理 数据采集 台球灯控 软件开发 综合 会员下载 发货查询
                                                      公司首页
                                                      当前位置:首页>> 来电管理>> 二次开发 >>正文
                                                      高深商GSM无线固话盒OCX控件二次开发说明
                                                      gao在2017/9/18发表,被浏览4393 此文章共有 2 1 2
                                                      下载地址:JDCellPhoneXC.rar

                                                          控件是标准的ActiveX控件,适用于Windows平台下的所有开发编程工具,例如Delphi、VB、C#、C++、Java、PB、.NET等?丶庾傲吮曜糀T指令、手机与计算机的通信内容,提供了发送短信、接收短信、拨打电话、接听电话等函数和事件,非常方便二次开发。
                                                          GSM无线固话盒与手机盒使用相同的控件ActiveX。只有V1.2以上的版本才支持无线固话盒。
                                                          控件需要的硬件设备是高深商公司研发的“GSM无线固话盒”(见下面的名词解析)或能与计算机连接的手机(要求手机通过COM口通信)。


                                                      名词解析:
                                                      短信 ---关于短信你应该知道有如下特点:
                                                          1.GSM的1条中文短信最多由70字组成,多于70个字就必须要拆分成多次进行发送。
                                                          2.GSM?榛峤盏降亩绦畔缺4嬖赟IM卡中。
                                                          3.根据不同的SIM卡,可以储存的短信数量也会有所不同。通常是50或100条。
                                                          4.通常我们所说的读短信其实是从SIM卡中读取的。
                                                          5.若SIM卡的短信空间已满,则再也无法接收到新短信。因此要想保证?榭梢越邮斩绦,至少要保持SIM卡内有储存1条断信 的空间。若非必要,读到完整的短信后将储存在SIM卡中的短信删除。
                                                          6.所谓的读短信其实是按照储存在SIM卡中的位置来读的。
                                                          7.接收到的短信在SIM卡中的位置并不保证按接收到的时间顺序或发送顺序排列。


                                                      超长短信 --- 当短信超过70个字时,就是超长短信。手机自动把超长短信分成几条短信发送,接收时也分多条短信形式存储在SIM卡中,在读短信时,临时组装成超长短信。

                                                      GSM无线固话盒 ---一种既可以独立使用又可以与计算机连接的GSM终端设备,插入SIM卡才能使用。该设备尺寸为100mm×80mm×25mm(长×宽×高,内置天线),有一个标准的USB接口,通过标准的USB连接线,连接计算机;1个RJ11电话接口连接普通固话电话机,用于拨打电话或接听电话或接入电话交换机。该设备不用电池,但有独立的电源适配器供电。利用此设备与电脑连接,可以把计算机当成手机使用,在电脑上收发短信,拨打电话,还可以神奇的文字语音合成技术(TTS)实现语音查询中心,语音报警等作用。有关手机盒的更多详细信息,请拨打电话020-38259081咨询。


                                                      主要属性:
                                                      BaudRate --- 与计算机连接的波特率,最好不要人工设置,而是采用设置函数SetupPort自动查找。
                                                                   当前的设备采用自动波特率,无需设定。
                                                                  
                                                      Port --- 与计算机连接的端口,同上不要人工设置。默认为HID  

                                                      JDConnected --- 与计算机是否已连接,即是否已经打开端口,布尔型。

                                                      QueryATSeconds --- 当执行AT查询指令时,最长等待反应时间,默认2秒,整数。

                                                      ReadLongSmsSeconds --- 读超长短信时,最长的延时时间,默认30秒,整数。

                                                      ReadSmsSeconds --- 读普通短信时,最长的延时时间,默认5秒,整数。

                                                      ReadLongSmsWay --- 读短信函数ReadSms的工作方式(针对超长短信),有0、1、2数值可选择:
                                                          0 一般用于收到短信事件OnSms中;在读超长短信时,只有当id为最后一条短信id,才完整地读超长短信;
                                                          1 常用的读短信方式;当遇到超长短信时,首先计算此超长短信第一条id,按顺序读,当不成功时,读所有短信;
                                                          2 只要是超长短信,首先把SIM卡内的所有短信都读出来,拼接成此条超长短信;
                                                          建议在OnSms事件中调用ReadSms时,ReadLongSmsWay设为0,其它时候设为1。

                                                      ReturnCompleteLongSms --- 布尔型,默认False;如果设为True,ReadSms读短信,当遇到超长短信时,只有当超长短信读完整,才返回短信内容,读超长短信异常,例如超长短信还没有完整接收时,就执行ReadSms,导致超长短信不能读完整,则ReadSms返回0。

                                                      ShowRxChar --- 布尔型,默认False;如果设为True,显示手机盒与计算机通讯的内容,方便调试。

                                                      ShowTip --- 布尔型,默认True,表示当执行ReadSMS、ReadAllSms、QueryAT等函数时,提示手机盒正在与计算机通讯。

                                                      ExecJDSmsEvent --- 布尔型,默认True,表示收到短信时自动执行OnJDSms事件;当为False时,不触发OnJDSms,即不执行OnJDSms。

                                                      OnlyCheckUSBtoSerialComport --- 布尔型,默认True,表示在查找端口时只找USB转COM的端口。


                                                      主要事件:
                                                      OnAfterOpen ---- 打开连接端口时触发。
                                                      函数原型:procedure AfterOpenEvent(Sender: TObject);

                                                      OnAfterClose ---- 关闭连接端口时触发。
                                                      函数原型:procedure AfterCloseEvent(Sender: TObject);

                                                      OnRing --- 当有电话呼入时,手机响铃,触发此事件;有3个传递参数值:
                                                          no为来电号码,字符串;
                                                          index是本次来电的响铃次数,其值为1,2...;
                                                          devid是手机盒连接标识号,整数,其值为0,1,2...
                                                      函数原型:RingEvent(Sender: TObject; no: String; index, devid: Smallint);

                                                      OnEndRing --- 对方挂断手机,响铃结束,触发此事件;有1个传递参数值:
                                                          devid是手机盒标识号,其值为0,1,2...
                                                      函数原型:EndRingEvent(Sender: TObject; devid: Smallint);

                                                      OnNoCarrier --- 拨号失败、连接不成功等均触发此事件;有2个传递参数值:
                                                          str为失败原因: NO CARRIER、NO ANSWER、BUSY;
                                                          devid是手机盒标识号。
                                                      函数原型:NoCarrierEvent(Sender: TObject; str: String; devid: Smallint);

                                                      OnJDSms --- 手机盒接收到短信,并完整读取短信时,触发此事件;事件在ExecJDSmsEvent=True时有效;有5个传递参数值:
                                                          id为短信标识号,可根据此id删除SIM卡内的短信;
                                                          no为发送短信号码;
                                                          t为接收短信时间;
                                                          s为短信内容;
                                                          devid是手机盒标识号。
                                                      函数原型:JDSmsEvent(Sender: TObject; id, no, t, s: String; devid: Smallint);

                                                      OnSms --- 手机盒接收到短信时,触发此事件;有2个传递参数值:
                                                          id为短信标识号,可根据id值读短信;
                                                          devid是手机盒连接序号;
                                                      函数原型:SmsEvent(Sender: TObject; id: String; devid: Smallint);
                                                      与OnJDSms事件的不同点:
                                                          OnSms不读短信,只要接收到短信,就触发此事件;
                                                          OnJDSms在接收到短信时,马上读取短信,并判断短信是完整的,才触发此事件;
                                                          推荐使用OnJDSms。

                                                      OnTeleColp --- GSM无线固话盒拨号(包括电脑拨号和电话机拨号)被叫方摘机接通时触发此事件;此事件发生时可以作为通话的计时起点,也可以在此时通过TTS语音合成技术向被叫方播报。次事件有2个传递参数值:
                                                          no为被叫方电话号码;
                                                          devid是盒子标识识号。
                                                      函数原型:OnTeleColpEvent(Sender: TObject; no: String; devid: Smallint);

                                                      NoCarrier--- GSM无线固话盒拨号(包括电脑拨号和电话机拨号)被叫方挂机或由于忙或其它原因无法接通时触发此事件;此事件发生时可以作为通话的计时结束点,也可以看作是一次拨号的结束。次事件有2个传递参数值:
                                                          str 通常为空;
                                                          devid是盒子标识识号。
                                                      函数原型:NoCarrierEvent(Sender: TObject; str: String; devid: Smallint);


                                                      主要函数:
                                                      SetupPort --- 设置手机盒与计算机连接的端口,可以自动查找端口,一般在第一次使用时调用;成功时保存连接参数,并返回True;有1个参数:
                                                          ShowForm 是否显示查找端口,True表示显示查找端口界面,False表示不显示查找端口界面。
                                                      函数原型:function SetupPort(ShowForm: WordBool): WordBool;

                                                      Open --- 打开连接,JDConnected设为True。
                                                      函数原型:procedure Open;

                                                      Close --- 关闭连接,JDConnected设为False。
                                                      函数原型:procedure Close;

                                                      InitSIM300 --- 对手机盒初始化,一般在第一次使用时调用,返回设置手机盒的参数。
                                                      函数原型:function InitSIM300: WideString;

                                                      LoadComportParam --- 在程序启动时调用,读取手机盒与计算机的连接参数;这些参数是在
                                                      SetupPort时保存的。
                                                      函数原型:procedure LoadComportParam;

                                                      GetComportCount --- 返回手机盒与计算机的连接数量。
                                                      函数原型:function GetComportCount: Smallint;

                                                      ReadSms --- 读短信函数,返回短信数量;有5个参数:
                                                          id 短信标识号,函数按id读短信;当是超长短信时,id返回超长短信的第一条短信id;
                                                          no 发送短信号码,返回值;
                                                          t 短信接收时间,返回值;
                                                          msg 短信内容,返回值;
                                                          devid 手机盒标识号,表示从哪个手机盒读短信;当只有一个手机盒与计算机连接时,赋0。
                                                      函数原型:ReadSms(var id, no, t, msg: WideString; devid: Smallint): Smallint;

                                                      ReadAllSms --- 读取所有短信函数,返回短信数量;有2个参数:
                                                          memo 所有短信内容,返回值;
                                                          devid 手机盒标识号,表示从哪个手机盒读短信。
                                                      函数原型:ReadAllSms(var memo: WideString; devid: Smallint): Smallint;

                                                      SendSms --- 发送短信函数,返回成功发送短信的号码;有3个参数:
                                                          nos 要发送的手机号码,可群发,号码之间用;或空格分隔;
                                                          msg 要发送的短信内容;
                                                          devid 手机盒标识号,表示用哪个手机盒发短信。
                                                      函数原型:function SendSms(const nos, msg: WideString; devid: Smallint): WideString;

                                                      DeleteSms --- 删除短信的函数;有2个参数:
                                                          id 短信标识号,函数按id删除短信;
                                                          devid 手机盒标识号,表示删除哪个手机盒的短信。
                                                      函数原型:DeleteSms(const id: WideString; devid: Smallint): WordBool;

                                                      QueryAT --- 向手机盒发送AT指令,返回手机盒响应内容,主要用于测试;有3个参数:
                                                          cmd --- AT指令;
                                                          mlines --- 返回内容是否有多行;
                                                          devid 手机盒标识号,表示向哪个手机盒发AT指令。
                                                      函数原型:QueryAT(const cmd: WideString; mlines: WordBool; devid: Smallint): WideString;

                                                      SIM300Setup --- 设置手机盒音量等参数,成功返回True;有1个参数:
                                                          devid 手机盒标识号,表示设置哪个手机盒的参数。
                                                      函数原型:SIM300Setup(devid: Smallint): WordBool;

                                                      DoDial --- 拨号函数,成功返回True,失败可用GetEroroCode查询原因;有2个参数:
                                                          no 拨出号码;
                                                          devid 手机盒标识号,表示用哪个手机盒拨号。
                                                      函数原型:DoDial(const no: WideString; devid: Smallint): WordBool;

                                                      DoAnswer --- 接听电话函数,摘机,有1个参数:
                                                          devid 手机盒标识号,表示接听哪个手机盒电话。
                                                      函数原型:DoAnswer(devid: Smallint): WordBool;

                                                      DoHold --- 挂断电话函数,挂机,有1个参数:
                                                          devid 手机盒标识号,表示挂断哪个手机盒电话。
                                                      函数原型:DoHold(devid: Smallint): WordBool;

                                                      AllowSendDTMF --- 检查是否处于通话中,返回True,表示在通话中,可以发送应答拨号音;有1个devid参数。
                                                      函数原型:function AllowSendDTMF(devid: Smallint): WordBool;

                                                      SendDTMF --- 在通话过程中,按语音提示输入应答内容,例如提示选择数、密码、账号等;有2个参数:
                                                          str 应答的字符串,按语音提示格式输入;只能使用字符:'0'..'9', '*', '#', 'A'..'D';
                                                          devid 手机盒标识号。
                                                      函数原型:SendDTMF(const str: WideString; devid: Smallint): WordBool;

                                                      getCNUM --- 返回本机号码,当为空时,表示未设置本机号码;有1个devid参数。
                                                      函数原型:function getCNUM(devid: Smallint): WideString;

                                                      setThisPhoneNo --- 设置本机号码,成功时返回True;有2个参数:
                                                          no 要设置的本机号码,当为空时,表示清除本机号码;
                                                          devid 手机盒标识号。
                                                      函数原型:setThisPhoneNo(const no: WideString; devid: Smallint): WordBool;

                                                      getCSQValue --- 返回手机信号强度,整数值,0表示无信号,31表示信号最强,-1表示不能获取信号强度;有1个devid参数。
                                                      函数原型:function getCSQValue(devid: Smallint): SYSINT;

                                                      ShowWaiting --- 显示提示窗口,有3个参数:
                                                          Caption 窗口标题;
                                                          Tip 提示内容;
                                                          MilliSeconds 提示窗口显示时间长度,单位毫秒,到时自动关闭;或调用CloseWaiting提前关闭。
                                                      函数原型:ShowWaiting(const Caption, Tip: WideString; MilliSeconds: Integer);

                                                      CloseWaiting --- 强行关闭提示窗口。
                                                      函数原型:procedure CloseWaiting;

                                                      AboutBox --- 显示OCX控件版本。
                                                      函数原型:procedure AboutBox;

                                                      ReadSimBooks --- 按索引号(存放位置)读取SIM卡中的电话号码和姓名,成功时返回True;有4个参数:
                                                          index 电话号码在SIM卡中的存放位置,即索引号;
                                                          no 电话号码,返回值;
                                                          name 姓名,返回值;
                                                          devid 手机盒标识号。
                                                      函数原型:ReadSimBooks(index: Smallint; var no, name: WideString; devid: Smallint): WordBool;

                                                      ReadSimBooksAll --- 返回SIM卡中的所有电话号码,1行1个号码,即号码之间分隔符为回车和换行符;有1个devid参数;返回的内容可调用ExtractSimBooks提取电话号码和姓名。
                                                      函数原型:function ReadSimBooksAll(devid: Smallint): WideString;

                                                      ExtractSimBooks --- 从返回的字符串中按行提取电话号码和姓名,提取成功时返回True;有4个参数:
                                                          str 要分析的字符串,即ReadSimBooksAll返回的其中1行内容;
                                                          index 电话号码在SIM卡中的存放位置(索引号),返回值;
                                                          no 电话号码,返回值;
                                                          name 姓名,返回值;
                                                      函数原型:ExtractSimBooks(const str: WideString; var index, no, name: WideString): WordBool;

                                                      AddSimBooks --- 向SIM卡中添加电话号码,成功时返回True;有4个参数:
                                                          no 电话号码;
                                                          name 姓名;
                                                          index 在SIM卡中的存放位置(索引号),一般采用0,即自动按顺序存放;
                                                          devid 手机盒标识号。
                                                      函数原型:AddSimBooks(const no, name: WideString; index, devid: Smallint): WordBool;
                                                          
                                                      DeleteSimBooks --- 删除SIM卡中的电话号码,成功时返回True;有2个参数:
                                                      【相关文章】
                                                      高深商GSM无线固话盒OC…
                                                      【同类文章】
                                                      WIFI接口来电显示管理器…
                                                      新一代USB转COM口来电…
                                                      来电管理器故障排除的方法
                                                      在WIN7或Win8中注册…
                                                      计算机收发短信的OCX控件…
                                                      使用Java开发来电显示管…
                                                      开发来电显示及录音程序的C…
                                                      C#来电显示管理器开发示例…
                                                      使用C#的Socket开发…
                                                      一个用JavaScript…

                                                      广州高深商电子技术有限公司

                                                      地址:天河北路908号、高科大厦B座2704
                                                      电话:020-38259081、38258857
                                                      电子邮箱:gaoykosen@foxmail.com

                                                      彩神Ⅴll