Browse Source

composite window

Krystian Lewandowski 9 years ago
parent
commit
12134abdf4

+ 160 - 81
.idea/workspace.xml

@@ -2,16 +2,11 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="1591b6fa-ad4f-4d7a-b643-0b1859455660" name="Default" comment="">
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/profiles_settings.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/pimonitor/cu/PMCUCalculatedParameter.py" afterPath="$PROJECT_DIR$/pimonitor/cu/PMCUCalculatedParameter.py" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/pimonitor/cu/PMCUStandardParameter.py" afterPath="$PROJECT_DIR$/pimonitor/cu/PMCUStandardParameter.py" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/pimonitor/PMDemoConnection.py" afterPath="$PROJECT_DIR$/pimonitor/PMDemoConnection.py" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/pimonitor/PMMain.py" afterPath="$PROJECT_DIR$/pimonitor/PMMain.py" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/pimonitor/ui/PMScreen.py" afterPath="$PROJECT_DIR$/pimonitor/ui/PMScreen.py" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/pimonitor/ui/PMSingleWindow.py" afterPath="$PROJECT_DIR$/pimonitor/ui/PMSingleWindow.py" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/pimonitor/PMXmlParser.py" afterPath="$PROJECT_DIR$/pimonitor/PMXmlParser.py" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/pimonitor/ui/PMWindow.py" afterPath="$PROJECT_DIR$/pimonitor/ui/PMWindow.py" />
     </list>
     <ignored path="PiMonitor.iws" />
     <ignored path=".idea/workspace.xml" />
@@ -37,8 +32,8 @@
       <file leaf-file-name="PMCUCalculatedParameter.py" pinned="false" current="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/pimonitor/cu/PMCUCalculatedParameter.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="682" max-vertical-offset="1500">
-              <caret line="71" column="39" selection-start-line="71" selection-start-column="39" selection-end-line="71" selection-end-column="39" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="176" max-vertical-offset="1500">
+              <caret line="31" column="0" selection-start-line="31" selection-start-column="0" selection-end-line="31" selection-end-column="0" />
               <folding />
             </state>
           </provider>
@@ -47,11 +42,9 @@
       <file leaf-file-name="PMSingleWindow.py" pinned="false" current="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/pimonitor/ui/PMSingleWindow.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="-16.615385" vertical-offset="483" max-vertical-offset="1365">
-              <caret line="61" column="0" selection-start-line="61" selection-start-column="0" selection-end-line="61" selection-end-column="0" />
-              <folding>
-                <element signature="e#47#60#0" expanded="true" />
-              </folding>
+            <state vertical-scroll-proportion="0.0" vertical-offset="335" max-vertical-offset="1395">
+              <caret line="29" column="0" selection-start-line="27" selection-start-column="0" selection-end-line="29" selection-end-column="0" />
+              <folding />
             </state>
           </provider>
         </entry>
@@ -59,30 +52,20 @@
       <file leaf-file-name="PMDemoConnection.py" pinned="false" current="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/pimonitor/PMDemoConnection.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="135" max-vertical-offset="1200">
-              <caret line="57" column="12" selection-start-line="57" selection-start-column="12" selection-end-line="57" selection-end-column="12" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="376" max-vertical-offset="1200">
+              <caret line="58" column="34" selection-start-line="58" selection-start-column="34" selection-end-line="58" selection-end-column="34" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="PMCUStandardParameter.py" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/pimonitor/cu/PMCUStandardParameter.py">
+      <file leaf-file-name="PMWindow.py" pinned="false" current="true" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/pimonitor/ui/PMWindow.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="847" max-vertical-offset="1680">
-              <caret line="76" column="28" selection-start-line="76" selection-start-column="28" selection-end-line="76" selection-end-column="28" />
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="PMMain.py" pinned="false" current="true" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/pimonitor/PMMain.py">
-          <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.17481662" vertical-offset="1267" max-vertical-offset="2085">
-              <caret line="94" column="68" selection-start-line="94" selection-start-column="68" selection-end-line="94" selection-end-column="68" />
+            <state vertical-scroll-proportion="0.9559194" vertical-offset="696" max-vertical-offset="1770">
+              <caret line="97" column="66" selection-start-line="97" selection-start-column="66" selection-end-line="97" selection-end-column="66" />
               <folding>
