chore(denm): Update c-its-parser and use conversions from there
This commit is contained in:
parent
6c9cbbd6e6
commit
a62d25e651
3 changed files with 6 additions and 143 deletions
4
Cargo.lock
generated
4
Cargo.lock
generated
|
|
@ -186,9 +186,9 @@ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
|
|||
|
||||
[[package]]
|
||||
name = "c-its-parser"
|
||||
version = "2.2.2"
|
||||
version = "2.2.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ee4515d183029336d4c1ccb4b5e66dfaf167407b83c1729a2b53fdded1e68a24"
|
||||
checksum = "993244dbda1234597ca13fe2e2565fc6f2ece585040404faa011482b55ed544e"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"etherparse",
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ esp-radio = { version = "0.18.0", optional = true, features = [
|
|||
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.2", default-features = false, features = [
|
||||
c-its-parser = { version = "2.2.4", default-features = false, features = [
|
||||
"time",
|
||||
"geo",
|
||||
"libm",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
//! C-ITS DENM Evaluation
|
||||
|
||||
use c_its_parser::standards::cdd_2_2_1::etsi_its_cdd;
|
||||
use c_its_parser::standards::denm_2_2_1::denm_pdu_description;
|
||||
use log::info;
|
||||
|
||||
|
|
@ -28,154 +27,18 @@ pub fn handle_denm(etsi: &denm_pdu_description::DENM) {
|
|||
|
||||
// let direction = mgmt.traffic_direction;
|
||||
|
||||
let (cc, scc) = cause_code_choice_to_numbers(&sit.event_type.cc_and_scc);
|
||||
let (cc, scc) = sit.event_type.cc_and_scc.to_u8_tuple();
|
||||
|
||||
if let Some(hdg) = heading {
|
||||
info!(
|
||||
"DENN: {station_id}/{seq_num} CC {cc}/{scc} at {lat_deg:.3}°N, {lon_deg:.3}°E, hdg {hdg:.1}° until {end_time:?}"
|
||||
)
|
||||
);
|
||||
} else {
|
||||
info!(
|
||||
"DENN: {station_id}/{seq_num} CC {cc}/{scc} at {lat_deg:.3}°N, {lon_deg:.3}°E until {end_time:?}"
|
||||
)
|
||||
);
|
||||
}
|
||||
} else {
|
||||
info!("DENM: One of situation or location container not available");
|
||||
}
|
||||
}
|
||||
|
||||
fn cause_code_choice_to_numbers(choice: &etsi_its_cdd::CauseCodeChoice) -> (u8, u8) {
|
||||
match choice {
|
||||
etsi_its_cdd::CauseCodeChoice::reserved0(scc) => (0, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::trafficCondition1(scc) => (1, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::accident2(scc) => (2, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::roadworks3(scc) => (3, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved4(scc) => (4, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::impassability5(scc) => (5, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::adverseWeatherCondition_Adhesion6(scc) => (6, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::aquaplaning7(scc) => (7, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved8(scc) => (8, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::hazardousLocation_SurfaceCondition9(scc) => (9, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::hazardousLocation_ObstacleOnTheRoad10(scc) => (10, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::hazardousLocation_AnimalOnTheRoad11(scc) => (11, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::humanPresenceOnTheRoad12(scc) => (12, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved13(scc) => (13, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::wrongWayDriving14(scc) => (14, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::rescueAndRecoveryWorkInProgress15(scc) => (15, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved16(scc) => (16, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::adverseWeatherCondition_ExtremeWeatherCondition17(scc) => {
|
||||
(17, scc.0)
|
||||
}
|
||||
etsi_its_cdd::CauseCodeChoice::adverseWeatherCondition_Visibility18(scc) => (18, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::adverseWeatherCondition_Precipitation19(scc) => (19, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::violence20(scc) => (20, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved21(scc) => (21, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved22(scc) => (22, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved23(scc) => (23, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved24(scc) => (24, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved25(scc) => (25, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::slowVehicle26(scc) => (26, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::dangerousEndOfQueue27(scc) => (27, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::publicTransportVehicleApproaching28(scc) => (28, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved29(scc) => (29, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved30(scc) => (30, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved31(scc) => (31, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved32(scc) => (32, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved33(scc) => (33, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved34(scc) => (34, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved35(scc) => (35, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved36(scc) => (36, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved37(scc) => (37, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved38(scc) => (38, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved39(scc) => (39, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved40(scc) => (40, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved41(scc) => (41, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved42(scc) => (42, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved43(scc) => (43, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved44(scc) => (44, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved45(scc) => (45, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved46(scc) => (46, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved47(scc) => (47, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved48(scc) => (48, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved49(scc) => (49, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved50(scc) => (50, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved51(scc) => (51, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved52(scc) => (52, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved53(scc) => (53, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved54(scc) => (54, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved55(scc) => (55, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved56(scc) => (56, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved57(scc) => (57, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved58(scc) => (58, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved59(scc) => (59, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved60(scc) => (60, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved61(scc) => (61, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved62(scc) => (62, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved63(scc) => (63, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved64(scc) => (64, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved65(scc) => (65, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved66(scc) => (66, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved67(scc) => (67, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved68(scc) => (68, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved69(scc) => (69, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved70(scc) => (70, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved71(scc) => (71, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved72(scc) => (72, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved73(scc) => (73, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved74(scc) => (74, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved75(scc) => (75, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved76(scc) => (76, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved77(scc) => (77, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved78(scc) => (78, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved79(scc) => (79, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved80(scc) => (80, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved81(scc) => (81, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved82(scc) => (82, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved83(scc) => (83, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved84(scc) => (84, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved85(scc) => (85, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved86(scc) => (86, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved87(scc) => (87, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved88(scc) => (88, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved89(scc) => (89, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved90(scc) => (90, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::vehicleBreakdown91(scc) => (91, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::postCrash92(scc) => (92, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::humanProblem93(scc) => (93, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::stationaryVehicle94(scc) => (94, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::emergencyVehicleApproaching95(scc) => (95, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::hazardousLocation_DangerousCurve96(scc) => (96, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::collisionRisk97(scc) => (97, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::signalViolation98(scc) => (98, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::dangerousSituation99(scc) => (99, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::railwayLevelCrossing100(scc) => (100, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved101(scc) => (101, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved102(scc) => (102, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved103(scc) => (103, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved104(scc) => (104, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved105(scc) => (105, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved106(scc) => (106, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved107(scc) => (107, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved108(scc) => (108, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved109(scc) => (109, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved110(scc) => (110, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved111(scc) => (111, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved112(scc) => (112, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved113(scc) => (113, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved114(scc) => (114, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved115(scc) => (115, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved116(scc) => (116, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved117(scc) => (117, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved118(scc) => (118, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved119(scc) => (119, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved120(scc) => (120, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved121(scc) => (121, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved122(scc) => (122, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved123(scc) => (123, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved124(scc) => (124, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved125(scc) => (125, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved126(scc) => (126, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved127(scc) => (127, scc.0),
|
||||
etsi_its_cdd::CauseCodeChoice::reserved128(scc) => (128, scc.0),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue