2014年6月24日 星期二

Dos command : MODE & batch script

臨時接到一個任務
配合工廠燒錄, 必須實作一個偵測serial port的程式
在偵測到板子接上PC時, 要能透過這隻程式, 將serial port丟給TeraTerm script
然後重啟板子進入燒錄模式

剛開始使用Visual studio 2010即碰上許多設定上的困擾
畢竟畢業之後就沒再使用過, 即使網路很多參考範例
我也沒把握能在一兩天內完成這個功能

索性拜Google大神所賜, 找到了  mode  這個command

此指令能列出目前的com status
於是我利用此指令, 搭配batch的parsinge string功能
達到了將serial port丟給TTL的動作
省去了很多時間
否則光想到要再用VS寫, 就覺得很浪費時間
殺雞焉用牛刀呢

除了Linux下的script,
透過這次經驗又習得了batch script
也許在某些神人眼中是很微不足道的
但對我來說也是一大進步







1. 在執行VS的編譯過程中, 遇到了以下問題
 

     LINK : fatal error LNK1123: 轉換成 COFF 時失敗: 檔案無效或損毀

    查詢之後才知道, 原來在

                      C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
                      C:\Windows\Microsoft.NET\Framework\v4.0.30319
     皆存在著  cvtres.exe這個檔案, 
     只要把 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin 內的
     cvtres.exe 改名字, 問題就解決了, 因為這個版本是 10.00.xxx, 比較老的.
  2. 在VS建立專案時, 專案的屬性設置要記得設定
     還有很多眉眉角角, 之前買的MFC程式設計也沒有什麼時間看
     其實每天練習一個範例, 現在實力也會不同吧  呵呵
     平日的累積很重要, 雖然不知何時會用到, 但是上天不會讓努力白費的

   






2014年6月11日 星期三

Script 有感

最近接到的任務大多需要撰寫script
gsensor 測試程式, pack image tool...etc
所以在script上面小有進步
加上臥龍小三書籍的加持, 真覺得script 非常好用

在跟日本同事的合作中, 也注意到了自己粗心的部份, 真是很好的學習

簡單記錄script用到的幾個技巧

1. xargs 
    不常使用但其實很方便的指令, 可以將前次輸出結果做為此次輸入參數
    例如
    cat result.log | awk '{file=$1}END{print file}' | xargs -i cp {} destination
    由於cp需要兩個輸入參數, 所以搭配-i 及{} 將前面的輸出結果一個一個傳給cp指令
    若像是rm 此種指令, 則 xargs rm 及可.

2. awk 
    這指令的好用一時寫不完
    就拿這次實作來說
    awk {print "X="$1 "Y="$2 "Z="$3} /sys/class/input/gsensor/value
    此為將/sys/class/input/gsensor/value 內的三個資料分別以 X=xx Y=xx Z=xx的格式顯示
    亦或
    cat value.log | awk '{sum+=$3}END{print sum}' | cat $sum > result.log
    將value.log內的第三個資料累加(awk 一次讀取一列資料), 並且將結果轉向至 result.log
    我想這並不是最簡潔的寫法, 但目前現階段  我的能力僅只如此

3. find 
    搭配 -prune -o 可過濾掉不需要的資料夾/檔案
    例如 : find dirpath -path './proc/*' -prune -o -print | sort >> /dev/stdout
    過濾掉proc資料夾的內容, 並且排序後輸出結果
    其中   './proc/*' & './proc' 會產生不同的結果
    而'./proc/'  等於未加 -prune時的結果

4. 指令上色
    不是很重要的功能, 只是提高可讀性
    例如 : echo -e '\033[0;31;1m'
               echo ">>>> Pass"
               echo -e '\033[0m'
    則 >>>>Pass 顯示紅色

5. tar
    tar時可過濾掉不需要的資料夾, 運用 --exclude=file 此參數
    但若是資料夾很多時可以這樣處理
    EXCLUDE=""
    FILER=(
    ".git"
    )
    for i in "${FILER[@]}" ; do
        EXCLUDE="$EXCLUDE --exclude=$i"
    done 
    tar -jcvf file.tar.bz2 ${EXCLUDE} file_dir

    但要注意的是, 設定的資料夾名稱不只過濾第一層, 只要含有此資料夾關鍵字, 皆會過濾
    後來改用別的做法
     tar -jcvf file.tar -T file.list file_dir 
     輸入一file list給tar, 讓tar針對裡面的內容打包

6. 執行script的過程中
    可以使用 bash -x xxx.script來debug


與其說是script功能, 不如說是提升了指令的運用性






2014年5月18日 星期日

vim的設定檔

在LINUX下coding時, 大多使用vim,
在此記錄vim的設定檔, 以利之後再次設定

// 按下Tab鍵會轉化為4個空格
: set smartindent
: set tabstop=4
: set softtabstop=4
: set shiftwidth=4
: set expandtab       // 用來控制是否將Tab轉化為空格, 不會改變檔案原本的狀態
                               // 而 retab! 會
: set hlsearch          // 搜尋字串反白
: set nu/nonu           //顯示行號
: set insearch          // 在關鍵字尚未鍵入完畢便顯示結果
: set ic                    // 搜尋忽略大小寫    
syntax on                //語法上色

多加了這些設定, 讓vim下的操作變得很方便
大大提升coding效率

另外記錄多視窗指令



以上參考如下文章

vim 命令圖解

.vimrc config

鳥哥的Linux


2014年4月30日 星期三

轉載 電腦鍵盤的小技巧

 
   今天在網路上發現的小技巧文章

  電腦鍵盤上你不知道的祕密!


   內容提到了 關於 

  
   windows鍵的一些小技巧, 覺得很實用
   藉由網誌記錄下來

   其中對我特別有用的幾個按鍵

   1. windows鍵 + L (直接鎖住螢幕)
   2. windows鍵 + E (打開  我的電腦)
   3. windows鍵 + TAB (3D顯示視窗) 好玩的  哈哈
   

   也是該寫點日誌記錄工作上的經驗及遇到的問題
   以往都是寫在筆記本上
   某些方時候還是由網路記載會比較彈性
 
   並且也要開始學著使用心智圖來design了