150 lines
4.9 KiB
TOML
150 lines
4.9 KiB
TOML
[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", "cam"]
|
|
|
|
[features]
|
|
default = ["esp", "spat", "gnss_ubx", "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-futures",
|
|
"dep:embassy-sync",
|
|
"dep:embassy-time",
|
|
"dep:embedded-io",
|
|
"dep:embedded-io-async",
|
|
"dep:esp-alloc",
|
|
"dep:esp-backtrace",
|
|
"dep:esp-println",
|
|
"dep:esp-radio",
|
|
"dep:bt-hci",
|
|
"esp32-cits-core/esp32c5",
|
|
"esp32-cits-core/log-04",
|
|
]
|
|
std = ["c-its-parser/std", "esp32-cits-core/std"]
|
|
|
|
# enable u-blox GNSS module
|
|
gnss_ubx = ["_gnss", "_uart", "dep:ublox"]
|
|
# enable L67K GNSS module
|
|
gnss_l67k = ["_gnss", "dep:embassy_gps"]
|
|
# echo CAM data on serial
|
|
cam = ["c-its-parser/cam"]
|
|
# send CAM autonomously
|
|
cam_tx = ["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"]
|
|
# enable I/O via UART
|
|
uart = ["_uart", "_gnss"]
|
|
|
|
# internal feature, that any UART I/O is enabled
|
|
_uart = []
|
|
# internal feature, that any GNSS source is enabled
|
|
_gnss = []
|
|
|
|
[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",
|
|
"embassy",
|
|
"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"
|
|
bt-hci = { version = "0.8.0", optional = true }
|
|
embassy-executor = { version = "0.10.0", optional = true, features = ["log"] }
|
|
embassy-futures = { version = "0.1.2", optional = true }
|
|
embassy-sync = { version = "0.7", optional = true }
|
|
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, default-features = false, features = ["colors", "critical-section", "jtag-serial", "esp32c5", "log-04"] }
|
|
esp-radio = { version = "0.18.0", optional = true, features = [
|
|
"esp-alloc",
|
|
"esp32c5",
|
|
"log-04",
|
|
"unstable",
|
|
"wifi",
|
|
"sniffer",
|
|
"ble",
|
|
] }
|
|
trouble-host = { version = "0.6.0", features = ["gatt", "central", "derive", "default-packet-pool"] }
|
|
static_cell = "2"
|
|
|
|
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" }
|
|
esp32-cits-core = { version = "0.1.0", default-features = false, git = "https://git.hamburg.ccc.de/jtbx/esp32-cits-core", branch = "main" }
|
|
embedded-hal-bus = { version = "0.3.0", optional = true }
|
|
embedded-graphics = { version = "0.8.2", optional = true }
|
|
# needs newer GN with removed bitvec dependency
|
|
c-its-parser = { version = "2.4.0", 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 }
|
|
prost = { version = "0.14", default-features = false, features = ["derive"] }
|
|
ublox = { version = "0.10", optional = true, default-features = false, features = ["alloc", "ubx_proto27"] }
|
|
|
|
[dev-dependencies]
|
|
assert_float_eq = "1.2.0"
|
|
env_logger = "0.11.10"
|
|
|
|
[build-dependencies]
|
|
prost-build = "0.14"
|
|
|
|
|
|
# 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
|