Mule is the software component of an in-progress rewrite of the AgOpenGPS project that aims to maximize the project's accessibility, including the UI, upgrading hardware requirements from "Windows Laptop / Tablet" to "Any mobile device running Windows / Linux / Android / iOS", etc.
-
Identify components of the original AOG software, so it can be rewritten
- Active
- AgIO
- GPS - Main Screen (
FormGPS
)- Renderer Camera (
CCamera
) - Renderer World Grid (
CWorldGrid
) - Renderer Triangle Strip[1] (
List<CPatches>
) - Renderer Font (
CFont
) - Renderer Brightness Controller (
CWindowsSettingsBrightnessController
) - Audio Player (
CSound
) - Resource Manager (
ResourceManager
) - Simulator NMEA (
CSim
) - Communication Modules Container (
CModuleComm
) - Communication NMEA Parser (
CNMEA
) - Vehicle Specs (
CVehicle
) - Vehicle Tool (
CTool
) - Navigation (
CGuidance
) - Navigation Line (
CABLine
) - Navigation Curve (
CABCurve
) - Navigation Headland Line (
CHeadLine
) - Navigation Attitude and Heading Reference System (
CAHRS
) - Navigation Path (
CRecordedPath
) - Field Section[1] (
CSection
) - Field Context[2] (
CFieldData
) - Field Boundary (
CBoundary
) - Field Tramline Context (
CTram
)
- Renderer Camera (
-
Manually program a UI using a provided mock-up as reference
[1]
These are named singularly despite being plurals
[2]
This contains a bunch of data related to the processing of a field, rather than static info about the field itself
- Get Pinion into a working and usable state
- Get Crest into a working and usable state
- Finish writing the grammar for the parser
- Develop an API for the parser that is easier to use than the one that's generated by
the
pest
crate. - Implement standard CSS properties
- Implement pseudo-classes
- Implement at-rules
- Get Peacock into a working and usable state (glue)
- EARLY (BODGE)
build.rs
stage that generates .rs files for iced from XML files (templating can't be used?)
- MATURE
- Design a standardized Widget trait for traits that implement it to be converted into
an
iced
trait - Implement iced widget structs for standard HTML elements (Container, Row, Column, etc)
- add a 3d-canvas widget
- Design a standardized Widget trait for traits that implement it to be converted into
an
- EARLY (BODGE)
- Put together a mock UI design for Mule's interface
- Use Peacock to create the UI design for Mule (no 3d-renderer)
- Implement the functionality behind the UI in rust
- Software prototype
- Front-end overhaul
- Hardware prototype
- Language files (for easy translations)
- AgOpenGPS Simulation Proof-Of-Concept
- A simulation that uses the Godot game engine to model tractors' behavior in a virtual setting