добавлен парсер HEX с разбиением по FE; обрабатываем только строки 0x; D0→RAW; сегменты с F0→SYNC_DET (расчёт спектра и добавление в B‑scan), F4 в таких сегментах игнорируется; поддержка .csv и отложенный парсинг HEX для избежания SKIP по таймауту.
This commit is contained in:
35
AGENTS.md
Normal file
35
AGENTS.md
Normal file
@ -0,0 +1,35 @@
|
||||
# Repository Guidelines
|
||||
|
||||
## Project Structure & Module Organization
|
||||
- `main.py`: Tkinter GUI for radar data analysis; watches a data folder, parses RAW/SYNC_DET/FOURIER files, and renders B‑scan/Fourier views.
|
||||
- `datagen.py`: Test data generator for RAW, SYNC_DET, and FOURIER; produces time‑stamped files to feed the GUI.
|
||||
- `testLadArrayGround.m`: MATLAB scratch for algorithm experiments.
|
||||
- Tests: none yet. Add under `tests/` (e.g., `tests/test_io.py`). If processing grows, factor helpers into a `processing/` package (e.g., `processing/signal.py`).
|
||||
|
||||
## Build, Test, and Development Commands
|
||||
- Create venv: `python3 -m venv .venv && source .venv/bin/activate` (Win: `.venv\Scripts\activate`).
|
||||
- Install deps: `pip install numpy scipy matplotlib`. Linux may require Tk: `sudo apt-get install -y python3-tk`.
|
||||
- Run GUI: `python main.py`.
|
||||
- Generate sample data: `python datagen.py` and choose 1/2/3; files go to the configured data folder.
|
||||
- Run tests (when added): `pytest -q`.
|
||||
|
||||
## Coding Style & Naming Conventions
|
||||
- Follow PEP 8 with 4‑space indents; add type hints for new/edited functions.
|
||||
- Naming: snake_case (functions/vars), PascalCase (classes), UPPER_SNAKE_CASE (constants).
|
||||
- Keep GUI logic in `main.py`; move pure processing/IO into small, testable modules.
|
||||
|
||||
## Testing Guidelines
|
||||
- Framework: pytest (recommended). No suite exists yet.
|
||||
- Naming: `tests/test_*.py`. Use temp dirs for file‑based tests; don’t write to system paths.
|
||||
- Aim for ≥70% coverage on new modules. Add smoke tests for file parsing and queue/processing logic; use a non‑interactive Matplotlib backend for tests.
|
||||
|
||||
## Commit & Pull Request Guidelines
|
||||
- Commits: imperative mood with scope, e.g., `gui: improve B‑scan update`, `datagen: add FOURIER mode`.
|
||||
- PRs: include description, linked issues, reproduction steps, and screenshots/GIFs for UI changes. Keep changes focused and update docs when constants/paths change.
|
||||
|
||||
## Configuration Tips
|
||||
- Data paths are hardcoded; update before running on non‑Windows systems:
|
||||
- `main.py:18` — `data_dir = r"D:\\data"`
|
||||
- `datagen.py:11` — `DATA_DIR = r"D:\\data"`
|
||||
- Prefer a writable local path (e.g., `/tmp/data`) and do not commit generated data.
|
||||
|
||||
Reference in New Issue
Block a user