發表文章

目前顯示的是 1月, 2018的文章

Arduino + HC-05 簡單紀錄

幾個重點: 1.進入AT-command mode:     (1)  hc-05上的KEY腳位(或是EN腳位)先接高電位           Vcc在接高電位即可進入AT command mode     (2) 一般模式:hc-05上的LED快速閃爍           AT command mode: hc-05上的LED緩慢閃爍,約兩秒暗一次     (3) 用softwareSerial跟hc-05的rx、tx溝通的時候,softwareSerial的baud rate要設成38400           也就是SoftwareSerial BT;  BT.begin(38400);     (4) AT command mode的通訊協定的結尾字元是\r\n (CR&NL)           所以Arduino IDE在即時監視視窗的結尾字元要選正確才看的到回傳資料     (5) 實用指令           AT >>> 若通訊OK則會回傳OK           AT+NAME=Burwei >>> 把hc-05的藍芽名稱改為Burwei(其他裝置搜尋時會看到的名字)           AT+PSWD=1119 >>> 把其他裝置要跟hc-05配對時,要使用到的密碼改成1119                                                (預設是0000或1234)           AT+UART? >>> 查看hc-05在藍芽通訊時所用的baud rate為何 2.一般模式,與其他裝置傳輸訊息     (1)  baud rate要改成9600           也就是SoftwareSerial BT;  BT.begin(9600);     (2)  注意另一端接收所需的結尾字元(我常常用readline,所以要放\n在最後不要忘了)     (3) 收的時候有兩招都能work           (i) 用char包起來,也就是char ch = BT.read(); Serial.print(ch);          

Linux中查看文件檔的工具od,file

圖片
Linux中有幾個指令 可以用來查看文件檔 還蠻好用的 就直接帶個範例來試試了

Debug心得: signal處理後要還原

在做signal的handler的設定時 最好在用完想要的功能之後要還原回原本系統設定的signal預設值 BUG:         我在server的地方因為用fork來處理每一個新client         所以我在fork之前都做了signal(SIGCHLD,SIG_IGN);         但就因為這樣,所以我之後wait到的child pid都是-1(系統設定的,wait的man page有寫)         得到這種東西: strerror(errno)=No child processes         所以我就讀不出child process的exit stauts  SOLUTION:         在fork完之後,給個處理新client的process一開始就做         signal(SIGCHLD,SIG_DFL);         就可以了 好了,今天的筆記到此結束 希望有幫助未來遺忘這些的自己,以及需要的人

用wait取得exit status

圖片
這篇是延伸自 fork的文章 裡面提到的wait函式 那篇裡面只有簡單的使用wait避免產生zombie process 而今天這篇的重點是在exit status的取得 是一個還蠻實用的技巧 以下是一個簡單的小範例實驗