-                <element signature="e#72#81#0" expanded="true" />
+                <element signature="e#47#60#0" expanded="true" />
               </folding>
             </state>
           </provider>
@@ -91,7 +74,7 @@
       <file leaf-file-name="PMUtils.py" pinned="false" current="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/pimonitor/PMUtils.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="337" max-vertical-offset="1155">
+            <state vertical-scroll-proportion="0.0" vertical-offset="320" max-vertical-offset="1155">
               <caret line="56" column="17" selection-start-line="56" selection-start-column="17" selection-end-line="56" selection-end-column="17" />
               <folding />
             </state>
@@ -108,11 +91,23 @@
           </provider>
         </entry>
       </file>
+      <file leaf-file-name="PMMain.py" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/pimonitor/PMMain.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state vertical-scroll-proportion="0.0" vertical-offset="1593" max-vertical-offset="2325">
+              <caret line="135" column="0" selection-start-line="135" selection-start-column="0" selection-end-line="135" selection-end-column="0" />
+              <folding>
+                <element signature="e#72#81#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
       <file leaf-file-name="PMScreen.py" pinned="false" current="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/pimonitor/ui/PMScreen.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="885" max-vertical-offset="3645">
-              <caret line="37" column="45" selection-start-line="37" selection-start-column="45" selection-end-line="37" selection-end-column="45" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="2307" max-vertical-offset="3645">
+              <caret line="179" column="0" selection-start-line="179" selection-start-column="0" selection-end-line="179" selection-end-column="0" />
               <folding />
             </state>
           </provider>
@@ -123,9 +118,7 @@
           <provider selected="true" editor-type-id="text-editor">
             <state vertical-scroll-proportion="0.0" vertical-offset="780" max-vertical-offset="3480">
               <caret line="88" column="0" selection-start-line="88" selection-start-column="0" selection-end-line="88" selection-end-column="0" />
-              <folding>
-                <element signature="e#47#61#0" expanded="true" />
-              </folding>
+              <folding />
             </state>
           </provider>
         </entry>
@@ -145,7 +138,6 @@
       <list>
         <option value="$PROJECT_DIR$/pimonitor/PMCUParam.py" />
         <option value="$PROJECT_DIR$/pimonitor/PMUtils.py" />
-        <option value="$PROJECT_DIR$/pimonitor/ui/PMWindow.py" />
         <option value="$PROJECT_DIR$/pimonitor/PMPacket.py" />
         <option value="$PROJECT_DIR$/pimonitor/PMCUContext.py" />
         <option value="$PROJECT_DIR$/pimonitor/PM.py" />
@@ -165,10 +157,11 @@
         <option value="$PROJECT_DIR$/pimonitor/PMXmlParser.py" />
         <option value="$PROJECT_DIR$/pimonitor/cu/PMCUStandardParameter.py" />
         <option value="$PROJECT_DIR$/pimonitor/cu/PMCUCalculatedParameter.py" />
-        <option value="$PROJECT_DIR$/pimonitor/PMDemoConnection.py" />
         <option value="$PROJECT_DIR$/pimonitor/ui/PMScreen.py" />
-        <option value="$PROJECT_DIR$/pimonitor/ui/PMSingleWindow.py" />
         <option value="$PROJECT_DIR$/pimonitor/PMMain.py" />
+        <option value="$PROJECT_DIR$/pimonitor/ui/PMSingleWindow.py" />
+        <option value="$PROJECT_DIR$/pimonitor/PMDemoConnection.py" />
+        <option value="$PROJECT_DIR$/pimonitor/ui/PMWindow.py" />
       </list>
     </option>
   </component>
@@ -584,20 +577,20 @@
       <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3298969" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3298969" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3298969" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3291039" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.13666798" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
-      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39888978" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39825812" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
       <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="true" content_ui="tabs" />
       <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.3291039" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32858273" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3298969" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
       <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3291039" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39888978" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
       <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39888978" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
     </layout>
   </component>
   <component name="Vcs.Log.UiProperties">
