facebookresearch / labgraph

LabGraph is a Python framework for rapidly prototyping experimental systems for real-time streaming applications. It is particularly well-suited to real-time neuroscience, physiology and psychology experiments.
MIT License
161 stars 48 forks source link

Network Sockets Support in LabGraph #41

Open jfResearchEng opened 2 years ago

jfResearchEng commented 2 years ago

🚀 Feature

Sensor & Device integration is an important part to help accelerate researchers development. This integration on Network Sockets will allow new devices to be automatically usable in LabGraph. Network socket here refers to python socket module: https://docs.python.org/3/library/socket.html . A stretch goal is to also support Boost.Asio, https://www.boost.org/doc/libs/1_76_0/doc/html/boost_asio.html

Additional context

  1. Create relevant files using the example from https://github.com/facebookresearch/labgraph/tree/main/labgraph/zmq_node
  2. The code should be added at folder is https://github.com/facebookresearch/labgraph/tree/main/devices/protocols/
  3. Create setup.py and README.md, where example can be found at: https://github.com/facebookresearch/labgraph/tree/main/extensions/labgraph_viz
  4. Add github action support, reference: https://github.com/facebookresearch/labgraph/actions/workflows/main.yml
  5. Add proper license header, example.
fzchriha commented 2 years ago

Hey Jimmy I will start working on these issues

jfResearchEng commented 2 years ago

Hey Jimmy I will start working on these issues

Sounds good!

fzchriha commented 2 years ago

@jfResearchEng Hi Jimmy, in order to implement a py socket protocol, I'm relying on zmq_node as a reference. But I was wondering is there a way to test and visualize if the protocol is running effectively, besides just running tests and not getting an error? Thank you!

jfResearchEng commented 2 years ago

@jfResearchEng Hi Jimmy, in order to implement a py socket protocol, I'm relying on zmq_node as a reference. But I was wondering is there a way to test and visualize if the protocol is running effectively, besides just running tests and not getting an error? Thank you!

Non-Visualization tests are used as they can be added as automatic tests in continuous integration pipelines. There's no visualization test yet for protocol integration.