VeriStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Compiling Simulink model for linux RT target error: request for member in something not a structure or union

Hello!

 

I've been attempting to compile a model in simulink with the 'VeriStand.tlc' target file.

The toolchain is 'VeriStand Compiler for Linux64 targets | gmake makefile (64-bit Linux)'.

My MATLAB version is R2019b.

My Veristand version is 2019R3.

 

Error information:

 

C:/software_project/VeriStandTemp005/VeriStandTemp5_veristand_rtw/VeriStandTemp5.c:341107:5: error: request for member 'Time' in something not a structure or union offsetof(B_VeriStandTemp5_T, VDG.Detections.Time) + (0*sizeof(real_T)), 

 

The C code:

 

static NI_Signal NI_SigList[] DataSection(".NIVS.siglist") =
{
  { 0, "veristandtemp5/Actors and Sensor Simulation1/VDG/NumDetections", 0, "",
    offsetof(B_VeriStandTemp5_T, VDG.NumDetections) + (0*sizeof(real_T)),
    BLOCKIO_SIG, 0, 1, 2, 0, 0 },

  { 1, "veristandtemp5/Actors and Sensor Simulation1/VDG/IsValidTime", 0, "",
    offsetof(B_VeriStandTemp5_T, VDG.IsValidTime) + (0*sizeof(boolean_T)),
    BLOCKIO_SIG, 8, 1, 2, 0, 0 },

  { 2, "veristandtemp5/Actors and Sensor Simulation1/VDG/Detections/Time", 0, "",
    offsetof(B_VeriStandTemp5_T, VDG.Detections.Time) + (0*sizeof(real_T)),
    BLOCKIO_SIG, 0, 1, 2, 0, 0 },
.......
}

 

The datatype of "VDG" is "BusVision" defined as following:

 

typedef struct {
  real_T NumDetections;
  boolean_T IsValidTime;
  BusVisionDetections Detections[4];
} BusVision;

typedef struct {
  real_T Time;
  real_T Measurement[6];
  real_T MeasurementNoise[36];
  real_T SensorIndex;
  real_T ObjectClassID;
  BusVisionDetectionsObjectAttributes ObjectAttributes;
  BusVisionDetectionsMeasurementParameters MeasurementParameters;
} BusVisionDetections;

 

 

0 Kudos
Message 1 of 1
(1,294 Views)