Initial commit of my folder

This commit is contained in:
Timothy
2026-03-10 20:41:46 +00:00
parent 37becee76a
commit 7ad88804f3
1225 changed files with 238706 additions and 0 deletions

View File

@ -0,0 +1,22 @@
## ADDED Requirements
### Requirement: Remote Virtual Canvas
The system SHALL provide a web-based "Virtual Canvas" that represents the projection area and allows the user to manipulate mapping surfaces (Quads and Triangles).
#### Scenario: Dragging a vertex
- **WHEN** the user drags a vertex on the web UI
- **THEN** the UI SHALL calculate the normalized (0.0 to 1.0) coordinates and send them to the backend API
### Requirement: Surface Selection
The system SHALL allow the user to select, add, and delete mapping surfaces (Quads and Triangles) from the remote interface.
#### Scenario: Adding a new Quad
- **WHEN** the user clicks the "Add Quad" button in the UI
- **THEN** the UI SHALL send a command to the backend to create a new quad surface in `ofxPiMapper`
### Requirement: Real-time Feedback
The web UI SHALL provide visual feedback for the selected surface and vertex to ensure the user knows which part of the mapping is being edited.
#### Scenario: Selecting a surface
- **WHEN** the user taps on a surface in the virtual canvas
- **THEN** the UI SHALL highlight that surface and display its specific transformation controls

View File

@ -0,0 +1,22 @@
## ADDED Requirements
### Requirement: Automated Access Point Creation
The system SHALL create a password-protected WiFi Access Point (AP) if no other network connection is established.
#### Scenario: AP Mode Activation
- **WHEN** the Raspberry Pi 3B boots and no configured WiFi Client networks are found
- **THEN** the system SHALL start `hostapd` and `dnsmasq` to create a `MPVJ-3B-XXXX` network
### Requirement: WiFi Client Connection
The system SHALL provide a web-based UI to scan for available WiFi networks and allow the user to join an existing network.
#### Scenario: Switching to Client Mode
- **WHEN** the user selects a WiFi SSID from the UI and provides a password
- **THEN** the system SHALL update the `/etc/wpa_supplicant/wpa_supplicant.conf` file and restart the network interface to join that network
### Requirement: mDNS Support
The system SHALL be accessible via the `mpvj.local` address on any local network it is connected to.
#### Scenario: Navigating to the UI
- **WHEN** the user types `http://mpvj.local` in their browser on a connected device
- **THEN** the system SHALL resolve to the Raspberry Pi's IP address and load the mapping interface

View File

@ -0,0 +1,15 @@
## ADDED Requirements
### Requirement: Media Upload
The system SHALL provide a web-based media upload feature to allow users to transfer videos and images from their mobile devices or laptops to the Raspberry Pi.
#### Scenario: Successful video upload
- **WHEN** the user selects a `.mp4` file and clicks "Upload"
- **THEN** the system SHALL save the file to `/home/pi/media` and make it available for mapping
### Requirement: Surface Source Assignment
The system SHALL allow the user to assign a specific media file from the library to a selected mapping surface in real-time.
#### Scenario: Assigning an image
- **WHEN** the user selects an image from the "Media Library" in the UI
- **THEN** the backend SHALL send an `/ofxPiMapper/source/set <filename>` OSC message to update the projection

View File

@ -0,0 +1,22 @@
## ADDED Requirements
### Requirement: OSC Command Translation
The system SHALL provide a backend API that receives HTTP/WebSocket commands from the frontend and translates them into OSC (Open Sound Control) messages for `ofxPiMapper`.
#### Scenario: Vertex movement command
- **WHEN** the API receives a `/vertex/move` request with (x, y) coordinates
- **THEN** it SHALL send an OSC message to `localhost:9999` using the `/ofxPiMapper/vertex/move` address
### Requirement: Service Management
The system SHALL provide endpoints to start, stop, and restart the `ofxPiMapper` application process.
#### Scenario: Starting the mapper
- **WHEN** the user triggers the "Start Mapper" action in the UI
- **THEN** the API SHALL execute the system-level command `ofxPiMapper -f` (fullscreen) and return the process status
### Requirement: Real-time Status Monitoring
The system SHALL monitor the Raspberry Pi 3B's system health (CPU, RAM, and temperature) and provide this data to the frontend for real-time visualization.
#### Scenario: Polling system health
- **WHEN** the API is requested for health status
- **THEN** it SHALL query `/proc/loadavg`, `/proc/meminfo`, and `/sys/class/thermal/thermal_zone0/temp` and return a JSON status object