UE4中串口通信
記錄下以前的一個(gè)項(xiàng)目中用到的串口通信
當(dāng)時(shí)需求是一個(gè)HTC的VR項(xiàng)目,但是VR中的交互不再是HTC的手柄了,需要外接一個(gè)其他的硬件設(shè)備,通過(guò)獲取那個(gè)硬件設(shè)備中發(fā)來(lái)的數(shù)據(jù)在VR中應(yīng)用展示出來(lái)。因此是通過(guò)串口來(lái)后去外接設(shè)備的數(shù)據(jù),其實(shí)說(shuō)白了像HTC,COSMOS這種VR設(shè)備通過(guò)數(shù)據(jù)線鏈接電腦來(lái)傳輸數(shù)據(jù)展示的設(shè)備,都是通過(guò)串口來(lái)進(jìn)行通信的,因此串口通信使用范圍還是很廣泛的。
接下來(lái)說(shuō)下我使用的腳本來(lái)自于:https://github.com/RVillani/UE4Duino/releases/tag/2.2.5
提一句,腳本本人測(cè)試是4.23和4.24可用,其他版本還沒(méi)有過(guò)多的進(jìn)行測(cè)試。其他版本如果遇什么問(wèn)題或者報(bào)錯(cuò),可能需要自行調(diào)整下代碼。(代碼會(huì)在最后提供)
首先需要將頭文件跟源文件放在項(xiàng)目的Source的項(xiàng)目里,或者自己隨便新建一個(gè)類然后把.h和.cpp中的代碼對(duì)應(yīng)的復(fù)制進(jìn)去,然后編譯下,等編譯通過(guò)就行。(所有方法都可以在藍(lán)圖中調(diào)用)
需要注意的是要一開始(在begin里)打開串口,Port==端口號(hào),BaudRate==波特率,然后使用時(shí)需要判斷一下變量Serial是否有值,如果沒(méi)值請(qǐng)查看是否鏈接上,或者端口號(hào)是否填寫正確。打開串口有兩種方式,見下圖:


需要注意的時(shí),退出應(yīng)用時(shí)或者你切換Level后不需要串口了一定要調(diào)用ClosePort,否則不關(guān)閉的話,這個(gè)會(huì)一直被占用著,除非你直接拔掉數(shù)據(jù)線或者關(guān)機(jī),否則不會(huì)自動(dòng)關(guān)閉。
具體的內(nèi)容和注意事項(xiàng)就這些,下面直接上Git上的代碼。
以下是Serial.h的代碼
以下是Serial.cpp的代碼
本篇內(nèi)容就這些,最后給初學(xué)者或者初次接觸的人員一個(gè)提示,如果需要給外部的設(shè)備寫入代碼,可以利用Arduino軟件,內(nèi)容是用C++編寫的(emmm我也只用過(guò)這個(gè)軟件)
UE4中串口通信的評(píng)論 (共 條)
