[chronojump] ForceSensor AI table with all info. No more values on graph



commit c7ceb7e07165befc68edd140c3453b3256278d72
Author: Xavier de Blas <xaviblas gmail com>
Date:   Wed Nov 20 14:39:04 2019 +0100

    ForceSensor AI table with all info. No more values on graph

 glade/app1.glade              | 1392 ++++++++++++++++++++++++-----------------
 src/forceSensor.cs            |   34 +-
 src/gui/forceSensorAnalyze.cs |  331 +++++-----
 3 files changed, 1021 insertions(+), 736 deletions(-)
---
diff --git a/glade/app1.glade b/glade/app1.glade
index fc08b700..62404c86 100644
--- a/glade/app1.glade
+++ b/glade/app1.glade
@@ -20993,18 +20993,6 @@ Concentric</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">6</property>
                                                             <child>
-                                                            <widget class="GtkScrolledWindow" 
id="scrolledwindow8">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">True</property>
-                                                            <property 
name="hscrollbar_policy">automatic</property>
-                                                            <property 
name="vscrollbar_policy">automatic</property>
-                                                            <property name="shadow_type">in</property>
-                                                            <child>
-                                                            <widget class="GtkViewport" 
id="viewport_force_sensor_ai_graph">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">False</property>
-                                                            <property name="shadow_type">none</property>
-                                                            <child>
                                                             <widget class="GtkVBox" id="vbox123">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
@@ -21022,97 +21010,27 @@ Concentric</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkTable" 
id="label_force_sensor_ai">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">False</property>
-                                                            <property name="n_rows">6</property>
-                                                            <property name="n_columns">6</property>
-                                                            <property name="column_spacing">8</property>
-                                                            <property name="row_spacing">4</property>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_force_a">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">False</property>
-                                                            <property name="width_chars">8</property>
-                                                            </widget>
-                                                            <packing>
-                                                            <property name="left_attach">4</property>
-                                                            <property name="right_attach">5</property>
-                                                            <property name="top_attach">1</property>
-                                                            <property name="bottom_attach">2</property>
-                                                            <property name="x_options"/>
-                                                            </packing>
-                                                            </child>
-                                                            <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_force_b">
+                                                            <widget class="GtkHBox" id="hbox338">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="width_chars">8</property>
-                                                            </widget>
-                                                            <packing>
-                                                            <property name="left_attach">4</property>
-                                                            <property name="right_attach">5</property>
-                                                            <property name="top_attach">2</property>
-                                                            <property name="bottom_attach">3</property>
-                                                            <property name="x_options"/>
-                                                            <property name="y_options"/>
-                                                            </packing>
-                                                            </child>
+                                                            <property name="spacing">20</property>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_time_a">
+                                                            <widget class="GtkHBox" id="hbox339">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            </widget>
-                                                            <packing>
-                                                            <property name="left_attach">3</property>
-                                                            <property name="right_attach">4</property>
-                                                            <property name="top_attach">1</property>
-                                                            <property name="bottom_attach">2</property>
-                                                            <property name="x_options"/>
-                                                            <property name="y_options"/>
-                                                            </packing>
-                                                            </child>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_time_b">
+                                                            <widget class="GtkLabel" id="label360">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
+                                                            <property name="label">A</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="left_attach">3</property>
-                                                            <property name="right_attach">4</property>
-                                                            <property name="top_attach">2</property>
-                                                            <property name="bottom_attach">3</property>
-                                                            <property name="x_options"/>
-                                                            <property name="y_options"/>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox273">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">False</property>
-                                                            <property name="spacing">4</property>
-                                                            <child>
                                                             <widget class="GtkHScale" 
id="hscale_force_sensor_ai_a">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">True</property>
@@ -21124,16 +21042,16 @@ Concentric</property>
                                                             <packing>
                                                             <property name="expand">True</property>
                                                             <property name="fill">True</property>
-                                                            <property name="position">0</property>
+                                                            <property name="position">1</property>
                                                             </packing>
                                                             </child>
                                                             <child>
                                                             <widget class="GtkHBox" id="hbox277">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="spacing">8</property>
+                                                            <property name="spacing">4</property>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox233">
+                                                            <widget class="GtkHBox" id="hbox234">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">4</property>
@@ -21187,7 +21105,7 @@ Concentric</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox234">
+                                                            <widget class="GtkHBox" id="hbox235">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">4</property>
@@ -21244,23 +21162,60 @@ Concentric</property>
                                                             <packing>
                                                             <property name="expand">False</property>
                                                             <property name="fill">False</property>
-                                                            <property name="position">1</property>
+                                                            <property name="position">2</property>
                                                             </packing>
                                                             </child>
                                                             </widget>
                                                             <packing>
-                                                            <property name="left_attach">2</property>
-                                                            <property name="right_attach">3</property>
-                                                            <property name="top_attach">1</property>
-                                                            <property name="bottom_attach">2</property>
-                                                            <property name="y_options"/>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox283">
+                                                            <widget class="GtkHBox" id="hbox340">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="spacing">4</property>
+                                                            <child>
+                                                            <widget class="GtkHBox" id="hbox341">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <child>
+                                                            <widget class="GtkCheckButton" 
id="checkbutton_force_sensor_ai_b">
+                                                            <property name="width_request">30</property>
+                                                            <property name="visible">True</property>
+                                                            <property name="sensitive">False</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="receives_default">False</property>
+                                                            <property name="xalign">1</property>
+                                                            <property name="draw_indicator">True</property>
+                                                            <signal name="toggled" 
handler="on_checkbutton_force_sensor_ai_b_toggled" swapped="no"/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label361">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">B</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
                                                             <child>
                                                             <widget class="GtkHScale" 
id="hscale_force_sensor_ai_b">
                                                             <property name="can_focus">True</property>
@@ -21272,15 +21227,15 @@ Concentric</property>
                                                             <packing>
                                                             <property name="expand">True</property>
                                                             <property name="fill">True</property>
-                                                            <property name="position">0</property>
+                                                            <property name="position">1</property>
                                                             </packing>
                                                             </child>
                                                             <child>
                                                             <widget class="GtkHBox" 
id="hbox_buttons_scale_force_sensor_ai_b">
                                                             <property name="can_focus">False</property>
-                                                            <property name="spacing">8</property>
+                                                            <property name="spacing">4</property>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox235">
+                                                            <widget class="GtkHBox" id="hbox270">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">4</property>
@@ -21354,8 +21309,8 @@ Concentric</property>
                                                             </child>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">True</property>
-                                                            <property name="fill">True</property>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
                                                             <property name="position">0</property>
                                                             </packing>
                                                             </child>
@@ -21382,8 +21337,8 @@ Concentric</property>
                                                             </child>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
                                                             <property name="position">1</property>
                                                             </packing>
                                                             </child>
@@ -21391,173 +21346,105 @@ Concentric</property>
                                                             <packing>
                                                             <property name="expand">False</property>
                                                             <property name="fill">False</property>
-                                                            <property name="position">1</property>
+                                                            <property name="position">2</property>
                                                             </packing>
                                                             </child>
                                                             </widget>
                                                             <packing>
