Files
qitech-control/server/src/app_state.rs
T
2025-01-21 15:28:10 +01:00

23 lines
608 B
Rust

use std::sync::Arc;
use ethercrab::{MainDevice, SubDeviceGroup};
use std::sync::LazyLock;
use tokio::sync::RwLock;
use crate::ethercat::config::{MAX_SUBDEVICES, PDI_LEN};
pub struct AppState {
pub group: Arc<RwLock<Option<SubDeviceGroup<MAX_SUBDEVICES, PDI_LEN>>>>,
pub maindevice: Arc<RwLock<Option<MainDevice<'static>>>>,
}
impl AppState {
pub fn new() -> Self {
Self {
group: Arc::new(RwLock::new(None)),
maindevice: Arc::new(RwLock::new(None)),
}
}
}
pub static APP_STATE: LazyLock<Arc<AppState>> = LazyLock::new(|| Arc::new(AppState::new()));