Angefangen zweiten Sensor Readout zu implementieren. Funktioniert auch teils

This commit is contained in:
AlphaCapella
2026-02-01 20:12:22 +01:00
parent 2c301b76cf
commit fd112fe5ce
22 changed files with 164 additions and 35 deletions

View File

@@ -1,13 +1,33 @@
#include <vector>
#include <cstdint>
#include <windows.h>
#include <iostream>
struct Quaternion {
float w, x, y, z;
};
#pragma pack(push, 1)
typedef struct {
uint8_t StartByte;
uint8_t SensorAddress;
float qw;
float qx;
float qy;
float qz;
uint8_t EndByte;
} QuaternionData;
#pragma pack(pop)
HANDLE initSerialPort (const char* portName, DWORD baudRate);
bool readSerialData (HANDLE hSerial, char* buffer, DWORD bufferSize, DWORD& bytesRead);
bool readSerialData (HANDLE hSerial, uint8_t* buffer, DWORD bufferSize, DWORD& bytesRead);
bool parseQuaternion(const std::string& data, Quaternion& quat);
void checkPacketSize();
void printBufferHex(const std::vector<uint8_t>& buffer, const std::string& label);
int linux_initSerialPort();
bool linux_readSerialData(int serialPort, char* buffer);
bool linux_readSerialData(int serialPort, char* buffer);
std::vector<uint8_t> extractPacket(std::vector<uint8_t> &buffer);
bool parseBinaryPacket(std::vector<uint8_t> &packetData, Quaternion &quat);