-                                                            <property name="left_attach">2</property>
-                                                            <property name="right_attach">3</property>
-                                                            <property name="top_attach">2</property>
-                                                            <property name="bottom_attach">3</property>
-                                                            <property name="y_options"/>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_force_average">
+                                                            <widget class="GtkHBox" id="hbox342">
+                                                            <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="width_chars">8</property>
+                                                            <child>
+                                                            <widget class="GtkLabel" id="label380">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">A+B</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="left_attach">4</property>
-                                                            <property name="right_attach">5</property>
-                                                            <property name="top_attach">4</property>
-                                                            <property name="bottom_attach">5</property>
-                                                            <property name="x_options"/>
-                                                            <property name="y_options"/>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_force_max">
-                                                            <property name="can_focus">False</property>
-                                                            <property name="width_chars">8</property>
+                                                            <widget class="GtkHScale" 
id="hscale_force_sensor_ai_ab">
+                                                            <property name="can_focus">True</property>
+                                                            <property name="adjustment">1 1 300 1 10 
0</property>
+                                                            <property name="digits">0</property>
+                                                            <property name="draw_value">False</property>
+                                                            <signal name="value_changed" 
handler="on_hscale_force_sensor_ai_ab_value_changed" swapped="no"/>
                                                             </widget>
                                                             <packing>
-                                                            <property name="left_attach">4</property>
-                                                            <property name="right_attach">5</property>
-                                                            <property name="top_attach">5</property>
-                                                            <property name="bottom_attach">6</property>
-                                                            <property name="x_options"/>
-                                                            <property name="y_options"/>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_force_diff">
-                                                            <property name="can_focus">False</property>
-                                                            <property name="width_chars">8</property>
+                                                            <widget class="GtkButton" 
id="button_force_sensor_ai_zoom">
+                                                            <property name="label">Zoom [A-B]</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property name="receives_default">True</property>
+                                                            <signal name="clicked" 
handler="on_button_force_sensor_ai_zoom_clicked" swapped="no"/>
                                                             </widget>
                                                             <packing>
-                                                            <property name="left_attach">4</property>
-                                                            <property name="right_attach">5</property>
-                                                            <property name="top_attach">3</property>
-                                                            <property name="bottom_attach">4</property>
-                                                            <property name="x_options"/>
-                                                            <property name="y_options"/>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">2</property>
                                                             </packing>
                                                             </child>
-                                                            <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_average">
-                                                            <property name="can_focus">False</property>
-                                                            <property name="xalign">1</property>
-                                                            <property name="label" 
translatable="yes">Average</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="left_attach">2</property>
-                                                            <property name="right_attach">3</property>
-                                                            <property name="top_attach">4</property>
-                                                            <property name="bottom_attach">5</property>
-                                                            <property name="x_options">GTK_FILL</property>
-                                                            <property name="y_options"/>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">2</property>
                                                             </packing>
                                                             </child>
-                                                            <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_max">
-                                                            <property name="can_focus">False</property>
-                                                            <property name="xalign">1</property>
-                                                            <property name="label" 
translatable="yes">Maximum</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="left_attach">2</property>
-                                                            <property name="right_attach">3</property>
-                                                            <property name="top_attach">5</property>
-                                                            <property name="bottom_attach">6</property>
-                                                            <property name="x_options">GTK_FILL</property>
-                                                            <property name="y_options"/>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="padding">8</property>
+                                                            <property name="position">1</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_time_diff">
-                                                            <property name="can_focus">False</property>
-                                                            <property name="width_chars">8</property>
-                                                            </widget>
-                                                            <packing>
-                                                            <property name="left_attach">3</property>
-                                                            <property name="right_attach">4</property>
-                                                            <property name="top_attach">3</property>
-                                                            <property name="bottom_attach">4</property>
-                                                            <property name="x_options"/>
-                                                            <property name="y_options"/>
-                                                            </packing>
-                                                            </child>
+                                                            <widget class="GtkScrolledWindow" 
id="scrolledwindow_force_sensor_ai">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">True</property>
+                                                            <property 
name="hscrollbar_policy">automatic</property>
+                                                            <property 
name="vscrollbar_policy">never</property>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_rfd_a">
+                                                            <widget class="GtkViewport" id="viewport3">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="width_chars">8</property>
-                                                            </widget>
-                                                            <packing>
-                                                            <property name="left_attach">5</property>
-                                                            <property name="right_attach">6</property>
-                                                            <property name="top_attach">1</property>
-                                                            <property name="bottom_attach">2</property>
-                                                            <property name="x_options"/>
-                                                            </packing>
-                                                            </child>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_rfd_b">
+                                                            <widget class="GtkHBox" id="hbox233">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="width_chars">8</property>
-                                                            </widget>
-                                                            <packing>
-                                                            <property name="left_attach">5</property>
-                                                            <property name="right_attach">6</property>
-                                                            <property name="top_attach">2</property>
-                                                            <property name="bottom_attach">3</property>
-                                                            <property name="x_options"/>
-                                                            </packing>
-                                                            </child>
+                                                            <property name="spacing">20</property>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_rfd_diff">
+                                                            <widget class="GtkTable" id="table17">
+                                                            <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="width_chars">8</property>
-                                                            </widget>
-                                                            <packing>
-                                                            <property name="left_attach">5</property>
-                                                            <property name="right_attach">6</property>
-                                                            <property name="top_attach">3</property>
-                                                            <property name="bottom_attach">4</property>
-                                                            <property name="x_options"/>
-                                                            <property name="y_options"/>
-                                                            </packing>
+                                                            <property name="n_rows">6</property>
+                                                            <property name="n_columns">8</property>
+                                                            <property name="column_spacing">12</property>
+                                                            <property name="row_spacing">6</property>
+                                                            <child>
+                                                            <placeholder/>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_rfd_average">
-                                                            <property name="can_focus">False</property>
-                                                            <property name="width_chars">8</property>
-                                                            </widget>
-                                                            <packing>
-                                                            <property name="left_attach">5</property>
-                                                            <property name="right_attach">6</property>
-                                                            <property name="top_attach">4</property>
-                                                            <property name="bottom_attach">5</property>
-                                                            <property name="x_options"/>
-                                                            <property name="y_options"/>
-                                                            </packing>
+                                                            <placeholder/>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_rfd_max">
-                                                            <property name="can_focus">False</property>
-                                                            <property name="width_chars">8</property>
-                                                            </widget>
-                                                            <packing>
-                                                            <property name="left_attach">5</property>
-                                                            <property name="right_attach">6</property>
-                                                            <property name="top_attach">5</property>
-                                                            <property name="bottom_attach">6</property>
-                                                            <property name="x_options"/>
-                                                            <property name="y_options"/>
-                                                            </packing>
+                                                            <placeholder/>
                                                             </child>
                                                             <child>
                                                             <widget class="GtkHBox" id="hbox284">
@@ -21590,8 +21477,8 @@ Concentric</property>
                                                             </child>
                                                             </widget>
                                                             <packing>
-                                                            <property name="left_attach">3</property>
-                                                            <property name="right_attach">4</property>
+                                                            <property name="left_attach">1</property>
+                                                            <property name="right_attach">2</property>
                                                             <property name="x_options"/>
                                                             <property name="y_options"/>
                                                             </packing>
@@ -21627,9 +21514,10 @@ Concentric</property>
                                                             </child>
                                                             </widget>
                                                             <packing>
-                                                            <property name="left_attach">4</property>
-                                                            <property name="right_attach">5</property>
+                                                            <property name="left_attach">2</property>
+                                                            <property name="right_attach">3</property>
                                                             <property name="x_options"/>
+                                                            <property name="y_options"/>
                                                             </packing>
                                                             </child>
                                                             <child>
@@ -21663,23 +21551,21 @@ Concentric</property>
                                                             </child>
                                                             </widget>
                                                             <packing>
