コード例 #1
0
/* 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;
}
/* ProvidePositionReport_Pkg::op_3_6_5_1_4_a_i */
void op_3_6_5_1_4_a_i_ProvidePositionReport_Pkg(
  /* ProvidePositionReport_Pkg::op_3_6_5_1_4_a_i::odometry */ odometry_T_Obu_BasicTypes_Pkg *odometry,
  outC_op_3_6_5_1_4_a_i_ProvidePositionReport_Pkg *outC)
{
  /* ProvidePositionReport_Pkg::op_3_6_5_1_4_a_i::_L27 */ odometry_T_Obu_BasicTypes_Pkg _L27;
  
  /* last_init_ck_odometry */ if (outC->init) {
    outC->init = kcg_false;
    kcg_copy_odometry_T_Obu_BasicTypes_Pkg(
      &_L27,
      (odometry_T_Obu_BasicTypes_Pkg *) &cOdomerty_ProvidePositionReport_Pkg);
  }
  else {
    kcg_copy_odometry_T_Obu_BasicTypes_Pkg(&_L27, &outC->rem_odometry);
  }
  outC->trigger = _L27.valid & (_L27.motionState != (*odometry).motionState) &
    (*odometry).valid;
  kcg_copy_odometry_T_Obu_BasicTypes_Pkg(&outC->rem_odometry, odometry);
}