mirror of
https://github.com/aprochazka/ProfilometerProbe.git
synced 2025-06-30 09:37:22 +02:00
More optimalizations and multithreading - 1FPS
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
CC = g++
|
||||
CFLAGS = -pthread -std=c++11 -Wall -Wextra -pedantic
|
||||
CFLAGS = -pthread -std=c++11 -Wall -Wextra -pedantic -O3
|
||||
LDLIBS = -lSDL2 -lSDL2_image
|
||||
SRCS = $(wildcard *.cpp)
|
||||
|
||||
|
@ -64,7 +64,6 @@ int Receiver::readCdcData(uint8_t (*character)[CDC_FRAME_SIZE]) {
|
||||
std::cerr << "Error in read" << std::endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
#if 0 // PRINT WHAT IS RECEIVED
|
||||
|
||||
for(int i = 0; i<CDC_FRAME_SIZE; i++)
|
||||
@ -77,7 +76,6 @@ int Receiver::readCdcData(uint8_t (*character)[CDC_FRAME_SIZE]) {
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -124,8 +122,6 @@ int Receiver::fillBuffer(){
|
||||
unsigned char character[CDC_FRAME_SIZE];
|
||||
std::vector<uint8_t> tempVec{};
|
||||
|
||||
Receiver::readCdcData(&character);
|
||||
|
||||
int i = -1;
|
||||
do {
|
||||
Receiver::readCdcData(&character);
|
||||
@ -186,15 +182,17 @@ void Receiver::bufferToDisplay(){
|
||||
currentBufferIndexMutex.lock();
|
||||
int buffIdx = currentBufferIndex;
|
||||
currentBufferIndexMutex.unlock();
|
||||
std::cout << buffIdx << std::endl;
|
||||
switch(buffIdx){
|
||||
case 0:
|
||||
std::cout << buffer1.size() << std::endl;
|
||||
dis->vectorToTexture(&buffer1);
|
||||
break;
|
||||
case 1:
|
||||
std::cout << buffer2.size() << std::endl;
|
||||
dis->vectorToTexture(&buffer2);
|
||||
break;
|
||||
case 2:
|
||||
std::cout << buffer3.size() << std::endl;
|
||||
dis->vectorToTexture(&buffer3);
|
||||
break;
|
||||
default:
|
||||
|
@ -32,11 +32,18 @@ void windowFlipThread(Displayer * displayerPtr){
|
||||
displayerPtr->flipThroughTextures();
|
||||
}
|
||||
|
||||
void WrapperBufferToDisplay(Receiver ** receiverPtr){
|
||||
(*receiverPtr)->bufferToDisplay();
|
||||
}
|
||||
|
||||
void receiverLoop(Receiver ** receiverPtr){
|
||||
std::vector<std::thread> displayThreads;
|
||||
while(1){
|
||||
|
||||
(*receiverPtr)->fillBuffer();
|
||||
(*receiverPtr)->bufferToDisplay();
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(3));
|
||||
|
||||
std::thread t2(WrapperBufferToDisplay, receiverPtr);
|
||||
t2.detach();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -15,4 +15,5 @@
|
||||
#include <mutex>
|
||||
#include <fstream>
|
||||
|
||||
#define CDC_FRAME_SIZE 50
|
||||
#define CDC_FRAME_SIZE 64
|
||||
#define CDC_FRAME_DELAY 1
|
||||
|
Reference in New Issue
Block a user