mirror of
https://gitlab.fdmci.hva.nl/technische-informatica-sm3/ti-projectten/rooziinuubii79.git
synced 2025-08-03 03:45:00 +00:00
56 lines
2.2 KiB
C++
56 lines
2.2 KiB
C++
#ifndef KOBUKIPARSER_H //so that class cant be loaded twice
|
|
#define KOBUKIPARSER_H
|
|
|
|
#include <vector>
|
|
|
|
struct TRawGyroData {
|
|
int x, y, z;
|
|
};
|
|
|
|
struct TExtraInfo {
|
|
int HardwareVersionPatch, HardwareVersionMinor, HardwareVersionMajor;
|
|
int FirmwareVersionPatch, FirmwareVersionMinor, FirmwareVersionMajor;
|
|
int UDID0, UDID1, UDID2;
|
|
};
|
|
|
|
struct TKobukiData {
|
|
int timestamp, BumperCenter, BumperLeft, BumperRight;
|
|
int WheelDropLeft, WheelDropRight;
|
|
int CliffCenter, CliffLeft, CliffRight;
|
|
int EncoderLeft, EncoderRight;
|
|
int PWMleft, PWMright;
|
|
int ButtonPress1, ButtonPress2, ButtonPress3;
|
|
int Charger, Battery, overCurrent;
|
|
int IRSensorRight, IRSensorCenter, IRSensorLeft;
|
|
int GyroAngle, GyroAngleRate;
|
|
int CliffSensorRight, CliffSensorCenter, CliffSensorLeft;
|
|
int wheelCurrentLeft, wheelCurrentRight;
|
|
int digitalInput, analogInputCh0, analogInputCh1, analogInputCh2, analogInputCh3;
|
|
int frameId;
|
|
TExtraInfo extraInfo; // Add extraInfo member
|
|
std::vector<TRawGyroData> gyroData; // Add gyroData member
|
|
};
|
|
|
|
class KobukiParser {
|
|
public:
|
|
int parseKobukiMessage(TKobukiData &output, unsigned char *data);
|
|
TKobukiData data;
|
|
|
|
|
|
private:
|
|
int checkChecksum(unsigned char *data);
|
|
void parseBasicData(TKobukiData &output, unsigned char *data, int &checkedValue);
|
|
void parseIRSensorData(TKobukiData &output, unsigned char *data, int &checkedValue);
|
|
void parseGyroData(TKobukiData &output, unsigned char *data, int &checkedValue);
|
|
void parseCliffSensorData(TKobukiData &output, unsigned char *data, int &checkedValue);
|
|
void parseWheelCurrentData(TKobukiData &output, unsigned char *data, int &checkedValue);
|
|
void parseHardwareVersionData(TKobukiData &output, unsigned char *data, int &checkedValue);
|
|
void parseFirmwareVersionData(TKobukiData &output, unsigned char *data, int &checkedValue);
|
|
void parseXYZData(TKobukiData &output, unsigned char *data, int &checkedValue);
|
|
void parseDigitalAnalogInputData(TKobukiData &output, unsigned char *data, int &checkedValue);
|
|
void parseUDIDData(TKobukiData &output, unsigned char *data, int &checkedValue);
|
|
void parseExtraData(TKobukiData &output, unsigned char *data, int &checkedValue);
|
|
|
|
};
|
|
|
|
#endif |