VCM: Fix VCM.req trjlen

This commit is contained in:
emanuel 2022-10-26 18:43:32 +01:00
parent 15ee0b7f81
commit 07dcd7ef97
1 changed files with 14 additions and 22 deletions

View File

@ -377,18 +377,14 @@ static int intersection_detected(VCM_t* vcm, mc_neighbour_s* neighbour) {
mvc->vehicleWidth = facilities.vehicle.width;
// Planned trajectory
mvc->plannedTrajectory.list.count = trajectoryA_len;
mvc->plannedTrajectory.list.size = trajectoryA_len * sizeof(void*);
mvc->plannedTrajectory.list.array = malloc(trajectoryA_len * sizeof(void*));
mvc->plannedTrajectory.list.array[0] = calloc(1, sizeof(STPoint_t));
mvc->plannedTrajectory.list.array[0]->deltaLatitude = trajectoryA[0].latitude - lat;
mvc->plannedTrajectory.list.array[0]->deltaLongitude = trajectoryA[0].longitude - lon;
mvc->plannedTrajectory.list.array[0]->deltaTime = trajectoryA[0].timestamp - now;
for (int i = 1; i < trajectoryA_len; ++i) {
mvc->plannedTrajectory.list.count = trajectoryA_len - 1;
mvc->plannedTrajectory.list.size = (trajectoryA_len - 1) * sizeof(void*);
mvc->plannedTrajectory.list.array = malloc((trajectoryA_len - 1) * sizeof(void*));
for (int i = 0; i < trajectoryA_len - 1; ++i) {
mvc->plannedTrajectory.list.array[i] = calloc(1, sizeof(STPoint_t));
mvc->plannedTrajectory.list.array[i]->deltaLatitude = trajectoryA[i].latitude - trajectoryA[i-1].latitude;
mvc->plannedTrajectory.list.array[i]->deltaLongitude = trajectoryA[i].longitude - trajectoryA[i-1].longitude;
mvc->plannedTrajectory.list.array[i]->deltaTime = trajectoryA[i].timestamp - trajectoryA[i-1].timestamp;
mvc->plannedTrajectory.list.array[i]->deltaLatitude = trajectoryA[i+1].latitude - trajectoryA[i].latitude;
mvc->plannedTrajectory.list.array[i]->deltaLongitude = trajectoryA[i+1].longitude - trajectoryA[i].longitude;
mvc->plannedTrajectory.list.array[i]->deltaTime = trajectoryA[i+1].timestamp - trajectoryA[i].timestamp;
}
// Desired trajectory
@ -402,18 +398,14 @@ static int intersection_detected(VCM_t* vcm, mc_neighbour_s* neighbour) {
mvc->negotiation->choice.request.requesterId = vcm->header.stationID;
mvc->negotiation->choice.request.nonce = rand() + 1;
pt->trajectory.list.count = trajectoryA_len;
pt->trajectory.list.size = sizeof(void*) * trajectoryA_len;
pt->trajectory.list.array = malloc(sizeof(void*) * trajectoryA_len);
pt->trajectory.list.array[0] = calloc(1, sizeof(STPoint_t));
pt->trajectory.list.array[0]->deltaLatitude = trajectoryA[0].latitude - lat;
pt->trajectory.list.array[0]->deltaLongitude = trajectoryA[0].longitude - lon;
pt->trajectory.list.array[0]->deltaTime = trajectoryA[0].timestamp - now;
for (int i = 1; i < trajectoryA_len; ++i) {
pt->trajectory.list.count = trajectoryA_len - 1;
pt->trajectory.list.size = sizeof(void*) * (trajectoryA_len - 1);
pt->trajectory.list.array = malloc(sizeof(void*) * (trajectoryA_len - 1));
for (int i = 0; i < trajectoryA_len - 1; ++i) {
pt->trajectory.list.array[i] = calloc(1, sizeof(STPoint_t));
pt->trajectory.list.array[i]->deltaLatitude = trajectoryA[i].latitude - trajectoryA[i-1].latitude;
pt->trajectory.list.array[i]->deltaLongitude = trajectoryA[i].longitude - trajectoryA[i-1].longitude;
pt->trajectory.list.array[i]->deltaTime = trajectoryA[i].timestamp - trajectoryA[i-1].timestamp;
pt->trajectory.list.array[i]->deltaLatitude = trajectoryA[i+1].latitude - trajectoryA[i].latitude;
pt->trajectory.list.array[i]->deltaLongitude = trajectoryA[i+1].longitude - trajectoryA[i].longitude;
pt->trajectory.list.array[i]->deltaTime = trajectoryA[i+1].timestamp - trajectoryA[i].timestamp;
}
pt->offer = 5;