-                                                            <property name="left_attach">5</property>
-                                                            <property name="right_attach">6</property>
+                                                            <property name="left_attach">3</property>
+                                                            <property name="right_attach">4</property>
                                                             <property name="x_options"/>
+                                                            <property name="y_options"/>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox297">
-                                                            <property name="visible">True</property>
+                                                            <widget class="GtkHBox" 
id="hbox_force_sensor_ai_position">
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">4</property>
                                                             <child>
-                                                            <widget class="GtkHScale" 
id="hscale_force_sensor_ai_ab">
-                                                            <property name="can_focus">True</property>
-                                                            <property name="adjustment">1 1 300 1 10 
0</property>
-                                                            <property name="digits">0</property>
-                                                            <property name="draw_value">False</property>
-                                                            <signal name="value_changed" 
handler="on_hscale_force_sensor_ai_ab_value_changed" swapped="no"/>
+                                                            <widget class="GtkLabel" id="label108">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">Position</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">True</property>
@@ -21688,53 +21574,87 @@ Concentric</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_diff">
+                                                            <widget class="GtkLabel" id="label254">
+                                                            <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="xalign">1</property>
-                                                            <property name="label" 
translatable="yes">Difference</property>
+                                                            <property name="label">(m)</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">False</property>
+                                                            <property name="expand">True</property>
                                                             <property name="fill">True</property>
-                                                            <property name="pack_type">end</property>
                                                             <property name="position">1</property>
                                                             </packing>
                                                             </child>
                                                             </widget>
                                                             <packing>
-                                                            <property name="left_attach">2</property>
-                                                            <property name="right_attach">3</property>
-                                                            <property name="top_attach">3</property>
-                                                            <property name="bottom_attach">4</property>
-                                                            <property name="x_options">GTK_FILL</property>
+                                                            <property name="left_attach">4</property>
+                                                            <property name="right_attach">5</property>
+                                                            <property name="x_options"/>
                                                             <property name="y_options"/>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_force_a">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">2</property>
+                                                            <property name="right_attach">3</property>
+                                                            <property name="top_attach">1</property>
+                                                            <property name="bottom_attach">2</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkCheckButton" 
id="checkbutton_force_sensor_ai_b">
-                                                            <property name="width_request">30</property>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_rfd_a">
                                                             <property name="visible">True</property>
-                                                            <property name="sensitive">False</property>
-                                                            <property name="can_focus">True</property>
-                                                            <property 
name="receives_default">False</property>
-                                                            <property name="xalign">1</property>
-                                                            <property name="draw_indicator">True</property>
-                                                            <signal name="toggled" 
handler="on_checkbutton_force_sensor_ai_b_toggled" swapped="no"/>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">3</property>
+                                                            <property name="right_attach">4</property>
+                                                            <property name="top_attach">1</property>
+                                                            <property name="bottom_attach">2</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_force_b">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
                                                             </widget>
                                                             <packing>
+                                                            <property name="left_attach">2</property>
+                                                            <property name="right_attach">3</property>
                                                             <property name="top_attach">2</property>
                                                             <property name="bottom_attach">3</property>
                                                             <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" id="label360">
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_rfd_b">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">3</property>
+                                                            <property name="right_attach">4</property>
+                                                            <property name="top_attach">2</property>
+                                                            <property name="bottom_attach">3</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_time_a">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
-                                                            <property name="label">A</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="left_attach">1</property>
@@ -21742,13 +21662,12 @@ Concentric</property>
                                                             <property name="top_attach">1</property>
                                                             <property name="bottom_attach">2</property>
                                                             <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" id="label361">
-                                                            <property name="visible">True</property>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_time_b">
                                                             <property name="can_focus">False</property>
-                                                            <property name="label">B</property>
                                                             </widget>
                                                             <packing>
                                                             <property name="left_attach">1</property>
@@ -21756,440 +21675,723 @@ Concentric</property>
                                                             <property name="top_attach">2</property>
                                                             <property name="bottom_attach">3</property>
                                                             <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkLabel" id="label380">
-                                                            <property name="visible">True</property>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_force_diff">
                                                             <property name="can_focus">False</property>
-                                                            <property name="label">A+B</property>
+                                                            <property name="width_chars">8</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="left_attach">1</property>
-                                                            <property name="right_attach">2</property>
+                                                            <property name="left_attach">2</property>
+                                                            <property name="right_attach">3</property>
                                                             <property name="top_attach">3</property>
                                                             <property name="bottom_attach">4</property>
                                                             <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_time_diff">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">1</property>
+                                                            <property name="right_attach">2</property>
+                                                            <property name="top_attach">3</property>
+                                                            <property name="bottom_attach">4</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_rfd_diff">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">3</property>
+                                                            <property name="right_attach">4</property>
+                                                            <property name="top_attach">3</property>
+                                                            <property name="bottom_attach">4</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_force_average">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">2</property>
+                                                            <property name="right_attach">3</property>
+                                                            <property name="top_attach">4</property>
+                                                            <property name="bottom_attach">5</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_rfd_average">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">3</property>
+                                                            <property name="right_attach">4</property>
+                                                            <property name="top_attach">4</property>
+                                                            <property name="bottom_attach">5</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_force_max">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">2</property>
+                                                            <property name="right_attach">3</property>
+                                                            <property name="top_attach">5</property>
+                                                            <property name="bottom_attach">6</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_rfd_max">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">3</property>
+                                                            <property name="right_attach">4</property>
+                                                            <property name="top_attach">5</property>
+                                                            <property name="bottom_attach">6</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_b">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">B</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="top_attach">2</property>
+                                                            <property name="bottom_attach">3</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options"/>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <widget class="GtkHBox" id="hbox270">
+                                                            <widget class="GtkLabel" id="label270">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
+                                                            <property name="label">A</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="top_attach">1</property>
+                                                            <property name="bottom_attach">2</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options"/>
+                                                            </packing>
+                                                            </child>
                                                             <child>
-                                                            <widget class="GtkButton" 
id="button_force_sensor_ai_zoom">
-                                                            <property name="label">Zoom [A-B]</property>
-                                                            <property name="can_focus">True</property>
-                                                            <property name="receives_default">True</property>
-                                                            <signal name="clicked" 
handler="on_button_force_sensor_ai_zoom_clicked" swapped="no"/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_diff">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="xalign">1</property>
+                                                            <property name="label" 
translatable="yes">Difference</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
-                                                            <property name="position">0</property>
+                                                            <property name="top_attach">3</property>
+                                                            <property name="bottom_attach">4</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
                                                             </packing>
                                                             </child>
+                                                            <child>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_average">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="xalign">1</property>
+                                                            <property name="label" 
translatable="yes">Average</property>
                                                             </widget>
                                                             <packing>
-                                                            <property name="left_attach">1</property>
-                                                            <property name="right_attach">2</property>
                                                             <property name="top_attach">4</property>
                                                             <property name="bottom_attach">5</property>
                                                             <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
                                                             </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
-                                                            </child>
-                                                            <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_max">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="xalign">1</property>
+                                                            <property name="label" 
translatable="yes">Maximum</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="top_attach">5</property>
+                                                            <property name="bottom_attach">6</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
-                                                            </child>
+                                                            <widget class="GtkHBox" 
id="hbox_force_sensor_ai_speed">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">4</property>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" id="label266">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">Speed</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" id="label382">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">(m/s)</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
                                                             </child>
-                                                            <child>
-                                                            <placeholder/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">5</property>
+                                                            <property name="right_attach">6</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options"/>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
-                                                            </child>
+                                                            <widget class="GtkHBox" 
id="hbox_force_sensor_ai_accel">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">4</property>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" id="label384">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">Acceleration</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" id="label394">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">(m/s^2)</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
                                                             </child>
-                                                            <child>
-                                                            <placeholder/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">6</property>
+                                                            <property name="right_attach">7</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options"/>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
-                                                            </child>
+                                                            <widget class="GtkHBox" 
id="hbox_force_sensor_ai_power">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">4</property>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" id="label399">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">Power</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" id="label400">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">(W)</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
                                                             </child>
-                                                            <child>
-                                                            <placeholder/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">7</property>
+                                                            <property name="right_attach">8</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options"/>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_position_a">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">4</property>
+                                                            <property name="right_attach">5</property>
+                                                            <property name="top_attach">1</property>
+                                                            <property name="bottom_attach">2</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_position_b">
+                                                            <property name="can_focus">False</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">4</property>
+                                                            <property name="right_attach">5</property>
+                                                            <property name="top_attach">2</property>
+                                                            <property name="bottom_attach">3</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_speed_a">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">5</property>
+                                                            <property name="right_attach">6</property>
+                                                            <property name="top_attach">1</property>
+                                                            <property name="bottom_attach">2</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_speed_b">
+                                                            <property name="can_focus">False</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">5</property>
+                                                            <property name="right_attach">6</property>
+                                                            <property name="top_attach">2</property>
+                                                            <property name="bottom_attach">3</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_accel_a">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">6</property>
+                                                            <property name="right_attach">7</property>
+                                                            <property name="top_attach">1</property>
+                                                            <property name="bottom_attach">2</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_accel_b">
+                                                            <property name="can_focus">False</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">6</property>
+                                                            <property name="right_attach">7</property>
+                                                            <property name="top_attach">2</property>
+                                                            <property name="bottom_attach">3</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_power_a">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">7</property>
+                                                            <property name="right_attach">8</property>
+                                                            <property name="top_attach">1</property>
+                                                            <property name="bottom_attach">2</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_power_b">
+                                                            <property name="can_focus">False</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">7</property>
+                                                            <property name="right_attach">8</property>
+                                                            <property name="top_attach">2</property>
+                                                            <property name="bottom_attach">3</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_position_diff">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">4</property>
+                                                            <property name="right_attach">5</property>
+                                                            <property name="top_attach">3</property>
+                                                            <property name="bottom_attach">4</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_speed_diff">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">5</property>
+                                                            <property name="right_attach">6</property>
+                                                            <property name="top_attach">3</property>
+                                                            <property name="bottom_attach">4</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_accel_diff">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">6</property>
+                                                            <property name="right_attach">7</property>
+                                                            <property name="top_attach">3</property>
+                                                            <property name="bottom_attach">4</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_power_diff">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">7</property>
+                                                            <property name="right_attach">8</property>
+                                                            <property name="top_attach">3</property>
+                                                            <property name="bottom_attach">4</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_speed_average">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">5</property>
+                                                            <property name="right_attach">6</property>
+                                                            <property name="top_attach">4</property>
+                                                            <property name="bottom_attach">5</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_accel_average">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">6</property>
+                                                            <property name="right_attach">7</property>
+                                                            <property name="top_attach">4</property>
+                                                            <property name="bottom_attach">5</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_power_average">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">7</property>
+                                                            <property name="right_attach">8</property>
+                                                            <property name="top_attach">4</property>
+                                                            <property name="bottom_attach">5</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_speed_max">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">5</property>
+                                                            <property name="right_attach">6</property>
+                                                            <property name="top_attach">5</property>
+                                                            <property name="bottom_attach">6</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_accel_max">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">6</property>
+                                                            <property name="right_attach">7</property>
+                                                            <property name="top_attach">5</property>
+                                                            <property name="bottom_attach">6</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_power_max">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="left_attach">7</property>
+                                                            <property name="right_attach">8</property>
+                                                            <property name="top_attach">5</property>
+                                                            <property name="bottom_attach">6</property>
+                                                            <property name="x_options"/>
+                                                            <property name="y_options">GTK_SHRINK</property>
+                                                            </packing>
                                                             </child>
-                                                            <child>
-                                                            <placeholder/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
-                                                            </child>
+                                                            <widget class="GtkVBox" 
id="vbox_force_sensor_ai_impulse_variability_and_feedback">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">12</property>
                                                             <child>
-                                                            <placeholder/>
-                                                            </child>
+                                                            <widget class="GtkVBox" id="vbox148">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
                                                             <child>
-                                                            <placeholder/>
-                                                            </child>
+                                                            <widget class="GtkHBox" id="hbox273">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">4</property>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_impulse">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">Impulse</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" id="label401">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">(N*s)</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
                                                             </child>
-                                                            <child>
-                                                            <placeholder/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_impulse_values">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
                                                             </child>
-                                                            <child>
-                                                            <placeholder/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
-                                                            </child>
+                                                            <widget class="GtkVBox" id="vbox149">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
                                                             <child>
-                                                            <placeholder/>
-                                                            </child>
+                                                            <widget class="GtkHBox" id="hbox283">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">4</property>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_variability">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">Variability</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" id="label411">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">(N)</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
                                                             </child>
-                                                            <child>
-                                                            <placeholder/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_variability_values">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
                                                             </child>
-                                                            <child>
-                                                            <placeholder/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
-                                                            </child>
+                                                            <widget class="GtkVBox" 
id="vbox_force_sensor_ai_feedback">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
                                                             <child>
-                                                            <placeholder/>
-                                                            </child>
+                                                            <widget class="GtkHBox" id="hbox297">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="spacing">4</property>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_feedback">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" 
translatable="yes">Feedback</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" id="label412">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label">(N)</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
                                                             </child>
-                                                            <child>
-                                                            <placeholder/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
                                                             </child>
                                                             <child>
-                                                            <placeholder/>
+                                                            <widget class="GtkLabel" 
id="label_force_sensor_ai_feedback_values">
+                                                            <property name="visible">True</property>
+                                                            <property name="can_focus">False</property>
+                                                            <property name="width_chars">8</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">1</property>
+                                                            </packing>
                                                             </child>
-                                                            <child>
-                                                            <placeholder/>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">True</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
                                                             </child>
                                                             </widget>
                                                             <packing>
@@ -22204,6 +22406,13 @@ Concentric</property>
                                                             </child>
                                                             </widget>
                                                             <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">True</property>
+                                                            <property name="position">2</property>
+                                                            </packing>
+                                                            </child>
+                                                            </widget>
+                                                            <packing>
                                                             <property name="expand">True</property>
                                                             <property name="fill">True</property>
                                                             <property name="position">0</property>
@@ -24240,18 +24449,6 @@ Concentric</property>
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">6</property>
                                                             <child>
-                                                            <widget class="GtkLabel" 
id="label_video_encoder_tests_will_be_filmed">
-                                                            <property name="can_focus">False</property>
-                                                            <property name="label" translatable="yes">Tests 
will be filmed</property>
-                                                            </widget>
-                                                            <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
-                                                            <property name="pack_type">end</property>
-                                                            <property name="position">0</property>
-                                                            </packing>
-                                                            </child>
-                                                            <child>
                                                             <widget class="GtkHBox" 
id="hbox_video_encoder_capturing">
                                                             <property name="can_focus">False</property>
                                                             <property name="spacing">4</property>
@@ -24288,6 +24485,18 @@ Concentric</property>
                                                             </packing>
                                                             </child>
                                                             <child>
+                                                            <widget class="GtkLabel" 
id="label_video_encoder_tests_will_be_filmed">
+                                                            <property name="can_focus">False</property>
+                                                            <property name="label" translatable="yes">Tests 
will be filmed</property>
+                                                            </widget>
+                                                            <packing>
+                                                            <property name="expand">False</property>
+                                                            <property name="fill">False</property>
+                                                            <property name="pack_type">end</property>
+                                                            <property name="position">0</property>
+                                                            </packing>
+                                                            </child>
+                                                            <child>
                                                             <widget class="GtkHBox" 
id="hbox_video_encoder_no_capturing">
                                                             <property name="visible">True</property>
                                                             <property name="can_focus">False</property>
@@ -31289,6 +31498,21 @@ then click this button.</property>
                                                             <child>
                                                             <placeholder/>
                                                             </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
+                                                            <child>
+                                                            <placeholder/>
+                                                            </child>
                                                             </widget>
                                                             <packing>
                                                             <property name="expand">False</property>
diff --git a/src/forceSensor.cs b/src/forceSensor.cs
index c3a515d6..920e52b6 100644
--- a/src/forceSensor.cs
+++ b/src/forceSensor.cs
@@ -1300,6 +1300,12 @@ public class ForceSensorAnalyzeInstant
 {
        public double ForceAVG;
        public double ForceMAX;
+       public double SpeedAVG;
+       public double SpeedMAX;
+       public double AccelAVG;
+       public double AccelMAX;
+       public double PowerAVG;
+       public double PowerMAX;
 
        //for elastic
        public bool CalculedElasticPSAP;
@@ -1404,7 +1410,7 @@ public class ForceSensorAnalyzeInstant
                }
 
                times.RemoveAt(0); //always (not-elastic and elastic) 1st has to be removed, because time is 
not ok there.
-               if(fsd.CalculedElasticPSAP)
+               if(CalculedElasticPSAP)
                        times = times.GetRange(fsd.RemoveNValues -1, times.Count -2*fsd.RemoveNValues);
                int i = 0;
                foreach(int time in times)
@@ -1496,9 +1502,35 @@ public class ForceSensorAnalyzeInstant
 
                fscAIPoints.GetAverageAndMaxForce(countA, countB, out ForceAVG, out ForceMAX);
 
+               if(CalculedElasticPSAP)
+               {
+                       calculeElasticPSAPAveragesAndMax(countA, countB, Speed_l, out SpeedAVG, out SpeedMAX);
+                       calculeElasticPSAPAveragesAndMax(countA, countB, Accel_l, out AccelAVG, out AccelMAX);
+                       calculeElasticPSAPAveragesAndMax(countA, countB, Power_l, out PowerAVG, out PowerMAX);
+               }
+
                return true;
        }
 
+       private void calculeElasticPSAPAveragesAndMax(int countA, int countB, List<double> list, out double 
avg, out double max)
+       {
+               if(countA == countB) {
+                       avg = list[countA];
+                       max = list[countA];
+                       return;
+               }
+
+               double sum = 0;
+               max = 0;
+               for(int i = countA; i <= countB; i ++) {
+                       sum += list[i];
+                       if(list[i] > max)
+                               max = list[i];
+               }
+
+               avg = sum / ((countB - countA) +1);
+       }
+
        public double CalculateRFD(int countA, int countB)
        {
                return fscAIPoints.GetRFD(countA, countB);
diff --git a/src/gui/forceSensorAnalyze.cs b/src/gui/forceSensorAnalyze.cs
index af43dc09..c50e29e9 100644
--- a/src/gui/forceSensorAnalyze.cs
+++ b/src/gui/forceSensorAnalyze.cs
@@ -39,6 +39,7 @@ public partial class ChronoJumpWindow
        [Widget] Gtk.Viewport viewport_force_sensor_graph;
        [Widget] Gtk.Button button_force_sensor_image_save_rfd_auto;
        [Widget] Gtk.Button button_force_sensor_image_save_rfd_manual;
+       [Widget] Gtk.ScrolledWindow scrolledwindow_force_sensor_ai;
        [Widget] Gtk.Button button_force_sensor_analyze_AB_save;
        [Widget] Gtk.Button button_force_sensor_ai_zoom;
 
@@ -116,6 +117,17 @@ public partial class ChronoJumpWindow
        [Widget] Gtk.Button button_hscale_force_sensor_ai_b_post;
        [Widget] Gtk.Button button_hscale_force_sensor_ai_b_last;
 
+       [Widget] Gtk.HBox hbox_force_sensor_ai_position;
+       [Widget] Gtk.HBox hbox_force_sensor_ai_speed;
+       [Widget] Gtk.HBox hbox_force_sensor_ai_accel;
+       [Widget] Gtk.HBox hbox_force_sensor_ai_power;
+
+       [Widget] Gtk.VBox vbox_force_sensor_ai_impulse_variability_and_feedback;
+       [Widget] Gtk.VBox vbox_force_sensor_ai_feedback;
+       [Widget] Gtk.Label label_force_sensor_ai_impulse_values;
+       [Widget] Gtk.Label label_force_sensor_ai_variability_values;
+       [Widget] Gtk.Label label_force_sensor_ai_feedback_values;
+
        /*
         * analyze options -------------------------->
         */
@@ -480,7 +492,26 @@ public partial class ChronoJumpWindow
        [Widget] Gtk.Label label_force_sensor_ai_time_a;
        [Widget] Gtk.Label label_force_sensor_ai_force_a;
        [Widget] Gtk.Label label_force_sensor_ai_rfd_a;
+       [Widget] Gtk.Label label_force_sensor_ai_position_a;
+       [Widget] Gtk.Label label_force_sensor_ai_speed_a;
+       [Widget] Gtk.Label label_force_sensor_ai_accel_a;
+       [Widget] Gtk.Label label_force_sensor_ai_power_a;
        [Widget] Gtk.HBox hbox_buttons_scale_force_sensor_ai_b;
+       [Widget] Gtk.Label label_force_sensor_ai_b;
+       [Widget] Gtk.Label label_force_sensor_ai_position_b;
+       [Widget] Gtk.Label label_force_sensor_ai_position_diff;
+       [Widget] Gtk.Label label_force_sensor_ai_speed_b;
+       [Widget] Gtk.Label label_force_sensor_ai_speed_diff;
+       [Widget] Gtk.Label label_force_sensor_ai_speed_average;
+       [Widget] Gtk.Label label_force_sensor_ai_speed_max;
+       [Widget] Gtk.Label label_force_sensor_ai_accel_b;
+       [Widget] Gtk.Label label_force_sensor_ai_accel_diff;
+       [Widget] Gtk.Label label_force_sensor_ai_accel_average;
+       [Widget] Gtk.Label label_force_sensor_ai_accel_max;
+       [Widget] Gtk.Label label_force_sensor_ai_power_b;
+       [Widget] Gtk.Label label_force_sensor_ai_power_diff;
+       [Widget] Gtk.Label label_force_sensor_ai_power_average;
+       [Widget] Gtk.Label label_force_sensor_ai_power_max;
        [Widget] Gtk.Label label_force_sensor_ai_diff;
        [Widget] Gtk.Label label_force_sensor_ai_average;
        [Widget] Gtk.Label label_force_sensor_ai_max;
@@ -581,6 +612,8 @@ public partial class ChronoJumpWindow
 
                //to update values
                on_hscale_force_sensor_ai_a_value_changed (new object (), new EventArgs ());
+
+               manage_force_sensor_ai_table_visibilities();
        }
 
        Gdk.Colormap colormapForceAI;// = Gdk.Colormap.System;
@@ -835,8 +868,6 @@ public partial class ChronoJumpWindow
                if(checkbutton_force_sensor_ai_b.Active)
                        button_force_sensor_analyze_AB_save.Visible = true;
 
-//             forcePaintHVLines(ForceSensorGraphs.ANALYSIS_GENERAL, forceSensorValues.ForceMax, 
forceSensorValues.ForceMin, forceSensorValues.TimeLast);
-
                //draw horizontal rectangle of feedback
                if(check_force_sensor_capture_feedback.Active)
                        forceSensorSignalPlotFeedbackRectangle(fsAI.FscAIPoints, force_sensor_ai_drawingarea, 
force_sensor_ai_pixmap, pen_yellow_light_force_ai);
@@ -901,78 +932,23 @@ public partial class ChronoJumpWindow
                                        layout_force_ai_text_big);
                }
 
-               // 6) if only A calculate RFD and exit
-               if(! checkbutton_force_sensor_ai_b.Active)
+               if(fsAI.CalculedElasticPSAP)
                {
-                       //calculate the instantaneous RFD of A and return
-                       int instant = Convert.ToInt32(hscale_force_sensor_ai_a.Value);
-                       if(instant > 0 && instant < fsAI.GetLength() -1)
-                       {
-                               int verticalPos = -20;
-                               if(fsAI.CalculedElasticPSAP)
-                                       verticalPos = -60;
-
-                               layout_force_ai_text.SetMarkup(string.Format("RFD: {0:0.#} N/s",
-                                                       Math.Round(fsAI.CalculateRFD(instant -1, instant +1), 
1) ));
-                               textWidth = 1;
-                               textHeight = 1;
-                               layout_force_ai_text.GetPixelSize(out textWidth, out textHeight);
-                               force_sensor_ai_pixmap.DrawLayout (pen_blue_force_ai,
-                                               allocation.Width -textWidth -10, allocation.Height/2 + 
verticalPos,
-                                               layout_force_ai_text);
-
-                               //showing on elastic: position, speed, accel, power (but not on the beginning 
and end)
-                               //if(fsAI.CalculedElasticPSAP && (instant > 2 && instant < fsAI.GetLength() 
-3))
-                               if(fsAI.CalculedElasticPSAP)
-                               {
-                                       //position
-                                       layout_force_ai_text.SetMarkup(string.Format("Position: {0:0.###} m",
-                                                               Math.Round(fsAI.Position_l[instant], 3)));
-                                       textWidth = 1;
-                                       textHeight = 1;
-                                       layout_force_ai_text.GetPixelSize(out textWidth, out textHeight);
-                                       verticalPos += 40;
-                                       force_sensor_ai_pixmap.DrawLayout (pen_blue_force_ai,
-                                                       allocation.Width -textWidth -10, allocation.Height/2 
+ verticalPos,
-                                                       layout_force_ai_text);
-
-                                       //speed
-                                       layout_force_ai_text.SetMarkup(string.Format("Speed: {0:0.###} m/s",
-                                                               Math.Round(fsAI.Speed_l[instant], 3)));
-                                       textWidth = 1;
-                                       textHeight = 1;
-                                       layout_force_ai_text.GetPixelSize(out textWidth, out textHeight);
-                                       verticalPos += 20;
-                                       force_sensor_ai_pixmap.DrawLayout (pen_blue_force_ai,
-                                                       allocation.Width -textWidth -10, allocation.Height/2 
+ verticalPos,
-                                                       layout_force_ai_text);
-
-                                       //accel
-                                       layout_force_ai_text.SetMarkup(string.Format("Accel: {0:0.###} m/s^2",
-                                                               Math.Round(fsAI.Accel_l[instant], 3)));
-                                       textWidth = 1;
-                                       textHeight = 1;
-                                       verticalPos += 20;
-                                       layout_force_ai_text.GetPixelSize(out textWidth, out textHeight);
-                                       force_sensor_ai_pixmap.DrawLayout (pen_blue_force_ai,
-                                                       allocation.Width -textWidth -10, allocation.Height/2 
+ verticalPos,
-                                                       layout_force_ai_text);
-
-                                       //power
-                                       layout_force_ai_text.SetMarkup(string.Format("Power: {0:0.###} W",
-                                                               Math.Round(fsAI.Power_l[instant], 3)));
-                                       textWidth = 1;
-                                       textHeight = 1;
-                                       verticalPos += 20;
-                                       layout_force_ai_text.GetPixelSize(out textWidth, out textHeight);
-                                       force_sensor_ai_pixmap.DrawLayout (pen_blue_force_ai,
-                                                       allocation.Width -textWidth -10, allocation.Height/2 
+ verticalPos,
-                                                       layout_force_ai_text);
-                               }
-                       }
-                       return;
+                       hbox_force_sensor_ai_position.Visible = true;
+                       hbox_force_sensor_ai_speed.Visible = true;
+                       hbox_force_sensor_ai_accel.Visible = true;
+                       hbox_force_sensor_ai_power.Visible = true;
+               } else {
+                       hbox_force_sensor_ai_position.Visible = false;
+                       hbox_force_sensor_ai_speed.Visible = false;
+                       hbox_force_sensor_ai_accel.Visible = false;
+                       hbox_force_sensor_ai_power.Visible = false;
                }
 
+               // 6) if only A calculate exit
+               if(! checkbutton_force_sensor_ai_b.Active)
+                       return;
+
                /*
                 * 7) Invert AB if needed to paint correctly blue and red lines
                 * making it work also when B is higher than A
@@ -996,37 +972,14 @@ public partial class ChronoJumpWindow
                                        xposA, fsAI.GetPxAtForce(forceA),
                                        xposB, fsAI.GetPxAtForce(forceB));
 
-                       layout_force_ai_text.SetMarkup(string.Format("A-B statistics"));
-                       textWidth = 1;
-                       textHeight = 1;
-                       layout_force_ai_text.GetPixelSize(out textWidth, out textHeight);
-                       force_sensor_ai_pixmap.DrawLayout (pen_black_force_ai,
-                                       allocation.Width -textWidth -10, allocation.Height/2 -60,
-                                       layout_force_ai_text);
-
-                       layout_force_ai_text.SetMarkup(string.Format("RFD AVG: {0} N/s", 
label_force_sensor_ai_rfd_average.Text));
-                       textWidth = 1;
-                       textHeight = 1;
-                       layout_force_ai_text.GetPixelSize(out textWidth, out textHeight);
-                       force_sensor_ai_pixmap.DrawLayout (pen_blue_force_ai,
-                                       allocation.Width -textWidth -10, allocation.Height/2 -40,
-                                       layout_force_ai_text);
-
                        // 9) calculate and paint max RFD (circle and line)
                        //value of count that produce the max RFD (between the previous and next value)
 
                        if(hscaleLower <= 0 || hscaleHigher >= fsAI.GetLength() -1)
                                return;
 
-                       layout_force_ai_text.SetMarkup(string.Format("RFD Max: {0} N/s",
-                                               Math.Round(fsAI.LastRFDMax, 1) ));
                        int countRFDMax = fsAI.LastRFDMaxCount;
 
-                       layout_force_ai_text.GetPixelSize(out textWidth, out textHeight);
-                       force_sensor_ai_pixmap.DrawLayout (pen_red_force_ai,
-                                       allocation.Width -textWidth -10, allocation.Height/2 -20,
-                                       layout_force_ai_text);
-
                        int rfdX = fsAI.GetXFromSampleCount(countRFDMax, fsAI.GetLength());
                        int rfdY = fsAI.GetPxAtForce(fsAI.GetForceAtCount(countRFDMax));
 
@@ -1036,15 +989,6 @@ public partial class ChronoJumpWindow
                                        12, 12, 90 * 64, 360 * 64);
 
                        // plot tangent line
-                       /*
-                        * This method is not working
-                       int xAtBottom = fsAI.CalculateXOfTangentLine(rfdX, rfdY, 
fsAI.GetForceAtCount(countRFDMax), allocation.Height, allocation.Height);
-                       int xAtTop = fsAI.CalculateXOfTangentLine(rfdX, rfdY, 
fsAI.GetForceAtCount(countRFDMax), 0, allocation.Height);
-                       force_sensor_ai_pixmap.DrawLine(pen_red_force_ai,
-                                       xAtBottom, allocation.Height,
-                                       xAtTop, 0);
-                                       */
-
                        if(countRFDMax -1 >= 0 && countRFDMax +1 < fsAI.GetLength() -1)
                        {
                                //calculate line
@@ -1056,45 +1000,6 @@ public partial class ChronoJumpWindow
                                if(debug)
                                        plotRFDLineDebugConstruction(countRFDMax);
                        }
-
-
-                       // 10) calculate and paint impulse
-                       layout_force_ai_text.SetMarkup(string.Format("Impulse: {0:0.#} N*s",
-                                               Math.Round(fsAI.CalculateImpulse(
-                                                               hscaleLower, hscaleHigher), 1) ));
-
-                       layout_force_ai_text.GetPixelSize(out textWidth, out textHeight);
-                       force_sensor_ai_pixmap.DrawLayout (pen_black_force_ai,
-                                       allocation.Width -textWidth -10, allocation.Height/2,
-                                       layout_force_ai_text);
-
-                       // 11) calculate and paint variability
-                       double variability = 0;
-                       double feedbackDiff = 0;
-                       int feedbackF = Convert.ToInt32(spin_force_sensor_capture_feedback_at.Value);
-
-                       fsAI.CalculateVariabilityAndAccuracy(hscaleLower, hscaleHigher, feedbackF, out 
variability, out feedbackDiff);
-
-                       layout_force_ai_text.SetMarkup(string.Format("Variability: {0:0.###} N",
-                                               Math.Round(variability, 3) ));
-
-                       layout_force_ai_text.GetPixelSize(out textWidth, out textHeight);
-                       force_sensor_ai_pixmap.DrawLayout (pen_black_force_ai,
-                                       allocation.Width -textWidth -10, allocation.Height/2 + 20,
-                                       layout_force_ai_text);
-
-                       // 12) calculate and paint Accuracy (Feedback difference)
-                       if(check_force_sensor_capture_feedback.Active && feedbackF > 0)
-                       {
-                               layout_force_ai_text.SetMarkup(string.Format("Error (Feedback): {0:0.###} N",
-                                                       Math.Round(feedbackDiff, 3) ));
-
-                               layout_force_ai_text.GetPixelSize(out textWidth, out textHeight);
-                               force_sensor_ai_pixmap.DrawLayout (pen_black_force_ai,
-                                               allocation.Width -textWidth -10, allocation.Height/2 + 40,
-                                               layout_force_ai_text);
-                       }
-
                }
                LogB.Information("forceSensorAnalyzeManualGraphDo() END");
        }
@@ -1135,6 +1040,19 @@ public partial class ChronoJumpWindow
                label_force_sensor_ai_time_a.Text = Math.Round(fsAI.GetTimeMS(count), 1).ToString();
                label_force_sensor_ai_force_a.Text = Math.Round(fsAI.GetForceAtCount(count), 1).ToString();
 
+               if(fsAI.CalculedElasticPSAP)
+               {
+                       label_force_sensor_ai_position_a.Text = Math.Round(fsAI.Position_l[count], 
3).ToString();
+                       label_force_sensor_ai_speed_a.Text = Math.Round(fsAI.Speed_l[count], 3).ToString();
+                       label_force_sensor_ai_accel_a.Text = Math.Round(fsAI.Accel_l[count], 3).ToString();
+                       label_force_sensor_ai_power_a.Text = Math.Round(fsAI.Power_l[count], 3).ToString();
+               } else {
+                       label_force_sensor_ai_position_a.Text = "";
+                       label_force_sensor_ai_speed_a.Text = "";
+                       label_force_sensor_ai_accel_a.Text = "";
+                       label_force_sensor_ai_power_a.Text = "";
+               }
+
                if(count > 0 && count < fsAI.GetLength() -1)
                        label_force_sensor_ai_rfd_a.Text = Math.Round(fsAI.CalculateRFD(count -1, count +1), 
1).ToString();
                else
@@ -1165,6 +1083,19 @@ public partial class ChronoJumpWindow
                label_force_sensor_ai_time_b.Text = Math.Round(fsAI.GetTimeMS(count), 1).ToString();
                label_force_sensor_ai_force_b.Text = Math.Round(fsAI.GetForceAtCount(count), 1).ToString();
 
+               if(fsAI.CalculedElasticPSAP)
+               {
+                       label_force_sensor_ai_position_b.Text = Math.Round(fsAI.Position_l[count], 
3).ToString();
+                       label_force_sensor_ai_speed_b.Text = Math.Round(fsAI.Speed_l[count], 3).ToString();
+                       label_force_sensor_ai_accel_b.Text = Math.Round(fsAI.Accel_l[count], 3).ToString();
+                       label_force_sensor_ai_power_b.Text = Math.Round(fsAI.Power_l[count], 3).ToString();
+               } else {
+                       label_force_sensor_ai_position_b.Text = "";
+                       label_force_sensor_ai_speed_b.Text = "";
+                       label_force_sensor_ai_accel_b.Text = "";
+                       label_force_sensor_ai_power_b.Text = "";
+               }
+
                if(count > 0 && count < fsAI.GetLength() -1)
                        label_force_sensor_ai_rfd_b.Text = Math.Round(fsAI.CalculateRFD(count -1, count +1), 
1).ToString();
                else
@@ -1267,12 +1198,31 @@ public partial class ChronoJumpWindow
                int count = Convert.ToInt32(hscale_force_sensor_ai_b.Value);
                label_force_sensor_ai_time_b.Text = Math.Round(fsAI.GetTimeMS(count), 1).ToString();
                label_force_sensor_ai_force_b.Text = Math.Round(fsAI.GetForceAtCount(count), 1).ToString();
+               if(fsAI.CalculedElasticPSAP)
+                       label_force_sensor_ai_position_b.Text = Math.Round(fsAI.Position_l[count], 
3).ToString();
 
