diff --git a/src/cameras/cameraManager.cpp b/src/cameras/cameraManager.cpp index 9f83bee..22de152 100644 --- a/src/cameras/cameraManager.cpp +++ b/src/cameras/cameraManager.cpp @@ -48,7 +48,7 @@ int cameraManager::init(){ camera* cam = new camera(); cam->source = new VideoCapture(camID, CAP_ANY); cam->source->set(CV_CAP_PROP_FOURCC, CV_FOURCC('M', 'J', 'P', 'G')); - cam->source->set(CV_CAP_PROP_FPS , 120); + cam->source->set(CV_CAP_PROP_FPS , FPS_LIMIT_PSEYE); cam->path = camID; videoSources.push_back(cam); //valid camera added diff --git a/src/prog b/src/prog index e55dd9f..ae47743 100755 Binary files a/src/prog and b/src/prog differ diff --git a/src/threadweaver/debugging.hpp b/src/threadweaver/debugging.hpp index 48c6877..67bc360 100644 --- a/src/threadweaver/debugging.hpp +++ b/src/threadweaver/debugging.hpp @@ -10,10 +10,15 @@ #define CAMCORE 2 #define MERGECORE 3 +#define FPS_LIMIT_MERGE 160 +#define FPS_LIMIT_DRAW 160 + +#define FPS_LIMIT_PSEYE 90 + #define QU(x) #x #define QUH(x) QU(x) -#define VERSION_d 0.3 +#define VERSION_d 0.4 #define VERSION QUH(VERSION_d) #ifdef DBGMODE diff --git a/src/ui/drawer/uiDrawer.cpp b/src/ui/drawer/uiDrawer.cpp index 1d4487c..4735e3f 100644 --- a/src/ui/drawer/uiDrawer.cpp +++ b/src/ui/drawer/uiDrawer.cpp @@ -72,9 +72,14 @@ namespace ui{ try{ cout << "starting ui drawer thread" << endl; ui::UiController::exitCalled = false; + std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now(); + std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now(); while(true){ DEBUG_LOG("drawing"); + begin = std::chrono::steady_clock::now(); ui::UiDrawer::drawMenu(); + end = std::chrono::steady_clock::now(); + std::this_thread::sleep_for (std::chrono::milliseconds((1000/FPS_LIMIT_DRAW)-std::chrono::duration_cast(end-begin).count())); } } catch(...){ cerr << "\033[1;31m caught DrawUi thread exception \033[0m" << endl; diff --git a/src/ui/merger/uiMerger.cpp b/src/ui/merger/uiMerger.cpp index e0b5a25..775d033 100644 --- a/src/ui/merger/uiMerger.cpp +++ b/src/ui/merger/uiMerger.cpp @@ -11,10 +11,15 @@ namespace ui { cout << "starting ui merger thread" << endl; ui::UiController::exitCalled = false; + std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now(); + std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now(); while (true) { + begin = std::chrono::steady_clock::now(); DEBUG_LOG("drawing"); ui::UiMerger::mergeUI(); + end = std::chrono::steady_clock::now(); + std::this_thread::sleep_for (std::chrono::milliseconds((1000/FPS_LIMIT_MERGE)-std::chrono::duration_cast(end-begin).count())); } } catch (...) diff --git a/src/ui/uiElements/ui.cpp b/src/ui/uiElements/ui.cpp index e945c0e..01a08f9 100644 --- a/src/ui/uiElements/ui.cpp +++ b/src/ui/uiElements/ui.cpp @@ -19,7 +19,7 @@ void ui::Ui::draw(){ imshow(this->myWindow, drawBuffer); #endif - waitKey(10); + waitKey(1); fcheckManager::fcShow.tickUpdate(); DEBUG_LOG("Done draw cycle-----------------") }