@@ -620,22 +613,111 @@
     <breakpoint-manager>
       <breakpoints>
         <line-breakpoint enabled="true" type="python-line">
-          <url>file://$PROJECT_DIR$/pimonitor/cu/PMCUCalculatedParameter.py</url>
-          <line>54</line>
-          <option name="timeStamp" value="28" />
+          <url>file://$PROJECT_DIR$/pimonitor/ui/PMWindow.py</url>
+          <line>58</line>
+          <option name="timeStamp" value="35" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="python-line">
+          <url>file://$PROJECT_DIR$/pimonitor/PMMain.py</url>
+          <line>120</line>
+          <option name="timeStamp" value="36" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="python-line">
+          <url>file://$PROJECT_DIR$/pimonitor/PMMain.py</url>
+          <line>135</line>
+          <option name="timeStamp" value="38" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="python-line">
           <url>file://$PROJECT_DIR$/pimonitor/cu/PMCUCalculatedParameter.py</url>
-          <line>46</line>
-          <option name="timeStamp" value="29" />
+          <line>31</line>
+          <option name="timeStamp" value="39" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="python-line">
+          <url>file://$PROJECT_DIR$/pimonitor/ui/PMWindow.py</url>
+          <line>94</line>
+          <option name="timeStamp" value="40" />
         </line-breakpoint>
       </breakpoints>
-      <option name="time" value="30" />
+      <option name="time" value="41" />
     </breakpoint-manager>
   </component>
   <component name="editorHistoryManager">
     <entry file="file://$PROJECT_DIR$/pimonitor/cu/PMCUCalculatedParameter.py">
       <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1560">
+          <caret line="71" column="39" selection-start-line="71" selection-start-column="39" selection-end-line="71" selection-end-column="39" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pimonitor/ui/PMSingleWindow.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="483" max-vertical-offset="1365">
+          <caret line="61" column="0" selection-start-line="61" selection-start-column="0" selection-end-line="61" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pimonitor/PMDemoConnection.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="855" max-vertical-offset="1245">
+          <caret line="57" column="12" selection-start-line="57" selection-start-column="12" selection-end-line="57" selection-end-column="12" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pimonitor/cu/PMCUStandardParameter.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="1140" max-vertical-offset="1635">
+          <caret line="76" column="28" selection-start-line="76" selection-start-column="28" selection-end-line="76" selection-end-column="28" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pimonitor/PMMain.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="1267" max-vertical-offset="2085">
+          <caret line="94" column="68" selection-start-line="94" selection-start-column="68" selection-end-line="94" selection-end-column="68" />
+          <folding>
+            <element signature="e#72#81#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pimonitor/PMUtils.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="840" max-vertical-offset="1170">
+          <caret line="56" column="17" selection-start-line="56" selection-start-column="17" selection-end-line="56" selection-end-column="17" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pimonitor/PMConnection.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="1605" max-vertical-offset="2175">
+          <caret line="107" column="44" selection-start-line="107" selection-start-column="44" selection-end-line="107" selection-end-column="44" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pimonitor/ui/PMScreen.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="555" max-vertical-offset="3750">
+          <caret line="37" column="45" selection-start-line="37" selection-start-column="45" selection-end-line="37" selection-end-column="45" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pimonitor/PMXmlParser.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="780" max-vertical-offset="3480">
+          <caret line="88" column="0" selection-start-line="88" selection-start-column="0" selection-end-line="88" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pimonitor/cu/PMCUCalculatedParameter.py">
+      <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="682" max-vertical-offset="1500">
           <caret line="70" column="65" selection-start-line="70" selection-start-column="56" selection-end-line="70" selection-end-column="65" />
           <folding />
@@ -680,9 +762,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="600" max-vertical-offset="3225">
           <caret line="69" column="41" selection-start-line="69" selection-start-column="41" selection-end-line="69" selection-end-column="41" />
-          <folding>
-            <element signature="e#47#61#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -824,13 +904,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pimonitor/ui/PMWindow.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.6601467" vertical-offset="60" max-vertical-offset="1305">
-          <caret line="40" column="21" selection-start-line="40" selection-start-column="21" selection-end-line="40" selection-end-column="21" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/pimonitor/PMConnection.py">
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="1162" max-vertical-offset="2130">
@@ -850,24 +923,22 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="780" max-vertical-offset="3480">
           <caret line="88" column="0" selection-start-line="88" selection-start-column="0" selection-end-line="88" selection-end-column="0" />
