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

Function device_uplink_frame_log

chirpstack/src/test/assert.rs:440–474  ·  view source on GitHub ↗
(uf: stream::UplinkFrameLog)

Source from the content-addressed store, hash-verified

438}
439
440pub fn device_uplink_frame_log(uf: stream::UplinkFrameLog) -> Validator {
441 Box::new(move || {
442 let uf = uf.clone();
443 Box::pin(async move {
444 let key = redis_key(format!("device:{{{}}}:stream:frame", uf.dev_eui));
445 let srr: StreamReadReply = redis::cmd("XREAD")
446 .arg("COUNT")
447 .arg(1_usize)
448 .arg("STREAMS")
449 .arg(&key)
450 .arg("0")
451 .query_async(&mut get_async_redis_conn().await.unwrap())
452 .await
453 .unwrap();
454
455 for stream_key in &srr.keys {
456 for stream_id in &stream_key.ids {
457 for (k, v) in &stream_id.map {
458 assert_eq!("up", k);
459 if let redis::Value::BulkString(b) = v {
460 let mut pl =
461 stream::UplinkFrameLog::decode(&mut Cursor::new(b)).unwrap();
462 pl.time = None; // we don't have control over this value
463 assert_eq!(uf, pl);
464 } else {
465 panic!("Invalid payload");
466 }
467
468 return;
469 }
470 }
471 }
472 })
473 })
474}
475
476pub fn scheduler_run_after_set(dev_eui: EUI64) -> Validator {
477 Box::new(move || {

Callers

nothing calls this directly

Calls 4

redis_keyFunction · 0.85
get_async_redis_connFunction · 0.85
unwrapMethod · 0.80
decodeFunction · 0.50

Tested by

no test coverage detected