1 #include "ParameterCAN.h" 39 cfg_opt_t curvature_opts[] =
46 cfg_opt_t lateralAcceleration_opts[] =
48 CFG_INT(
"lateralAccelerationConfidence", NULL, CFGF_IGNORE_UNKNOWN),
49 CFG_INT(
"lateralAccelerationValue", NULL, CFGF_IGNORE_UNKNOWN),
53 cfg_opt_t longitudinalAcceleration_opts[] =
60 cfg_opt_t steeringWheelAngle_opts[] =
62 CFG_INT(
"steeringWheelAngleConfidence", NULL, CFGF_IGNORE_UNKNOWN),
63 CFG_INT(
"steeringWheelAngleValue", NULL, CFGF_IGNORE_UNKNOWN),
67 cfg_opt_t verticalAcceleration_opts[] =
69 CFG_INT(
"verticalAccelerationConfidence", NULL, CFGF_IGNORE_UNKNOWN),
70 CFG_INT(
"verticalAccelerationValue", NULL, CFGF_IGNORE_UNKNOWN),
74 cfg_opt_t yawRate_opts[] =
81 struct cfg_opt_t opts[] =
83 CFG_BOOL_LIST(
"accelerationControl",
"", CFGF_NODEFAULT | CFGF_IGNORE_UNKNOWN),
85 CFG_SEC(
"curvature", curvature_opts, CFGF_NO_TITLE_DUPES),
89 CFG_BOOL_LIST(
"exteriorLights",
"{false, false, false, false, false, false, false, false}", CFGF_NONE),
91 CFG_INT(
"externalTemperature", -10000, CFGF_IGNORE_UNKNOWN),
93 CFG_SEC(
"lateralAcceleration", lateralAcceleration_opts, CFGF_NO_TITLE_DUPES),
95 CFG_BOOL_LIST(
"lightBarSirenInUse",
"{false, false}", CFGF_NONE),
97 CFG_SEC(
"longitudinalAcceleration", longitudinalAcceleration_opts, CFGF_NO_TITLE_DUPES),
99 CFG_INT(
"numberOfOccupants", -1, CFGF_IGNORE_UNKNOWN),
101 CFG_INT(
"positioningSolutionType", -1, CFGF_IGNORE_UNKNOWN),
103 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),
105 CFG_SEC(
"steeringWheelAngle", steeringWheelAngle_opts, CFGF_MULTI),
107 CFG_SEC(
"verticalAcceleration", verticalAcceleration_opts, CFGF_MULTI),
109 CFG_SEC(
"yawRate", yawRate_opts, CFGF_NO_TITLE_DUPES),
116 cfg_t *cfg_lateralAcceleration;
117 cfg_t *cfg_longitudinalAcceleration;
118 cfg_t *cfg_steeringWheelAngle;
119 cfg_t *cfg_verticalAcceleration;
122 cfg = cfg_init(opts, CFGF_NONE);
124 cfg_lateralAcceleration = cfg_getsec(cfg,
"lateralAcceleration");
126 cfg_longitudinalAcceleration = cfg_getsec(cfg,
"longitudinalAcceleration");
128 cfg_steeringWheelAngle = cfg_getsec(cfg,
"steeringWheelAngle");
130 cfg_verticalAcceleration = cfg_getsec(cfg,
"verticalAcceleration");
132 cfg_yawRate = cfg_getsec(cfg,
"yawRate");
134 if(cfg_lateralAcceleration)
135 cfg_set_validate_func(cfg_lateralAcceleration,
"lateralAccelerationConfidence",
validate_unsigned_int);
137 cfg_set_validate_func(cfg_longitudinalAcceleration,
"longitudinalAccelerationConfidence",
validate_unsigned_int);
143 if(cfg_steeringWheelAngle)
144 cfg_set_validate_func(cfg_steeringWheelAngle,
"steeringWheelAngleConfidence",
validate_unsigned_int);
146 if(cfg_verticalAcceleration)
147 cfg_set_validate_func(cfg_verticalAcceleration,
"verticalAccelerationConfidence",
validate_unsigned_int);
151 cfg_add_searchpath(cfg,
"/etc/its/config");
152 if(cfg_parse(cfg,
"can.conf") == CFG_PARSE_ERROR)
153 printf(
"PARSE_ERROR\n");
155 if(cfg_size(cfg,
"accelerationControl"))
169 if(cfg_getint(cfg,
"externalTemperature") == -10000)
178 if(cfg_size(cfg,
"lateralAcceleration"))
195 if(cfg_getint(cfg,
"numberOfOccupants") == -1)
204 if(cfg_getint(cfg,
"positioningSolutionType") == -1)
216 if(cfg_size(cfg,
"steeringWheelAngle"))
226 if(cfg_size(cfg,
"verticalAcceleration"))
240 m_speed = cfg_getint(cfg,
"speed");
261 printf(
"-----------------------------------------------------------------\n\t\t\tReadCan\n\n");
264 printf(
"accelerationControl = ");
265 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