1 #include "ParameterCAN.h" 23 cfg_opt_t curvature_opts[] =
30 cfg_opt_t lateralAcceleration_opts[] =
32 CFG_INT(
"lateralAccelerationConfidence", NULL, CFGF_IGNORE_UNKNOWN),
33 CFG_INT(
"lateralAccelerationValue", NULL, CFGF_IGNORE_UNKNOWN),
37 cfg_opt_t longitudinalAcceleration_opts[] =
44 cfg_opt_t steeringWheelAngle_opts[] =
46 CFG_INT(
"steeringWheelAngleConfidence", NULL, CFGF_IGNORE_UNKNOWN),
47 CFG_INT(
"steeringWheelAngleValue", NULL, CFGF_IGNORE_UNKNOWN),
51 cfg_opt_t verticalAcceleration_opts[] =
53 CFG_INT(
"verticalAccelerationConfidence", NULL, CFGF_IGNORE_UNKNOWN),
54 CFG_INT(
"verticalAccelerationValue", NULL, CFGF_IGNORE_UNKNOWN),
58 cfg_opt_t yawRate_opts[] =
65 struct cfg_opt_t opts[] =
67 CFG_BOOL_LIST(
"accelerationControl",
"", CFGF_NODEFAULT | CFGF_IGNORE_UNKNOWN),
69 CFG_SEC(
"curvature", curvature_opts, CFGF_NO_TITLE_DUPES),
73 CFG_BOOL_LIST(
"exteriorLights",
"{false, false, false, false, false, false, false, false}", CFGF_NONE),
75 CFG_INT(
"externalTemperature", -10000, CFGF_IGNORE_UNKNOWN),
77 CFG_SEC(
"lateralAcceleration", lateralAcceleration_opts, CFGF_NO_TITLE_DUPES),
79 CFG_BOOL_LIST(
"lightBarSirenInUse",
"{false, false}", CFGF_NONE),
81 CFG_SEC(
"longitudinalAcceleration", longitudinalAcceleration_opts, CFGF_NO_TITLE_DUPES),
83 CFG_INT(
"numberOfOccupants", -1, CFGF_IGNORE_UNKNOWN),
85 CFG_INT(
"positioningSolutionType", -1, CFGF_IGNORE_UNKNOWN),
87 CFG_BOOL_LIST(
"positionOfOccupants",
"{false, false, false, true, false, false, false, false, true, false, false, false, false, true, false, false, false, false, true, false}", CFGF_NONE),
89 CFG_SEC(
"steeringWheelAngle", steeringWheelAngle_opts, CFGF_MULTI),
91 CFG_SEC(
"verticalAcceleration", verticalAcceleration_opts, CFGF_MULTI),
93 CFG_SEC(
"yawRate", yawRate_opts, CFGF_NO_TITLE_DUPES),
100 cfg_t *cfg_lateralAcceleration;
101 cfg_t *cfg_longitudinalAcceleration;
102 cfg_t *cfg_steeringWheelAngle;
103 cfg_t *cfg_verticalAcceleration;
106 cfg = cfg_init(opts, CFGF_NONE);
108 cfg_lateralAcceleration = cfg_getsec(cfg,
"lateralAcceleration");
110 cfg_longitudinalAcceleration = cfg_getsec(cfg,
"longitudinalAcceleration");
112 cfg_steeringWheelAngle = cfg_getsec(cfg,
"steeringWheelAngle");
114 cfg_verticalAcceleration = cfg_getsec(cfg,
"verticalAcceleration");
116 cfg_yawRate = cfg_getsec(cfg,
"yawRate");
118 if(cfg_lateralAcceleration)
119 cfg_set_validate_func(cfg_lateralAcceleration,
"lateralAccelerationConfidence",
validate_unsigned_int);
121 cfg_set_validate_func(cfg_longitudinalAcceleration,
"longitudinalAccelerationConfidence",
validate_unsigned_int);
127 if(cfg_steeringWheelAngle)
128 cfg_set_validate_func(cfg_steeringWheelAngle,
"steeringWheelAngleConfidence",
validate_unsigned_int);
130 if(cfg_verticalAcceleration)
131 cfg_set_validate_func(cfg_verticalAcceleration,
"verticalAccelerationConfidence",
validate_unsigned_int);
135 cfg_add_searchpath(cfg,
"/etc/its/config");
136 if(cfg_parse(cfg,
"can.conf") == CFG_PARSE_ERROR)
137 printf(
"PARSE_ERROR\n");
139 if(cfg_size(cfg,
"accelerationControl"))
152 if(cfg_getint(cfg,
"externalTemperature") == -10000)
161 if(cfg_size(cfg,
"lateralAcceleration"))
178 if(cfg_getint(cfg,
"numberOfOccupants") == -1)
187 if(cfg_getint(cfg,
"positioningSolutionType") == -1)
199 if(cfg_size(cfg,
"steeringWheelAngle"))
209 if(cfg_size(cfg,
"verticalAcceleration"))
223 m_speed = cfg_getint(cfg,
"speed");
243 printf(
"-----------------------------------------------------------------\n\t\t\tReadCan\n\n");
246 printf(
"accelerationControl = ");
247 printf(
"%s",
printBitString(*m_accelerationControl).toStdString().c_str());
Temperature_t * m_externalTemperature
YawRateValue_t yawRateValue
~ParameterCAN()
~ParameterCAN ParameterCAN destructor.
ExteriorLights_t m_exteriorLights
int validate_unsigned_int(cfg_t *cfg, cfg_opt_t *opt)
validate_unsigned_int Check if an option is an unsigned int
Curvature_t curvatureUnavailable()
curvatureUnavailable Set the curvature value to unavailable.
void read()
read Configuration file reading.
LightBarSirenInUse_t m_lightBarSirenInUse
AccelerationConfidence_t verticalAccelerationConfidence
SteeringWheelAngleValue_t steeringWheelAngleValue
AccelerationConfidence_t lateralAccelerationConfidence
YawRateConfidence_t yawRateConfidence
QString printBitString(BIT_STRING_t b)
printBitString Print a BIT_STRING into a QString.
AccelerationControl_t * m_accelerationControl
NumberOfOccupants_t * m_numberOfOccupants
ParameterCAN()
ParameterCAN ParameterCAN constructor.
CurvatureCalculationMode_t m_curvatureCalculationMode
VerticalAcceleration_t * m_verticalAcceleration
LongitudinalAccelerationValue_t longitudinalAccelerationValue
BIT_STRING_t makeBitString(int nbits, cfg_t *cfg, const char *opt_name)
makeBitString Generate a BIT_STRING from configuration.
CurvatureConfidence_t curvatureConfidence
AccelerationConfidence_t longitudinalAccelerationConfidence
Curvature_t calculateCurvatureWithYawRate()
calculateCurvatureWithYawRate Calculate curvature with yaw rate.
SteeringWheelAngle_t * m_steeringWheelAngle
CurvatureValue_t curvatureValue
LongitudinalAcceleration_t m_longitudinalAcceleration
PositioningSolutionType_t * m_positioningSolution
PositionOfOccupants_t m_positionOfOccupants
long PositioningSolutionType_t
void readDebug()
readDebug Configuration printing.
SteeringWheelAngleConfidence_t steeringWheelAngleConfidence
DriveDirection_t m_driveDirection
ParameterCAN & operator=(const ParameterCAN &other)
operator= Affectation operator.
VerticalAccelerationValue_t verticalAccelerationValue
LateralAccelerationValue_t lateralAccelerationValue
LateralAcceleration_t * m_lateralAcceleration