Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 17 additions & 4 deletions src/howl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,12 @@ fn produce_messages(
match producer.send(
BaseRecord::to(conf.event_topic)
.key("")
.payload(generate_fake_metadata(fbb, now_nanos))
.payload(generate_fake_metadata(
rng,
fbb,
now_nanos,
conf.veto_probability,
))
.timestamp(now_nanos / 1_000_000),
) {
Ok(_) => {}
Expand Down Expand Up @@ -238,14 +243,20 @@ fn generate_fake_events<'a>(
fbb.finished_data()
}

fn generate_fake_metadata<'a>(fbb: &'a mut FlatBufferBuilder<'_>, timestamp_ns: i64) -> &'a [u8] {
fn generate_fake_metadata<'a>(
rng: &mut ThreadRng,
fbb: &'a mut FlatBufferBuilder<'_>,
timestamp_ns: i64,
veto_probability: f64,
) -> &'a [u8] {
fbb.reset();
let is_vetoed = rng.random_range(0.0..1.0) < veto_probability;
let args = Pu00MessageArgs {
reference_time: timestamp_ns,
message_id: 0,
source_name: Some(fbb.create_string("saluki")),
period_number: Some(0),
vetos: Some(0),
vetos: Some(if is_vetoed { 1 } else { 0 }),
proton_charge: Some(0.1),
};
let pu00 = Pu00Message::create(fbb, &args);
Expand All @@ -260,6 +271,7 @@ pub struct HowlConfig<'a> {
pub messages_per_frame: u32,
pub frames_per_second: u32,
pub frames_per_run: u32,
pub veto_probability: f64, // 1 = always vetoed, 0 = never vetoed
pub event_message_config: &'a EventMessageConfig,
pub kafka_config: Option<Vec<KafkaOption>>,
}
Expand All @@ -281,7 +293,8 @@ pub fn howl(conf: &HowlConfig) {
as u32;
debug!("ev44 size is {ev44_size} bytes");

let pu00_size = generate_fake_metadata(&mut fbb, now_nanos).len() as u32;
let pu00_size =
generate_fake_metadata(&mut rng, &mut fbb, now_nanos, conf.veto_probability).len() as u32;
debug!("pu00 size is {pu00_size} bytes");

// calculate overall rate (with both ev44 and pu00)
Expand Down
5 changes: 5 additions & 0 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,9 @@ enum Commands {
/// Maximum detector ID
#[arg(long, default_value = "1000")]
det_max: i32,
/// Veto probability (0 = never vetoed; 1 = always vetoed)
#[arg(long, default_value = "0.0")]
veto_probability: f64,
// Additonal command line arguments
#[arg(short = 'X', long)]
kafka_config: Option<Vec<KafkaOption>>,
Expand Down Expand Up @@ -147,6 +150,7 @@ async fn main() {
tof_sigma,
det_min,
det_max,
veto_probability,
kafka_config,
} => howl(&HowlConfig {
kafka_config,
Expand All @@ -163,6 +167,7 @@ async fn main() {
det_min,
det_max,
},
veto_probability,
}),
Commands::Count {
topic,
Expand Down
Loading