2014-01-09 34 views
11

我想創建一個程序來模擬CAN端口,用於另一個大型應用程序的測試目的。程序應該通過這個虛擬CAN發送先前記錄的數據。任何人都有這種事情的經驗?如何在linux上創建虛擬CAN端口? (C++)

我在想建立虛擬COM,並通過它發送數據打包在CAN幀中。它可以工作嗎?我怎麼能在Linux上建立虛擬COM?發現這個線程Virtual Serial Port for Linux 但遺憾的是我不明白它怎麼能實現到程序的源代碼(在Linux下的初學linux用戶和程序員)。

很想看看你的經驗和建議。

+1

約SocketCAN及其用法的詳細信息'AF_CAN'頗爲相似'AF_UNIX' ....你可以只使用插座... –

回答

30

你需要SocketCAN驅動程序,可用現代的Linux發行版如Ubuntu等SocketCAN提供虛擬CAN端口驅動程序:

sudo modprobe vcan 
sudo ip link add dev vcan0 type vcan 
sudo ip link set up vcan0 

現在你可以在vcan0設備發送和接收CAN幀。維基百科文章提供了有關如何使用SocketCAN的簡單代碼示例。

您還需要can-utils用於測試目的。

你會發現eLinux.org