Fix CPM opening angle start/end

This commit is contained in:
emanuel 2022-09-19 16:29:08 +01:00
parent 85e54352b1
commit b11fc8d042
3 changed files with 10 additions and 3 deletions

View File

@ -322,6 +322,12 @@ int facilities_config() {
facilities.dissemination.radar_rotation = config->applications.its_center.radar_rotation;
facilities.dissemination.tmc_connect = config->facilities.cpm.tmc_connected;
facilities.dissemination.T_AddSensorInformation = 1000;
uint16_t oa_start = (360-facilities.dissemination.radar_rotation) * 10 - 500;
uint16_t oa_end = (360-facilities.dissemination.radar_rotation) * 10 + 500;
facilities.dissemination.opening_angle_start = oa_start < 0 ? oa_start + 3600 : oa_start;
facilities.dissemination.opening_angle_start = oa_start > 3600 ? oa_start - 3600 : oa_start;
facilities.dissemination.opening_angle_end = oa_end > 3600 ? oa_end - 3600 : oa_end;
facilities.dissemination.opening_angle_end = oa_end < 0 ? oa_end + 3600 : oa_end;
facilities.dissemination.int_radar = malloc(strlen(config->facilities.cpm.radar_interface)+1);
strcpy(facilities.dissemination.int_radar,config->facilities.cpm.radar_interface);

View File

@ -551,8 +551,8 @@ static int mk_cpm(uint8_t *bdr_oer, uint32_t *bdr_len, uint8_t *fdi_oer, uint32_
cpm_tx->cpm.cpmParameters.sensorInformationContainer->list.array[0]->type = SensorType_radar;
cpm_tx->cpm.cpmParameters.sensorInformationContainer->list.array[0]->detectionArea.present = DetectionArea_PR_stationarySensorRadial;
cpm_tx->cpm.cpmParameters.sensorInformationContainer->list.array[0]->detectionArea.choice.stationarySensorRadial.range = 3400;
cpm_tx->cpm.cpmParameters.sensorInformationContainer->list.array[0]->detectionArea.choice.stationarySensorRadial.stationaryHorizontalOpeningAngleStart = ROAD_ANGLE * 10 - 500;
cpm_tx->cpm.cpmParameters.sensorInformationContainer->list.array[0]->detectionArea.choice.stationarySensorRadial.stationaryHorizontalOpeningAngleEnd = ROAD_ANGLE * 10 + 500;
cpm_tx->cpm.cpmParameters.sensorInformationContainer->list.array[0]->detectionArea.choice.stationarySensorRadial.stationaryHorizontalOpeningAngleStart = facilities.dissemination.opening_angle_start;
cpm_tx->cpm.cpmParameters.sensorInformationContainer->list.array[0]->detectionArea.choice.stationarySensorRadial.stationaryHorizontalOpeningAngleEnd = facilities.dissemination.opening_angle_end;
cpm_tx->cpm.cpmParameters.sensorInformationContainer->list.array[0]->detectionArea.choice.stationarySensorRadial.verticalOpeningAngleStart = calloc(1, sizeof(CartesianAngleValue_t));
(*cpm_tx->cpm.cpmParameters.sensorInformationContainer->list.array[0]->detectionArea.choice.stationarySensorRadial.verticalOpeningAngleStart) = 1730;
cpm_tx->cpm.cpmParameters.sensorInformationContainer->list.array[0]->detectionArea.choice.stationarySensorRadial.verticalOpeningAngleEnd = calloc(1, sizeof(CartesianAngleValue_t));

View File

@ -14,7 +14,6 @@
#define READ_BUFFER_SIZE 1024 // Buffer for Serial and Ethernet read function (Used in cp_service)
#define NOF_OBJECTS 127 // Number of Object UMRR-0C
#define ROAD_ANGLE 120
#define MESSAGE_ID 14
#define PROTOCOL_VERSION 1
#define RADAR_PORT "55555" // Destination port from the radar
@ -138,6 +137,8 @@ typedef struct
/* Position of the radar (Value from toml) */
int64_t radar_rotation;
int16_t opening_angle_start;
int16_t opening_angle_end;
} dissemination_t;