/* ProvidePositionReport_Pkg::ReceiveReportParameters */
void ReceiveReportParameters_ProvidePositionReport_Pkg(
  /* ProvidePositionReport_Pkg::ReceiveReportParameters::reportedBGs */ ReportedBGList_T_ProvidePositionReport_Pkg *reportedBGs,
  /* ProvidePositionReport_Pkg::ReceiveReportParameters::inMessage */ ReceivedMessage_T_Common_Types_Pkg *inMessage,
  outC_ReceiveReportParameters_ProvidePositionReport_Pkg *outC)
{
  /* ProvidePositionReport_Pkg::ReceiveReportParameters::_L8 */
  static kcg_bool _L8;
  /* ProvidePositionReport_Pkg::ReceiveReportParameters::_L69 */
  static P58_PositionReportParameters_T_Packet_Types_Pkg _L69;
  
  /* 1 */
  CheckValidityPacket58_ProvidePositionReport_Pkg(
    &(*inMessage).BG_Common_Header,
    reportedBGs,
    &_L8,
    &outC->out_reportedBGs);
  /* 1 */ Read_P058_Legacy_TM_specific(&(*inMessage).packets, &_L69);
  outC->present = _L69.valid;
  /* 1 */ if (outC->present) {
    kcg_copy_P58_PositionReportParameters_T_Packet_Types_Pkg(
      &outC->posRepParam,
      &_L69);
  }
  else /* 1_fby_1_init_4 */ if (outC->init) {
    kcg_copy_P58_PositionReportParameters_T_Packet_Types_Pkg(
      &outC->posRepParam,
      (P58_PositionReportParameters_T_Packet_Types_Pkg *)
        &emptyPacket58_ProvidePositionReport_Pkg);
  }
  outC->init = kcg_false;
}
/* packagesSupport_Pkg::getParameterPositionReport */
void getParameterPositionReport_packagesSupport_Pkg(
  /* packagesSupport_Pkg::getParameterPositionReport::inMessage */ ReceivedMessage_T_Common_Types_Pkg *inMessage,
  /* packagesSupport_Pkg::getParameterPositionReport::outPositionReportParam */ PositionReportParameter_T_Common_Types_Pkg *outPositionReportParam)
{
  (*outPositionReportParam).present = kcg_true;
  (*outPositionReportParam).nidBG = (*inMessage).BG_Common_Header.nid_bg;
  (*outPositionReportParam).bgLocation =
    (*inMessage).BG_Common_Header.bgPosition.odo.o_nominal;
  kcg_copy_P58_PositionReportParameters_T_Packet_Types_Pkg(
    &(*outPositionReportParam).packet58,
    (P58_PositionReportParameters_T_Packet_Types_Pkg *)
      &cEmptyP58_packagesSupport_Pkg);
}
/* TM_specific::Read_P058_Legacy */
void Read_P058_Legacy_TM_specific(
  /* TM_specific::Read_P058_Legacy::Message_IN */CompressedPackets_T_Common_Types_Pkg *Message_IN,
  /* TM_specific::Read_P058_Legacy::P058_legacy_out */P58_PositionReportParameters_T_Packet_Types_Pkg *P058_legacy_out)
{
  /* TM_specific::Read_P058_Legacy::_L2 */
  static P058_OBU_T_TM _L2;
  /* TM_specific::Read_P058_Legacy::_L1 */
  static kcg_bool _L1;
  
  /* 1 */ Read_P058_TM(Message_IN, &_L1, &_L2);
  if (_L1) {
    /* 1 */ C_P058_to_legacy_t_TM_conversions(&_L2, P058_legacy_out);
  }
  else {
    kcg_copy_P58_PositionReportParameters_T_Packet_Types_Pkg(
      P058_legacy_out,
      (P58_PositionReportParameters_T_Packet_Types_Pkg *)
        &DEFAULT_P058_legacy_TM_specific);
  }
}