/* ProvidePositionReport_Pkg::Build_SinglePosReport */
void Build_SinglePosReport_ProvidePositionReport_Pkg(
  /* ProvidePositionReport_Pkg::Build_SinglePosReport::trainProps */ trainProperties_T_TrainPosition_Types_Pck *trainProps,
  /* ProvidePositionReport_Pkg::Build_SinglePosReport::errorMsg */ ErrorMessage_T_ProvidePositionReport_Pkg *errorMsg,
  /* ProvidePositionReport_Pkg::Build_SinglePosReport::in_packet0 */ PT0_PositionReport_T_Packet_TrainTypes_Pkg *in_packet0,
  /* ProvidePositionReport_Pkg::Build_SinglePosReport::in_packet1 */ PT1_PositionReport_2BG_T_Packet_TrainTypes_Pkg *in_packet1,
  /* ProvidePositionReport_Pkg::Build_SinglePosReport::t_train */ T_TRAIN t_train,
  /* ProvidePositionReport_Pkg::Build_SinglePosReport::posRepHeader */ Radio_TrainTrack_Header_T_Radio_Types_Pkg *posRepHeader,
  /* ProvidePositionReport_Pkg::Build_SinglePosReport::packet0 */ PT0_PositionReport_T_Packet_TrainTypes_Pkg *packet0,
  /* ProvidePositionReport_Pkg::Build_SinglePosReport::packet1 */ PT1_PositionReport_2BG_T_Packet_TrainTypes_Pkg *packet1,
  /* ProvidePositionReport_Pkg::Build_SinglePosReport::packet4 */ PT4_ErrorReporting_T_Packet_TrainTypes_Pkg *packet4,
  /* ProvidePositionReport_Pkg::Build_SinglePosReport::packet5 */ PT5_TrainRunningNumber_Packet_TrainTypes_Pkg *packet5)
{
  kcg_copy_PT1_PositionReport_2BG_T_Packet_TrainTypes_Pkg(packet1, in_packet1);
  kcg_copy_PT0_PositionReport_T_Packet_TrainTypes_Pkg(packet0, in_packet0);
  /* 1 */
  Build_Header_ProvidePositionReport_Pkg(trainProps, t_train, posRepHeader);
  /* ck__L16 */ if ((*errorMsg).present) {
    /* 1 */ Build_Packet4_ProvidePositionReport_Pkg(errorMsg, packet4);
  }
  else {
    kcg_copy_PT4_ErrorReporting_T_Packet_TrainTypes_Pkg(
      packet4,
      (PT4_ErrorReporting_T_Packet_TrainTypes_Pkg *)
        &emptyPacket4_ProvidePositionReport_Pkg);
  }
  /* 1 */ Build_Packet5_ProvidePositionReport_Pkg(trainProps, packet5);
}
/* RBC_Messaging_Pkg::RBC_RadioTrainTrack_Pkg::RadioTrainTrackPackets__GetP000 */
void RadioTrainTrackPackets__GetP000_RBC_Messaging_Pkg_RBC_RadioTrainTrack_Pkg(
  /* RBC_Messaging_Pkg::RBC_RadioTrainTrack_Pkg::RadioTrainTrackPackets__GetP000::inRadioTrainTrackPackets */outPackets_T_Common_Types_Pkg *inRadioTrainTrackPackets,
  /* RBC_Messaging_Pkg::RBC_RadioTrainTrack_Pkg::RadioTrainTrackPackets__GetP000::outRadioTrainTrackPacket */PT0_PositionReport_T_Packet_TrainTypes_Pkg *outRadioTrainTrackPacket)
{
  kcg_copy_PT0_PositionReport_T_Packet_TrainTypes_Pkg(
    outRadioTrainTrackPacket,
    &(*inRadioTrainTrackPackets).p0);
}
/* ProvidePositionReport_Pkg::Build_Packets0_1 */
void Build_Packets0_1_ProvidePositionReport_Pkg(
  /* ProvidePositionReport_Pkg::Build_Packets0_1::trainProps */ trainProperties_T_TrainPosition_Types_Pck *trainProps,
  /* ProvidePositionReport_Pkg::Build_Packets0_1::posBGs */ positionedBGs_T_TrainPosition_Types_Pck *posBGs,
  /* ProvidePositionReport_Pkg::Build_Packets0_1::modeLevelStatus */ ModeLevel2PositionReport_T_ProvidePositionReport_Pkg *modeLevelStatus,
  /* ProvidePositionReport_Pkg::Build_Packets0_1::odometry */ odometry_T_Obu_BasicTypes_Pkg *odometry,
  /* ProvidePositionReport_Pkg::Build_Packets0_1::trainPos */ trainPosition_T_TrainPosition_Types_Pck *trainPos,
  /* ProvidePositionReport_Pkg::Build_Packets0_1::train2trackStatus */ TrainToTrackStatus_T_BG_Types_Pkg *train2trackStatus,
  /* ProvidePositionReport_Pkg::Build_Packets0_1::prvDirTrain */ Q_DIRTRAIN prvDirTrain,
  outC_Build_Packets0_1_ProvidePositionReport_Pkg *outC)
{
  /* ProvidePositionReport_Pkg::Build_Packets0_1::_L19 */
  static kcg_bool _L19;
  /* ProvidePositionReport_Pkg::Build_Packets0_1::_L20 */
  static Position_Report_TrainToTrack _L20;
  /* ProvidePositionReport_Pkg::Build_Packets0_1::_L23 */
  static kcg_bool _L23;
  
  /* 2 */
  DeterminePacketValidity_ProvidePositionReport_Pkg(
    &(*trainPos).LRBG,
    &_L19,
    &_L23);
  /* 2 */
  Build_Packet0_ProvidePositionReport_Pkg(
    posBGs,
    modeLevelStatus,
    odometry,
    train2trackStatus,
    trainProps,
    trainPos,
    &_L20);
  /* ck__L23 */ if (_L23) {
    /* 2 */
    Build_Packet1_ProvidePositionReport_Pkg(
      &_L20,
      prvDirTrain,
      trainPos,
      &outC->packet1);
  }
  else if (outC->init) {
    kcg_copy_PT1_PositionReport_2BG_T_Packet_TrainTypes_Pkg(
      &outC->packet1,
      (PT1_PositionReport_2BG_T_Packet_TrainTypes_Pkg *)
        &emptyPacket1_ProvidePositionReport_Pkg);
  }
  /* ck__L19 */ if (_L19) {
    /* 3 */ Activate_Packet0_ProvidePositionReport_Pkg(&_L20, &outC->packet0);
  }
  else if (outC->init) {
    kcg_copy_PT0_PositionReport_T_Packet_TrainTypes_Pkg(
      &outC->packet0,
      (PT0_PositionReport_T_Packet_TrainTypes_Pkg *)
        &emptyPacket0_ProvidePositionReport_Pkg);
  }
  outC->init = kcg_false;
}
コード例 #4
0
/* MA_Request::Build_MA_request */
void Build_MA_request_MA_Request(
  /* MA_Request::Build_MA_request::trackDescrDeleted */kcg_bool trackDescrDeleted,
  /* MA_Request::Build_MA_request::trainProps */trainProperties_T_TrainPosition_Types_Pck *trainProps,
  /* MA_Request::Build_MA_request::packet0 */PT0_PositionReport_T_Packet_TrainTypes_Pkg *packet0,
  /* MA_Request::Build_MA_request::packet1 */PT1_PositionReport_2BG_T_Packet_TrainTypes_Pkg *packet1,
  /* MA_Request::Build_MA_request::t_train */T_TRAIN t_train,
  outC_Build_MA_request_MA_Request *outC)
{
  outC->_L83 = t_train;
  kcg_copy_PT9_Level23_TransitionInformation_T_Packet_TrainTypes_Pkg(
    &outC->_L82,
    (PT9_Level23_TransitionInformation_T_Packet_TrainTypes_Pkg *)
      &cPT9_Level23_MA_Request);
  kcg_copy_PT5_TrainRunningNumber_Packet_TrainTypes_Pkg(
    &outC->_L81,
    (PT5_TrainRunningNumber_Packet_TrainTypes_Pkg *)
      &cPT5_TrainRunningNumber_MA_Request);
  kcg_copy_PT4_ErrorReporting_T_Packet_TrainTypes_Pkg(
    &outC->_L80,
    (PT4_ErrorReporting_T_Packet_TrainTypes_Pkg *)
      &cPT4_ErrorReporting_MA_Request);
  kcg_copy_PT3_OnboardTelephoneNumbers_T_Packet_TrainTypes_Pkg(
    &outC->_L79,
    (PT3_OnboardTelephoneNumbers_T_Packet_TrainTypes_Pkg *)
      &cPT3_OBUTelephoneNumber_MA_Request);
  kcg_copy_PT11_ValidatedTrainData_T_Packet_TrainTypes_Pkg(
    &outC->_L78,
    (PT11_ValidatedTrainData_T_Packet_TrainTypes_Pkg *)
      &cPT11_ValidateTrainData_MA_Request);
  kcg_copy_PT0_PositionReport_T_Packet_TrainTypes_Pkg(&outC->_L61, packet0);
  kcg_copy_PT1_PositionReport_2BG_T_Packet_TrainTypes_Pkg(&outC->_L62, packet1);
  kcg_copy_PT0_PositionReport_T_Packet_TrainTypes_Pkg(
    &outC->_L77.p0,
    &outC->_L61);
  kcg_copy_PT1_PositionReport_2BG_T_Packet_TrainTypes_Pkg(
    &outC->_L77.p1,
    &outC->_L62);
  kcg_copy_PT3_OnboardTelephoneNumbers_T_Packet_TrainTypes_Pkg(
    &outC->_L77.p3,
    &outC->_L79);
  kcg_copy_PT4_ErrorReporting_T_Packet_TrainTypes_Pkg(
    &outC->_L77.p4,
    &outC->_L80);
  kcg_copy_PT5_TrainRunningNumber_Packet_TrainTypes_Pkg(
    &outC->_L77.p5,
    &outC->_L81);
  kcg_copy_PT9_Level23_TransitionInformation_T_Packet_TrainTypes_Pkg(
    &outC->_L77.p9,
    &outC->_L82);
  kcg_copy_PT11_ValidatedTrainData_T_Packet_TrainTypes_Pkg(
    &outC->_L77.p11,
    &outC->_L78);
  outC->_L60 = kcg_true;
  outC->_L26 = kcg_true;
  outC->_L27 = 132;
  kcg_copy_trainProperties_T_TrainPosition_Types_Pck(&outC->_L30, trainProps);
  outC->_L31 = outC->_L30.nid_engine;
  outC->_L33 = trackDescrDeleted;
  outC->_L35 = Q_MARQSTREASON_Track_description_deleted;
  outC->_L34 = Q_MARQSTREASON_Start_selected_by_driver;
  if (outC->_L33) {
    outC->_L32 = outC->_L35;
  }
  else {
    outC->_L32 = outC->_L34;
  }
  outC->_L56 = cNid_em_MA_Request;
  outC->_L57 = cQemergencyStop_MA_Request;
  outC->_L58 = cNidTextMessage_MA_Request;
  outC->_L54.present = outC->_L26;
  outC->_L54.nid_message = outC->_L27;
  outC->_L54.t_train = outC->_L83;
  outC->_L54.nid_engine = outC->_L31;
  outC->_L54.xQ_MARQSTREASON = outC->_L32;
  outC->_L54.xT_TRAIN = outC->_L83;
  outC->_L54.xNID_EM = outC->_L56;
  outC->_L54.xQ_EMERGENCYSTOP = outC->_L57;
  outC->_L54.xNID_TEXTMESSAGE = outC->_L58;
  outC->_L59.present = outC->_L60;
  kcg_copy_Radio_TrainTrack_Header_T_Radio_Types_Pkg(
    &outC->_L59.header,
    &outC->_L54);
  kcg_copy_outPackets_T_Common_Types_Pkg(&outC->_L59.packets, &outC->_L77);
  kcg_copy_Radio_TrainTrack_Message_T_Radio_Types_Pkg(
    &outC->message132,
    &outC->_L59);
}
/* TA_EmergencyStop::ES_Build_Acknowledgement */
void ES_Build_Acknowledgement_TA_EmergencyStop(
  /* TA_EmergencyStop::ES_Build_Acknowledgement::nid_em */NID_EM nid_em,
  /* TA_EmergencyStop::ES_Build_Acknowledgement::t_train */T_TRAIN t_train,
  /* TA_EmergencyStop::ES_Build_Acknowledgement::trainProps */trainProperties_T_TrainPosition_Types_Pck *trainProps,
  /* TA_EmergencyStop::ES_Build_Acknowledgement::packet0 */PT0_PositionReport_T_Packet_TrainTypes_Pkg *packet0,
  /* TA_EmergencyStop::ES_Build_Acknowledgement::packet1 */PT1_PositionReport_2BG_T_Packet_TrainTypes_Pkg *packet1,
  /* TA_EmergencyStop::ES_Build_Acknowledgement::receivedMsg16 */kcg_bool receivedMsg16,
  /* TA_EmergencyStop::ES_Build_Acknowledgement::cesAccepted */kcg_bool cesAccepted,
  /* TA_EmergencyStop::ES_Build_Acknowledgement::updateEOA */kcg_bool updateEOA,
  /* TA_EmergencyStop::ES_Build_Acknowledgement::message147 */Radio_TrainTrack_Message_T_TM_transitional *message147)
{
  static Q_EMERGENCYSTOP tmp;
  
  (*message147).present = kcg_true;
  kcg_copy_PT0_PositionReport_T_Packet_TrainTypes_Pkg(
    &(*message147).packets.p0,
    packet0);
  kcg_copy_PT1_PositionReport_2BG_T_Packet_TrainTypes_Pkg(
    &(*message147).packets.p1,
    packet1);
  kcg_copy_PT3_OnboardTelephoneNumbers_T_Packet_TrainTypes_Pkg(
    &(*message147).packets.p3,
    (PT3_OnboardTelephoneNumbers_T_Packet_TrainTypes_Pkg *)
      &cPT3_OBUTelephoneNumber_MA_Request);
  kcg_copy_PT4_ErrorReporting_T_Packet_TrainTypes_Pkg(
    &(*message147).packets.p4,
    (PT4_ErrorReporting_T_Packet_TrainTypes_Pkg *)
      &cPT4_ErrorReporting_MA_Request);
  kcg_copy_PT5_TrainRunningNumber_Packet_TrainTypes_Pkg(
    &(*message147).packets.p5,
    (PT5_TrainRunningNumber_Packet_TrainTypes_Pkg *)
      &cPT5_TrainRunningNumber_MA_Request);
  kcg_copy_PT9_Level23_TransitionInformation_T_Packet_TrainTypes_Pkg(
    &(*message147).packets.p9,
    (PT9_Level23_TransitionInformation_T_Packet_TrainTypes_Pkg *)
      &cPT9_Level23_MA_Request);
  kcg_copy_PT11_ValidatedTrainData_T_Packet_TrainTypes_Pkg(
    &(*message147).packets.p11,
    (PT11_ValidatedTrainData_T_Packet_TrainTypes_Pkg *)
      &cPT11_ValidateTrainData_MA_Request);
  if (receivedMsg16) {
    tmp = Q_EMERGENCYSTOP_Unconditional_Emergency_Stop_accepted;
  }
  else if (cesAccepted) {
    if (updateEOA) {
      tmp =
        Q_EMERGENCYSTOP_Conditional_Emergency_Stop_accepted_with_update_of_EOA;
    }
    else {
      tmp =
        Q_EMERGENCYSTOP_Conditional_Emergency_Stop_accepted_with_no_update_of_EOA;
    }
  }
  else {
    tmp = Q_EMERGENCYSTOP_Emergency_stop;
  }
  (*message147).header.present = kcg_true;
  (*message147).header.nid_message = 147;
  (*message147).header.t_train = t_train;
  (*message147).header.nid_engine = (*trainProps).nid_engine;
  (*message147).header.xQ_MARQSTREASON = cQ_MARQSREASON_NONE_TA_EmergencyStop;
  (*message147).header.xT_TRAIN = t_train;
  (*message147).header.xNID_EM = nid_em;
  (*message147).header.xQ_EMERGENCYSTOP = tmp;
  (*message147).header.xNID_TEXTMESSAGE =
    cNID_TEXTMESSAGE_NONE_TA_EmergencyStop;
}