Browse Source

console end of line processing - ignore \r
progress gauge add
xmodem lineendings
delete residual code

mara 4 years ago
parent
commit
2d456924b6
5 changed files with 82 additions and 20 deletions
  1. 64 0
      agronode.fbp
  2. 9 18
      agronode.py
  3. 1 1
      agronode.pyproject.user
  4. 4 1
      cli.py
  5. 4 0
      gui.py

+ 64 - 0
agronode.fbp

@@ -3296,6 +3296,70 @@
                         </object>
                     </object>
                 </object>
+                <object class="sizeritem" expanded="1">
+                    <property name="border">5</property>
+                    <property name="flag">wxALL|wxEXPAND</property>
+                    <property name="proportion">0</property>
+                    <object class="wxGauge" expanded="1">
+                        <property name="BottomDockable">1</property>
+                        <property name="LeftDockable">1</property>
+                        <property name="RightDockable">1</property>
+                        <property name="TopDockable">1</property>
+                        <property name="aui_layer"></property>
+                        <property name="aui_name"></property>
+                        <property name="aui_position"></property>
+                        <property name="aui_row"></property>
+                        <property name="best_size"></property>
+                        <property name="bg"></property>
+                        <property name="caption"></property>
+                        <property name="caption_visible">1</property>
+                        <property name="center_pane">0</property>
+                        <property name="close_button">1</property>
+                        <property name="context_help"></property>
+                        <property name="context_menu">1</property>
+                        <property name="default_pane">0</property>
+                        <property name="dock">Dock</property>
+                        <property name="dock_fixed">0</property>
+                        <property name="docking">Left</property>
+                        <property name="enabled">1</property>
+                        <property name="fg"></property>
+                        <property name="floatable">1</property>
+                        <property name="font"></property>
+                        <property name="gripper">0</property>
+                        <property name="hidden">0</property>
+                        <property name="id">wxID_ANY</property>
+                        <property name="max_size"></property>
+                        <property name="maximize_button">0</property>
+                        <property name="maximum_size"></property>
+                        <property name="min_size"></property>
+                        <property name="minimize_button">0</property>
+                        <property name="minimum_size"></property>
+                        <property name="moveable">1</property>
+                        <property name="name">m_gaugeAct</property>
+                        <property name="pane_border">1</property>
+                        <property name="pane_position"></property>
+                        <property name="pane_size"></property>
+                        <property name="permission">protected</property>
+                        <property name="pin_button">1</property>
+                        <property name="pos"></property>
+                        <property name="range">100</property>
+                        <property name="resize">Resizable</property>
+                        <property name="show">1</property>
+                        <property name="size"></property>
+                        <property name="style">wxGA_HORIZONTAL|wxGA_SMOOTH</property>
+                        <property name="subclass">; ; forward_declare</property>
+                        <property name="toolbar_pane">0</property>
+                        <property name="tooltip"></property>
+                        <property name="validator_data_type"></property>
+                        <property name="validator_style">wxFILTER_NONE</property>
+                        <property name="validator_type">wxDefaultValidator</property>
+                        <property name="validator_variable"></property>
+                        <property name="value">0</property>
+                        <property name="window_extra_style"></property>
+                        <property name="window_name"></property>
+                        <property name="window_style"></property>
+                    </object>
+                </object>
             </object>
         </object>
         <object class="Dialog" expanded="1">

+ 9 - 18
agronode.py

@@ -30,6 +30,7 @@ class console( gui.consoleDialog ):
 
         self.cli = cli
 
+
     def onConsoleClose( self, event ):
         self.cli.command(b'stop\n', None)
         event.Skip()
@@ -83,7 +84,8 @@ class frame( gui.mainFrame ):
         
     def onSerialChar(self, c):
         try:
-            self.console.m_textConsole.AppendText(c)
+            if c != '\r':
+                self.console.m_textConsole.AppendText(c)
         except Exception as e:
             pass
 
@@ -129,17 +131,6 @@ class frame( gui.mainFrame ):
         cmd = 'date '+ now.strftime("%Y-%m-%d %H:%M:%S") + '\n'
         self.cli.command(bytearray(cmd, 'utf-8'), self.resDateTime)
 
-    def onSN( self, event ):
-        gdoc()
-        event.Skip()
-
-    def testClick( self, event ):
-        self.nodeSerial.write(b'test\n')
-
-    def onScript( self, event ):
-#        self.nodeSerial.write(b'list\n')
-        script = scriptPanel(self)
-        script.Show()
 #-------------------------------------------------------------------                
     def onPageChange( self, event ):
         event.Skip()
@@ -162,13 +153,13 @@ class frame( gui.mainFrame ):
 
 
     def resScriptWindow(self, lines):
+        self.m_gaugeAct.SetValue(0)
         self.scriptUpdate(lines)
     def onScriptWindow( self, event ):
         if len(self.m_textCtrlScript.GetValue()) == 0:
+            #self.onDownloadScript(None)
+            self.m_gaugeAct.Pulse()
             self.cli.command(b'list\n', self.resScriptWindow)
-        #file = open("script_test_.bas", "r+")
-        #self.lines = file.readlines()
-        #self.scriptUpdate(self.lines)
 
     def onSensorWindow( self, event ):
         with open('sensors.json') as json_file:
@@ -181,7 +172,6 @@ class frame( gui.mainFrame ):
             self.m_comboBoxSensor.SetSelection(0)
             self.onSensorChange(event)
         self.cli.command(b'power on\n', None)
-#        self.nodeSerial.write(b'power on\n')
         
     def onSDI12Window( self, event ):
         self.cli.command(b'power on\n', None)
@@ -207,7 +197,6 @@ class frame( gui.mainFrame ):
         ydata = []
         for line in lines:
             line  = line.replace("\r", "").replace("\n", "")
-            print(line)
             items = line.split(';')
 #            xdata.append(datetime.strptime(items[0], "%Y/%m/%d %H:%M:%S").timestamp())
 #            items[3] = items[3].replace('NAN', 'NaN')
@@ -249,9 +238,11 @@ class frame( gui.mainFrame ):
                 wx.LogError("Cannot save file '%s'." % pathname)
 
     def resDataWindowGet(self, lines):
+        self.m_gaugeAct.SetValue(0)
         self.dataUpdate(lines)
     def resDataWindow(self, lines):
         self.finfo = parse.parse('Ffs head {head}, tail {tail}, terminus {terminus}, unsent {unsent}', lines[2])
+        self.m_gaugeAct.Pulse()
         self.cli.command(b'fget ' + bytes(self.finfo['terminus'],'utf-8') + b' ' + bytes(str(int(self.finfo['head'])),'utf-8') + b'\n', self.resDataWindowGet)
 
     def onDataWindow( self, event ):
@@ -288,7 +279,7 @@ class frame( gui.mainFrame ):
             event.Skip()
             return
 
-        # Block everything else
+        event.Skip()
         return    
 
     def scriptUpdate(self, lines):

+ 1 - 1
agronode.pyproject.user

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 4.13.3, 2021-01-05T20:55:21. -->
+<!-- Written by QtCreator 4.13.3, 2021-01-09T22:02:34. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>

+ 4 - 1
cli.py

@@ -35,7 +35,10 @@ class CliThread(threading.Thread):
         return self.nodeSerial.write(data)  # note that this ignores the timeout
 
     def xmodem(self, lines):
-        self.xmodemlines = lines
+        self.xmodemlines = []
+        for line in lines:
+            line  = line.replace("\n", "").replace("\r", "")
+            self.xmodemlines.append(line + "\r\n")
         self.q.put(None)
         self.nodeSerial.write(b'xmodem\n')
 

+ 4 - 0
gui.py

@@ -299,6 +299,10 @@ class mainFrame ( wx.Frame ):
 
 		mainSizer.Add( self.m_notebook, 1, wx.EXPAND |wx.ALL, 5 )
 
+		self.m_gaugeAct = wx.Gauge( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.GA_HORIZONTAL|wx.GA_SMOOTH )
+		self.m_gaugeAct.SetValue( 0 )
+		mainSizer.Add( self.m_gaugeAct, 0, wx.ALL|wx.EXPAND, 5 )
+
 
 		self.SetSizer( mainSizer )
 		self.Layout()