How mokzhizhuan/greyform_uis works
GreyForm is a ROS-based operator interface for selecting PBU data and initiating wall marking. The main workflow runs from the React operator GUI through FastAPI’s directory/file operations and marking endpoints, then into ROS message publication for wall processing. Separate components handle wall-flow checks and controller-driven file/selection publication. Several backend and ROS implementation details were not sampled; edges are limited to documented or indexed references, and generated message code is grouped as interface definitions.
Main entry points: Status.tsx Workflow status · talker_node.py ROS publisher · main.py API and file operations · marking_controller.py Wall marking controller
Components 21
Operator interface
- React app
newui_Greyform/greyformui-usb-completionmessage/src/App.tsx - Workflow status
newui_Greyform/greyformui-usb-completionmessage/src/Components/Status.tsx - Select PBU
newui_Greyform/greyformui-usb-completionmessage/src/Components/SelectPBUFile.tsx - Detect PBU
newui_Greyform/greyformui-usb-completionmessage/src/Components/DetectPBU.tsx - Four-wall flow
newui_Greyform/greyformui-usb-completionmessage/src/Components/FourWallFlow.tsx - Six-wall flow
newui_Greyform/greyformui-usb-completionmessage/src/Components/SixWallFlow.tsx - Home checks
newui_Greyform/greyformui-usb-completionmessage/src/Components/HomePositionCheck.tsx - Home verification
newui_Greyform/greyformui-usb-completionmessage/src/Components/HomeVerified.tsx - Auto mode
newui_Greyform/greyformui-usb-completionmessage/src/Components/SetToAutoMode.tsx
FastAPI backend
- API and file operations
newui_Greyform/backend/main.py - Wall marking controller
newui_Greyform/backend/marking_controller.py - ROS marking API
newui_Greyform/backend/marking.py - Marking runner
newui_Greyform/backend/runner.py
ROS processing
- ROS controller node
newui_Greyform/src/talker_listener/talker_listener/controller_node.py - ROS publisher
newui_Greyform/src/talker_listener/talker_listener/talker_node.py - ROS listener
newui_Greyform/src/talker_listener/talker_listener/listener_node.py
ROS interfaces
- Wall message types
newui_Greyform/devel/lib/python3/dist-packages/my_robot_wallinterfaces/msg/_SelectionWall.py - File message type
newui_Greyform/devel/lib/python3/dist-packages/my_robot_wallinterfaces/msg/_FileExtractionMessage.py
Other components
- Operator
- Robot host
- ROS topics
Connections 21
- Operator → React app: uses
- React app → Workflow status: renders
newui_Greyform/greyformui-usb-completionmessage/src/App.tsx - Workflow status → Select PBU: renders
newui_Greyform/greyformui-usb-completionmessage/src/Components/Status.tsx - Workflow status → Detect PBU: renders
newui_Greyform/greyformui-usb-completionmessage/src/Components/Status.tsx - Workflow status → Four-wall flow: renders
newui_Greyform/greyformui-usb-completionmessage/src/Components/Status.tsx - Workflow status → Six-wall flow: renders
newui_Greyform/greyformui-usb-completionmessage/src/Components/Status.tsx - Workflow status → Home checks: renders
newui_Greyform/greyformui-usb-completionmessage/src/Components/Status.tsx - Workflow status → Home verification: renders
newui_Greyform/greyformui-usb-completionmessage/src/Components/Status.tsx - Workflow status → Auto mode: renders
newui_Greyform/greyformui-usb-completionmessage/src/Components/Status.tsx - Workflow status → API and file operations: calls API
newui_Greyform/greyformui-usb-completionmessage/src/Components/Status.tsx - Six-wall flow → Wall marking controller: calls marking API
newui_Greyform/greyformui-usb-completionmessage/src/Components/SixWallFlow.tsx - API and file operations → Wall marking controller: mounts subapp
newui_Greyform/backend/main.py - API and file operations → Robot host: runs SSH commands
newui_Greyform/backend/main.py - Wall marking controller → Robot host: runs marking command
newui_Greyform/backend/marking_controller.py - ROS marking API → Marking runner: uses
newui_Greyform/backend/marking.py - ROS marking API → ROS publisher: publishes selections
newui_Greyform/backend/marking.py - ROS controller node → ROS publisher: calls publisher
newui_Greyform/src/talker_listener/talker_listener/controller_node.py - ROS publisher → ROS topics: publishes messages
newui_Greyform/src/talker_listener/talker_listener/talker_node.py - ROS publisher → Wall message types: publishes selection
newui_Greyform/src/talker_listener/talker_listener/talker_node.py - ROS publisher → File message type: publishes files
newui_Greyform/src/talker_listener/talker_listener/talker_node.py - ROS listener → ROS topics: subscribes