Go to file
2026-01-12 08:15:53 +01:00
.github modifiche massive su init e run 2025-12-10 11:47:46 +01:00
.vscode primo commit 2025-12-02 11:21:05 +01:00
doc Périma versione con dock semplificato tkinter 2026-01-12 07:33:04 +01:00
externals Feat: Add submodule 'externals/python-tkinter-logger' tracking branch 'master' 2026-01-12 08:15:53 +01:00
layouts Périma versione con dock semplificato tkinter 2026-01-12 07:33:04 +01:00
pymsc Périma versione con dock semplificato tkinter 2026-01-12 07:33:04 +01:00
scripts Périma versione con dock semplificato tkinter 2026-01-12 07:33:04 +01:00
tests sistemate alcune conversioni di dati tra valore 1553 e gui 2026-01-09 08:19:12 +01:00
.gitignore prima versione con bybusmonitor1553 funzionante con tecnologia artos 2026-01-08 15:53:50 +01:00
.gitmodules Feat: Add submodule 'externals/python-tkinter-logger' tracking branch 'master' 2026-01-12 08:15:53 +01:00
performance_report.csv Périma versione con dock semplificato tkinter 2026-01-12 07:33:04 +01:00
PyMsc.ico primo commit 2025-12-02 11:21:05 +01:00
pyproject.toml prima versione con bybusmonitor1553 funzionante con tecnologia artos 2026-01-08 15:53:50 +01:00
pytest.ini modifiche massive su init e run 2025-12-10 11:47:46 +01:00
README.md Périma versione con dock semplificato tkinter 2026-01-12 07:33:04 +01:00
requirements.txt prima versione con bybusmonitor1553 funzionante con tecnologia artos 2026-01-08 15:53:50 +01:00
todo.md primo commit 2025-12-02 11:21:05 +01:00

ARTOS - Advanced Radar Test & Orchestration System

Modular GUI application for testing and controlling MIL-STD-1553B radar systems over UDP.

Features

  • Modular Docking GUI: Resizable, minimizable panels for each subsystem
  • MCS Control: Mission Control System with radar modes, functions, and parameters
  • 1553 Bus Communication: UDP-based MIL-STD-1553B message handling
  • Layered Architecture: Clear separation between hardware (L0), orchestration (L1), algorithms (L2), and tests (L3)
  • Zero External Dependencies: Pure Tkinter stdlib for maximum reliability
  • Workspace Persistence: Save/load custom panel layouts

Quick Start

Installation

# Clone repository
git clone <repo-url>
cd SXXXXXXX_PyMsc

# Create virtual environment
python -m venv .venv
.venv\Scripts\Activate.ps1

# Install dependencies
pip install -r requirements.txt

Running ARTOS

# Launch the modular docking GUI
python -m pymsc

# Alternative: Use the launcher script
python scripts\launch_docking_gui.py

First-Time Setup

  1. Start ARTOS: python -m pymsc
  2. The GUI will launch with MCS dock on the left
  3. Use View menu to toggle other module panels
  4. Use System → Start System to begin 1553 communication
  5. Save your workspace layout: File → Save Layout

Architecture

ARTOS follows a 4-layer design:

  • L0: Hardware abstraction (1553 Bus Module)
  • L1: Test orchestration (TestContext - planned)
  • L2: Algorithm library (planned)
  • L3: Test execution (scripts + GUI sequences)

See ARTOS Architecture Decisions for detailed design rationale.

GUI Structure

┌─────────────┬──────────────────────────┐
│             │  Right Top               │
│   MCS       │  ┌────────────────────┐  │
│   Dock      │  │  Navigation (TBD)  │  │
│             │  └────────────────────┘  │
│   Control   │  ┌────────────────────┐  │
│   Mission   │  │  IRST (TBD)        │  │
│             │  └────────────────────┘  │
│             ├──────────────────────────┤
│             │  Logger & Status (TBD)   │
└─────────────┴──────────────────────────┘

Project Structure

SXXXXXXX_PyMsc/
├── pymsc/                      # Main application package
│   ├── core/                   # Business logic & 1553 module
│   ├── gui/
│   │   ├── docking/            # Modular docking system
│   │   ├── components/         # Reusable widgets
│   │   └── pages/              # Control & Mission pages
│   └── utils/                  # Helpers and profiler
├── scripts/                    # Launcher scripts
├── doc/                        # Architecture & design docs
├── tests/                      # Unit and integration tests
└── logs/                       # Runtime logs

Development

Adding a New Dock Module

See Docking System README for detailed guide.

Quick example:

from pymsc.gui.docking import DockFrame

class MyModuleDock(DockFrame):
    def __init__(self, parent, **kwargs):
        super().__init__(parent, title="My Module", **kwargs)
    
    def populate_content(self):
        # Add your widgets here
        label = ttk.Label(self.content_frame, text="My content")
        label.pack()

Running Tests

pytest                          # Run all tests
pytest tests/test_imports.py    # Quick smoke test

Configuration

1553 Bus Settings

Edit in pymsc/main.py:

config = {
    'udp_send_ip': '127.0.0.1',
    'udp_send_port': 51553,
    'udp_recv_ip': '0.0.0.0',
    'udp_recv_port': 61553
}

Workspace Layouts

Saved to layouts/user_layout.json via File → Save Layout.

Documentation

Contributing

  1. Follow PEP 8 style guide
  2. Add docstrings to public methods
  3. Update tests for new features
  4. Document architectural decisions in ADR

License

Internal project - © 2025


Status: v0.1.0 - Modular docking GUI implemented
Next Phase: TestContext implementation (L1 orchestration layer)