-          <folding>
-            <element signature="e#47#61#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/pimonitor/cu/PMCUStandardParameter.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="847" max-vertical-offset="1680">
-          <caret line="76" column="28" selection-start-line="76" selection-start-column="28" selection-end-line="76" selection-end-column="28" />
+        <state vertical-scroll-proportion="0.61133605" vertical-offset="430" max-vertical-offset="1680">
+          <caret line="80" column="28" selection-start-line="80" selection-start-column="28" selection-end-line="80" selection-end-column="28" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pimonitor/PMDemoConnection.py">
+    <entry file="file://$PROJECT_DIR$/pimonitor/ui/PMScreen.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="135" max-vertical-offset="1200">
-          <caret line="57" column="12" selection-start-line="57" selection-start-column="12" selection-end-line="57" selection-end-column="12" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="2307" max-vertical-offset="3645">
+          <caret line="179" column="0" selection-start-line="179" selection-start-column="0" selection-end-line="179" selection-end-column="0" />
           <folding />
         </state>
       </provider>
@@ -880,38 +951,46 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/pimonitor/PMMain.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="1593" max-vertical-offset="2325">
+          <caret line="135" column="0" selection-start-line="135" selection-start-column="0" selection-end-line="135" selection-end-column="0" />
+          <folding>
+            <element signature="e#72#81#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/pimonitor/cu/PMCUCalculatedParameter.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="682" max-vertical-offset="1500">
-          <caret line="71" column="39" selection-start-line="71" selection-start-column="39" selection-end-line="71" selection-end-column="39" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="176" max-vertical-offset="1500">
+          <caret line="31" column="0" selection-start-line="31" selection-start-column="0" selection-end-line="31" selection-end-column="0" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pimonitor/ui/PMScreen.py">
+    <entry file="file://$PROJECT_DIR$/pimonitor/PMDemoConnection.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="885" max-vertical-offset="3645">
-          <caret line="37" column="45" selection-start-line="37" selection-start-column="45" selection-end-line="37" selection-end-column="45" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="376" max-vertical-offset="1200">
+          <caret line="58" column="34" selection-start-line="58" selection-start-column="34" selection-end-line="58" selection-end-column="34" />
           <folding />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/pimonitor/ui/PMSingleWindow.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="-16.615385" vertical-offset="483" max-vertical-offset="1365">
-          <caret line="61" column="0" selection-start-line="61" selection-start-column="0" selection-end-line="61" selection-end-column="0" />
-          <folding>
-            <element signature="e#47#60#0" expanded="true" />
-          </folding>
+        <state vertical-scroll-proportion="0.0" vertical-offset="245" max-vertical-offset="1395">
+          <caret line="29" column="0" selection-start-line="27" selection-start-column="0" selection-end-line="29" selection-end-column="0" />
+          <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pimonitor/PMMain.py">
+    <entry file="file://$PROJECT_DIR$/pimonitor/ui/PMWindow.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.17481662" vertical-offset="1267" max-vertical-offset="2085">
-          <caret line="94" column="68" selection-start-line="94" selection-start-column="68" selection-end-line="94" selection-end-column="68" />
+        <state vertical-scroll-proportion="0.9559194" vertical-offset="696" max-vertical-offset="1770">
+          <caret line="97" column="66" selection-start-line="97" selection-start-column="66" selection-end-line="97" selection-end-column="66" />
           <folding>
-            <element signature="e#72#81#0" expanded="true" />
+            <element signature="e#47#60#0" expanded="true" />
           </folding>
         </state>
       </provider>

+ 2 - 2
pimonitor/PMDemoConnection.py

@@ -55,8 +55,8 @@ class PMDemoConnection(object):
         data.append(0xE8)
         
         for i in range(0, address_len):
-            self._byteval[i] = (self._byteval[i] + 1) % 0xFF
-            #self._byteval[i] = 1 % 0xFF
+            #self._byteval[i] = (self._byteval[i] + 1) % 0xFF
+            self._byteval[i] = 100 % 0xFF
             data.append(self._byteval[i])
         
         checksum = 0

