コード例 #1
0
ファイル: port_latency.cpp プロジェクト: BRKMYR/yarp
int client(int nframes, std::string &name)
{
    Reader reader;
    reader.nframes=nframes;

    bool forever=false;
    if (nframes==-1)
        forever=true;
    else
        reader.latencies.reserve(nframes);

    std::string portName;
    portName="/profiling/client/";
    portName+=name;
    portName+="/port:i";

    reader.useCallback();
    reader.open(portName.c_str());

    portName="/profiling/client/";
    portName+=name;
    portName+="/port:o";
    
    reader.outPort.open(portName.c_str());

    while( (reader.count<nframes) || forever)
        {
            //give the CPU some time
            Time::delay(0.5);
        }

    reader.close();

    std::vector<Report>::iterator it=reader.latencies.begin();
    FILE *of=fopen("timing.txt", "w");
    while(it!=reader.latencies.end())
        {
            fprintf(of, "%u %lf\n", (*it).payload, (*it).dt);
            it++;
        }
    fclose(of);

    double averageLatency=reader.delay/reader.count;
    double stdLatency=(1.0/(reader.count-1))*(reader.delaySq-reader.count*averageLatency*averageLatency);

    stdLatency=sqrt(stdLatency);

    fprintf(stderr, "Received: %d average latency %.3lf +/- %.5lf [ms]\n", 
            reader.count, averageLatency, stdLatency);
    return 0;
}
コード例 #2
0
ファイル: mapping.cpp プロジェクト: richardbeare/mrtrix3
        void generate_header (Header& header, const std::string& tck_file_path, const vector<default_type>& voxel_size)
        {

          Properties properties;
          Reader<> file (tck_file_path, properties);

          Streamline<> tck;
          size_t track_counter = 0;

          Eigen::Vector3f min_values ( Inf,  Inf,  Inf);
          Eigen::Vector3f max_values (-Inf, -Inf, -Inf);

          {
            ProgressBar progress ("creating new template image", 0);
            while (file (tck) && track_counter++ < MAX_TRACKS_READ_FOR_HEADER) {
              for (const auto& i : tck) {
                min_values[0] = std::min (min_values[0], i[0]);
                max_values[0] = std::max (max_values[0], i[0]);
                min_values[1] = std::min (min_values[1], i[1]);
                max_values[1] = std::max (max_values[1], i[1]);
                min_values[2] = std::min (min_values[2], i[2]);
                max_values[2] = std::max (max_values[2], i[2]);
              }
              ++progress;
            }
          }

          min_values -= Eigen::Vector3f (3.0*voxel_size[0], 3.0*voxel_size[1], 3.0*voxel_size[2]);
          max_values += Eigen::Vector3f (3.0*voxel_size[0], 3.0*voxel_size[1], 3.0*voxel_size[2]);

          header.name() = "tckmap image header";
          header.ndim() = 3;

          for (size_t i = 0; i != 3; ++i) {
            header.size(i) = std::ceil((max_values[i] - min_values[i]) / voxel_size[i]);
            header.spacing(i) = voxel_size[i];
            header.stride(i) = i+1;
          }

          header.transform().matrix().setIdentity();
          header.transform().translation() = min_values.cast<double>();
          file.close();
        }