Recording Profiles

When changing the topics to record in the recorder tab of the launcher, in which .json file is the change to the recording profile reflected? I’m trying to determine if it’s possible for the recorder to subscribe to a user-created service such as the service_counter, and would like to determine the best way to change the recording profile to reflect this.

hey @larslundqvist , thats a great question… I’m doing some tests on my end and will get back to you soon.

Other are welcome to contribute here with their experiences, also :smiley: !

Hey @larslundqvist,

So I did some digging and indeed, the method we use to fetch the services you can record will not fetch custom services like yours.

So, for now, you could use something like the Event Recorder and start the recording from a CLI or create your own app for it.

On the former, if you are willing to use the counter.py script to setup the service, you will need to modify it to stream the messages properly. I think a good resource to learn about this is in event_service.py at farm-ng-core.

Let me know if this helps!

Finally, I will add a feature request to have other services showing at our UI and update here when ready.

Hi @MScatolin,

Thanks for the help and the feature request. I’ll take a look through the event_service code. I’ve noticed that the Event Recorder example relies on the record_camera_config.json file passing the URI paths and queries to initialize recording profiles. In the case of counter.py (if streaming messages properly), could it be referred to by the URI path “/counter” independent of where on the amiga the service is started? I’m not sure if referring to custom services will require more complexity than the built in services such as Oak and Canbus.

In addition to the recording behavior, I’m trying to build a Kivy app to display the information being put out by the service. In this implementation, subscribe requests using the URI path are also necessary. As implemented in the Virtual Joystick, I see the canbus service is subscribed to with:

async for event, payload in canbus_client.subscribe(
            SubscribeRequest(uri=Uri(path="/state"), every_n=rate),
            decode=False,

For subscribing to the counter, would it be sufficient to change the canbus_client to an EventClient object and use the path “/counter”?

You would need to write the topics you want and look into methods like publish to make it record properly.