發表文章

目前顯示的是 5月, 2013的文章

HFP for Linux 無法和智慧手機配對使用?

圖片
HFP for Linux 是一個在Linux上實作藍牙Hands-free profile的程式, 簡單講就是可以電腦變成藍牙耳機。這是一個開源碼的專案, 大約在2008-2009年間熱烈地進行, 之後由於主要程式貢獻者Samr7不見了,整個專案可以說是停了下來了。最後一次程式修改是在2010年四月。 專案活動情形可以由 http://www.ohloh.net/p/nohands 看到。 我在試這支程式時,發現一個現象:較舊的手機可以正常的運作,但是新的智慧手機就不行。其實也不是不行,而是程式一開始會先進行手機的找尋(Inquiry),在此就找不到,因此後續的功能也自然無法使用。其實手機找尋(Inquiry)的動作是很有討論性的,也是令人混淆的。因為作業系統本身就己經做過一次這個動作了, 不管是使用blueman或者是預設的藍牙管理程式,都是必須先和手機做配對。可是nohands這支程式還是要自己做一次:   而且它的找尋(Inquiry)動作相當的快,一般都要約20秒,它只要5秒。 因為由藍牙規格來說,HFP並不會和硬體有太大的相關,所以我想這支程式雖然是幾年前開發的,但HFP 1.5也還是很有相容性才對。其實我手上有一隻Nokia BH-100的藍牙耳機是2007年買的,它就運作的很正常。因此大膽猜測,應該只是nohands在做手機的找尋(Inquiry)時,也許做了什麼事情,因此把新手機排除在外了! 首先使用hcidump程式來觀察是否底層Inquiry時就出問題,還是nohands本身自己其實有Inquiry到,但是自己另外做了篩選動作: $ sudo hcidump HCI sniffer - Bluetooth packet analyzer ver 2.4 device: hci0 snap_len: 1028 filter: 0xffffffff < HCI Command: Inquiry (0x01|0x0001) plen 5     lap 0x9e8b33 len 4 num 0 > HCI Event: Command Status (0x0f) plen 4     Inquiry (0x01|0x0001) status 0x00 ncmd 1 > HCI Even

Python Gtk glade開發GUI程式

圖片
最近看到幾個有趣的軟體使用的開發技術很有意思: Python, GTK, Glade Python: 由Google主推的高階直譯語言,強調其容易學習使用。 GTK: 用來建立GUI的底層軟體。 Glade: 設計UI的工具,可以視覺化的以所見即所得方式來作業。 有意思的地方: 1. Python為高階直譯,所以馬上寫馬上可執行,不需編譯 2. 看文件強調為跨平台,所以寫一次可在多個平台跑 3. 為開源碼,意即為自己用不用花錢 4. 開發方式簡單 在MacOSX上,在10.7(Lion)做了以下測試: 1. 先用Macport安裝python 2.7 (因為太久前做的,已忘了確切作法,可以參考以下網址:http://astrofrog.github.io/macports-python/) 2. 再去安裝PyGTK(http://macpkg.sourceforge.net/) 取得PyGTK.pkg後,按兩下後,出現安裝精靈,大致上就是下一步,下一步的做就可以了,最後會告訴你去跑一下/opt/gtk/bin/pygtk-demo, 這其實是一支python程式,內容: #! /usr/bin/env python import sys import os.path pygtklibdir = os.path.join("/opt/gtk/lib", "pygtk", "2.0") sys.path.insert(0, pygtklibdir) execfile(os.path.join(pygtklibdir, "pygtk-demo.py")) 不用學過python程式設計,也大概可以猜到它只是去叫另一支python程式起來而已。執行結果如下: 使用方式為:選取左邊選項,可以在右邊看到該項的說明及程式寫法(要切換頁籤)如果要看到其實際執行情況,就在左邊選項上按兩下就可以了。先簡單的試用後發現,命令列總是會出現 : clip: empty path.以及其他錯誤訊息。有時候還會有程式當掉的情況,但簡單的程式是還可以正常的執行。看來,在MacOSX上,這個開發組合模式,還有一些問題要改善。 3. 找一個簡單的