+ fn run_get(&mut self, logger: &mut Logger, args_iter: &mut ArgumentIter) {
+ if let Some(recording_id_s) = args_iter.next() {
+ if let Some(recording_id) = atoi16(recording_id_s) {
+ if logger.has_recording(recording_id) {
+ self.tx_buf.write(b"waiting for receiver to start...\n");
+ self.tx_buf.flush();
+
+ let have_receiver = read_char_delay_ms(5000).map(|c| {
+ c == b'R'
+ }).map_or_else(|| {
+ false
+ }, |_| {
+ let result = logger.get_recording(recording_id,
+ self.tx_buf);
+
+ if result.is_err() {
+ self.tx_buf.write(b"get: failed to retrieve recording\n");
+ }
+
+ true
+ });
+
+ if !have_receiver {
+ self.tx_buf.write(b"no signal from receiver\n");
+ }
+ } else {
+ self.tx_buf.write(b"get: no such recording\n");
+ }
+ } else {
+ self.tx_buf.write(b"get: invalid argument\n");
+ }
+ } else {
+ self.tx_buf.write(b"get: missing argument\n");
+ }
+
+ self.tx_buf.flush();
+ }
+