廣州高深商電子技術有限公司 用戶登錄
用戶注冊 ......
首頁 公告 收款機 抽獎機 來電管理 數據采集 臺球燈控 軟件開發 綜合 會員下載 發貨查詢
幸运农场官方网站
當前位置:首頁>> 來電管理>> 二次開發 >>正文
高深商GSM無線固話盒OCX控件二次開發說明
gao在2017-9-18發表,被瀏覽2829 此文章共有 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個參數:
發表評論 評論人 評論共 0 條   發表時間
【相關文章】
E型控制開關接線示意圖
來電管理器返回數據處理庫函數
來電顯示管理器在安卓系統的…
【同類文章】
WIFI接口來電顯示管理器…
新一代USB轉COM口來電…
來電管理器故障排除的方法
在WIN7或Win8中注冊…
計算機收發短信的OCX控件…
使用Java開發來電顯示管…
開發來電顯示及錄音程序的C…
C#來電顯示管理器開發示例…
使用C#的Socket開發…
一個用JavaScript…

幸运农场官方网站

地址:天河北路908號、高科大廈B座2704
電話:020-38259081、38258857
電子郵箱:[email protected]