Commit 5d5295c4 authored by nanamicat's avatar nanamicat

metric

parent d6abf586
Pipeline #42460 passed with stages
in 2 minutes and 16 seconds
use crate::data::{ConnectionData, RouterData};
use crate::protocol::{Downlink, MessageType, PeerQuality, Uplink};
use crate::quality::Quality;
use crate::settings::{HALF_LIFE, PENALTY};
use crate::settings::{HALF_LIFE, PENALTY, PENALTY_MIN};
use crate::UpdatingState;
use serde::Serialize;
use std::collections::BTreeMap;
......@@ -140,7 +140,7 @@ impl Router {
}
pub fn penalty(&self, now: Instant) -> i32 {
(PENALTY as f32 * f32::exp2(-now.duration_since(self.last_update).div_duration_f32(HALF_LIFE))) as i32
PENALTY_MIN + (PENALTY as f32 * f32::exp2(-now.duration_since(self.last_update).div_duration_f32(HALF_LIFE))) as i32
}
pub fn update(&self, now: Instant, routers: &BTreeMap<u8, Router>, connections: &BTreeMap<u8, BTreeMap<u8, ConnectionData>>) -> Option<Downlink> {
......
......@@ -11,3 +11,4 @@ pub struct Settings {
pub const TIMEOUT: Duration = Duration::from_secs(20);
pub const HALF_LIFE: Duration = Duration::from_secs(60);
pub const PENALTY: i32 = 100;
pub const PENALTY_MIN: i32 = 10;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment