realtimeradio / vla-dev

Ethernetization/Channelization Firmware for the VLA-COSMIC FPGA system
GNU General Public License v3.0
1 stars 3 forks source link

Way to remotely call F-engine methods atomically #4

Closed realtimeradio closed 2 years ago

realtimeradio commented 2 years ago

CasperFpga causes read/write calls from multiple clients to be issues atomically, but sometimes it is useful to allow remote clients to issue entire CosmicFengine methods in an atomic fashion to ensure that multiple clients to not interfere with one another.

One way to do this would be to allow CosmicFengine methods to be executed by a command processing daemon, which receives commands from all remote clients and executes them sequentially (see, e.g, section 4 -- https://raw.githubusercontent.com/realtimeradio/caltech-lwa/master/docs/build/latex/LWA352SNAP2F-Engine.pdf)

Related to the need for multiple clients to interact with the F-engine system without mutual interference is the need for continuous polling of status registers, in such a way as not to interfere with access from other users.

radonnachie commented 2 years ago

I plan to create a new REST server that actually exposes objects dynamically: one can instantiate objects on the server (receiving an ID relating to the server-local object), and call functions by name, supplying a dictionary of objects. I have a PoC.

This would replace the current casperfpga_rest_server which only exposes localpcie objects and their functions explicitly.

I'm quite excited about this.

realtimeradio commented 2 years ago

Well, if you're excited I'm not going to stand in your way :laughing:

radonnachie commented 2 years ago

It's working. Just refining :)