【IE】安裝 Java


【目的】

  1. 在 IE8 安裝 Java。

【步驟】

  1. 下載Java並安裝。
    http://www.java.com/zh_TW/
  2. 以下步驟省略。

【驗證】

【參考】

  1. 在 Internet Explorer 中安裝 Java
    http://windows.microsoft.com/zh-TW/windows-vista/Install-Java-in-Internet-Explorer

【QT】xpm format


【目的】

  • xpm 格式可以直接內嵌於程式中。這邊將圖形檔案轉換成 xpm 格式。

【方法】

  1. 使用 convert,第一個參數是來源,第二個是目的檔。例如
    $ convert lena_std.png lena_std.xpm
  2. 寫一段程式,利用qt作格式轉換,將圖檔讀出再直接轉存成 xpm 格式。

【結果】

  1. 利用 convert 轉換後可用 vim 觀看。
    image
  2. 字串內容,以上面為例
    1. 256 256: 代表圖形長寬,目前圖形大小為 256 x 256。
    2. 246: 代表使用顏色數量,目前共有 246 色。
    3. 2: 每一個顏色以 2 個 ASCII 字母來代表。
    4. [空白] C #4C0C38: 表示符號與所代表的RGB值。如果RGB值為None表示不畫顏色或透明。

【驗證】

  1. 可以使用 eog,會顯示完整的圖形。
    image
  2. 如果使用 gvim 直接觀看,會看到圖形大致的輪廓。
    image

【附註】

  1. convert 有多種用法,可以參考 man。例如轉成 .h 檔 (為方便觀看,轉完之後有稍微排版一下)
    $ convert lena_std.png lena_std.h
    $ cat lena_std.h
    /*
      lena_std.h (PNM).
    */
    static unsigned char
      MagickImage[] =
      {
        0x50,0x36,0x0A,0x32,0x35,0x36,0x20,0x32,0x35,0x36,0x0A,0x32, 
        0x35,0x35,0x0A,0xE2,0x89,0x7D,0xDF,0x88,0x82,0xE2,0x85,0x76, 
        0xE3,0x88,0x7B,0xE2,0x8A,0x7B,0xE2,0x86,0x7B,0xE0,0x86,0x71, 
        0xDE,0x84,0x75,0xDD,0x84,0x6E,0xDE,0x8A,0x75,0xDF,0x81,0x6B, 
        0xDE,0x83,0x69,0xDB,0x84,0x6F,0xE0,0x7F,0x67,0xDD,0x81,0x74,
    ...

【參考】

  1. 用 QT Designer 來快速學習 QT(convert介紹)
    http://www.study-area.org/tips/qd/qt.html
  2. 将普通图片转换为QT中使用的XPM文件
    http://hi.baidu.com/codefish/blog/item/f798fb3168f57b10eac4af62.html

【Qt】Google code


【目的】

  1. 說明 Qt Creator 內的 subversion 功能。以 Google code 當例子。

【環境】

  1. Windows Vista
  2. Qt Creator
  3. SlikSVN

【步驟】

  1. 首先要讓系統可以支援 svn.exe 命令 ,這邊我是選 SlikSVN。
    http://subversion.apache.org/packages.html
  2. 下載完後點兩下直接安裝。
    image
  3. 建議安裝完之後重開機,試著在命令列下 svn. help。如果有回應就表示安裝 svn 的工作已經可以先告一個段落。
     image
  4. 接著先記一下Google Code 裡面的資料,記一下網址與密碼。密碼請記的點選
    googlecode.com password 取得。
    image
  5. 接著設定 Qt creator svn client  side 的功能。
    打開 Tools | Options | Subversion,先輸入剛剛的姓名與密碼。
    (註在Mac底下是在 Qt Creator | 偏好設定。 )
    image 
  6. 先從 Google Code Checkout 專案內容。
    File | New File or Project | Version Control | Subversion Checkout
    image
  7. 輸入剛剛 SVN 的資料。按 Next。 
     image
  8. 因為目前沒有 .pro 檔,所以會告訴你打開專案有誤。這是正常的。 
    image
  9. 開一個新的Qt4 Application。會提示說目錄已存在,這也是正常的。按 Next。
    image
  10. 接下來就會看到一個專案內的內定生成的檔案。這邊直接把檔案commit作測試。
    Tools | Subversion | Update Project。
    image
  11. 自動列出要Commit的檔案,可以用Checkbox控制要commit那些檔案。決定之後按 Commit。 
     image
  12. 接下來回 Google code 核對。在 trunk 會看到剛剛的檔案都傳上去了。 
    image

【後記】

  • 上面驗證 Qt creator 內 subversion 的功能,'

【問題】

  • 在 Mac 做 Svn checkout 時,會等待接受使用者接受 Fingerprint,但按按鍵卻無法送出回應命令。
    image
    A: 目前在 Mac 還是先用 svn command-line checkout。 之後改完檔案用 Qt Creator commit。

【參考】

  1. Setting up Subversion to work with Qt Creator
    http://www.kimrstewart.com/?p=9

【Parallel Port】


【目的】

  1. 了解 Parallel Port 的基本知識。

【硬體】

  1. Pins define
    (下圖只是簡略方向,以 wiki 上的說明為準)
    http://en.wikipedia.org/wiki/Parallel_port
  2. Port Direction  
    Data Port Out D0~D7
    Status Port In(read only) S0~S7
    Control Port In/Out C0~C7

【範例】

  1. Interfacing Example - 16 Character x 2 Line LCD
    http://www.beyondlogic.org/parlcd/parlcd.htm

【參考】

【Eggplant】 自動化測試工具


Eggplant http://www.apple.com/downloads/macosx/development_tools/eggplant.html

可利用VNC連到某台電腦,直接控制桌面做測試。

【參考】

  1. 软件自动化测试资源列表
    http://kb.cnblogs.com/a/1726041/
  2. 抓圖寫程式,SIKULI將改變世界
    http://www.techbang.com.tw/posts/1907-drawings-to-write-programs-sikuli-will-change-the-world

【Ovi】Map


Ovi 在芬蘭文是 window/door 的意思。Ovi Map 是 Nokia 所提供的一項多國地圖/圖資的免費服務。

【目的】

  • 嘗試安裝 Ovi map。

【裝置】

  1. Nokia 5800。

【前置動作】

  1. 我的手機目前是是 40.xx 版的,先更新到 50.0.005。
    *#0000# | 選項 | 檢查更新。
  2. 先準備一個 ovi 帳號。若沒有的話請連到 ovi.com 註冊。
    https://account.nokia.com/acct/register?serviceId=Ovicom&lid=registerherobtnnli&lang=zh-TW
    image

【步驟】

  1. 首先安裝 Ovi 地圖,基本步驟如下,照著提示就能安裝成功。
    進入手機功能表 | 商店 | 應用程式 | Ovi 地圖 | 下載並安裝。

【驗證】

  1. 嘗試由 A地 導航至 B地。(會知會下載語音包)

【問題】

  1. 如何下載其他國家的地圖,如美國/俄羅斯。
    http://www.nokia.com.tw/services/ovi-maps/download?intc=ncomexpserv-fw-ilc-bdy-con-na-ncomexpserv-tw-9-downloadovimapsbutton_282x43#/nokia-5800-xpressmusic/

【參考】

【8051】文字型 LCD


【目的】

  1. 在文字型LCD顯示文字。
  2. 自行造字。

【原理】

  1. HD44780 基本硬體接腳,總共 14 Pins
    1. Vss (GND)
    2. Vdd (+5V)
    3. Vo (LCD亮度控制,0 V最亮)
    4. RS (1:資料/0:指令)
    5. R/W (1:由LCD讀取資料/0:寫資料給LCD)
    6. E (致能LCD,負緣動作)
    7. D0 (LCD資料線)
    8. D1 (LCD資料線)
    9. D2 (LCD資料線)
    10. D3 (LCD資料線)
    11. D4 (LCD資料線)
    12. D5 (LCD資料線)
    13. D6 (LCD資料線)
    14. D7 (LCD資料線)
  2. 初始化與設定
  3. ASCII 輸出
  4. 自行造字

(TBD)

【程式碼】

【參考】

  1. LCD原理與控制
    http://faculty.stut.edu.tw/~wjshieh/8051/lcd.doc
  2. 使用8051製作LCD面板之三維動畫 - 逢甲大學
    http://myiecs.iecs.fcu.edu.tw/upload/paper_uni/902pdf/902020.pdf

【8051】Keil-C


【目的】

  1. 建立一個基本的工作環境。

【下載】

  1. http://www.keil.com/c51/,選擇所需要的 MCU。目前我是用 Atmel AT89C51。
    image
  2. 點選 C51 Evaluation Software。image
  3. 之後就是需要填寫你的一些資料才能繼續,之後就省略。

【使用】

  1. 先新增一個專案。(TBD)

【備註】

Keil-uVision 為目前的個人首選(1>2>3)。

  1. Keil-uVision
  2. Eclipse with SDCC(small device c compiler) plugin
  3. MIDE-51 with SDCC

【參考】

【QT】筆記兼FAQ


整理一下之後會用到的東西。 (未完)

  1. 如何安裝
    1. 如何在Ubuntu 9.10 環境安裝QT4
      A: 建議利用 Ubuntu軟體中心 安裝
    2. 如何在WinXP/VS2005環境安裝QT4
      A: 到 Qt 站點下載 QT4 套件安裝
    3. 如何在MacOs環境安裝QT4
    4. Qt Embedded的環境建構
      A: 參考
      http://blog.chinaunix.net/u3/91092/showart.php?id=1862993(未驗證)
      http://ftp.ie.vim.org/pub/trolltech/pub/qt/source/
    5. Qt for S60
      http://www.cnmsdn.com/html/201003/1270055782ID2919.html
      http://www.youtube.com/watch?v=cYffSxcbHus&feature=related
      http://www.youtube.com/watch?v=AKJsnUluU2E&NR=1
  2. 如何撰寫 Qt 程式(Ubuntu)
    1. 基本方式
      1. 先建立一個 hello.cpp
      2. 利用下面方式產生可執行檔
        $ qmake –project 
        $ qmake 
        $ make
    2. 使用Qt Designer(建議改用Qt Creator )
      1. 先使用Designer產生hello.ui
      2. 利用uic指令產生hello.h
        $ uic –o hello.h hello.ui
      3. 建立hello.cpp
      4. 基本上這是大約流程,不過建議改用(tbd, 先前是接Creator開發)
    3. 使用Qt Creator
      1. 整合性IDE,這邊不再多敘述。
  3. 如何撰寫Qt程式(Windows )
    1. 使用 Qt Creator
    2. 搭配VS 2005/VS add-in
  4. 程式架構
    1. 一個簡單的範例(Hello)
      #include <QtGui/QApplication>
      #include <QtGui/QLabel>
      
      int main(int argc, char *argv[])
      {
          QApplication app(argc, argv);
          QLabel label("Hello, world!");
          label.show();
          return app.exec();
      }
    2. HTML Tag 的使用
      QLabel label("<h2><span style=\"color: red;\">Hello</span>, world!</h2>");
    3. 為何程式裡面都要有下面這兩行
      QApplication app(argc, argv);
      app.exec();
    4. 甚麼是Signal/Slot
      直接使用 Qt Creator 裡面用 Go to slot 就可以像 MSVB 一樣規畫 click… 之後的動作。
      image
      A: 就我的想法,Signalr就是Send message,而Slot就是Revicer
      http://www.youtube.com/watch?v=c0HkTtUNxrw
  5. 先學會除錯
    1. 中斷點(和 MSVS 類似,有 watch 可直接看變數值)
      image
    2. qDebug
      1. 方法一
        #include <QtDebug>
        qDebug() << "Show this via qDebug\n"; 
      2. 方法二
        qDebug("Show this via qDebug”);
    3. Dialog
      1. QInputDialog::getText
      2. QInputDialog::getItem
        bool ok;
        QStringList list;
        list<<"male"<<"female";
        QString str = QInputDialog::getItem(this,"Sex","Please select sex",list,0,false,&ok);
        if ( ok ) {
            qDebug() << "Sex =" << str << "\n";
        } else {
            qDebug() << "Empty\n";
        }
      3. QInputDialog::getInteger
            
        bool ok;
        int i = QInputDialog::getInt(this, tr("Hello"),
                                          tr("Percentage:"), 25, 0, 100, 1, &ok);
        if ( ok ) {        
            qDebug("%i\n", i);
        } else {
            qDebug("Empty\n");
        }
      4. QInputDialog::getDouble
    4. MessageBox
      1. information
    5. 補充
      1. qDebug http://doc.trolltech.com/4.0/qtglobal.html#qDebug
      2. Dialog/MessageBox http://www.cnblogs.com/se7en/archive/2009/12/10/1621231.html
      3. Qt Examples and Demos | Dialogs | Standard Dialogs
  6. 資料型態與型態互換
    1. QStringList
    2. QString
      1. Int to Qstring/ QString::number(int)
      2. QString to Int/ QString().toInt()/ QString::number(100)
  7. Layout
    1. QFormLayout
    2. QGridLayout
    3. QHBoxLayout
    4. QVBoxLayout
  8. 基本類別
    1. QWidget
    2. QFrame
    3. QMainWindow
  9. 繪圖類別
    1. QPrinter
    2. QCanvas
    3. RenderArea
    4. 圖形處理 blur…
    5. 動畫(相簿功能)
  10. 閱讀文件
    1. 初級建議先看4.0 http://qt.nokia.com/doc/4.0/examples.html
  11. 如何發佈
    1. Windows環境
    2. Ubuntu環境
    3. Embedd環境
  12. 元件的使用 與 Layout
    1. QPushButton
      1. clicked()
    2. QLineEdit Class
      1. Length/ length()
      2. setText(Qstring *) / setText(tr(“string”))
      3. textChanged
      4. LayoutDirection
    3. Progress Dialog
    4. LCD
      1. ui->lcdNumber->display();
    5. Label
    6. Timer
    7. QtWebKit
      1. __qt_sender__.text
    8. Qthread http://www.youtube.com/watch?v=jfHM4pQSqt4&NR=1
  13. 自我評量
    1. 計算機
      參考 http://qt.nokia.com/doc/4.0/widgets-calculator.html (digitClicked)
    2. Dec2Hex
    3. 小畫家
      http://caterpillar.onlyfun.net/Gossip/Qt4Gossip/QPainter.html
      http://blog.csdn.net/iamdbl/archive/2007/05/29/1630129.aspx
    4. qt with sqlite
    5. qt with rs232
      http://files.codes-sources.com/fichier.aspx?id=50735&f=debug-devel%2fqextserialport%2fposix_qextserialport.cpp
      http://blog.xuite.net/cjy0503/mylife/14326585
  14. 後記
    1. 何為Qt Extended/Qtopia與Qt Embedded
      參考(1) Qt Software將不再維護Qt Extended
      http://zylix666.blogspot.com/2009/03/qt-softwareqt-extended.html
      參考(2) QT、QPE、Qtopia、Qt/Embedded、Qtopia Core 究竟是什麼?
      http://leterboy.wordpress.com/2007/03/19/qt、qpe、qtopia、qtembedded、qtopia-core-究竟是什麼/
    2. 複習 C++
      1. vector,可以想成array
        http://caterpillar.onlyfun.net/Gossip/CppGossip/vector1.html
  15. 參考
    1. Introduction to Qt4 toolkit
      http://zetcode.com/tutorials/qt4tutorial/introduction/
    2. Live and Learn(提供許多實用的技巧)
      http://www.cnblogs.com/se7en/
  16. 延伸
    1. 在Blackfin Linux上繪圖 (SDL, DirectFB & Qt)與影像的表現
      http://ctov.compotechasia.com/?p=145

【Qt】安裝與使用(Windows平台)


 

雖然在 Windows 平台有提供 Visual Studio/Eclipse 環境,不過建議以 Qt Creator 為主,方便跨平台間原始碼的管理。

【環境】

  • WinVista

【步驟】

  1. 下載 Qt 套件
    ftp://ftp.qt.nokia.com/qtsdk/qt-sdk-win-opensource-2010.03.exe
  2. 點兩下開始安裝,由於我不需 arm 的環境,所以目前先拿掉。
    image
  3. 之後步驟就省略,這邊只是做個記錄。安裝最後會提示啟動 Qt Creator,UI拉一拉就可以驗證了。

【問題】

【QT】安裝與使用(WinXP+VS2005)


【注意】

基於方便跨平台間原始碼的管理,建議以 qt-sdk-win-opensource(搭配mingw compiler)來代替Vs2005環境。

【環境】

【說明】

  • 在Win環境安裝與使用QT。
  • 安裝 Qt Add-in for VS 並利用Qt Designer加入一個 Push Button。
  • 編譯Qt4內附的範例。

【安裝】

首先安裝基本的QT套件。

  1. 下載 給 VS 用的 QT 套件
    ftp://ftp.trolltech.no/qt/source/qt-win-opensource-4.6.2-vs2008.exe
  2. 下載完後打開,按 Next
    image
  3. 選擇安裝路徑,我們採用內定的 C:\Qt\4.6.2
    image
  4. 跳過幾個步驟,安裝到最後可以選擇啟動範例。
  5. 選擇 Qt Linguist | Hello World
    image
  6. 畫面中間就是執行結果。
     image
  7. 上圖按 Lanuch,就會帶起真正的執行結果。
    image
  8. 上上圖按 Documentation,就是 Line by Line Walkthrough。
    image

如果有需要的話,再加入 QT4 VS Add-in 套件

  1. 到這邊下載 http://qt.nokia.com/downloads/visual-studio-add-in
  2. 打開,直接選 Next
    image 
  3. 展開後會發現給 VS 2005 用的
    image
  4. 安裝路徑設定,基本上就是一直按 Next 就可以安裝完成。
    image
  5. 打開 VS 2005 不過出現下面這個訊息(目前尚不知道原因)。
    image
  6. 新開專案,選擇 QT4 Project,名字是 hello
    image
  7. 選擇需要的 Lib
    image
  8. 幫你產生 Class
    image 
  9. 上面出現 QT 選單,點選右邊的 hello.ui
    image
  10. 就可以打開 QT Designer
    image
  11. 縮小視窗,並用拖曳的方式加入一個Push Button,先存檔(右上方那個磁片圖示)。
     image
  12. 回到VS,編譯並執行,下面就是執行結果,我們會發現Push Button出現了。
    image 

【使用】

基本上,透過上面的步驟,使用Qt就沒問題了,不過這邊說一下如何編譯QT內附的範例。

  1. 開始 | 程式集 | Qt by Nokia v4.6.2 | Qt4.6.2 Command Prompt
    image
  2. 進入範例目錄,打 qmake -tp vc hellotr.pro image
  3. 就像上圖,會出現給 VS 用的 hellotr.vcproj
  4. 使用以下步驟打開 VS
    開始 | 程式集 | Qt by Nokia v4.6.2 | Visual Studio with Qt4.6.2
    image
  5. 使用VS打開編譯後執行,接下來步驟就跟平常的VS的使用差不多。結果也就是跟你在文件上所看到的結果一樣,這邊就跳過了。

【Troubleshooting】

  1. Q: 找不到 qtmaind.lib
    image 
    A: 請將 Debug (上圖上紅框),改成Release。
        參考: http://www.qtcn.org/bbs/read.php?tid=7490

【參考】

【DLL Export Viewer】List Dll


DLL Export Viewer http://www.nirsoft.net/utils/dll_export_viewer.html

【目的】

  1. 解析 DLL 的 Function Name
  2. 尚有許多功能,還須研究

【步驟】

  1. 打開 DLL Export Viewer
  2. 指定 dll 檔,這邊以 winio 當例子。
    image
  3. Function Name 就是 dll 所 export 出來的。
    image
 

Ed32. Copyright 2008 All Rights Reserved Revolution Two Church theme by Brian Gardner Converted into Blogger Template by Bloganol dot com