Skip to content
Snippets Groups Projects
Commit b6d76918 authored by Sebastian Hahta's avatar Sebastian Hahta
Browse files

Cleanup

parent 34ace05c
No related branches found
No related tags found
2 merge requests!4Feature/registration,!3Multiple sources
Pipeline #10593 passed
...@@ -121,20 +121,23 @@ static void run() { ...@@ -121,20 +121,23 @@ static void run() {
return; return;
} }
// todo: create display objects at the same time, store in pair/tuple?
//
std::deque<SourceStereo> sources; // mutex in SourceStereo std::deque<SourceStereo> sources; // mutex in SourceStereo
std::deque<Display> displays;
for (auto &src : config["sources"]) { for (auto &src : config["sources"]) {
SourceStereo *in = &sources.emplace_back(); SourceStereo &in = sources.emplace_back();
in->uri = src; Display &display = displays.emplace_back(Display(config["display"], src));
// get calibration parameters from nodes
// get calibration parameters from nodes
while(true) { while(true) {
auto buf = net.findOne<vector<unsigned char>>((string) src +"/calibration"); auto buf = net.findOne<vector<unsigned char>>((string) src +"/calibration");
if (buf) { if (buf) {
Mat Q = Mat(cv::Size(4,4), CV_32F); Mat Q = Mat(cv::Size(4,4), CV_32F);
memcpy(Q.data, (*buf).data(), (*buf).size()); memcpy(Q.data, (*buf).data(), (*buf).size());
if (Q.step*Q.rows != (*buf).size()) LOG(ERROR) << "Corrupted calibration"; if (Q.step*Q.rows != (*buf).size()) LOG(ERROR) << "Corrupted calibration";
in->setQ(Q); in.setQ(Q);
LOG(INFO) << "Calibration loaded for " << (string) src; LOG(INFO) << "Calibration loaded for " << (string) src;
break; break;
} }
...@@ -143,18 +146,13 @@ static void run() { ...@@ -143,18 +146,13 @@ static void run() {
sleep_for(milliseconds(500)); sleep_for(milliseconds(500));
} }
} }
net.subscribe(src, [in](const vector<unsigned char> &jpg, const vector<unsigned char> &d) { net.subscribe(src, [&in](const vector<unsigned char> &jpg, const vector<unsigned char> &d) {
in->recv(jpg, d); in.recv(jpg, d);
}); });
}
std::deque<Display> displays;
for (size_t i = 0; i < sources.size(); i++) {
displays.emplace_back(Display(config["display"], sources[i].uri));
// todo: Display should only need processed input, depth calculation etc. // todo: Display should only need processed input, depth calculation etc.
// should happen somewhere else. // should happen somewhere else.
displays[i].setCalibration(sources[i].getQ()); display.setCalibration(in.getQ());
} }
int active = displays.size(); int active = displays.size();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment