語言更改包括對Serial類的修改,對以太網庫添加DHCP和DNS支持,新的SoftwareSerial庫,SD庫中的多文件支持,對Wire庫和UDP類的修改等。
雖然Arduino團隊已經在1.0上努力工作,但我們一直在努力更新Michael Margolis的Arduino Cookbook,為了幫助你理解Arduino 1.0,我們分享Michael的附錄H,遷移到Arduino 1.0。
雖然Arduino Cookbook將在幾週內不會出版(或電子書),但您現在可以通過我們的早期版本開始採取行動:立即在oreilly.com上購買:
通過這個早期版本的Arduino Cookbook第2版,您可以獲得最早的書籍 - 作者的原始和未經編輯的內容 - 因此您可以在本書正式發布之前充分利用這些內容。您還會在進行重大更改時收到更新,以及最終的電子書版本。
附錄H.遷移到Arduino 1.0
雖然為使用Arduino 1.0的先前Arduino版本編寫草圖並不困難,但該版本需要注意重要的更改。啟動軟件時首先要注意的是IDE的外觀。某些圖標與以前版本的軟件不同,菜單中有更改和添加。處理選擇板時的錯誤消息已得到改進,並添加了新的ADK和以太網板。
更重要的是底層核心軟件和庫的變化。 1.0的目的是引入破壞性的更改,這些更改將為未來的增強工作鋪平道路,但會破壞為舊軟件編寫的代碼。新的頭文件意味著舊的貢獻庫將需要更新。以太網和線路中的方法已經更改,並且打印功能存在細微差別。
Streams已添加了新功能(任何使用的基礎類 。打印()
語句),以太網,有線(I2C)和低電平輸入/輸出。
已經對庫處理依賴關係的方式進行了改進,並簡化了對新板的支持。由於這些變化,第三方庫將需要更新,儘管許多流行的庫可能已經更新。
用於草圖的文件擴展名已更改為 .pde
至 .ino
區分處理文件與Arduino,並消除在錯誤的IDE中意外打開文件的不便。
在1.0 IDE中打開的草圖將從中重命名 .pde
至 .ino
保存文件時。重命名後,如果不更改擴展名,您將無法在舊版本中打開它們。如果您不希望重命名文件,則“文件”→“首選項”對話框中有一個選項可禁用此行為。
以下是1.0編譯為早期版本編寫的草圖所需進行的更改的摘要。您將在章節中找到有關這些的示例,包括串行,有線,以太網和庫。
遷移打印語句
如何改變一些 打印()
(要么 的println
) 被處理:
打印(字節)
現在將字節的整數值打印為ASCII字符,之前的版本發送實際字符。這會影響Serial,Ethernet,Wire或具有從Print類派生的類的任何其他庫。更改:
Serial.print(byteVal)
至:
Serial.write(VAL); //作為char發送
Serial.print(val,BYTE)
至:
Serial.write(VAL); //作為char發送
寫
將數據寫入類支持的設備的方法。簽名 寫
方法改變了 空虛
至 為size_t
返回寫入的字符數。如果您有一個派生自Print的類,則需要按如下方式修改write方法並返回寫入的字符數(通常為1)。更改:
無效寫
至:
size_t寫
Wire.send()
至:
Wire.write()
並改變:
Wire.receive()
至:
Wire.read()
其次,write方法需要常量參數的類型。您現在需要指定要寫入的文字常量參數的類型。所以,例如,改變:
寫(0x10),以
至:
寫((字節)為0x10)
遷移以太網語句
Arduino 1.0改變了以太網庫中的許多東西。
客戶端客戶端(服務器,80)
至:
EthernetClient客戶端;
並改變:
如果(client.connect())
至:
if(client.connect(serverName,80)> 0)
注意: client.connect
應測試值> 0以確保在檢測到負值時返回錯誤。
更改:
服務器服務器(80)
至:
EthernetServer服務器(80)
並改變:
UDP
至:
EthernetUDP
遷移庫
如果您的草圖包含任何未設計為1.0的庫,那麼如果它使用任何已用新Arduino.h文件替換的舊頭文件,則需要更改庫。如果您包含任何這些庫,請更改:
#include“wiring.h”#include“WProgram.h”#include“WConstants.h”#include“pins_arduino.h”
至:
#include“Arduino.h”
您可以使用條件包來使庫也可以在早期版本中進行編譯。例如,您可以替換 #include“WProgram.h”
以下內容:
#if ARDUINO> = 100 #include“Arduino.h”#else #include“WProgram.h”#endif
新流解析功能
Arduino 1.0引入了一種簡單的解析功能,可以從Stream派生的任何對像中查找和提取字符串和數字,例如:串行,有線和以太網。這些功能包括:
find(char * target); findUntil(char * target,char * term);的ReadBytes(緩衝液,長度); readBytesUntil(術語,緩衝液,長度); parseInt函數(); parseFloat();