2013年8月21日 星期三

日本電話來電顯示(SHARP JD-4C2CL-W)

前幾天到日本旅遊,逛 yodabasi 時看到了一台好漂亮的室內電話(SHARP JD-4C2CL-W),在台灣的賣場並沒看過這樣的機型,想到老婆常常抱怨家裡的無線電話有問題,剛好趁這個機會,幫家裡的電話進行升級。
圖片引用自 http://www.sharp.co.jp/in-phone/

ONVIF -- 各種平台上可使用的測試工具

工作上常常需要使用不同的 ONVIF 軟體來測試 IPCAM 對於 ONVIF 的支援能力,其中最常用的ONVIF測試工具,主要是 Windows 作業系統的兩個軟體,如下:
  • ONVIF Test Tool
  • ONVIF Device Manager

鑑於不同的作業系統可能會提供不同的 ONVIF 測試軟體,以下特別對此作一整理。

2013年8月15日 星期四

Blogger Utilities

在撰寫 blog 的時候,會用到一些第三方開發的工具。以下將這些工具作一整理。

1. Blogger 編輯文章,如何加入繼續閱讀的功能
此部份請參考 Blog語法研究室的文章 『新版Blogspot範本有「繼續閱讀」的功能』。

2. 多層樹狀標籤
基本原理是使用 google blogger 的小工具『標籤』,並更改其 Java Script,這邊我是使用 WFU 所提供的樹狀標籤,可參考以下兩個URL。
http://wayne-fu.blogspot.tw/2013/01/multi-tree-label-update.html
http://wayne-fu.blogspot.tw/2012/06/multi-tree-label-1.html

3. 幫部落格文章自動定標籤
雲標籤
http://amanda0626.blogspot.tw/2013/05/blog-post_24.html
http://www.playpcesor.com/2007/11/sitetag.html

4. Blogger 設定電子郵件發文的功能
Blogger平台提供透過電子郵件發文的功能,其用法如下:
  1. 以您的帳號密碼登入,進入 [ 管理後台 ]。
  2. 到右側邊欄位點選【設定】的【行動裝置及電子郵件】。
  3. 在[ 以電子郵件傳送 ] 的 [ 使用電子郵件張貼 ] 右邊空白欄位輸入一組代碼,再加上前後的 ******.您的代碼@blogger.com ,即為您的發文專用的電子郵件。
  4. 在右上角按【儲存設定】即可完成。

5. Blogger 熱門文章
Blogger平台提供了許多小工具,使用其提供的熱門文章就很好用了。

6. Blogger 張貼程式碼
這邊提供我常用的兩個方法 
方法一:
當文章中需要加入程式碼時,首先切換到 HTML 編輯模式,在文章的最前方加入使用以下程式碼
<style type="text/css"><!--
code {
display:block;
overflow:auto;
font-family:"Courier New";
white-space:pre;
background:#F0F0F0 url(images/CodeBlock.png) repeat-y scroll left top;
border:1px solid #CCC;
margin:5px 15px 0;
padding:5px 5px 5px 20px;
line-height:1.2em;
max-height:80;
width:90%;
}
</style>
在程式碼的前方與後方分別加上<code></code>,如下:
<code>-(void)saveImage:(UIImage*)image        toAlbum:(NSString*)albumName        withCompletionBlock:(SaveImageCompletion)completionBlock;
</code> 
顯示的結果為 -(void)saveImage:(UIImage*)image toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock; 

方法二:
使用免費的 highlight 程式,幫忙產生對應的 html code,再複製到 blogger。
註:另外建議這個放程式的方法,很棒,但我還不會用。

2013年8月7日 星期三

ONVIF -- 如何產生正確的 TopicSet

針對 ONVIF 13.06 test tool 的測試案例 ACCESSCONTROL-12-1-1,進行測試時,
在 Step 4 Validate topics XML representation. 會發生錯誤。

問題是 Test tool 認為 GetEventPropertiesResponse 的 xml 不合法,
錯誤訊息為 "tns1:Configuration/tns1:VideoEncoderConfiguration must be respresennted by a non-qualified element"

查詢event.wsdl內的GetEventPropertiesResponse,可得知問題與 TopicSet 的設定有關,
以下便針對 GetEventPropertiesResponse 內如何產生 TopicSet 作一討論

2013年8月4日 星期日

[xcode] 清除 recent memu

打開 xcode,裡面常常出現許多已經沒有使用的 Project,下面的操作可以將 Project list 整個清空。
  1. Launch Xcode
  2. Select File->Open Recent->Clear Menu
  3. Right-click the Xcode icon and select "Show All Windows". You should now see only your current document in the recents list at the bottom
  4. Quit Xcode. The recents list should now only be populated with your single current project.

FFMPEG -- RTSP and RTP over HTTP

QuickTime 4.1 在 Transport Capability 上,增加了 RTSP
RTSP 可以透過 application/x-rtsp-tunneled,使用 HTTP tunnel 的方式來進行溝通


若要在ffmpeg下使用 RTSP over HTTP,其用法如下:
AVDictionary *opts = 0; if (usesTcp) { int ret = av_dict_set(&opts, "rtsp_transport", "tcp", 0); } err = avformat_open_input(&avfContext, filename, NULL, &opts); av_dict_free(&opts);


參考資料
1. RTSP_Over_HTTP.pdf
2. QuickTime Streaming Server Modules Programming Guide
3. http://stackoverflow.com/questions/14459513/rtsp-tunneled-http-ffmpeg
ttps://developer.apple.com/quicktime/icefloe/dispatch028.html
4. State Machine http://docs.lscube.org/rtsp.xhtml


2013年8月2日 星期五

gSOAP -- Empty Element Tag 的產生規則整理

若一個 xml elemnt 為空,一般有兩種表示方式。
<tag></tag>
<tag />

那麼當使用 gSoap 建議的 onvif schema 產生程式碼後,如何確認哪些函數會生成 <tag />的形式呢?
gSOAP 的 stdsoap2.c中會透過soap_element_start_end_out()函數產生 "/>" 的標籤,而透過 onvif schema 所產生的程式碼,主要會透過呼叫 stdsoap2.c其中的三個函數 soap_element_href(), soap_element_null(), soap_element_nil()來產生 "/>" 的標籤。 
由於 gSoap 會自動根據 wsdl 產生 header file, 接著自動產生程式碼。
因此若我們想要強制其產生</>,則不應該手動呼叫上述的三個函數,
而應該了解其生成原理。藉著修改wsdl, 或是 header file, 來達成此功能。

2013年8月1日 星期四

[Embedded] TFTP 使用舉例

今天因為手殘,結果更新ipcam韌體失敗,一開機就出現了 kernal panic。只好複習一下使用 uboot 更新韌體的方法。以下將今天的作法作一記錄。

TFTP Server (使用 ubuntu v12.04)

1. 用apt-get直接裝TFTP server套件。
sudo apt-get install tftpd-hpa

2. 視需要修改設定值
視需要修改/etc/init/tftpd-hpa.conf, /etc/init.d/tftpd-hpa, /etc/default/tftpd-hpa
可使用 "ps -A|grep tftp" 檢視是否服務有正確啟動
若沒有正確啟動,執行下列命令 sudo service tftpd-hpa restart
3. 將要傳輸的檔案放置到 /var/lib/tftpboot
例如: cp uImage_ipnc_DM365 /var/lib/tftpboot
註:若在Windows環境,可使用這個 tftp server http://tftpd32.jounin.net/