-
Notifications
You must be signed in to change notification settings - Fork 0
[Architecture] Separating "web app" functionality from hardware integration #7
Comments
Been thinking about this... I think that, for the sake of preservation, we should rename the current webapp repo as "standalone-robot" and the separated repos as "networked-robot" and "robot-server" or something like that. Because the software we have will likely be more applicable for individuals' projects (people who want to make their own robot with our software), should they want to use it without running a separate server to control their robot. Don't misunderstand me: I'm all for separating the hardware interfacing from the webserver controls, but this is a fundamental change that may not fit for prospecting DIY-ers. |
@2bndy5 I like this idea but it'll be easier to make a "standalone-robot" repo after separating the components, since we can do a similar method to how we use your CircuitPython library modifications in the |
Have we been doing this web socket thing all wrong? I think the
We should be able to use the server on the robot as middleware between IO hardware (clients) and user interface (abstracted server). That way would rhyme with the MQTT paradigm (much like ROS) as a drop-in replacement for the web socket server on the robot. Have I missed something? Currently, the This is the client-side executable code in my head:
|
I think using a class-based namespace would be most comprehensive. EDITNevermind. The class-based namespace suggestion seems to only be beneficial if a client assumes multiple namespaces. I've been reading more on the |
As it stands, the Raspberry Pi is hosting the server while managing the hardware integration. This was originally with the intent that the robot should be self-contained and not require the use of the internet. However, the current setup takes a toll on the raspi's resources and can make the robot unstable as a result.
The idea is to split the web app code from the hardware integrations, preferably the latter into a new repository, and have the web app hosted online (Heroku is a good start) so that it can also see if the robot's online or not. It also lets anyone interact with the web app to either change some non-critical settings or allow easier testing of the web app (this is kind of related to DVC-Viking-Robotics/webapp#44).
Here's a diagram of how the interaction between the user, web app, and robot would look like with the new change:
The text was updated successfully, but these errors were encountered: