伽利略開(kāi)發(fā)板和BeeMail(四):程序庫的妙用
圖注:帶WiFi標簽的Arduino窗口
WiFi程序庫全面測試草圖
這個(gè)完全獨立的草圖腳本被用于測試WiFi功能。有關(guān)板卡的所有信息以及本地連接都會(huì )顯示出來(lái),同時(shí)測試能否調用Arduino網(wǎng)站的純文本頁(yè)面。如果頁(yè)面不存在,那么下一步便測試能否連接到google.com并返回有關(guān)“Arduino”的搜索結果。
SD Card
排除SD卡故障其實(shí)不是我檢驗WiFi之后完成的。我只檢驗排除了Python部分,準確地說(shuō),檢查是否獲取到所需數據。重要的是過(guò)程本身。然而排查Python對代碼部分于事無(wú)補。所以我將注意力放在了SD卡上。
將SD程序庫下載到MacOS
不幸的是MacOS伽利略板自主研制的Arduino IDE有一個(gè)漏洞,即使程序庫顯示已安裝,其中一些IDE還是無(wú)法調用。我不太清楚什么引起的Yocto / gcc snafu,但是看起來(lái)讀過(guò)Yocto上的這篇文章和linux.com中介紹的英特爾伽利略板,會(huì )有助于我排除故障。與此同時(shí)需要不斷修改,打開(kāi)終端,引導至Java文件夾,加入符號鏈接。
1. cd /Applications/ArduiG.app/Contents/Resources/Java
2. ln -s . hardware/tools/x86/i586-poky-linux-uclibc/usr/include/c++/4.2.1
解決嵌入式程序庫故障后,在A(yíng)rduino Intel Galileo IDE v1.5.3里SD程序庫并未像所聲明的那樣高亮顯示關(guān)鍵字。
Screen capture of the unhighlighted txt
The SD card library does not highlight.
圖注:非高亮顯示文檔的截圖
SD卡程序庫未高亮顯示
先不管那些。重點(diǎn)程序庫能夠編譯,代碼能正確運行就可以了。
將SD卡功能拆成小塊,然后再逐一解決出現的問(wèn)題。
符號鏈接工作區的情況更糟糕。SD卡程序庫示例文件并未在示例文件夾里出現。但在A(yíng)rduino網(wǎng)站的SD卡參考模塊卻能夠找到。
像我之前借助于備忘錄一樣,我嘗試用示例文件逐一解決如下問(wèn)題:
? SD卡是否初始化?
?Arduino草圖能否創(chuàng )建文件?
?Arduino草圖能否將目錄添加到文件?
?Arduino草圖能否讀文件?
?Arduino草圖能否刪除文件?
板卡初始化代碼測試通過(guò),但是在第二步里出現了問(wèn)題:SparkFun輔助教程代碼拒絕系統訪(fǎng)問(wèn)。這個(gè)問(wèn)題不在Intel Galileo SD程序庫,而是在底層C打開(kāi)外部文件命令中。由此導致任何試圖通過(guò)Arduino命令創(chuàng )建文件的辦法都行不通。于是我嘗試向一個(gè)原本不存在的文件中寫(xiě)入數據,卻導致Arduino進(jìn)程崩潰,沒(méi)辦法只能重啟。如果按照那樣操作,“**B0100000063f694”的代碼就會(huì )出現。測試時(shí)我通過(guò)對Linux控制臺添加加密狗,以及手動(dòng)創(chuàng )建文件建立一系列連接,這樣直接跳過(guò)了文件創(chuàng )建出現的問(wèn)題。在下一篇文章里我會(huì )詳細說(shuō)明。這一步讓我明白了測試文件也可以在計算機上創(chuàng )建并加入Intel Galileo SD卡的主目錄。
Intel Galileo SD卡的主目錄
圖注:帶以創(chuàng )建示例文件的Intel Galileo SD卡的主目錄
與創(chuàng )建文件相反,另一個(gè)需要具有示例代碼那樣的功能。
SD程序庫全局測試草圖
為創(chuàng )建文件我確定了一個(gè)工作區,以便我并入草圖,這樣其他技術(shù)人員也可以拿來(lái)用于測試。
一定記住,SD程序庫和系統命令都要求用Arduino能執行的C字符串編寫(xiě)(或者次之,Arduino文件自帶的s字符串),而非像Java那樣靈活的面向對象的字符串()。下邊冗長(cháng)的代碼顯示了如何實(shí)現其二者之間的譯碼并提示錯誤信息。
評論