gnss_qc/report/summary/
bias.rs1use crate::prelude::QcContext;
2use maud::{html, Markup, Render};
3pub struct QcBiasSummary {
7 iono_bias_cancelling: bool,
8 iono_bias_model_optimization: bool,
9 tropo_bias_model_optimization: bool,
10}
11
12impl QcBiasSummary {
13 pub fn new(context: &QcContext) -> Self {
14 Self {
15 iono_bias_cancelling: { context.is_cpp_navigation_compatible() },
16 iono_bias_model_optimization: context.iono_bias_model_optimization(),
17 tropo_bias_model_optimization: context.tropo_bias_model_optimization(),
18 }
19 }
20}
21
22impl Render for QcBiasSummary {
23 fn render(&self) -> Markup {
24 html! {
25 table class="table" {
26 tbody {
27 tr {
28 th {
29 button aria-label="Troposphere bias cancelling" data-balloon-pos="up" {
30 "Troposphere Bias"
31 }
32 }
33 @if self.tropo_bias_model_optimization {
34 td {
35 span class="icon" style="color:green" {
36 i class="fa-solid fa-circle-check" {}
37 }
38 button aria-label="Troposphere bias model can be optimized.
39 Standard internal model is optimized with regional measurements" data-balloon-pos="up" {
40 "Model optimization"
41 }
42 }
43 } @else {
44 td {
45 span class="icon" style="color:red" {
46 i class="fa-solid fa-circle-xmark" {}
47 }
48 button aria-label="Troposphere bias model cannot be optimized: missing Meteo IONEX.
49 Bias modelling will solely rely on internal standard models." data-balloon-pos="up" {
50 "Model optimization"
51 }
52 }
53 }
54 }
55 tr {
56 th {
57 button aria-label="Ionosphere bias cancelling" data-balloon-pos="up" {
58 "Ionosphere Bias"
59 }
60 }
61 @if self.iono_bias_model_optimization {
62 td {
63 span class="icon" style="color:green" {
64 i class="fa-solid fa-circle-check" {}
65 }
66 button aria-label="Ionosphere bias model optimized by IONEX measurement/prediction.
67 This will not impact your solutions if direct cancellation is feasible." data-balloon-pos="up" {
68 "Model optimization"
69 }
70 }
71 } @else {
72 td {
73 span class="icon" style="color:red" {
74 i class="fa-solid fa-circle-xmark" {}
75 }
76 button aria-label="Ionosphere bias model cannot be optimized: import a IONEX (special RINEX).
77 This will not impact your solutions if direct cancellation is feasible." data-balloon-pos="up" {
78 "Model optimization"
79 }
80 }
81 }
82 @if self.iono_bias_cancelling {
83 td {
84 span class="icon" style="color:green" {
85 i class="fa-solid fa-circle-check" {}
86 }
87 button aria-label="Direct IONOD cancellation by signal observation." data-balloon-pos="up" {
88 "Cancelling"
89 }
90 }
91 } @else {
92 td {
93 span class="icon" style="color:red" {
94 i class="fa-solid fa-circle-xmark" {}
95 }
96 button aria-label="Direct IONOD cancellation is not feasible: missing secondary frequency." data-balloon-pos="up" {
97 "Cancelling"
98 }
99 }
100 }
101 }
102 }
103 }
104 }
105 }
106}