made more changes

it compiles now
This commit is contained in:
2024-10-07 13:22:52 +02:00
parent e5c58bff81
commit fa221cf421
7 changed files with 48 additions and 14 deletions

1
.gitignore vendored
View File

@@ -12,3 +12,4 @@ src/C++/Driver/vgcore.42611
src/Socket/a.out src/Socket/a.out
src/C++/Driver/cmake_install.cmake src/C++/Driver/cmake_install.cmake
src/C++/Socket/a.out src/C++/Socket/a.out
src/C++/Driver/Makefile

View File

@@ -5,10 +5,10 @@ project(kobuki_control)
find_package( OpenCV REQUIRED ) find_package( OpenCV REQUIRED )
set(SOURCE_FILES set(SOURCE_FILES
src/CKobuki.cpp
src/CKobuki.h
src/KobukiParser.cpp src/KobukiParser.cpp
src/KobukiParser.h src/KobukiParser.h
src/CKobuki.cpp
src/CKobuki.h
src/main.cpp) src/main.cpp)
add_executable(kobuki_control ${SOURCE_FILES}) add_executable(kobuki_control ${SOURCE_FILES})

View File

@@ -153,6 +153,30 @@ src/CKobuki.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/kobuki_control.dir/build.make CMakeFiles/kobuki_control.dir/src/CKobuki.cpp.s $(MAKE) $(MAKESILENT) -f CMakeFiles/kobuki_control.dir/build.make CMakeFiles/kobuki_control.dir/src/CKobuki.cpp.s
.PHONY : src/CKobuki.cpp.s .PHONY : src/CKobuki.cpp.s
src/KobukiParser.o: src/KobukiParser.cpp.o
.PHONY : src/KobukiParser.o
# target to build an object file
src/KobukiParser.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/kobuki_control.dir/build.make CMakeFiles/kobuki_control.dir/src/KobukiParser.cpp.o
.PHONY : src/KobukiParser.cpp.o
src/KobukiParser.i: src/KobukiParser.cpp.i
.PHONY : src/KobukiParser.i
# target to preprocess a source file
src/KobukiParser.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/kobuki_control.dir/build.make CMakeFiles/kobuki_control.dir/src/KobukiParser.cpp.i
.PHONY : src/KobukiParser.cpp.i
src/KobukiParser.s: src/KobukiParser.cpp.s
.PHONY : src/KobukiParser.s
# target to generate assembly for a file
src/KobukiParser.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/kobuki_control.dir/build.make CMakeFiles/kobuki_control.dir/src/KobukiParser.cpp.s
.PHONY : src/KobukiParser.cpp.s
src/main.o: src/main.cpp.o src/main.o: src/main.cpp.o
.PHONY : src/main.o .PHONY : src/main.o
@@ -189,6 +213,9 @@ help:
@echo "... src/CKobuki.o" @echo "... src/CKobuki.o"
@echo "... src/CKobuki.i" @echo "... src/CKobuki.i"
@echo "... src/CKobuki.s" @echo "... src/CKobuki.s"
@echo "... src/KobukiParser.o"
@echo "... src/KobukiParser.i"
@echo "... src/KobukiParser.s"
@echo "... src/main.o" @echo "... src/main.o"
@echo "... src/main.i" @echo "... src/main.i"
@echo "... src/main.s" @echo "... src/main.s"

View File

@@ -4,13 +4,12 @@
#include <cstddef> #include <cstddef>
#include <iostream> #include <iostream>
// plot p; // plot p;
static std::vector<float> vectorX; static std::vector<float> vectorX;
static std::vector<float> vectorY; static std::vector<float> vectorY;
static std::vector<float> vectorGyroTheta; static std::vector<float> vectorGyroTheta;
KobukiParser parser;
// obsluha tty pod unixom // obsluha tty pod unixom
int set_interface_attribs2(int fd, int speed, int parity) int set_interface_attribs2(int fd, int speed, int parity)
{ {
@@ -267,16 +266,17 @@ void CKobuki::setSound(int noteinHz, int duration)
pocet = write(HCom, &message, 9); pocet = write(HCom, &message, 9);
} }
void CKobuki::startCommunication(char *portname, bool CommandsEnabled, void CKobuki::startCommunication(char *portname, bool CommandsEnabled, void *userDataL)
void *userDataL)
{ {
connect(portname); connect(portname);
enableCommands(CommandsEnabled); enableCommands(CommandsEnabled);
userData = userDataL; userData = userDataL;
int pthread_result; int pthread_result;
pthread_result = pthread_result = pthread_create(&threadHandle, NULL, KobukiProcess, (void *)this);
pthread_create(&threadHandle, NULL, KobukiProcess, (void *)this); if (pthread_result != 0) {
std::cerr << "Error creating thread: " << pthread_result << std::endl;
}
} }
int CKobuki::measure() int CKobuki::measure()
@@ -295,7 +295,7 @@ int CKobuki::measure()
// citat // citat
if (ok == 0) if (ok == 0)
{ {
loop(userData, data); loop(userData, parser.data);
} }
free(message); free(message);
} }

View File

@@ -30,12 +30,12 @@
#include <iomanip> #include <iomanip>
#include <chrono> #include <chrono>
#include <sstream> #include <sstream>
#include "graph.h"
#include "KobukiParser.h" #include "KobukiParser.h"
#include "graph.h"
using namespace std; using namespace std;
// typedef struct // typedef struct
// { // {
@@ -125,6 +125,7 @@ typedef long(*src_callback_kobuki_data) (void *user_data, TKobukiData &Kobuki_da
class CKobuki class CKobuki
{ {
public: public:
CKobuki() { CKobuki() {
stopVlakno = 0; stopVlakno = 0;
std::cout << "kobuki instantiated" << std::endl; std::cout << "kobuki instantiated" << std::endl;
@@ -159,13 +160,14 @@ public:
void doRotation(long double th); void doRotation(long double th);
void goToXy(long double xx, long double yy); void goToXy(long double xx, long double yy);
std::ofstream odometry_log; std::ofstream odometry_log;
TKobukiData data;
private: private:
KobukiParser parser;
int HCom; int HCom;
pthread_t threadHandle; // handle to the thread pthread_t threadHandle; // handle to the thread
int threadID; // thread id int threadID; // thread id

View File

@@ -1,7 +1,9 @@
#include "KobukiParser.h" #include "KobukiParser.h"
#include <iostream>
int KobukiParser::parseKobukiMessage(TKobukiData &output, unsigned char *data) { int KobukiParser::parseKobukiMessage(TKobukiData &output, unsigned char *data) {
//check if the checksum is correct //check if the checksum is correct
std::cout << "Parsing message" << std::endl;
int rtrnvalue = checkChecksum(data); int rtrnvalue = checkChecksum(data);
if (rtrnvalue != 0) if (rtrnvalue != 0)
return -2; return -2;
@@ -64,6 +66,7 @@ int KobukiParser::parseKobukiMessage(TKobukiData &output, unsigned char *data) {
// break; // break;
default: default:
checkedValue += length + 2; // Skip data block if nothing matches checkedValue += length + 2; // Skip data block if nothing matches
std::cout << "Unknown header: " << header << std::endl;
break; break;
} }
} }

View File

@@ -9,6 +9,7 @@ using namespace std;
CKobuki robot; CKobuki robot;
int movement(); int movement();
int checkCenterCliff(); int checkCenterCliff();
KobukiParser parser;
int main() int main()
{ {
@@ -17,14 +18,14 @@ int main()
// thread mv(movement); // thread mv(movement);
// mv.join(); //only exit once thread one is done running // mv.join(); //only exit once thread one is done running
checkCenterCliff(); // checkCenterCliff();
} }
int checkCenterCliff() int checkCenterCliff()
{ {
while (true) while (true)
{ {
std::cout << "cliffsensordata:" << parser.data.CliffSensorCenter << std::endl; std::cout << "cliffsensordata:" << parser.data.BumperCenter << std::endl;
} }
} }