硬體介面開發之Modem來電顯示

2021-09-05 21:38:10 字數 2880 閱讀 7200

本文介紹下如何實現modem的來電顯示的功能。modem的來電顯示是在我最早的送水管理軟體中實現的,大概是05年完成的,由於modem的成本比較低(普通的在100元之內),而來電顯示功能在送水管理軟體中比較需要,因此是一項價效比比較好的功能。

隨著時間的推移,modem的生產越來越少,而支援來電顯示模組的modem就更少一些了,取而代之是功能比較專一的來電顯示盒橫行天下,一般usb來電顯示盒都可以支援2路、4路、8路等等,但是usb來電顯示盒較貴,modem由於價效比比較好,市場上依然還繼續出現。本篇主要介紹如何實現modem的來電顯示,下篇將繼續介紹基於usb的來電顯示盒的介面開發。目前在我的送水軟體中,為了兼顧兩者的好處,一般是整合了兩個硬體的功能,隨便選乙個硬體都可以使用來電顯示功能。

看看modem來電顯示的應用場景,在送水軟體中,鏈結一台**(modem只能連線一台**),當有客戶的**接入的時候,軟體會提示使用者的資訊,並進入下訂單的介面,如下所示。

這樣非常方便業務員的資訊輸入,同時還可以調出更多客戶的相關資訊,如客戶的賬號資訊,購買記錄作為預設這次訂單的操作等,達到優質服務的目的。如下這個改進版的送水軟體的來電顯示功能就提供了客戶財務資訊,預設上次的購買記錄等資訊。

modem的來電顯示功能需要下面所需的前提條件。

一、 實現來電顯示的系統最小需求。

1. 你的固定**已經向電信局申請開通了來電顯示功能,若沒有申請,即使modem支援也是不行的。

2. 安裝了modem的專用驅動軟體(

注意不要使用windows如xp自帶的驅動程式)。

3. modem支援來電顯示。不管是內建modem,外接modem,只要它支援來電顯示即可。

二、怎麼判斷modem是不是支援來電顯示?

1. 開啟超級終端,隨便輸入乙個連線名稱,比如test。

2. 按確定後,下個視窗中,看到你的modem,不要輸入**號碼。再下一步。

3. 在這個視窗中按取消。

4. 這樣乙個可以輸入的空白視窗就有了。

輸入:at回車

如果出現ok,說明modem支援at指令,不然,其他也不用試了。

然後輸入下面的命令(每條前面加上at),只要一條反應有ok,就說明modem本身晶元支援來電顯示。

#cid=1

%ccid=1

+vcid=1

#cc1

*id1

三、modem 驅動安裝的問題

如果您的作業系統是windows 2k/xp,當安裝modem驅動程式的時候,會自動安裝作業系統自帶的modem驅動,而此驅動程式只能支援資料傳送(即只能用來撥號上網,而沒有傳真和語音功能)。所以您必須公升級modem的驅動程式,並且在公升級的時候手工指定到跟隨modem的光碟中的驅動程式(而不讓系統自己搜尋)。並且在公升級完之後重新啟動系統。

下面介紹如何在c#中實現來電顯示模組的功能。

modem的來電顯示需要乙個和串列埠打交道的控制項apax control,它是乙個activex的控制項,原則上可以應用在任何語言中,本文只介紹在c#中的應用。

首先需要註冊activex控制項,然後在開發ide中引用控制項,把控制項拖動到介面上,如下所示。

然後生成目錄會多出幾個檔案,如下所示。

在**中,我們可以再form_load方法中初始化控制項的一些屬性。如下**所示。

//設定來電顯示控制項的屬性

this

.axapax1.enablevoice 

=true

;this

.axapax1.visible 

=false

;this

.axapax1.tapistatusdisplay 

=false

;this

.axapax1.tapianswer();

this

.axapax1.onring 

+=new

eventhandler(axapax1_onring);

this

.axapax1.ontapicallerid 

+=new

iapaxevents_ontapicallerideventhandler(axapax1_ontapicallerid);

然後我們就只需要關注axapax1_onring和axapax1_ontapicallerid處理函式了,如下**所示

//////

來電響鈴後的處理事件

///private

void

axapax1_onring(

object

sender, eventargs e)

//////

來電響鈴後的處理事件

///private

void

axapax1_ontapicallerid(

object

sender, iapaxevents_ontapicalleridevent e)

最後關閉程式的時候要釋放資源,否則會出現com錯誤的,**如下所示。

//////

清理所有正在使用的資源。

///protected

override

void

dispose(

bool

disposing)

portal.gc.dispose(); 

//伍華聰 

if(disposing)

}base

.dispose(disposing);}

用PowerBuilder開發來電顯示軟體

用powerbuilder開發來電顯示軟體 是企業與使用者聯絡的主要方式,怎樣快速的得到使用者的資訊並與企業自身的管理系統結合起來.目前常用的有 兩種方式 一是採用 語音卡,二是採用usb介面的來電顯示接收盒.由於語音卡本身 比較貴,使用也不方便,本文 採用usb來電顯示盒來實現.usb來電顯示 盒...

用Delphi開發來電顯示管理軟體

1 建立如下form 2 在各按鈕的click事件中,分別寫入如下 procedure tform1.button1click sender tobject begin 埠可直接設定,例如埠為usb,port usb if telecomport1.setupport then memo1.line...

Android硬體開發之 藍芽技術

藍芽 bluetooth 是一種短距離的無線通訊技術標準。這個名子 於10世紀丹麥國王harald blatand,英文名子是harold bluetooth。在無線行業協會組織人員的討論後,有人認為用blatand國王的名字命名這種無線技術是再好不過了,這是因為blatand國王將挪威 瑞典和丹麥...