+ 34 - 19
pimonitor/PMMain.py

@@ -22,6 +22,7 @@ from pimonitor.cu.PMCUParameter import PMCUParameter
 from pimonitor.cu.PMCUContext import PMCUContext
 from pimonitor.ui.PMScreen import PMScreen
 from pimonitor.ui.PMSingleWindow import PMSingleWindow
+from pimonitor.ui.PMWindow import PMWindow
 
 
 def stringSplitByNumbers(x):
@@ -94,31 +95,45 @@ if __name__ == '__main__':
             supported_parameters = ecu_parameters + ecu_switch_parameters + ecu_calculated_parameters + tcu_parameters + tcu_switch_parameters + tcu_calculated_parameters
 
             supported_parameters = sorted(supported_parameters, key=stringSplitByNumbers)
-            for p in supported_parameters:
-                window = PMSingleWindow(p)
+
+            pids = ["E114", "P104", "P122", "P97", "P203"]
+            first_window_parameters = []
+
+            for parameter in supported_parameters:
+                if parameter.get_id() in pids:
+                    pids.remove(parameter.get_id())
+                    first_window_parameters.append(parameter)
+
+            window = PMWindow(first_window_parameters)
+            screen.add_window(window)
+
+            for parameter in supported_parameters:
+                window = PMSingleWindow(parameter)
                 screen.add_window(window)
 
             screen.next_window()
 
             while True:
                 window = screen.get_window()
-                param = window.get_parameter()
-                # parameters = param.get_parameters()
-                #if parameters:
-                #    packets = connection.read_parameters(parameters)
-                #    window.set_packets(packets)
-                #else:
-                if param.get_cu_type() == PMCUParameter.CU_TYPE_STD_PARAMETER():
-                    packet = connection.read_parameter(param)
-                    window.set_packets([packet])
-                elif param.get_cu_type() == PMCUParameter.CU_TYPE_FIXED_ADDRESS_PARAMETER():
-                    packet = connection.read_parameter(param)
-                    window.set_packets([packet])
-                elif param.get_cu_type() == PMCUParameter.CU_TYPE_SWITCH_PARAMETER():
-                    packet = connection.read_parameter(param)
-                    window.set_packets([packet])
-                elif param.get_cu_type() == PMCUParameter.CU_TYPE_CALCULATED_PARAMETER():
-                    packets = connection.read_parameters(param.get_dependencies())
+                parameters = window.get_parameters()
+
+                # TODO refactor - not possible to test at the moment, so leave working part untouched
+                if len(parameters) == 1:
+                    parameter = parameters[0]
+                    if parameter.get_cu_type() == PMCUParameter.CU_TYPE_STD_PARAMETER():
+                        packet = connection.read_parameter(parameter)
+                        window.set_packets([packet])
+                    elif parameter.get_cu_type() == PMCUParameter.CU_TYPE_FIXED_ADDRESS_PARAMETER():
+                        packet = connection.read_parameter(parameter)
+                        window.set_packets([packet])
+                    elif parameter.get_cu_type() == PMCUParameter.CU_TYPE_SWITCH_PARAMETER():
+                        packet = connection.read_parameter(parameter)
+                        window.set_packets([packet])
+                    elif parameter.get_cu_type() == PMCUParameter.CU_TYPE_CALCULATED_PARAMETER():
+                        packets = connection.read_parameters(parameter.get_dependencies())
+                        window.set_packets(packets)
+                elif len(parameters) > 1:
+                    packets = connection.read_parameters(parameters)
                     window.set_packets(packets)
 
                 screen.render()

+ 1 - 1
pimonitor/ui/PMScreen.py

@@ -213,7 +213,7 @@ class PMScreen(object):
 
     def log_window(self, index):
         if self._window is not None:
-            PM.log(str(index + 1) + '/' + str(len(self._windows)) + ': ' + self._window.get_parameter().get_id(), 0)
+            PM.log(str(index + 1) + '/' + str(len(self._windows)) + ': ' + self._window.get_parameters()[0].get_id(), 0)
 
     def log(self, message, mid):
         ticks = pygame.time.get_ticks()

