File Reference App_main2

Path: App/main2.py

1. Purpose

هذا الملف جزء من نواة HDDS ويخدم طبقة وظيفية محددة داخل منظومة Radar/Audio/GUI orchestration.

2. Responsibilities

  • احتواء منطق المجال الخاص بهذا الملف.
  • توفير API داخلي لباقي الوحدات.
  • تنفيذ جزء من Runtime pipeline.

3. Imports Analysis

  • 1:from future import annotations
  • 3:import os
  • 4:import threading
  • 5:import time
  • 6:import tkinter as tk
  • 7:import warnings
  • 8:from dataclasses import dataclass
  • 9:from pathlib import Path
  • 10:from tkinter import filedialog, messagebox, ttk
  • 17:import cv2
  • 18:import joblib
  • 19:import librosa
  • 20:import numpy as np
  • 21:import torch
  • 22:import tensorflow as tf
  • 25:from tensorflow.keras.layers import Dense, Conv2D, MaxPooling2D, Flatten, Dropout
  • 64:from audio.classifier import LoadedAudioModels, load_audio_models
  • 65:from audio.classifier import predict_window as predict_project_audio_window
  • 66:from audio.preprocess import TARGET_SR as PROJECT_AUDIO_TARGET_SR
  • 67:from audio.preprocess import load_audio_file, slice_audio
  • 68:from radar_sim.channel import simulate_surveillance_matrix
  • 69:from radar_sim.constants import load_app_config
  • 70:from radar_sim.detection import ca_cfar_2d
  • 71:from radar_sim.processing import process_reference_and_surveillance
  • 72:from radar_sim.waveform import generate_reference_matrix

4. Main Classes

  • 27:class CompatibleLayer:
  • 32:class CompatibleDense(CompatibleLayer, Dense): pass
  • 33:class CompatibleConv2D(CompatibleLayer, Conv2D): pass
  • 34:class CompatibleMaxPooling2D(CompatibleLayer, MaxPooling2D): pass
  • 35:class CompatibleFlatten(CompatibleLayer, Flatten): pass
  • 36:class CompatibleDropout(CompatibleLayer, Dropout): pass
  • 104:class AudioPrediction:
  • 112:class RadarRuntime:
  • 121:class PlaybackAudio:
  • 127:class LoadedAudioBackend:
  • 135:class DetectionSnapshot:
  • 302:class HybridDetectionDashboard:

5. Main Functions

  • 99:def default_config_path() -> Path:
  • 144:def extract_features(audio_array: np.ndarray, sr: int) -> np.ndarray:
  • 176:def load_audio_backend() -> LoadedAudioBackend:
  • 204:def predict_audio_file(backend: LoadedAudioBackend, audio_path: Path) -> list[AudioPrediction]:
  • 212:def _predict_audio_file_with_keras_model(
  • 245:def _predict_audio_file_with_legacy_model(
  • 253:def _predict_audio_file_with_project_model(
  • 283:def load_playback_audio(audio_path: Path) -> PlaybackAudio:
  • 1019:def main() -> None:

تحليل الدوال (منهج عام):

  • input: معاملات runtime/config/data structures.
  • output: dataclasses/arrays/reports/state updates.
  • algorithm: يعتمد على نوع الملف (DSP/ML/GUI/control flow).
  • side effects: I/O، logging، GUI updates، أو model loading.
  • runtime behavior: دوال critical قد تنفذ per-frame أو per-window.

6. Internal Workflow

  • تهيئة البيانات أو الإعدادات.
  • تطبيق المعالجة الأساسية.
  • إعادة النتائج أو تحديث state خارجي.

7. Data Flow

  • inbound: من ملفات config أو callers أعلى.
  • processing: transformations حسب domain.
  • outbound: structures تستخدمها ملفات أخرى أو GUI.

8. Mathematical Concepts

إذا كان الملف Radar/Audio DSP فإنه يستخدم مفاهيم مثل FFT, Doppler Shift, log-Mel, thresholding حسب السياق.

9. Important Variables

  • 75:LEGACY_AUDIO_TARGET_SR = 22050
  • 76:AUDIO_WINDOW_S = 2.0 # Matches the new model's training duration
  • 77:AUDIO_HOP_S = 0.5
  • 78:N_MELS = 128
  • 79:VISION_CONFIDENCE = 0.5
  • 80:VISION_EVERY_N_FRAMES = 3
  • 82:YOLO_DIR = REPO_ROOT / "yolov5"
  • 83:YOLO_WEIGHTS = YOLO_DIR / "best.pt"
  • 85:AUDIO_MODEL_PATH = REPO_ROOT / "Project v1" / "src" / "audio" / "drone_sound_model.h5"
  • 87:BG = "#0f172a"
  • 88:SURFACE = "#111827"
  • 89:SURFACE_2 = "#182235"
  • 90:BORDER = "#293548"
  • 91:TEXT = "#e5e7eb"
  • 92:MUTED = "#94a3b8"
  • 93:GREEN = "#22c55e"
  • 94:AMBER = "#f59e0b"
  • 95:RED = "#ef4444"
  • 96:BLUE = "#38bdf8"

10. Integration Points

  • Used By: يعتمد على استدعاءات بقية النظام لهذا الملف.
  • Calls: وحدات داخلية وخارجية (NumPy/TensorFlow/PyTorch/OpenCV).

11. Runtime Sequence

ينفذ هذا الملف ضمن التسلسل العام الموضح في Runtime Execution Flow.

12. Error Handling

  • يعتمد على raise/exceptions المحلية في الملف.
  • في GUI يتم غالبًا احتواء الخطأ عبر dialogs أو status messages.

13. Performance Notes

  • الملفات التشغيلية per-frame/per-window حساسة للأداء.
  • عمليات ML inference وFFT هي الأعلى كلفة عادة.

14. Future Improvements

  • إضافة profiling موحد.
  • توحيد metrics logging.
  • تقليل التكرار بين و عند الإمكان.

Metadata

  • Source path: App/main2.py
  • Lines: 1027
Built with LogoFlowershow