[package] edition = "2024" name = "esp32-c_its-companion" rust-version = "1.88" version = "0.1.0" default-run = "esp32-c_its-companion" [[bin]] name = "esp32-c_its-companion" path = "./src/main.rs" [[bin]] name = "test" path = "./src/test.rs" required-features = ["std"] [features] default = ["esp", "spat", "gnss", "screen"] # build for ESP (needed to build test for `host-tuple`) esp = [ "dep:esp-hal", "dep:esp-rtos", "dep:esp-bootloader-esp-idf", "dep:embassy-executor", "dep:embassy-time", "dep:embedded-io", "dep:embedded-io-async", "dep:esp-alloc", "dep:esp-backtrace", "dep:esp-println", "dep:esp-radio", ] std = ["c-its-parser/std"] # enable L67K GNSS module gnss = ["dep:embassy_gps"] # echo CAM data on serial cam = ["c-its-parser/cam"] # echo DENM events on serial and BLE denm = ["c-its-parser/denm"] # evaluate SPAT information spat = ["c-its-parser/spatem", "c-its-parser/mapem"] # enable some debug printing (without enabling debug logging of the ESP RTOS) spat_debug = [] # enable ST7789 based display screen = ["dep:mipidsi", "dep:embedded-graphics", "dep:embedded-hal-bus", "dep:profont"] [dependencies] esp-hal = { version = "~1.1.0", optional = true, features = ["esp32c5", "log-04", "unstable"] } esp-rtos = { version = "0.3.0", optional = true, features = [ "embassy", "esp-alloc", "esp-radio", "esp32c5", "log-04", ] } esp-bootloader-esp-idf = { version = "0.5.0", optional = true, features = ["esp32c5", "log-04"] } log = "0.4.27" critical-section = "1.2.0" embassy-executor = { version = "0.10.0", optional = true, features = ["log"] } embassy-time = { version = "0.5.0", optional = true, features = ["log"] } embedded-io = { version = "0.7.1", optional = true } embedded-io-async = { version = "0.7.0", optional = true } esp-alloc = { version = "0.10.0", optional = true } esp-backtrace = { version = "0.19.0", optional = true, features = [ "esp32c5", "panic-handler", "println", ] } esp-println = { version = "0.17.0", optional = true, features = ["esp32c5", "log-04"] } esp-radio = { version = "0.18.0", optional = true, features = [ "esp-alloc", "esp32c5", "log-04", "unstable", "wifi", "sniffer", ] } embassy_gps = { version = "0.1.0", optional = true, default-features = false, features = ["esp", "log-04"], git = "https://github.com/jbeyerstedt/embassy_gps.git", branch = "feat/rework-gpsfix" } embedded-hal-bus = { version = "0.3.0", optional = true } embedded-graphics = { version = "0.8.2", optional = true } c-its-parser = { version = "2.2.4", default-features = false, features = [ "time", "geo", "libm", "transport", ] } chrono = { version = "0.4.44", default-features = false, features = ["alloc"] } crossbeam-queue = { version = "0.3.12", default-features = false, features = ["alloc"] } geo-types = { version = "0.7.19", default-features = false } mipidsi = { version = "0.10.0", optional = true } num-traits = { version = "0.2.19", default-features = false, features = ["libm"] } profont = { version = "0.7.0", optional = true } [dev-dependencies] assert_float_eq = "1.2.0" env_logger = "0.11.10" # For fine tuning these settings, please refer to https://doc.rust-lang.org/cargo/reference/profiles.html [profile.dev] # The default debug profile is too slow and too big for resource-constrained devices. # Always build with some optimizations enabled. opt-level = "s" [profile.release] codegen-units = 1 # LLVM can perform better optimizations using a single thread debug = 2 # prefer slower builds but better debugging experience lto = 'fat' opt-level = 's' strip = "debuginfo" [profile.release-dbg] inherits = "release" strip = false