Change DCM intersect info

This commit is contained in:
emanuel 2022-02-10 18:05:34 +00:00
parent bf2ba4604c
commit 54d5b968bc
1 changed files with 12 additions and 3 deletions

View File

@ -12,7 +12,8 @@
static int are_vehicles_intersecting(
it2s_tender_st_s* tA, int tA_len, uint16_t vA_length, uint16_t vA_width,
it2s_tender_st_s* tB, int tB_len, uint16_t vB_length, uint16_t vB_width
it2s_tender_st_s* tB, int tB_len, uint16_t vB_length, uint16_t vB_width,
int* index
) {
// TODO check first time intersection, then the spacial trajectory
@ -37,7 +38,7 @@ static int are_vehicles_intersecting(
if (it2s_tender_is_inside_rectangle(tA[a].latitude, tA[a].longitude, tB[b].latitude, tB[b].longitude, 8, 8, 0, DCM_HAVERSINE)) {
if (tA[a].timestamp < tB[b].timestamp + 2000 &&
tA[a].timestamp > tB[b].timestamp - 2000) {
syslog_info("[facilities] [dc] intersecting @ (%d, %d) in %ld ms", tA[a].latitude, tA[a].longitude, tA[a].timestamp-tA[0].timestamp);
*index = a;
return 1;
}
}
@ -86,7 +87,15 @@ int dcm_check(void* fc, DCM_t* dcm) {
}
if (trajectoryA_len > 1 && trajectoryB_len > 1) {
are_vehicles_intersecting(trajectoryA, trajectoryA_len, facilities->vehicle.length, facilities->vehicle.width, trajectoryB, trajectoryB_len, dcm->dcm.vehicleDimensions.length, dcm->dcm.vehicleDimensions.width);
int index = 0;
if (are_vehicles_intersecting(
trajectoryA, trajectoryA_len, facilities->vehicle.length, facilities->vehicle.width,
trajectoryB, trajectoryB_len, dcm->dcm.vehicleDimensions.length, dcm->dcm.vehicleDimensions.width,
&index)
) {
syslog_info("[facilities] [dc] intersection danger with %ld @ (%d, %d) in %ld ms",
dcm->header.stationID, trajectoryA[index].latitude, trajectoryA[index].longitude, trajectoryA[index].timestamp - now);
}
}
cleanup: