Skip to content

Action Report System #74

@Quashnock

Description

@Quashnock

Action Report System

Our current approach to making sure that publishers fire and key milestones are hit is through console logs. While this works for a development environment, the system is limited when we are debugging potential errors in the system and knowing when they occured. For example, if something goes wrong during a round during a run through the competion, we would like to have a report of key occurances and when they occured to help us debug.

For this feature, I am thinking that we could implement a system that records publisher firings and key events to an external file, similar to how the telemetry recorders in the Telemetry tab work. Key milestones can be events like connecting to the rover, connecting a controller, and entering autonomous modes when they are eventually implemented.

Implementation

My plans for implementation are loose at this time. I imagine that we could have a UI component in the Dev Tab that toggles the recording state. From there, we could add an additional tracker in the publisher wrapper and a dedicated method for recording to a document. Once the user switches off the recording state, a file is downloaded to the user's browser that contains event titles and the time they occured.

Here is an To-Do list with the above implementation:

  • Design and create a component that toggles recording state
  • Create a method that adds a record to the report file whenever the recording state is on
  • Add the method to the publisher wrapper to produce a record whenever the publisher fires and the recording state is on.
  • Implement downloading the report file to the users browser when they toggle the recording state back off.

You may want to model your implemenation off of the existing recording system for Telemetry. If you have any ideas for how to improve this feature, feel free to implement them or run them by me. If you have any questions please let me know!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions