MCPcopy Create free account
hub / github.com/chirpstack/chirpstack / _handle_xmit_data_req

Function _handle_xmit_data_req

chirpstack/src/api/backend/mod.rs:496–538  ·  view source on GitHub ↗
(
    pl: backend::XmitDataReqPayload,
)

Source from the content-addressed store, hash-verified

494}
495
496async fn _handle_xmit_data_req(
497 pl: backend::XmitDataReqPayload,
498) -> Result<backend::XmitDataAnsPayload> {
499 if let Some(ul_meta_data) = &pl.ul_meta_data {
500 let rx_info = roaming::ul_meta_data_to_rx_info(ul_meta_data)?;
501 let tx_info = roaming::ul_meta_data_to_tx_info(ul_meta_data)?;
502 let region_common_name = CommonName::from_str(&ul_meta_data.rf_region)?;
503 let region_config_id = region::get_region_config_id(region_common_name)?;
504 let dr = ul_meta_data.data_rate.unwrap_or_default();
505 let phy = lrwn::PhyPayload::from_slice(&pl.phy_payload)?;
506
507 let ufs = UplinkFrameSet {
508 uplink_set_id: Uuid::new_v4(),
509 dr,
510 ch: helpers::get_uplink_ch(&region_config_id, tx_info.frequency, dr)?,
511 phy_payload: phy,
512 tx_info,
513 rx_info_set: rx_info,
514 gateway_private_up_map: HashMap::new(),
515 gateway_private_down_map: HashMap::new(),
516 gateway_tenant_id_map: HashMap::new(),
517 gateway_downlink_priority_map: HashMap::new(),
518 region_common_name,
519 region_config_id,
520 roaming_meta_data: Some(RoamingMetaData {
521 base_payload: pl.base.clone(),
522 ul_meta_data: ul_meta_data.clone(),
523 }),
524 };
525
526 data_sns::Data::handle(ufs).await?;
527 }
528
529 if let Some(dl_meta_data) = &pl.dl_meta_data {
530 data_fns::Data::handle(pl.clone(), dl_meta_data.clone()).await?;
531 }
532
533 Ok(backend::XmitDataAnsPayload {
534 base: pl
535 .base
536 .to_base_payload_result(backend::ResultCode::Success, ""),
537 })
538}
539
540async fn handle_home_ns_req(
541 sender_client: Arc<backend::Client>,

Callers 1

handle_xmit_data_reqFunction · 0.85

Calls 6

ul_meta_data_to_rx_infoFunction · 0.85
ul_meta_data_to_tx_infoFunction · 0.85
get_region_config_idFunction · 0.85
get_uplink_chFunction · 0.85
handleFunction · 0.50

Tested by

no test coverage detected