sprint-0: foundations -- data model, seed library, tests, demo
Initial commit. Delivers what the brief calls 'Sprint 0 - Foundations' (see docs/AR_Autopilot_brief.md section 12): - Complete repository structure (arautopilot package + firmware, display, installer, tools placeholders + docs). - Core data model (Pydantic v2): modes, alarms, actuator config, PID config + gain scheduling, vessel config, knob state machine, project config with YAML/JSON serialisation. - Seed library: 2 actuator profiles (hydraulic & electric DC reversible) and 2 default tunings (yacht motor planeo 30 m and 40 m). Conservative literature values, NOT the integrator's production tuning IP. - Firmware skeleton: only src/hal/pinout.h with the 21 I/O contract for the AR-NMEA-IO v1.0 board. No drivers, no main loop. - Studio stubs (real PySide6 app starts in Sprint 4). - pytest suite (80 tests, all green): modes, alarms, actuator, PID (incl. gain interpolation and the +/-50% adaptive bound from brief section 6), vessel, knob state, project config, library loader, end-to-end roundtrip. - examples/sprint0_demo.py - the acceptance demo from the brief. Acceptance criteria met: - pytest green (80/80) - demo creates, saves (YAML + JSON), reloads, and verifies a full ProjectConfig using the seed library - repository ready for tag `sprint-0-approved` See CHANGELOG.md for the detailed scope. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+139
@@ -0,0 +1,139 @@
|
||||
# ============================================================================
|
||||
# AR-Autopilot — .gitignore
|
||||
# ============================================================================
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Python
|
||||
# ----------------------------------------------------------------------------
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
*.so
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
share/python-wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
|
||||
# Virtual environments
|
||||
.venv/
|
||||
venv/
|
||||
env/
|
||||
ENV/
|
||||
.env
|
||||
|
||||
# pytest / coverage / mypy / ruff
|
||||
.pytest_cache/
|
||||
.coverage
|
||||
.coverage.*
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
coverage.xml
|
||||
*.cover
|
||||
.hypothesis/
|
||||
.mypy_cache/
|
||||
.dmypy.json
|
||||
dmypy.json
|
||||
.ruff_cache/
|
||||
|
||||
# Jupyter
|
||||
.ipynb_checkpoints/
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Flutter / Dart (display app)
|
||||
# ----------------------------------------------------------------------------
|
||||
display/.dart_tool/
|
||||
display/.flutter-plugins
|
||||
display/.flutter-plugins-dependencies
|
||||
display/.packages
|
||||
display/.pub-cache/
|
||||
display/.pub/
|
||||
display/build/
|
||||
display/**/build/
|
||||
display/**/.dart_tool/
|
||||
display/**/.idea/
|
||||
display/**/*.iml
|
||||
display/ios/Pods/
|
||||
display/ios/.symlinks/
|
||||
display/android/.gradle/
|
||||
display/android/local.properties
|
||||
display/android/captures/
|
||||
display/android/gradlew
|
||||
display/android/gradlew.bat
|
||||
display/android/gradle-wrapper.jar
|
||||
display/windows/flutter/ephemeral/
|
||||
display/linux/flutter/ephemeral/
|
||||
display/macos/Flutter/ephemeral/
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# PlatformIO / ESP32 firmware
|
||||
# ----------------------------------------------------------------------------
|
||||
firmware/**/.pio/
|
||||
firmware/**/.pioenvs/
|
||||
firmware/**/.piolibdeps/
|
||||
firmware/**/.vscode/
|
||||
firmware/**/.clang_complete
|
||||
firmware/**/.gcc-flags.json
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# IDEs / Editors
|
||||
# ----------------------------------------------------------------------------
|
||||
.idea/
|
||||
.vscode/
|
||||
*.swp
|
||||
*.swo
|
||||
*~
|
||||
.project
|
||||
.pydevproject
|
||||
.settings/
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# OS files
|
||||
# ----------------------------------------------------------------------------
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
Desktop.ini
|
||||
*.lnk
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Build artifacts / installers
|
||||
# ----------------------------------------------------------------------------
|
||||
installer/output/
|
||||
installer/build/
|
||||
*.msi
|
||||
*.exe
|
||||
*.appack
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Local config / secrets
|
||||
# ----------------------------------------------------------------------------
|
||||
*.local.yaml
|
||||
*.local.json
|
||||
secrets/
|
||||
.env.local
|
||||
.secrets/
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Examples output
|
||||
# ----------------------------------------------------------------------------
|
||||
examples/output/
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Logs
|
||||
# ----------------------------------------------------------------------------
|
||||
*.log
|
||||
logs/
|
||||
Reference in New Issue
Block a user