+               manage_force_sensor_ai_table_visibilities();
+
+               if(fsAI != null)
+                       force_sensor_analyze_instant_calculate_params();
+
+               forceSensorAIChanged = true; //to actually plot
+
+               //this two help to make the table shrink when B is unchecked
+               scrolledwindow_force_sensor_ai.Hide();
+               scrolledwindow_force_sensor_ai.Show();
+
+               force_sensor_ai_drawingarea.QueueDraw(); // -- refresh
+       }
+
+       private void manage_force_sensor_ai_table_visibilities()
+       {
                bool visible = checkbutton_force_sensor_ai_b.Active;
                hscale_force_sensor_ai_b.Visible = visible;
                hbox_buttons_scale_force_sensor_ai_b.Visible = visible;
                hscale_force_sensor_ai_ab.Visible = visible;
 
+               label_force_sensor_ai_b.Visible = visible;
                label_force_sensor_ai_diff.Visible = visible;
                label_force_sensor_ai_average.Visible = visible;
                label_force_sensor_ai_max.Visible = visible;
@@ -1289,18 +1239,31 @@ public partial class ChronoJumpWindow
                label_force_sensor_ai_rfd_average.Visible = visible;
                label_force_sensor_ai_rfd_max.Visible = visible;
 
+               bool visibleElastic = (visible && fsAI.CalculedElasticPSAP);
+
+               label_force_sensor_ai_position_b.Visible = visibleElastic;
+               label_force_sensor_ai_position_diff.Visible = visibleElastic;
+               label_force_sensor_ai_speed_b.Visible = visibleElastic;
+               label_force_sensor_ai_speed_diff.Visible = visibleElastic;
+               label_force_sensor_ai_speed_average.Visible = visibleElastic;
+               label_force_sensor_ai_speed_max.Visible = visibleElastic;
+
+               label_force_sensor_ai_accel_b.Visible = visibleElastic;
+               label_force_sensor_ai_accel_diff.Visible = visibleElastic;
+               label_force_sensor_ai_accel_average.Visible = visibleElastic;
+               label_force_sensor_ai_accel_max.Visible = visibleElastic;
+
+               label_force_sensor_ai_power_b.Visible = visibleElastic;
+               label_force_sensor_ai_power_diff.Visible = visibleElastic;
+               label_force_sensor_ai_power_average.Visible = visibleElastic;
+               label_force_sensor_ai_power_max.Visible = visibleElastic;
+
                button_force_sensor_ai_zoom.Visible = visible;
 
                if(visible && canDoForceSensorAnalyzeAB())
                        button_force_sensor_analyze_AB_save.Visible = true;
                else
                        button_force_sensor_analyze_AB_save.Visible = false;
-
-               if(fsAI != null)
-                       force_sensor_analyze_instant_calculate_params();
-
-               forceSensorAIChanged = true; //to actually plot
-               force_sensor_ai_drawingarea.QueueDraw(); // -- refresh
        }
 
        private void force_sensor_analyze_instant_calculate_params()
@@ -1320,8 +1283,48 @@ public partial class ChronoJumpWindow
                if(success) {
                        label_force_sensor_ai_time_diff.Text = Math.Round(timeB - timeA, 1).ToString();
                        label_force_sensor_ai_force_diff.Text = Math.Round(forceB - forceA, 1).ToString();
-                       label_force_sensor_ai_force_average.Text = Math.Round(fsAI.ForceAVG, 1).ToString();
-                       label_force_sensor_ai_force_max.Text = Math.Round(fsAI.ForceMAX, 1).ToString();
+
+                       if(countA != countB) {
+                               label_force_sensor_ai_force_average.Text = Math.Round(fsAI.ForceAVG, 
1).ToString();
+                               label_force_sensor_ai_force_max.Text = Math.Round(fsAI.ForceMAX, 
1).ToString();
+                       } else {
+                               label_force_sensor_ai_force_average.Text = "";
+                               label_force_sensor_ai_force_max.Text = "";
+                       }
+               }
+
+               if(fsAI.CalculedElasticPSAP && success)
+               {
+                       double positionA = fsAI.Position_l[countA];
+                       double positionB = fsAI.Position_l[countB];
+                       label_force_sensor_ai_position_diff.Text = Math.Round(positionB - positionA, 
3).ToString();
+
+                       double speedA = fsAI.Speed_l[countA];
+                       double speedB = fsAI.Speed_l[countB];
+                       label_force_sensor_ai_speed_diff.Text = Math.Round(speedB - speedA, 3).ToString();
+                       if(countA != countB) {
+                               label_force_sensor_ai_speed_average.Text = Math.Round(fsAI.SpeedAVG, 
3).ToString();
+                               label_force_sensor_ai_speed_max.Text = Math.Round(fsAI.SpeedMAX, 
3).ToString();
+                               label_force_sensor_ai_accel_average.Text = Math.Round(fsAI.AccelAVG, 
3).ToString();
+                               label_force_sensor_ai_accel_max.Text = Math.Round(fsAI.AccelMAX, 
3).ToString();
+                               label_force_sensor_ai_power_average.Text = Math.Round(fsAI.PowerAVG, 
3).ToString();
+                               label_force_sensor_ai_power_max.Text = Math.Round(fsAI.PowerMAX, 
3).ToString();
+                       } else {
+                               label_force_sensor_ai_speed_average.Text = "";
+                               label_force_sensor_ai_speed_max.Text = "";
+                               label_force_sensor_ai_accel_average.Text = "";
+                               label_force_sensor_ai_accel_max.Text = "";
+                               label_force_sensor_ai_power_average.Text = "";
+                               label_force_sensor_ai_power_max.Text = "";
+                       }
+
+                       double accelA = fsAI.Accel_l[countA];
+                       double accelB = fsAI.Accel_l[countB];
+                       label_force_sensor_ai_accel_diff.Text = Math.Round(accelB - accelA, 3).ToString();
+
+                       double powerA = fsAI.Power_l[countA];
+                       double powerB = fsAI.Power_l[countB];
+                       label_force_sensor_ai_power_diff.Text = Math.Round(powerB - powerA, 3).ToString();
                }
 
                double rfdA = 0;
@@ -1374,10 +1377,36 @@ public partial class ChronoJumpWindow
 
                        label_force_sensor_ai_rfd_max.Text = Math.Round(fsAI.LastRFDMax, 1).ToString();
                } else {
-                       label_force_sensor_ai_rfd_diff.Text = "";
+                       label_force_sensor_ai_rfd_diff.Text = "0";
                        label_force_sensor_ai_rfd_average.Text = "";
                        label_force_sensor_ai_rfd_max.Text = "";
                }
+
+               vbox_force_sensor_ai_impulse_variability_and_feedback.Visible = (countA != countB);
+
+               if(countA != countB)
+               {
+                       // 10) calculate impulse
+                       label_force_sensor_ai_impulse_values.Text = Math.Round(fsAI.CalculateImpulse(
+                                               countA, countB), 1).ToString();
+
+                       // 11) calculate variability
+                       double variability = 0;
+                       double feedbackDiff = 0;
+                       int feedbackF = Convert.ToInt32(spin_force_sensor_capture_feedback_at.Value);
+
+                       fsAI.CalculateVariabilityAndAccuracy(countA, countB, feedbackF, out variability, out 
feedbackDiff);
+
+                       label_force_sensor_ai_variability_values.Text = Math.Round(variability, 3).ToString();
+
+                       // 12) calculate Accuracy (Feedback difference)
+                       if(check_force_sensor_capture_feedback.Active && feedbackF > 0)
+                       {
+                               label_force_sensor_ai_feedback_values.Text = Math.Round(feedbackDiff, 
3).ToString();
+                               vbox_force_sensor_ai_feedback.Visible = true;
+                       } else
+                               vbox_force_sensor_ai_feedback.Visible = false;
+               }
        }
 
        private bool canDoForceSensorAnalyzeAB()


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]