Skip to content
Snippets Groups Projects

Resolves #213 and resolves #214

Merged Nicolas Pope requested to merge bug/213/recorder into master
7 files
+ 52
63
Compare changes
  • Side-by-side
  • Inline
Files
7
@@ -66,34 +66,6 @@ static Eigen::Affine3d create_rotation_matrix(float ax, float ay, float az) {
@@ -66,34 +66,6 @@ static Eigen::Affine3d create_rotation_matrix(float ax, float ay, float az) {
return rz * rx * ry;
return rz * rx * ry;
}
}
static void writeSourceProperties(ftl::codecs::Writer &writer, int id, ftl::rgbd::Source *src) {
ftl::codecs::StreamPacket spkt;
ftl::codecs::Packet pkt;
spkt.timestamp = 0;
spkt.streamID = id;
spkt.channel = Channel::Calibration;
spkt.channel_count = 1;
pkt.codec = ftl::codecs::codec_t::CALIBRATION;
pkt.definition = ftl::codecs::definition_t::Any;
pkt.block_number = 0;
pkt.block_total = 1;
pkt.flags = 0;
pkt.data = std::move(std::vector<uint8_t>((uint8_t*)&src->parameters(), (uint8_t*)&src->parameters() + sizeof(ftl::rgbd::Camera)));
writer.write(spkt, pkt);
spkt.channel = Channel::Pose;
pkt.codec = ftl::codecs::codec_t::POSE;
pkt.definition = ftl::codecs::definition_t::Any;
pkt.block_number = 0;
pkt.block_total = 1;
pkt.flags = 0;
pkt.data = std::move(std::vector<uint8_t>((uint8_t*)src->getPose().data(), (uint8_t*)src->getPose().data() + 4*4*sizeof(double)));
writer.write(spkt, pkt);
}
static void run(ftl::Configurable *root) {
static void run(ftl::Configurable *root) {
Universe *net = ftl::create<Universe>(root, "net");
Universe *net = ftl::create<Universe>(root, "net");
ftl::ctrl::Slave slave(net, root);
ftl::ctrl::Slave slave(net, root);
@@ -128,7 +100,7 @@ static void run(ftl::Configurable *root) {
@@ -128,7 +100,7 @@ static void run(ftl::Configurable *root) {
LOG(INFO) << "Found " << (max_stream+1) << " sources in " << path;
LOG(INFO) << "Found " << (max_stream+1) << " sources in " << path;
// For each stream found, add a source object
// For each stream found, add a source object
for (int i=0; i<max_stream; ++i) {
for (int i=0; i<=max_stream; ++i) {
root->getConfig()["sources"].push_back(nlohmann::json{{"uri",std::string("file://") + path + std::string("#") + std::to_string(i)}});
root->getConfig()["sources"].push_back(nlohmann::json{{"uri",std::string("file://") + path + std::string("#") + std::to_string(i)}});
}
}
}
}
@@ -246,14 +218,15 @@ static void run(ftl::Configurable *root) {
@@ -246,14 +218,15 @@ static void run(ftl::Configurable *root) {
fileout.open(std::string(timestamp) + ".ftl");
fileout.open(std::string(timestamp) + ".ftl");
writer.begin();
writer.begin();
 
group->addRawCallback(std::function(recorder));
// TODO: Write pose+calibration+config packets
// TODO: Write pose+calibration+config packets
auto sources = group->sources();
auto sources = group->sources();
for (int i=0; i<sources.size(); ++i) {
for (int i=0; i<sources.size(); ++i) {
writeSourceProperties(writer, i, sources[i]);
//writeSourceProperties(writer, i, sources[i]);
 
sources[i]->inject(Channel::Calibration, sources[i]->parameters(), Channel::Left, sources[i]->getCapabilities());
 
sources[i]->inject(sources[i]->getPose());
}
}
group->addRawCallback(std::function(recorder));
} else {
} else {
group->removeRawCallback(recorder);
group->removeRawCallback(recorder);
writer.end();
writer.end();
Loading