~awuerl/blitzortung-tracker/0.9

« back to all changes in this revision

Viewing changes to source/blitzortung-data.cc

  • Committer: Andreas Würl
  • Date: 2011-06-27 23:15:30 UTC
  • Revision ID: awuerl@gmx.net-20110627231530-28xgku0k9bov975j
more robust ipc interface
access by index in blitzortung-data

Show diffs side-by-side

added added

removed removed

Lines of Context:
115
115
  std::string file = "";
116
116
  std::string mode = "default";
117
117
  std::string startTimeString, endTimeString;
 
118
  int startIndex, endIndex;
118
119
 
119
120
  bo::Logger logger("");
120
121
 
126
127
    ("info", "show file info")
127
128
    ("starttime,s", po::value<std::string>(&startTimeString), "start time in HHMM or HHMMSS format")
128
129
    ("endtime,e", po::value<std::string>(&endTimeString), "end time in HHMM or HHMMSS format")
 
130
    ("start", po::value<int>(&startIndex)->default_value(0), "start index")
 
131
    ("end", po::value<int>(&endIndex)->default_value(-1), "end index")
129
132
    #ifdef HAVE_BOOST_ACCUMULATORS_ACCUMULATORS_HPP
130
133
    ("mode", po::value<std::string>(&mode)->default_value(mode), "data mode [default, statistics, histogram]")
131
134
    #endif
169
172
  if (vm.count("info")) {
170
173
    bo::data::EventsFile eventsFile(file);
171
174
 
 
175
    const bo::data::EventsHeader& header = eventsFile.getHeader();
 
176
 
172
177
    bo::data::Events::AP start(eventsFile.read(0,1));
173
178
    bo::data::Events::AP end(eventsFile.read(-1,1));
174
179
 
175
180
    std::cout << getTimestampString(start->front()) << " " << 0 << std::endl;
176
 
    std::cout << getTimestampString(end->front()) << " " << eventsFile.getHeader().getNumberOfEvents() << std::endl;
177
 
    std::cout << eventsFile.getHeader().getNumberOfEvents() << std::endl;;
 
181
    std::cout << getTimestampString(end->front()) << " " << header.getNumberOfEvents() << std::endl;
178
182
 
 
183
    const bo::data::Format::CP format = header.getDataFormat();
 
184
    std::cout << format->getNumberOfBitsPerSample() << " bits, " << format->getNumberOfChannels() << " channels, " << format->getNumberOfSamples() << " samples" << std::endl;;
179
185
 
180
186
    return 0;
181
187
  }
182
188
 
183
 
  pt::time_duration startTime(pt::not_a_date_time);
184
 
  if (vm.count("starttime")) {
185
 
    startTime = parseTime(startTimeString);
186
 
  }
187
 
 
188
 
  pt::time_duration endTime(pt::not_a_date_time);
189
 
  if (vm.count("endtime")) {
190
 
    endTime = parseTime(endTimeString, true);
191
 
  }
192
 
 
193
189
  bo::data::Events events;
194
190
 
195
 
  events.readFromFile(file, startTime, endTime);
 
191
  if (vm.count("starttime") || vm.count("endtime")) {
 
192
    pt::time_duration startTime(pt::not_a_date_time);
 
193
    if (vm.count("starttime")) {
 
194
      startTime = parseTime(startTimeString);
 
195
    }
 
196
 
 
197
    pt::time_duration endTime(pt::not_a_date_time);
 
198
    if (vm.count("endtime")) {
 
199
      endTime = parseTime(endTimeString, true);
 
200
    }
 
201
 
 
202
    events.readFromFile(file, startTime, endTime);
 
203
  } else {
 
204
    events.readFromFile(file, startIndex, endIndex);
 
205
  }
196
206
 
197
207
  void (*eventOperation)(const bo::data::Event&);
198
208