+ 12 - 9
pimonitor/ui/PMSingleWindow.py

@@ -13,11 +13,11 @@ class PMSingleWindow(object):
     classdocs
     """
 
-    def __init__(self, param):
+    def __init__(self, parameter):
         self._fg_color = pygame.Color(230, 166, 0)
         self._fg_color_dim = pygame.Color(200, 140, 0)
         self._bg_color = pygame.Color(0, 0, 0)
-        self._param = param
+        self._parameters = [parameter]
         self._packets = None
 
         self._x_offset = 0
@@ -28,6 +28,8 @@ class PMSingleWindow(object):
         if surface is None:
             return
 
+        parameter = self._parameters[0]
+
         self._surface = surface
         self._width = self._surface.get_width()
         self._height = self._surface.get_height()
@@ -42,18 +44,19 @@ class PMSingleWindow(object):
 
         self._font_aa = 1
 
-        self._title_lbl = self._title_font.render(self._param.get_name(), self._font_aa, self._fg_color)
+        self._title_lbl = self._title_font.render(parameter.get_name(), self._font_aa, self._fg_color)
 
-        self._unit_lbl = self._unit_font.render(self._param.get_default_unit(), self._font_aa, self._fg_color_dim)
+        self._unit_lbl = self._unit_font.render(parameter.get_default_unit(), self._font_aa, self._fg_color_dim)
         self._end_x_offset = self._width - self._unit_lbl.get_width() - 10
 
     def render(self):
         value = "??"
+        parameter = self._parameters[0]
         if self._packets is not None:
-            if self._param.get_cu_type() == PMCUParameter.CU_TYPE_CALCULATED_PARAMETER():
-                value = self._param.get_calculated_value(self._packets)
+            if parameter.get_cu_type() == PMCUParameter.CU_TYPE_CALCULATED_PARAMETER():
+                value = parameter.get_calculated_value(self._packets)
             else:
-                value = self._param.get_value(self._packets[0])
+                value = parameter.get_value(self._packets[0])
 
         try:
             self._sum_value += float(value)
@@ -81,5 +84,5 @@ class PMSingleWindow(object):
     def set_packets(self, packets):
         self._packets = packets
 
-    def get_parameter(self):
-        return self._param
+    def get_parameters(self):
+        return self._parameters

+ 58 - 27
pimonitor/ui/PMWindow.py

@@ -5,6 +5,7 @@ Created on 22-04-2013
 """
 
 import pygame
+from pimonitor.cu.PMCUParameter import PMCUParameter
 
 
 class PMWindow(object):
@@ -12,25 +13,28 @@ class PMWindow(object):
     classdocs
     """
 
-    def __init__(self):
-        self._fg_color = pygame.Color(255, 255, 255)
+    def __init__(self, parameters):
+        self._fg_color = pygame.Color(200, 140, 0)
         self._bg_color = pygame.Color(0, 0, 0)
         self._dict = dict()
 
-        # P60 Gear position
-        # P97 Transfer Duty Ratio
-        # P96 Lock Up Duty Ratio
-        # P122 Oil Temperature
-        # P104 ATF Temperature
-        self._pids = ["P60", "P97", "P96", "P122", "P104"]
+        self._parameters = parameters
+        self._packets = None
+
+        self._reading_no = 0
+        self._sum_fuel_consumption = 0.0
 
     def set_surface(self, surface):
+
+        if surface is None:
+            return
+
         self._surface = surface
         self._width = self._surface.get_width()
         self._height = self._surface.get_height()
 
         self._title_font_size = int(self._surface.get_height() / 16)
-        self._value_font_size = int(self._surface.get_height() / 3)
+        self._value_font_size = int(self._surface.get_height() / 3.4)
         self._title_font = pygame.font.SysFont(pygame.font.get_default_font(), self._title_font_size)
         self._value_font = pygame.font.SysFont(pygame.font.get_default_font(), self._value_font_size)
 
@@ -40,42 +44,69 @@ class PMWindow(object):
 
     def render(self):
 
+        if self._packets is None:
+            return
+
+
         first_row_height = self._title_font_size + self._value_font_size + 10
         second_row_height = first_row_height + self._title_font_size + self._value_font_size + 20
         pygame.draw.line(self._surface, self._fg_color, (0, first_row_height + 10),
                          (self._width, first_row_height + 10))
 
-        for param, value in self._dict.iteritems():
-            title = param.get_name()  # + " (" + param.get_default_unit() + ")"
+        parameter_number = 0
+        for parameter in self._parameters:
+
+            if parameter.get_cu_type() == PMCUParameter.CU_TYPE_CALCULATED_PARAMETER():
+                value = parameter.get_calculated_value(self._packets[len(self._parameters)-1:])
+                self._reading_no += 1
+                self._sum_fuel_consumption += float(value)
+            else:
+                value = parameter.get_value(self._packets[parameter_number])
+
 
-            first_row_ids = ["P60", "P122", "P104"]
-            if param.get_id() in first_row_ids:
-                index = first_row_ids.index(param.get_id())
-                x_offset = (self._width / len(first_row_ids)) * index + 10
+            title = parameter.get_name()  # + " (" + param.get_default_unit() + ")"
+
+            first_row_ids = ["E114", "P104", "P122"]
+            if parameter.get_id() in first_row_ids:
+                index = first_row_ids.index(parameter.get_id())
+                x_offset = (self._width / len(first_row_ids)) * index + 2
 
                 titlelbl = self._title_font.render(title, self._font_aa, self._fg_color)
                 valuelbl = self._value_font.render(value, self._font_aa, self._fg_color)
-                self._surface.blit(titlelbl, (x_offset + 10, 10))
-                self._surface.blit(valuelbl, (x_offset + 10, 10 + self._title_font_size))
+                self._surface.blit(titlelbl, (x_offset + 4, 10))
+                self._surface.blit(valuelbl, (x_offset + 4, 10 + self._title_font_size))
 
                 pygame.draw.line(self._surface, self._fg_color, (x_offset, 0), (x_offset, first_row_height))
 
-            second_row_ids = ["P97", "P96"]
+            second_row_ids = ["P203"]
 
-            if param.get_id() in second_row_ids:
-                index = second_row_ids.index(param.get_id())
-                x_offset = (self._width / len(second_row_ids)) * index + 10
+            if parameter.get_id() in second_row_ids:
+                index = second_row_ids.index(parameter.get_id())
+                x_offset = (self._width / len(second_row_ids)) * index + 2
 
                 titlelbl = self._title_font.render(title, self._font_aa, self._fg_color)
                 valuelbl = self._value_font.render(value, self._font_aa, self._fg_color)
-                self._surface.blit(titlelbl, (x_offset + 10, first_row_height + 20))
-                self._surface.blit(valuelbl, (x_offset + 10, first_row_height + 20 + self._title_font_size))
+                self._surface.blit(titlelbl, (x_offset + 4, first_row_height + 20))
+                self._surface.blit(valuelbl, (x_offset + 4, first_row_height + 20 + self._title_font_size))
 
                 pygame.draw.line(self._surface, self._fg_color, (x_offset, first_row_height + 20),
                                  (x_offset, second_row_height))
 
-    def get_pids(self):
-        return self._pids
+                index = 1
+                x_offset = (self._width / 2) * index + 2
+
+                titlelbl = self._title_font.render("Average Fuel Cons. l/100km", self._font_aa, self._fg_color)
+                valuelbl = self._value_font.render(str(self._sum_fuel_consumption/self._reading_no), self._font_aa, self._fg_color)
+                self._surface.blit(titlelbl, (x_offset + 4, first_row_height + 20))
+                self._surface.blit(valuelbl, (x_offset + 4, first_row_height + 20 + self._title_font_size))
+
+                pygame.draw.line(self._surface, self._fg_color, (x_offset, first_row_height + 20),
+                                 (x_offset, second_row_height))
+
+            parameter_number += 1
+
+    def get_parameters(self):
+        return self._parameters[:-1] + self._parameters[-1].get_dependencies()
 
-    def set_value(self, param, packet):
-        self._dict[param] = param.get_value(packet)
+    def set_packets(self, packets):
+        self._packets = packets