/* MA_Request::op_3_8_2_3_a */
void op_3_8_2_3_a_MA_Request(
  /* MA_Request::op_3_8_2_3_a::t_mar */T_MAR t_mar,
  /* MA_Request::op_3_8_2_3_a::trainPosition */trainPosition_T_TrainPosition_Types_Pck *trainPosition,
  /* MA_Request::op_3_8_2_3_a::preindicationLoc */L_internal_Type_Obu_BasicTypes_Pkg preindicationLoc,
  /* MA_Request::op_3_8_2_3_a::odometry */odometry_T_Obu_BasicTypes_Pkg *odometry,
  outC_op_3_8_2_3_a_MA_Request *outC)
{
  outC->_L2 = t_mar;
  outC->_L17 = (kcg_real) outC->_L2;
  outC->_L3 = preindicationLoc;
  kcg_copy_trainPosition_T_TrainPosition_Types_Pck(&outC->_L1, trainPosition);
  kcg_copy_LocWithInAcc_T_Obu_BasicTypes_Pkg(
    &outC->_L5,
    &outC->_L1.trainPosition);
  outC->_L7 = outC->_L5.d_max;
  outC->_L8 = outC->_L3 - outC->_L7;
  outC->_L10 = (kcg_real) outC->_L8;
  outC->_L13 = 100.0;
  /* 1 */ Safe_DIV_real(outC->_L10, outC->_L13, &outC->Context_1);
  outC->_L12 = outC->Context_1.Result;
  kcg_copy_odometry_T_Obu_BasicTypes_Pkg(&outC->_L4, odometry);
  kcg_copy_OdometrySpeeds_T_Obu_BasicTypes_Pkg(&outC->_L9, &outC->_L4.speed);
  outC->_L19 = outC->_L9.v_upper;
  outC->_L11 = (kcg_real) outC->_L19;
  outC->_L14 = 0.28;
  outC->_L15 = outC->_L11 * outC->_L14;
  /* 2 */ Safe_DIV_real(outC->_L12, outC->_L15, &outC->Context_2);
  outC->_L16 = outC->Context_2.Result;
  outC->_L18 = outC->_L17 <= outC->_L16;
  outC->triggerMA = outC->_L18;
}
/* Toolbox::Functions::ODO_genSpeedInaccuracies */
void ODO_genSpeedInaccuracies_Toolbox_Functions(
  /* Toolbox::Functions::ODO_genSpeedInaccuracies::trueVelocity */ Speed_T_Obu_BasicTypes_Pkg trueVelocity,
  /* Toolbox::Functions::ODO_genSpeedInaccuracies::odometryProperties */ odometryFactors_T_Toolbox *odometryProperties,
  outC_ODO_genSpeedInaccuracies_Toolbox_Functions *outC)
{
  kcg_copy_odometryFactors_T_Toolbox(&outC->_L14, odometryProperties);
  outC->_L20 = outC->_L14.o_min;
  outC->_L15 = trueVelocity;
  outC->_L8 = (kcg_real) outC->_L15;
  outC->_L2 = outC->_L20 * outC->_L8;
  outC->_L1 = (kcg_int) outC->_L2;
  outC->_L21 = outC->_L14.o_nominal;
  outC->_L6 = outC->_L21 * outC->_L8;
  outC->_L19 = outC->_L14.o_max;
  outC->_L12 = outC->_L19 * outC->_L8;
  outC->_L7 = (kcg_int) outC->_L12;
  outC->_L11 = (kcg_int) outC->_L6;
  outC->_L17 = 0.99;
  outC->_L16 = outC->_L17 * outC->_L12;
  outC->_L18 = (kcg_int) outC->_L16;
  outC->_L13.v_safeNominal = outC->_L18;
  outC->_L13.v_rawNominal = outC->_L11;
  outC->_L13.v_lower = outC->_L1;
  outC->_L13.v_upper = outC->_L7;
  kcg_copy_OdometrySpeeds_T_Obu_BasicTypes_Pkg(
    &outC->odometrySpeeds,
    &outC->_L13);
}