|
要使用Channel API或是Frame API,其決定端視你應用程式的需求及個人喜好而定。Channel API由於提供較簡單的方法來存取CAN network,因此較為受歡迎。使用Channel API,NI-CAN軟體會將CAN所傳遞的原始未經處理的raw data轉換成在設定channel時所使用的物理單位。然而,Frame API提供較低階的函數及功能來存取CAN network,因此在某些情況下會建議使用Frame API。下面列出需要使用Frame API的狀況有哪些:
1. 目前你所發展的應用程式其使用的NI-CAN版本為1.6或先前的版本。
2. 你需要針對你的裝置完成一個"命令/反應"的傳輸介面,換言之,你的應用是傳送命令給你的裝
置,然後裝置再傳送反應回來。
3. 你需要針對的你的裝置使用remote frames。若使用Channel API則不支援這項功能。
4. 你的CAN communication需要和DAQ卡片的資料擷取任務做同步的動作。相較於Channel API,
Frame API提供更低階的RTSI功能,因此更適合進階的同步動作。
5. 目前你使用的是NI USB-847x介面。USB-CAN產品並不支援Channel API或CAN Objects。你可以利用
Frame API來控制USB-CAN,但是有些函數的使用會有所限制。相關受限的函數,可以參考下面的連
結所提供的文件說明。
注意:針對同一個CAN介面,你不能同時使用Channel API和Frame API。如果你針對CAN0使用Frame API,你就不能執行另ㄧ個呼叫Channel API的程式來控制CAN0。如果你有雙埠的CAN卡片,你可以針對不同的介面,使用不同的API。
|