開發來電管理器的動態連接庫 |
gao在2007/10/24發表,被瀏覽9761次
|
為了減輕二次開發人員的開發時間,提高效率,我們對編程要求比較高的底層接口、通信協議、串口、USB接口等的操作進行了整理、封裝,推出便于大家理解和使用的DLL文件。 點擊下載調用動態庫:JD2000Dll.zip 在JD2000DLL.Dll動態連接庫中提供了以下函數供大家使用。 OpenDevice 打開設備 Closedev 關閉設備 SetReadNo 設置來電中斷的程序入口 SetKeyPress 設置電話按鍵、振鈴、摘機、掛機中斷的程序入口 SetPort 設置來電設備的端口 SetWavein 設置語音數據產生時的程序入口 FindJDDevs 查找設備,看設備安裝在哪個端口 LineStatus 檢測電話線狀態(掛機或摘機狀態) 建議用LineStatusChanl替代 Dialup2100 舊款2100的撥號命令 DialupChanl 電話撥號命令,在指定的線路上撥號 LineStatusChanl 檢測某一電話線狀態(掛機或摘機狀態) StartWaveIn 開始指定線路的錄音 StopWaveIn 停止指定線路的錄音 SetHandup 模擬指定線路摘機或掛機 PlayWavData 在指定線路播放語音 PlayWavAbort 在指定線路終止正在播放語音 PortSet 設定設備的通訊端口 BaudrateSet 設定設備的COM口波特率 PortGet 獲取設備的通訊端口名稱 BaudrateGet 獲取設設備的COM口波特率 ReadFactryID 讀取設備的廠商ID ReadDevID 讀取設備號 ReadDevVer 讀取設備的軟件版本號 ReadDevModel 讀取設備型號 以下是有關各函數的詳細說明: function OpenDevice(): Integer //功能: 打開設備 //參數: 無 //返回: 整數 0--成功 其它失敗 //說明: 要使用JD-2000,就必須打開設備,只有設備打開就后才可以進行其它的操作;打開設備時所用的端口時是上次設定的端口,端口的類型保存在應用程序所在文件夾的文件JD2000S.INI中,如下描述,端口為 COM1 波特率為 460800bps [objState] Port=COM3 BaudRate=0 (BaudRate= 7 或 沒有此行 波特率=9600; =13 波特率=115200 =0 波特率=460800) function Closedev(): Integer //功能: 關閉設備 //參數: 無 //返回: 整數 0--成功 其它失敗 //說明: 在結束程序前應關閉設備 function SetReadNo(Addressf: Pointer Of function ): Integer //功能: 設置來電中斷的程序入口 //參數: Addressf: 來電中斷程序的入口地址 //返回: 整數 0--成功 其它失敗 //說明: 來電中斷程序是這樣的一個過程(以下是DELPHI格式的聲明,其它的聲明方法在各自的示例中) procedure TelReadNo(Telno: PChar;time: PChar; DevID: PChar) //Telno: 來電號碼,字符串型 //Time: 來電時間,字符串型 格式為 yyyy-mm-dd HH:MM(年)-月-日) 時):分) //DevID: 設備號, 字符串型 發生來電的設備(電話線號) //在你的程序中先定義一個上面的過程,通過SetReadNo函數把入口地址傳給DLL,就跟你在程序中的事件代碼一樣,當有來電發生時DLL會自動調用這段程序。實現DLL與你應用程序的連接。 function SetKeyPress(Addressf: Pointer Of function ): Integer //功能: 設置去電中斷的程序入口 //參數: Addressf: 去電中斷程序的入口地址 //返回: 整數 0--成功 其它失敗 //說明: 去電中斷程序是這樣的一個過程(以下是DELPHI格式的聲明,其它的聲明方法在各自的示例中) procedure TelKeyPress(Key: PChar; DevID: PChar) //Key: 去電按鍵,字符串型 //DevID: 設備號, 字符串型 發生按鍵的設備(電話線號) //在你的程序中先定義一個上面的過程,通過SetKeyPress函數把入口地址傳給DLL,就跟你在程序中的事件代碼一樣,當有設備發生按鍵時DLL會自動調用這段程序。實現DLL與你應用程序的連接。 //注意:不是所有的來電管理器都有去電檢測功能。具體的型號請于供應商聯系。或直接向高深商公司聯系。 function SetWavein(Addressf: Pointer Of function):Integer; stdcall; external JD2000DLLFILE; //功能 設定錄音數據產生時的中斷服務程序入口 //參數: Addressf: 錄音數據產生時中斷程序的入口地址 //返回: 整數 0--成功 其它失敗 //說明: 錄音數據產生中斷程序是這樣的一個過程(以下是DELPHI格式的聲明,其它的聲明方法在各自的示例中) procedure TelWavein(wavestring: PChar; Size: Integer; DevID: PChar); //wavestring: 語音的采樣數據 數據的格式如下 // 單通道 PCM編碼 8位數據 采樣率:8000/s //Size: 返回數據的長度 //DevID: 來電的線路號 //有語音數據返回時要運行的過程原型 //在你的程序中先定義一個上面的過程,通過SetWavein函數把入口地址傳給DLL,就跟你在程序中的事件代碼一樣,當有設備發生按鍵時DLL會自動調用這段程序。實現DLL與你應用程序的連接。 //注意:只有帶錄音功能的來電管理器才會在錄音時產生事件。具體的型號請與供應商聯系。或直接向高深商公司聯系。 function SetPort(): Boolean //功能: 設置設備于電腦連接的端口 //參數: 無 //返回: 布爾 True--成功 False 失敗 //說明: 如果設置成功,端口的類型保存在應用程序所在文件夾的文件JD2000S.INI中,下次打開時會按你設定的端口類型打開,在JD2000S.INI中有關端口描述如下 [objState] Port=COM1 function FindJDDevs(Ports: PChar): Boolean; //功能 查找來電管理設備所連接的端口 //返回 是否成功 True成功 False失敗 //如果成功 連接設備的端口名稱會列在Ports中 //Ports 至少要有256字節長度 function LineStatus: Integer; //功能 檢測電話線路是否有撥號音 //返回 0有撥號音 其它沒有撥號音 //注意 本函數僅對JD-2100型的設備有效 // 調用本函數需要1秒鐘才有返回 function Dialup2100(TelNo: PChar): Integer; //功能 撥出電話號碼 號碼保存在TelNo //返回 成功返回 0 其它 失敗 //注意 本函數僅對JD-2100型的設備有效 function LineStatusChanl(Chanl: Integer): Integer; //參數 Chanl 線路號 取值范圍:0,1,2,3 //功能 檢測電話線路是否有撥號音 //返回 0有撥號音 其它沒有撥號音 //注意 本函數僅對JD-2100型的設備有效 function DialupChanl(TelNo: PChar; Chanl: Integer): Integer; //參數 TelNo 撥出電話號碼 // Chanl 線路號 取值范圍:0,1,2,3 //功能 撥出電話號碼 號碼保存在TelNo //返回 成功返回 0 其它 失敗 //注意 本函數僅對JD-2102, JD-2102型的設備有效 function SetHandup(ishandup:Integer; Chanl: Integer): Integer; //功能 模擬電話摘機或掛機 //參數 ishandup 摘機或掛機 0--掛機 1--摘機 // Chanl 線路號 取值范圍:0,1,2,3 //返回 成功返回 0 其它 失敗 //注意 本函數僅對JD-2102, JD-2102型的設備有效 // 摘機后10秒,設備將自動掛機,如要保持在摘機狀態, // 必須在10秒內再發送一次本命令,每發一次可保持10秒 function StartWaveIn(Chanl: Integer): Integer;stdcall; //功能 開始錄音 //參數 Chanl 線路號 取值范圍:0,1,2,3 //返回 成功返回 0 其它 失敗 //注意 本函數僅對JD-2301, JD-2304型的設備有效 // 在掛機情況下無語音數據返回 function StopWaveIn(Chanl: Integer): Integer; //功能 停止錄音 //參數 Chanl 線路號 取值范圍:0,1,2,3 //返回 成功返回 0 其它 失敗 //注意 本函數僅對JD-2301, JD-2304型的設備有效 // 在掛機情況下無語音數據返回 function SetWavein(pp: TDevOnWaveIn):Integer; //功能 設定錄音數據產生時的中斷服務程序入口 //無返回 function PlayWavData(wavedata:Pointer;Size: Integer; Chanl: Integer): Integer; //功能 開始播音音 //參數 wavedata 要播音的數據放在 wavedata所指向的緩沖區 大小為 Size // Chanl 線路號 取值范圍:0,1,2,3 //返回 成功返回 0 其它 失敗 //注意 本函數僅對JD-2301, JD-2304型的設備有效 // 在掛機情況下播音音數據不會被播出 function PlayWavAbort(Chanl: Integer): Integer; //功能 停止播音 //參數 Chanl 線路號 取值范圍:0,1,2,3 //返回 成功返回 0 其它 失敗 function PortSet(ports: PChar):Boolean; //功能 設置設備的通信端口 //參數 ports :字符串 設備接在PC的端口名稱 如"COM1" "COM2" "COM3" "HID" ....等 //返回 布爾型:成功返回 True 失敗 False function BaudrateSet(br:Integer):Boolean; //功能 設置串口設備的通信波特率 //參數 br :整數 br的有效值只有3個 9600,115200,和460800, 其它數字無效。 本函數僅對串口或虛擬串口的設備有效。 在閃綠等的產品中,本參數無效。 //返回 布爾型:成功返回 True 失敗 False function PortGet:PChar; //功能 獲取設備的通信端口設置 //參數 無 //返回 字符串:成功 返回設備的端口名稱如"COM1" "COM2" "COM3" "HID" ....等 // 失敗 返回空串 function BaudrateGet:Integer; stdcall; //功能 獲取設備的通信端口波特率 //參數 無 //返回 整數:成功 通信端口波特率 數值是3個中的一個 9600,115200,和460800 // 失敗 -1 function ReadFactryID: PChar; //功能 獲取設備的廠商ID //參數 無 //返回 字符串:成功 返回設備廠商ID 默認值為 "KOSEN CO.TD" // 失敗 返回空串 function ReadDevID: Integer ; //功能 獲取設備號 //參數 無 //返回 數值:0-255 默認值 255 function ReadDevVer: PChar; //功能 獲取設備的軟件版本號 //參數 無 //返回 字符串:如 "V20.11" function ReadDevModel: PChar; //功能 獲取設備的型號 //參數 無 //返回 字符串:如成功返回字符串 "MODEL=JD-2000" 否則返回空串。 下載調用動態庫的DELPHI示例: JDDllpas.rar 下載調用動態庫的VB示例:JDDllvb.rar 下載調用動態庫的C++Builder示例:JDDllcb.rar
|
|
|
|