Fix CPM opening angle start/end
This commit is contained in:
parent
85e54352b1
commit
b11fc8d042
|
|
@ -322,6 +322,12 @@ int facilities_config() {
|
||||||
facilities.dissemination.radar_rotation = config->applications.its_center.radar_rotation;
|
facilities.dissemination.radar_rotation = config->applications.its_center.radar_rotation;
|
||||||
facilities.dissemination.tmc_connect = config->facilities.cpm.tmc_connected;
|
facilities.dissemination.tmc_connect = config->facilities.cpm.tmc_connected;
|
||||||
facilities.dissemination.T_AddSensorInformation = 1000;
|
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);
|
facilities.dissemination.int_radar = malloc(strlen(config->facilities.cpm.radar_interface)+1);
|
||||||
strcpy(facilities.dissemination.int_radar,config->facilities.cpm.radar_interface);
|
strcpy(facilities.dissemination.int_radar,config->facilities.cpm.radar_interface);
|
||||||
|
|
|
||||||
|
|
@ -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]->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.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.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.stationaryHorizontalOpeningAngleStart = facilities.dissemination.opening_angle_start;
|
||||||
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.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 = 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.verticalOpeningAngleStart) = 1730;
|
||||||
cpm_tx->cpm.cpmParameters.sensorInformationContainer->list.array[0]->detectionArea.choice.stationarySensorRadial.verticalOpeningAngleEnd = calloc(1, sizeof(CartesianAngleValue_t));
|
cpm_tx->cpm.cpmParameters.sensorInformationContainer->list.array[0]->detectionArea.choice.stationarySensorRadial.verticalOpeningAngleEnd = calloc(1, sizeof(CartesianAngleValue_t));
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@
|
||||||
|
|
||||||
#define READ_BUFFER_SIZE 1024 // Buffer for Serial and Ethernet read function (Used in cp_service)
|
#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 NOF_OBJECTS 127 // Number of Object UMRR-0C
|
||||||
#define ROAD_ANGLE 120
|
|
||||||
#define MESSAGE_ID 14
|
#define MESSAGE_ID 14
|
||||||
#define PROTOCOL_VERSION 1
|
#define PROTOCOL_VERSION 1
|
||||||
#define RADAR_PORT "55555" // Destination port from the radar
|
#define RADAR_PORT "55555" // Destination port from the radar
|
||||||
|
|
@ -138,6 +137,8 @@ typedef struct
|
||||||
/* Position of the radar (Value from toml) */
|
/* Position of the radar (Value from toml) */
|
||||||
|
|
||||||
int64_t radar_rotation;
|
int64_t radar_rotation;
|
||||||
|
int16_t opening_angle_start;
|
||||||
|
int16_t opening_angle_end;
|
||||||
|
|
||||||
} dissemination_t;
|
} dissemination_t;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue