簡訊貓JAVA二次開發包SMSLib,org.smslib.TimeoutException: No response from device解決方案

來源:互聯網
上載者:User

        最近在Linux環境下利用開源組件SMSLib,開發簡訊貓應用,經常遇到這個錯誤,發現網上也有很多朋友遇到過這個問題,現在將解決這個問題的方案分享給大家。


開發環境:

            Linux ReadHat5.4   64位,核心:2.6.33.20 ,JDK1.6,SMSServer-3.5.2.jar


異常資訊:

圖1-1


解決方案:

遇到這個異常時,請檢查以下二個方面:

1、是否啟用輪循模式

方式1)、在jvm中,添加-Dsmslib.serial.polling啟動參數

方式2)、在JAVA代碼中,在調用startService之前,顯示啟用輪循模式

Service.getInstance().S.SERIAL_POLLING = true;//啟用輪循模式

2、建立串口網關對象時,是否設定了正確的簡訊貓裝置生產廠商

SerialModemGateway gateway = new SerialModemGateway("modem.com1", "/dev/ttyUSB1", 9600, "Wavecom", "型號");

參數說明:

 modem.com1:網關ID(即簡訊貓連接埠ID,多個簡訊貓時,用於標識是由哪個口發出的簡訊)
 /dev/ttyUSB1:串口名稱(USB轉串口,簡訊貓中的所有連接埠自動被作業系統映射到/dev/目錄下,以ttyUSB*開頭的檔案上,前提是系統預裝有USB轉串口的驅動),註:Linux下2.6.32以上核心已預裝USB串口裝置驅動,如果低版本的核心,未檢測到USB裝置,則需要自己安裝驅動或升級核心。

 9600:傳輸速率,根據二次開發包中的CommTest.java測試程式,檢測你的裝置所支援的傳輸速率。

 Wavecom:生產廠商名稱,必須設定正確,否則SMSLib在初始裝置時,會報No response from Device異常,原因是SMSLib為不同的生產廠商,有相應的AT指定介面實現,見:

圖1-2

在“圖1-1“中,是因為我在建立串口網關對象是,指定了廠商名稱為“HuaWei“,所以報了1-3所示異常:

圖1-3

 型號:可以不用指定,如果指定了型號,SMSLib在初始化裝置的時候,會找特定型號的AT指令實作類別,如果沒找到有可能會出現初始化裝置異常,但據我測試,如果沒有找到指定廠商指定的型號的AT指令實現,會去指定廠商的通用實現介面

    以上異常是基於SMSServer-3.5.2在Linux環境下開發所遇到的一些問題,和大家分享,Window上也會有相類似的問題,可參考上面的解決思路去尋找解決方案,另外簡訊貓二次開發包還有其它的廠商進行了底層AT指令的封裝,比如:jindiJavaSms(金笛)開發包,用它時,我也遇到了類似的問題,解決方式也和上面差不多,只不過可能參數有些不同,在這裡不做詳細介紹,如有遇到同樣問題的朋友,歡迎大家討論!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.