use crate::controllers::Controller;
use crate::model::Device;
pub fn format_log_prefix(device: &Device) -> String {
let mut states_string = String::new();
match device.conn.controller {
Controller::CN7500 => {
states_string.push_str(&format!(
"pv: {:?}, sv: {:?}, relay: {:?}",
device.state.pv, device.state.sv, device.state.relay_state
));
}
Controller::Waveshare | Controller::WaveshareV2 | Controller::STR1 => {
states_string.push_str(&format!("relay_state: {:?}", device.state.relay_state))
}
}
return format!("[`{}` -> {}]", device.id, states_string);
}
#[macro_export]
macro_rules! device_trace {
($device:expr) => {
device_trace!($device, "")
};
($device:expr, $msg:expr) => {
log::trace!(
"{} {}",
$crate::logging_utils::format_log_prefix(&$device),
$msg
);
};
}
#[macro_export]
macro_rules! device_debug {
($device:expr) => {
device_debug!($device, "")
};
($device:expr, $msg:expr) => {
log::debug!(
"{} {}",
$crate::logging_utils::format_log_prefix(&$device),
$msg
);
};
}
#[macro_export]
macro_rules! device_info {
($device:expr) => {
device_info!($device, "")
};
($device:expr, $msg:expr) => {
log::info!(
"{} {}",
$crate::logging_utils::format_log_prefix(&$device),
$msg
);
};
}
#[macro_export]
macro_rules! device_warn {
($device:expr) => {
device_warn!($device, "")
};
($device:expr, $msg:expr) => {
log::warn!(
"{} {}",
$crate::logging_utils::format_log_prefix(&$device),
$msg
);
};
}
#[macro_export]
macro_rules! device_error {
($device:expr) => {
device_error!($device, "")
};
($device:expr, $msg:expr) => {
log::error!(
"{} {}",
$crate::logging_utils::format_log_prefix(&$device),
$msg
);
};
}
pub use device_debug;
pub use device_error;
pub use device_info;
pub use device_trace;
pub use device_warn;