int main() { int i,j; int nofstrip = n(); double **tt = lsf(0.3, 1.3, 0., 50, 5, 1000., 9.); //FILE* f = fopen("corr.txt","w+"); for(i=0; i<4; i++){ //for(j=0; j<256; j++){ printf("%f %f %f\n",tt[i][0],tt[i][1],tt[i][0]/tt[i][1]); } //fprintf("\n"); //} //fclose(f); return 0; }
int main(int32_t argc, char** argv) { if (argc < 2) { std::cerr << "Usage: " << argv[0] << " <abbrev of imc message 1>,<abbrev of imc message 2>,..," << "<abbrev of imc message n> Data.lsf[.gz] .. Data.lsf[.gz]" << std::endl; std::cerr << argv[0] << " accepts multiple IMC messages comma separated and " << "multiple Data.lsf files space separated." << std::endl; std::cerr << "This program does not sort the input Data.lsf files." << std::endl; return 1; } ByteBuffer buffer; std::ofstream lsf("FilteredData.lsf", std::ios::binary); IMC::Message* msg; uint32_t accum = 0; bool done_first = false; std::set<uint32_t> ids; std::vector<std::string> msgs; Utils::String::split(argv[1], ",", msgs); for (unsigned k = 0; k < msgs.size(); ++k) { uint32_t got = IMC::Factory::getIdFromAbbrev(Utils::String::trim(msgs[k])); ids.insert(got); } for (uint32_t j = 2; j < (uint32_t)argc; ++j) { std::istream* is = 0; Compression::Methods method = Compression::Factory::detect(argv[j]); if (method == METHOD_UNKNOWN) is = new std::ifstream(argv[j], std::ios::binary); else is = new Compression::FileInput(argv[j], method); uint32_t i = 0; try { while ((msg = IMC::Packet::deserialize(*is)) != 0) { if (!done_first) { // place an empty estimatedstate message in the log IMC::EstimatedState state; state.setTimeStamp(msg->getTimeStamp()); IMC::Packet::serialize(&state, buffer); lsf.write(buffer.getBufferSigned(), buffer.getSize()); done_first = true; } std::set<uint32_t>::const_iterator it; it = ids.find(msg->getId()); if (it != ids.end()) { IMC::Packet::serialize(msg, buffer); lsf.write(buffer.getBufferSigned(), buffer.getSize()); ++i; } delete msg; } } catch (std::runtime_error& e) { std::cerr << "ERROR: " << e.what() << std::endl; return -1; } std::cerr << i << " messages in " << argv[j] << std::endl; accum += i; delete is; } lsf.close(); std::cerr << "Total of " << accum << " " << argv[1] << " messages." << std::endl; return 0; }
int main(int32_t argc, char** argv) { if (argc != 2) { std::cerr << "Usage: " << argv[0] << " Data.lsf[.gz]" << std::endl; return 1; } std::istream* is = 0; Compression::Methods method = Compression::Factory::detect(argv[1]); if (method == METHOD_UNKNOWN) is = new std::ifstream(argv[1], std::ios::binary); else is = new Compression::FileInput(argv[1], method); ByteBuffer buffer; std::ofstream lsf("SurfaceData.lsf", std::ios::binary); IMC::Message* msg; unsigned i = 0; IMC::EstimatedState state; IMC::Packet::serialize(&state, buffer); lsf.write(buffer.getBufferSigned(), buffer.getSize()); double timestamp = -1.0; try { while ((msg = IMC::Packet::deserialize(*is)) != 0) { if (msg->getId() == DUNE_IMC_GPSFIX) { IMC::GpsFix* fix = static_cast<IMC::GpsFix*>(msg); if ((fix->hacc <= MIN_HACC) && (fix->validity & IMC::GpsFix::GFV_VALID_POS) && (fix->getTimeStamp() >= timestamp)) { timestamp = fix->getTimeStamp(); IMC::Packet::serialize(msg, buffer); lsf.write(buffer.getBufferSigned(), buffer.getSize()); ++i; } } delete msg; } } catch (std::runtime_error& e) { std::cerr << "ERROR: " << e.what() << std::endl; return -1; } lsf.close(); delete is; std::cerr << "Got " << i << " GpsFix messages." << std::endl; return 0; }
int main(int32_t argc, char** argv) { if (argc <= 1) { std::cerr << "Usage: " << argv[0] << " <path_to_log/Data.lsf[.gz]>" << std::endl; return 1; } std::istream* is = 0; Compression::Methods method = Compression::Factory::detect(argv[1]); if (method == METHOD_UNKNOWN) is = new std::ifstream(argv[1], std::ios::binary); else is = new Compression::FileInput(argv[1], method); IMC::Message* msg = NULL; std::ofstream lsf("Data.lsf", std::ios::binary); DUNE::Utils::ByteBuffer buffer; float bottom_follow_depth = -1.0; float vertical_ref = -1.0; // Control parcel for debug IMC::ControlParcel parcel; // Last EstimatedState IMC::EstimatedState last_state; bool got_state = false; // Coarse altitude control DUNE::Control::CoarseAltitude::Arguments args; createCA(&args); DUNE::Control::CoarseAltitude ca(&args); try { while ((msg = IMC::Packet::deserialize(*is)) != 0) { if (msg->getId() == DUNE_IMC_ESTIMATEDSTATE) { IMC::EstimatedState* state = dynamic_cast<IMC::EstimatedState*>(msg); if (!got_state) { last_state = *state; got_state = true; } else { IMC::Packet::serialize(state, buffer); lsf.write(buffer.getBufferSigned(), buffer.getSize()); buffer.resetBuffer(); if (bottom_follow_depth > 0.0) { bottom_follow_depth = state->depth + (state->alt - vertical_ref); parcel.p = bottom_follow_depth; parcel.i = ca.update(state->getTimeStamp() - last_state.getTimeStamp(), state->depth, bottom_follow_depth); parcel.d = state->depth - bottom_follow_depth; // parcel.a = state->depth - parcel.i; parcel.a = ca.getCorridor(); parcel.setTimeStamp(state->getTimeStamp()); IMC::Packet::serialize(&parcel, buffer); lsf.write(buffer.getBufferSigned(), buffer.getSize()); buffer.resetBuffer(); } last_state = *state; } } else if (msg->getId() == DUNE_IMC_DESIREDZ) { IMC::DesiredZ* ptr = dynamic_cast<IMC::DesiredZ*>(msg); if (ptr->z_units == IMC::Z_ALTITUDE) { vertical_ref = ptr->value; bottom_follow_depth = last_state.depth; } IMC::Packet::serialize(ptr, buffer); lsf.write(buffer.getBufferSigned(), buffer.getSize()); buffer.resetBuffer(); } else if (msg->getId() == DUNE_IMC_LOGGINGCONTROL) { IMC::LoggingControl* ptr = dynamic_cast<IMC::LoggingControl*>(msg); IMC::Packet::serialize(ptr, buffer); lsf.write(buffer.getBufferSigned(), buffer.getSize()); buffer.resetBuffer(); } delete msg; } } catch (std::runtime_error& e) { std::cerr << "ERROR: " << e.what() << std::endl; } lsf.close(); delete is; return 0; }