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() {
return;
}
// todo: create display objects at the same time, store in pair/tuple?
//
std::deque<SourceStereo> sources; // mutex in SourceStereo
std::deque<Display> displays;
for (auto &src : config["sources"]) {
SourceStereo *in = &sources.emplace_back();
in->uri = src;
// get calibration parameters from nodes
SourceStereo &in = sources.emplace_back();
Display &display = displays.emplace_back(Display(config["display"], src));
// get calibration parameters from nodes
while(true) {
auto buf = net.findOne<vector<unsigned char>>((string) src +"/calibration");
if (buf) {
Mat Q = Mat(cv::Size(4,4), CV_32F);
memcpy(Q.data, (*buf).data(), (*buf).size());
if (Q.step*Q.rows != (*buf).size()) LOG(ERROR) << "Corrupted calibration";
in->setQ(Q);
in.setQ(Q);
LOG(INFO) << "Calibration loaded for " << (string) src;
break;
}
......@@ -143,18 +146,13 @@ static void run() {
sleep_for(milliseconds(500));
}
}
net.subscribe(src, [in](const vector<unsigned char> &jpg, const vector<unsigned char> &d) {
in->recv(jpg, d);
net.subscribe(src, [&in](const vector<unsigned char> &jpg, const vector<unsigned char> &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.
// should happen somewhere else.
displays[i].setCalibration(sources[i].getQ());
display.setCalibration(in.getQ());
}
int active = displays.size();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment