资源简介
UE4串口里面封装了蓝图可调用接收数据,与读写数据,详细里面有说明,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操作模块
- 下一篇:设计一电路,让8个灯轮流点亮
相关资源
- 解读AT89C2051遥控接收器电路设计原理
- 红外转串口通信含原理图和程序
- Modbus协议官方文档中、英文全
- 易语言OTG串口通信
- delphi 串口通讯
- STM32蓝牙和串口程序
- LCD显示温度+串口接收温度.rar
- VisualStudioUninstaller vs卸载工具
- WPF USB 网络 串口 通信软件
- 组态王驱动开发包3.0.0.7(中文)
- 多窗口后台鼠标连点器
- 使用选择性重传协议实现UDP可靠通信
- DELPHI与西门子200PLC的串口通信实例
- Verilog FPGA UART串口控制器
- USB转串口驱动,FT232R驱动程序,最新
- VC 获得文件属性 获取文件的创建时
- 读者写者问题(读者优先,写者优先
- 用VC 编写的仿QQ聊天室程序源代码
- PC -- 单片机的串口数据传输系统设计
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- 外点法程序
- 外罚函数程序
- PC 串口调试软件
- qt-电子点菜系统
- 51单片机读取温度数据存储到SD卡中并
- 推箱子及人工智能寻路C 源代码
- 自己写的航空订票系统c 版--数据结构
- 数据结构实验魔王语言
- MUSIC算法c 实现
评论
共有 条评论