tof_control/tui/
pb_ui.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
use ratatui::{
    prelude::*,
    widgets::*,
};

use crate::tui::rat_app::App;

pub fn draw_pb_tab(f: &mut Frame, app: &mut App, area: Rect) {
    let chunks = Layout::default()
        .constraints([
            Constraint::Percentage(50),
            Constraint::Percentage(50),
        ])
        .direction(Direction::Horizontal)
        .split(area);

        draw_pb_temp(f, app, chunks[0]);
        draw_pb_vcp(f, app, chunks[1]);
        
}

fn draw_pb_temp(f: &mut Frame, app: &mut App, area: Rect) {
    let pb_temp = &app.pb_data.temp;
    let mut pb_temp_list_items = Vec::<ListItem>::new();
    pb_temp_list_items.push(ListItem::new(Line::from(Span::styled(format!("PDS Temp: {:.3}[°C]", pb_temp.pds_temp), Style::default()))));
    pb_temp_list_items.push(ListItem::new(Line::from(Span::styled(format!("PAS Temp: {:.3}[°C]", pb_temp.pas_temp), Style::default()))));
    pb_temp_list_items.push(ListItem::new(Line::from(Span::styled(format!("NAS Temp: {:.3}[°C]", pb_temp.nas_temp), Style::default()))));
    pb_temp_list_items.push(ListItem::new(Line::from(Span::styled(format!("SHV Temp: {:.3}[°C]", pb_temp.shv_temp), Style::default()))));

    let pb_temp_list = List::new(pb_temp_list_items)
    .block(Block::default().borders(Borders::ALL).title(Span::styled("PB Temp", 
    Style::default().fg(Color::Magenta).add_modifier(Modifier::BOLD))));

    f.render_widget(pb_temp_list, area)
}

fn draw_pb_vcp(f: &mut Frame, app: &mut App, area: Rect) {
    let pb_vcp = &app.pb_data.vcp;
    let mut pb_vcp_list_items = Vec::<ListItem>::new();
    pb_vcp_list_items.push(ListItem::new(Line::from(Span::styled(format!("PA 3.6V Line:          {:.3}[V] | {:.3}[A] | {:.3}[W]", pb_vcp.p3v6_pa_vcp[0], pb_vcp.p3v6_pa_vcp[1], pb_vcp.p3v6_pa_vcp[2]), Style::default()))));
    pb_vcp_list_items.push(ListItem::new(Line::from(Span::styled(format!("PA -1.6V Line:         {:.2}[V] | {:.3}[A] | {:.3}[W]", pb_vcp.n1v6_pa_vcp[0], pb_vcp.n1v6_pa_vcp[1], pb_vcp.n1v6_pa_vcp[2]), Style::default()))));
    pb_vcp_list_items.push(ListItem::new(Line::from(Span::styled(format!("LTB (Trenz) 3.4V Line: {:.3}[V] | {:.3}[A] | {:.3}[W]", pb_vcp.p3v4f_ltb_vcp[0], pb_vcp.p3v4f_ltb_vcp[1], pb_vcp.p3v4f_ltb_vcp[2]), Style::default()))));
    pb_vcp_list_items.push(ListItem::new(Line::from(Span::styled(format!("LTB 3.4V Line:         {:.3}[V] | {:.3}[A] | {:.3}[W]", pb_vcp.p3v4d_ltb_vcp[0], pb_vcp.p3v4d_ltb_vcp[1], pb_vcp.p3v4d_ltb_vcp[2]), Style::default()))));
    pb_vcp_list_items.push(ListItem::new(Line::from(Span::styled(format!("LTB 3.6V Line:         {:.3}[V] | {:.3}[A] | {:.3}[W]", pb_vcp.p3v6_ltb_vcp[0], pb_vcp.p3v6_ltb_vcp[1], pb_vcp.p3v6_ltb_vcp[2]), Style::default()))));
    pb_vcp_list_items.push(ListItem::new(Line::from(Span::styled(format!("LTB -1.6V Line:        {:.2}[V] | {:.3}[A] | {:.3}[W]", pb_vcp.n1v6_ltb_vcp[0], pb_vcp.n1v6_ltb_vcp[1], pb_vcp.n1v6_ltb_vcp[2]), Style::default()))));

    let pb_vcp_list = List::new(pb_vcp_list_items)
    .block(Block::default().borders(Borders::ALL).title(Span::styled("PB VCP (Voltage, Current & Power)", 
    Style::default().fg(Color::Magenta).add_modifier(Modifier::BOLD))));

    f.render_widget(pb_vcp_list, area)
}