Feature #493

Allow start/stop of recordings via RPC interface (without program restart)

Added by S. Wrede over 12 years ago. Updated over 12 years ago.

Status:ResolvedStart date:08/10/2011
Priority:NormalDue date:
Assignee:J. Moringen% Done:

100%

Category:-
Target version:Robotics Service Bus - 0.5

Associated revisions

Revision 86cbc60a
Added by J. Moringen over 12 years ago

Added start/stop functions in src/rsb/protocol.lisp
refs #493
  • src/rsb/protocol.lisp (start): new generic function; start a
    previously stopped recording
    (stop): new generic function; stop a recording such that it can be
    restarted later
  • src/rsb/channel-connection.lisp
    (initialize-instance :after recording-channel-connection): use
    `start' method to start recording
    (start recording-channel-connection): new method; add the connection
    as handler of the participant
    (stop recording-channel-connection): new method; remove the
    connection from the handlers of the participant
  • src/rsb/bag-connection.lisp (start bag-connection): new method;
    start all channel connections
    (stop bag-connection): new method; stop all connections
  • src/rsb/package.lisp (package rsbag.rsb): added exported symbols
    start and stop

Revision 0ef67890
Added by J. Moringen over 12 years ago

Added RPC control server in bag-record/main.lisp
fixes #493
  • bag-record/main.lisp (invoke-with-control-service): new function;
    invoke a thunk with an rpc server running while the thunk executes
    (update-synopsis): added control-uri commandline option
    (main): wrap main recording loop in `invoke-with-control-service'
    when requested
  • bag-record/package.lisp (package rsbag.tools.record): added used
    packages bind and rsb.patterns

Revision 0c2d87e7
Added by J. Moringen over 12 years ago

Added interrupt function in common/interactive.lisp
refs #493
  • common/interactive.lisp (interrupt): new function; interrupt a
    `with-interactive-interrupt-exit' form
  • common/package.lisp (package rsb.common): added exported symbol
    interrupt

History

#1 Updated by S. Wrede over 12 years ago

  • Assignee set to M. Goetting

#2 Updated by J. Moringen over 12 years ago

  • Status changed from New to Feedback

What does this mean?

Should the recording program expose an RSB RPC interface for starting and stopping the recording?
Should UNIX signals be used?
Should annotations be stored in a separate channel of the log file or in a separate file?
What should information should be captured in annotations?

#3 Updated by J. Moringen over 12 years ago

  • Status changed from Feedback to Rejected

Start/Stop with one TIDELog file per chunk is already possible

Annotation support is out of scope for rsbag.

#4 Updated by S. Wrede over 12 years ago

  • Status changed from Rejected to Feedback

With annotation we ment to insert some metadata describing the current trial / experiment. I understand that this can be easily done with an additional tool that would provide this information in a separate channel. However, I am not sure that a separate tool for this kind of minimal but important functionality makes much sense. What do you think?

And, yes, the original idea was that rsbag should expose a request-reply interface to allow remote control starting / stopping / pausing of recordings. Why should that be out of scope of such a tool?

#5 Updated by J. Moringen over 12 years ago

Sebastian Wrede wrote:

With annotation we ment to insert some metadata describing the current trial / experiment. I understand that this can be easily done with an additional tool that would provide this information in a separate channel. However, I am not sure that a separate tool for this kind of minimal but important functionality makes much sense. What do you think?

It probably depends on the source from which the annotation information is generated and the data to which the annotations refer. If only readily available things like the machine's hostname or current time would be used and refer to the whole file, a separate tool would probably be overkill. However, if the annotation information has to gathered somehow or parsed from some source, or associated to parts of the log file, I would still argue that such a feature is out of scope for a recording tool.

And, yes, the original idea was that rsbag should expose a request-reply interface to allow remote control starting / stopping / pausing of recordings. Why should that be out of scope of such a tool?

"Out of scope" referred to annotations.

An RPC interface wouldn't be a hard to do (I think). Is there a difference between pause+unpause and stop+start?

#6 Updated by J. Moringen over 12 years ago

  • Subject changed from Allow Start - Pause - Stop of Recordings with Annotation Support to Allow start/stop of recordings via RPC interface (without program restart)
  • Status changed from Feedback to In Progress
  • Assignee changed from M. Goetting to J. Moringen
  • % Done changed from 0 to 20

#7 Updated by J. Moringen over 12 years ago

  • % Done changed from 20 to 70

#8 Updated by J. Moringen over 12 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 70 to 100

Applied in changeset r150.

#9 Updated by J. Moringen over 12 years ago

  • Target version changed from rsb-0.10 to 0.5

Also available in: Atom PDF