資源簡介
UE4串口里面封裝了藍(lán)圖可調(diào)用接收數(shù)據(jù),與讀寫數(shù)據(jù),詳細(xì)里面有說明,4.24.3版本親測可用,串口編碼等等

代碼片段和文件信息
//based?off?the?“Arduino?and?C++?(for?Windows)“?code?found?at:?http://playground.arduino.cc/Interfacing/CPPWindows
#include?“Serial.h“
#include?“Windows/AllowWindowsPlatformTypes.h“
#include?“Windows/MinWindows.h“
#include?“Windows/HideWindowsPlatformTypes.h“
#include?“..\Public\Serial.h“
#include
?#include
?#include
?using?namespace?std;
#define?BOOL2bool(B)?B?==?0???false?:?true
USerial*?USerial::OpenComPort(bool?&bOpened?int32?Port?int32?BaudRate)
{
USerial*?Serial?=?Newobject();
bOpened?=?Serial->Open(Port?BaudRate);
return?Serial;
}
int32?USerial::BytesToInt(TArray?Bytes)
{
if?(Bytes.Num()?!=?4)
{
return?0;
}
return?*reinterpret_cast(Bytes.GetData());
}
TArray?USerial::IntToBytes(const?int32?&Int)
{
TArray?Bytes;
Bytes.Append(reinterpret_cast(&Int)?4);
return?Bytes;
}
float?USerial::BytesToFloat(TArray?Bytes)
{
if?(Bytes.Num()?!=?4)
{
return?0;
}
return?*reinterpret_cast(Bytes.GetData());
}
TArray?USerial::FloatToBytes(const?float?&Float)
{
TArray?Bytes;
Bytes.Append(reinterpret_cast(&Float)?4);
return?Bytes;
}
USerial::USerial()
:?WriteLineEnd(ELineEnd::n)
?m_hIDComDev(nullptr)
?m_OverlappedRead(nullptr)
?m_OverlappedWrite(nullptr)
?m_Port(-1)
?m_Baud(-1)
{
//?Allocate?the?OVERLAPPED?structs
m_OverlappedRead?=?new?OVERLAPPED();
m_OverlappedWrite?=?new?OVERLAPPED();
FMemory::Memset(m_OverlappedRead?0?sizeof(OVERLAPPED));
FMemory::Memset(m_OverlappedWrite?0?sizeof(OVERLAPPED));
}
USerial::~USerial()
{
Close();
//?Delete?allocated?OVERLAPPED?structs
delete?m_OverlappedRead;
delete?m_OverlappedWrite;
}
bool?USerial::Open(int32?nPort?int32?nBaud)
{
if?(nPort?0)
{
UE_LOG(LogTemp?Error?TEXT(“Invalid?port?number:?%d“)?nPort);
return?false;
}
if?(m_hIDComDev)
{
UE_LOG(LogTemp?Warning?TEXT(“Trying?to?use?opened?Serial?instance?to?open?a?new?one.?“
“Current?open?instance?port:?%d?|?Port?tried:?%d“)?m_Port?nPort);
return?false;
}
FString?szPort;
if?(nPort?10)
szPort?=?FString::Printf(TEXT(“COM%d“)?nPort);
else
szPort?=?FString::Printf(TEXT(“\\\\.\\COM%d“)?nPort);
DCB?dcb;
m_hIDComDev?=?CreateFile(*szPort?GENERIC_READ?|?GENERIC_WRITE?0?NULL?OPEN_EXISTING?FILE_ATTRIBUTE_NORMAL?|?FILE_FLAG_OVERLAPPED?NULL);
if?(m_hIDComDev?==?NULL)
{
unsigned?long?dwError?=?GetLastError();
UE_LOG(LogTemp?Error?TEXT(“Failed?to?open?port?COM%d?(%s).?Error:?%08X“)?nPort?*szPort?dwError);
return?false;
}
FMemory::Memset(m_OverlappedRead?0?sizeof(OVERLAPPED));
FMemory::Memset(m_OverlappedWrite?0?sizeof(OVERLAPPED));
COMMTIMEOUTS?CommTimeOuts;
//CommTimeOuts.ReadIntervalTimeout?=?10;
CommTimeOuts.ReadIntervalTimeout?=?0xFFFFFFFF;
CommTimeOuts.ReadTotalTimeoutMultiplier?=?0;
CommTimeOuts.ReadTotalTimeoutConsta
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2020-04-17?09:39??SerialPortUE4\
?????文件???????61970??2017-05-29?10:18??SerialPortUE4\Example.jpg
?????文件???????52429??2017-05-29?09:08??SerialPortUE4\Example2.jpg
?????文件???????45113??2017-05-29?10:02??SerialPortUE4\Example3.JPG
?????文件??????208635??2017-05-29?10:30??SerialPortUE4\Example4.JPG
?????文件??????131491??2017-06-07?09:29??SerialPortUE4\Example5.JPG
?????文件?????????995??2020-04-17?09:28??SerialPortUE4\Read.txt
?????文件????????9350??2020-04-17?09:05??SerialPortUE4\Serial.cpp
?????文件???????10192??2020-04-17?09:05??SerialPortUE4\Serial.h
- 上一篇:易語言RAR操作模塊
- 下一篇:設(shè)計一電路,讓8個燈輪流點亮
評論
共有 條評論