[package] name = "meteor_detect" version = "0.1.0" edition = "2021" authors = ["Meteor Detection Team"] description = "A Raspberry Pi based meteor detection system" [features] # 默认features default = [] # 如果在Linux上运行,则默认启用GPIO support # 这确保rppal和embedded-hal依赖会被编译进来 [target.'cfg(target_os = "linux")'.features] default = ["gpio"] # 树莓派特定target配置 [target.'cfg(all(target_os = "linux", target_arch = "arm"))'.features] default = ["gpio"] # 64位树莓派target配置 [target.'cfg(all(target_os = "linux", target_arch = "aarch64"))'.features] default = ["gpio"] # 定义常规的features (全平台通用) gpio = ["rppal", "embedded-hal"] # Feature to enable GPIO functionality opencv-4-11-plus = [] # For OpenCV 4.11 and newer versions [dependencies] # Hardware interfaces rppal = { version = "0.22.1", optional = true } # Raspberry Pi hardware access serialport = "4.2.0" # Serial port for GPS embedded-hal = { version = "0.2.7", optional = true } # Hardware abstraction layer # Video processing opencv = { version = "0.94.2" } # OpenCV bindings image = "0.25.5" # Image processing clang-sys = { version = "=1.4.0", features = ["runtime", "clang_14_0"] } # Concurrency and async tokio = { version = "1.28.0", features = ["full"] } # Async runtime async-trait = "0.1.68" # Async traits futures = "0.3.28" # Future utilities # Data handling dirs = "6.0.0" toml = "0.8.20" serde = { version = "1.0.160", features = ["derive"] } # Serialization serde_json = "1.0.96" # JSON support chrono = { version = "0.4.24", features = ["serde"] } # Date and time rusqlite = { version = "0.34.0", features = ["bundled"] } # SQLite # Networking and communication rumqttc = "0.24.0" # MQTT client actix-web = "4.3.1" # Web framework for REST API reqwest = { version = "0.12.14", features = ["json"] } # HTTP client gstreamer = "0.23.5" # GStreamer bindings for media streaming gstreamer-rtsp-server = "0.23.5" # RTSP server # Logging and monitoring log = "0.4.17" # Logging facade env_logger = "0.11.7" # Logger implementation sysinfo = "0.33.1" # System information # Utilities anyhow = "1.0.70" # Error handling thiserror = "1.0.40" # Error definitions config = "0.13.3" # Configuration management uuid = { version = "1.3.3", features = ["v4", "serde"] } # UUIDs clap = { version = "4.2.5", features = ["derive"] } # Command line argument parsing rand = "0.8.5" # Random number generation for sensor simulation [dev-dependencies] criterion = "0.4.0" # Benchmarking mockall = "0.11.4" # Mocking for tests [[example]] name = "cams_detector_demo" path = "examples/cams_detector_demo.rs" [[example]] name = "camera_demo" path = "examples/camera_demo.rs" [[example]] name = "meteor_detection_system" path = "examples/meteor_detection_system.rs"