Fix time zone, add remote reset and operation mode
This commit is contained in:
parent
64580f8f8a
commit
164a768d13
4 changed files with 130 additions and 63 deletions
|
|
@ -31,12 +31,15 @@ class Controller:
|
||||||
self.view = view
|
self.view = view
|
||||||
self.timer = wx.Timer()
|
self.timer = wx.Timer()
|
||||||
self.timer.Bind(wx.EVT_TIMER, self.OnTimer)
|
self.timer.Bind(wx.EVT_TIMER, self.OnTimer)
|
||||||
|
self.mode = False
|
||||||
|
|
||||||
pub.subscribe(self.getFaultInfo, 'fault_selected')
|
pub.subscribe(self.getFaultInfo, 'fault_selected')
|
||||||
pub.subscribe(self.startTimer, 'monitoring_started')
|
pub.subscribe(self.startTimer, 'monitoring_started')
|
||||||
pub.subscribe(self.stopTimer, 'monitoring_stopped')
|
pub.subscribe(self.stopTimer, 'monitoring_stopped')
|
||||||
pub.subscribe(self.applyNetworkConfigs, 'apply_network_configs')
|
pub.subscribe(self.applyNetworkConfigs, 'apply_network_configs')
|
||||||
pub.subscribe(self.resetNetworkConfigs, 'reset_network_configs')
|
pub.subscribe(self.resetNetworkConfigs, 'reset_network_configs')
|
||||||
|
pub.subscribe(self.resetPcsRemote, 'reset_pcs_remote')
|
||||||
|
pub.subscribe(self.checkSysOpMode, 'check_system_op_mode')
|
||||||
|
|
||||||
def startTimer(self):
|
def startTimer(self):
|
||||||
self.timer.Start(2000)
|
self.timer.Start(2000)
|
||||||
|
|
@ -54,6 +57,16 @@ class Controller:
|
||||||
self.sc.checkClose()
|
self.sc.checkClose()
|
||||||
self.sc = None
|
self.sc = None
|
||||||
|
|
||||||
|
def resetPcsRemote(self):
|
||||||
|
if self.sc:
|
||||||
|
self.sc.resetPcs()
|
||||||
|
|
||||||
|
def checkSysOpMode(self):
|
||||||
|
if self.sc:
|
||||||
|
self.mode = self.sc.checkOpMode()
|
||||||
|
a = "Auto" if self.mode else "Manual"
|
||||||
|
self.view.text_op_mode.SetValue(a)
|
||||||
|
|
||||||
def getFaultInfo(self, pos):
|
def getFaultInfo(self, pos):
|
||||||
y, x = pos
|
y, x = pos
|
||||||
fid = x + y*8
|
fid = x + y*8
|
||||||
|
|
@ -125,7 +138,7 @@ class MyFrame(FaultFrame):
|
||||||
|
|
||||||
self.button_1.Enable()
|
self.button_1.Enable()
|
||||||
|
|
||||||
def OnReset(self, event):
|
def OnReset(self, event=None):
|
||||||
|
|
||||||
if not self.button_1.Enabled:
|
if not self.button_1.Enabled:
|
||||||
return
|
return
|
||||||
|
|
@ -141,6 +154,12 @@ class MyFrame(FaultFrame):
|
||||||
self.input_ip.Enable()
|
self.input_ip.Enable()
|
||||||
self.input_refresh.Enable()
|
self.input_refresh.Enable()
|
||||||
|
|
||||||
|
def OnButtonRemoteReset(self, event):
|
||||||
|
pub.sendMessage("reset_pcs_remote")
|
||||||
|
self.OnReset()
|
||||||
|
|
||||||
|
def OnCheckSysOpMode(self, event):
|
||||||
|
pub.sendMessage("check_system_op_mode")
|
||||||
|
|
||||||
# end of class MyFrame
|
# end of class MyFrame
|
||||||
|
|
||||||
|
|
@ -157,4 +176,6 @@ class MyApp(wx.App):
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app = MyApp(0)
|
app = MyApp(0)
|
||||||
app.MainLoop()
|
app.MainLoop()
|
||||||
app.c.sc.checkClose()
|
|
||||||
|
if app.c.sc:
|
||||||
|
app.c.sc.checkClose()
|
||||||
|
|
|
||||||
24
FaultView.py
24
FaultView.py
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: UTF-8 -*-
|
# -*- coding: UTF-8 -*-
|
||||||
#
|
#
|
||||||
# generated by wxGlade 0.9.5 on Mon Feb 10 19:42:48 2020
|
# generated by wxGlade 0.9.5 on Thu Feb 13 18:40:11 2020
|
||||||
#
|
#
|
||||||
|
|
||||||
import wx
|
import wx
|
||||||
|
|
@ -24,8 +24,12 @@ class FaultFrame(wx.Frame):
|
||||||
self.input_port = wx.TextCtrl(self, wx.ID_ANY, _("502"))
|
self.input_port = wx.TextCtrl(self, wx.ID_ANY, _("502"))
|
||||||
self.input_uid = wx.TextCtrl(self, wx.ID_ANY, _("240"))
|
self.input_uid = wx.TextCtrl(self, wx.ID_ANY, _("240"))
|
||||||
self.input_refresh = wx.TextCtrl(self, wx.ID_ANY, _("2000"))
|
self.input_refresh = wx.TextCtrl(self, wx.ID_ANY, _("2000"))
|
||||||
self.reset_button = wx.Button(self, wx.ID_ANY, _("Reset"))
|
self.reset_button = wx.Button(self, wx.ID_ANY, _("Reset Connection"))
|
||||||
self.apply_button = wx.Button(self, wx.ID_ANY, _("Apply"))
|
self.apply_button = wx.Button(self, wx.ID_ANY, _("Apply"))
|
||||||
|
self.rreset_button = wx.Button(self, wx.ID_ANY, _("Remote PCS Reset"))
|
||||||
|
self.some_button = wx.Button(self, wx.ID_STOP, "")
|
||||||
|
self.op_mode_button = wx.Button(self, wx.ID_ANY, _("System OP Mode"))
|
||||||
|
self.text_op_mode = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY)
|
||||||
self.fault_grid = wx.grid.Grid(self, wx.ID_ANY, size=(1, 1))
|
self.fault_grid = wx.grid.Grid(self, wx.ID_ANY, size=(1, 1))
|
||||||
self.button_1 = wx.ToggleButton(self, wx.ID_ANY, _("Start"))
|
self.button_1 = wx.ToggleButton(self, wx.ID_ANY, _("Start"))
|
||||||
self.text_fault_doc = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_MULTILINE | wx.TE_READONLY)
|
self.text_fault_doc = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_MULTILINE | wx.TE_READONLY)
|
||||||
|
|
@ -36,6 +40,8 @@ class FaultFrame(wx.Frame):
|
||||||
|
|
||||||
self.Bind(wx.EVT_BUTTON, self.OnReset, self.reset_button)
|
self.Bind(wx.EVT_BUTTON, self.OnReset, self.reset_button)
|
||||||
self.Bind(wx.EVT_BUTTON, self.OnApply, self.apply_button)
|
self.Bind(wx.EVT_BUTTON, self.OnApply, self.apply_button)
|
||||||
|
self.Bind(wx.EVT_BUTTON, self.OnButtonRemoteReset, self.rreset_button)
|
||||||
|
self.Bind(wx.EVT_BUTTON, self.OnCheckSysOpMode, self.op_mode_button)
|
||||||
self.Bind(wx.grid.EVT_GRID_CMD_CELL_LEFT_CLICK, self.OnFaultSelect, self.fault_grid)
|
self.Bind(wx.grid.EVT_GRID_CMD_CELL_LEFT_CLICK, self.OnFaultSelect, self.fault_grid)
|
||||||
self.Bind(wx.EVT_TOGGLEBUTTON, self.ToggleMonitoring, self.button_1)
|
self.Bind(wx.EVT_TOGGLEBUTTON, self.ToggleMonitoring, self.button_1)
|
||||||
# end wxGlade
|
# end wxGlade
|
||||||
|
|
@ -77,7 +83,7 @@ class FaultFrame(wx.Frame):
|
||||||
sizer_1 = wx.BoxSizer(wx.HORIZONTAL)
|
sizer_1 = wx.BoxSizer(wx.HORIZONTAL)
|
||||||
sizer_3 = wx.BoxSizer(wx.VERTICAL)
|
sizer_3 = wx.BoxSizer(wx.VERTICAL)
|
||||||
sizer_2 = wx.BoxSizer(wx.HORIZONTAL)
|
sizer_2 = wx.BoxSizer(wx.HORIZONTAL)
|
||||||
sizer_4 = wx.GridSizer(5, 2, 0, 0)
|
sizer_4 = wx.GridSizer(7, 2, 0, 0)
|
||||||
label_1 = wx.StaticText(self, wx.ID_ANY, _("IP Address"))
|
label_1 = wx.StaticText(self, wx.ID_ANY, _("IP Address"))
|
||||||
sizer_4.Add(label_1, 0, 0, 0)
|
sizer_4.Add(label_1, 0, 0, 0)
|
||||||
sizer_4.Add(self.input_ip, 0, 0, 0)
|
sizer_4.Add(self.input_ip, 0, 0, 0)
|
||||||
|
|
@ -92,6 +98,10 @@ class FaultFrame(wx.Frame):
|
||||||
sizer_4.Add(self.input_refresh, 0, 0, 0)
|
sizer_4.Add(self.input_refresh, 0, 0, 0)
|
||||||
sizer_4.Add(self.reset_button, 0, 0, 0)
|
sizer_4.Add(self.reset_button, 0, 0, 0)
|
||||||
sizer_4.Add(self.apply_button, 0, 0, 0)
|
sizer_4.Add(self.apply_button, 0, 0, 0)
|
||||||
|
sizer_4.Add(self.rreset_button, 0, 0, 0)
|
||||||
|
sizer_4.Add(self.some_button, 0, 0, 0)
|
||||||
|
sizer_4.Add(self.op_mode_button, 0, 0, 0)
|
||||||
|
sizer_4.Add(self.text_op_mode, 0, 0, 0)
|
||||||
sizer_1.Add(sizer_4, 1, wx.EXPAND, 0)
|
sizer_1.Add(sizer_4, 1, wx.EXPAND, 0)
|
||||||
sizer_2.Add(self.fault_grid, 0, wx.ALIGN_CENTER, 0)
|
sizer_2.Add(self.fault_grid, 0, wx.ALIGN_CENTER, 0)
|
||||||
sizer_2.Add(self.button_1, 0, wx.ALIGN_CENTER, 0)
|
sizer_2.Add(self.button_1, 0, wx.ALIGN_CENTER, 0)
|
||||||
|
|
@ -111,6 +121,14 @@ class FaultFrame(wx.Frame):
|
||||||
print("Event handler 'OnApply' not implemented!")
|
print("Event handler 'OnApply' not implemented!")
|
||||||
event.Skip()
|
event.Skip()
|
||||||
|
|
||||||
|
def OnButtonRemoteReset(self, event): # wxGlade: FaultFrame.<event_handler>
|
||||||
|
print("Event handler 'OnButtonRemoteReset' not implemented!")
|
||||||
|
event.Skip()
|
||||||
|
|
||||||
|
def OnCheckSysOpMode(self, event): # wxGlade: FaultFrame.<event_handler>
|
||||||
|
print("Event handler 'OnCheckSysOpMode' not implemented!")
|
||||||
|
event.Skip()
|
||||||
|
|
||||||
def OnFaultSelect(self, event): # wxGlade: FaultFrame.<event_handler>
|
def OnFaultSelect(self, event): # wxGlade: FaultFrame.<event_handler>
|
||||||
print("Event handler 'OnFaultSelect' not implemented!")
|
print("Event handler 'OnFaultSelect' not implemented!")
|
||||||
event.Skip()
|
event.Skip()
|
||||||
|
|
|
||||||
132
faultView.wxg
132
faultView.wxg
|
|
@ -1,9 +1,9 @@
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!-- generated by wxGlade 0.9.5 on Mon Feb 10 19:42:46 2020 -->
|
<!-- generated by wxGlade 0.9.5 on Thu Feb 13 19:39:40 2020 -->
|
||||||
|
|
||||||
<application encoding="UTF-8" for_version="3.0" header_extension=".h" indent_amount="4" indent_symbol="space" is_template="0" language="python" mark_blocks="0" option="0" overwrite="1" path="FaultView.py" source_extension=".cpp" top_window="frame" use_gettext="1" use_new_namespace="1">
|
<application encoding="UTF-8" for_version="3.0" header_extension=".h" indent_amount="4" indent_symbol="space" is_template="0" language="python" mark_blocks="0" option="0" overwrite="1" path="FaultView.py" source_extension=".cpp" top_window="frame" use_gettext="1" use_new_namespace="1">
|
||||||
<object class="FaultFrame" name="frame" base="EditFrame">
|
<object class="FaultFrame" name="frame" base="EditFrame">
|
||||||
<size>632, 556</size>
|
<size>558, 556</size>
|
||||||
<title>frame</title>
|
<title>frame</title>
|
||||||
<style>wxDEFAULT_FRAME_STYLE</style>
|
<style>wxDEFAULT_FRAME_STYLE</style>
|
||||||
<object class="wxBoxSizer" name="sizer_1" base="EditBoxSizer">
|
<object class="wxBoxSizer" name="sizer_1" base="EditBoxSizer">
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
<border>0</border>
|
<border>0</border>
|
||||||
<flag>wxEXPAND</flag>
|
<flag>wxEXPAND</flag>
|
||||||
<object class="wxGridSizer" name="sizer_4" base="EditGridSizer">
|
<object class="wxGridSizer" name="sizer_4" base="EditGridSizer">
|
||||||
<rows>5</rows>
|
<rows>7</rows>
|
||||||
<cols>2</cols>
|
<cols>2</cols>
|
||||||
<vgap>0</vgap>
|
<vgap>0</vgap>
|
||||||
<hgap>0</hgap>
|
<hgap>0</hgap>
|
||||||
|
|
@ -80,7 +80,7 @@
|
||||||
<events>
|
<events>
|
||||||
<handler event="EVT_BUTTON">OnReset</handler>
|
<handler event="EVT_BUTTON">OnReset</handler>
|
||||||
</events>
|
</events>
|
||||||
<label>Reset</label>
|
<label>Reset Connection</label>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem">
|
<object class="sizeritem">
|
||||||
|
|
@ -93,6 +93,44 @@
|
||||||
<label>Apply</label>
|
<label>Apply</label>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="sizeritem">
|
||||||
|
<option>0</option>
|
||||||
|
<border>0</border>
|
||||||
|
<object class="wxButton" name="rreset_button" base="EditButton">
|
||||||
|
<events>
|
||||||
|
<handler event="EVT_BUTTON">OnButtonRemoteReset</handler>
|
||||||
|
</events>
|
||||||
|
<label>Remote PCS Reset</label>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem">
|
||||||
|
<option>0</option>
|
||||||
|
<border>0</border>
|
||||||
|
<object class="wxToggleButton" name="button_1" base="EditToggleButton">
|
||||||
|
<events>
|
||||||
|
<handler event="EVT_TOGGLEBUTTON">ToggleMonitoring</handler>
|
||||||
|
</events>
|
||||||
|
<disabled>1</disabled>
|
||||||
|
<label>Start</label>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem">
|
||||||
|
<option>0</option>
|
||||||
|
<border>0</border>
|
||||||
|
<object class="wxButton" name="op_mode_button" base="EditButton">
|
||||||
|
<events>
|
||||||
|
<handler event="EVT_BUTTON">OnCheckSysOpMode</handler>
|
||||||
|
</events>
|
||||||
|
<label>System OP Mode</label>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem">
|
||||||
|
<option>0</option>
|
||||||
|
<border>0</border>
|
||||||
|
<object class="wxTextCtrl" name="text_op_mode" base="EditTextCtrl">
|
||||||
|
<style>wxTE_READONLY</style>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem">
|
<object class="sizeritem">
|
||||||
|
|
@ -102,61 +140,41 @@
|
||||||
<object class="wxBoxSizer" name="sizer_3" base="EditBoxSizer">
|
<object class="wxBoxSizer" name="sizer_3" base="EditBoxSizer">
|
||||||
<orient>wxVERTICAL</orient>
|
<orient>wxVERTICAL</orient>
|
||||||
<object class="sizeritem">
|
<object class="sizeritem">
|
||||||
<option>1</option>
|
<option>0</option>
|
||||||
<border>0</border>
|
<border>0</border>
|
||||||
<flag>wxALIGN_CENTER</flag>
|
<flag>wxALIGN_CENTER</flag>
|
||||||
<object class="wxBoxSizer" name="sizer_2" base="EditBoxSizer">
|
<object class="wxGrid" name="fault_grid" base="EditGrid">
|
||||||
<orient>wxHORIZONTAL</orient>
|
<events>
|
||||||
<object class="sizeritem">
|
<handler event="EVT_GRID_CMD_CELL_LEFT_CLICK">OnFaultSelect</handler>
|
||||||
<option>0</option>
|
</events>
|
||||||
<border>0</border>
|
<size>270, 270</size>
|
||||||
<flag>wxALIGN_CENTER</flag>
|
<create_grid>1</create_grid>
|
||||||
<object class="wxGrid" name="fault_grid" base="EditGrid">
|
<columns>
|
||||||
<events>
|
<column size="30">A</column>
|
||||||
<handler event="EVT_GRID_CMD_CELL_LEFT_CLICK">OnFaultSelect</handler>
|
<column size="30">B</column>
|
||||||
</events>
|
<column size="30">C</column>
|
||||||
<size>270, 270</size>
|
<column size="30">D</column>
|
||||||
<create_grid>1</create_grid>
|
<column size="30">E</column>
|
||||||
<columns>
|
<column size="30">F</column>
|
||||||
<column size="30">A</column>
|
<column size="30">G</column>
|
||||||
<column size="30">B</column>
|
<column size="30">H</column>
|
||||||
<column size="30">C</column>
|
</columns>
|
||||||
<column size="30">D</column>
|
<rows>
|
||||||
<column size="30">E</column>
|
<row size="30">0</row>
|
||||||
<column size="30">F</column>
|
<row size="30">1</row>
|
||||||
<column size="30">G</column>
|
<row size="30">2</row>
|
||||||
<column size="30">H</column>
|
<row size="30">3</row>
|
||||||
</columns>
|
<row size="30">4</row>
|
||||||
<rows>
|
<row size="30">5</row>
|
||||||
<row size="30">0</row>
|
<row size="30">6</row>
|
||||||
<row size="30">1</row>
|
<row size="30">7</row>
|
||||||
<row size="30">2</row>
|
</rows>
|
||||||
<row size="30">3</row>
|
<enable_editing>0</enable_editing>
|
||||||
<row size="30">4</row>
|
<enable_grid_lines>1</enable_grid_lines>
|
||||||
<row size="30">5</row>
|
<enable_col_resize>0</enable_col_resize>
|
||||||
<row size="30">6</row>
|
<enable_row_resize>0</enable_row_resize>
|
||||||
<row size="30">7</row>
|
<enable_grid_resize>0</enable_grid_resize>
|
||||||
</rows>
|
<selection_mode>wxGrid.wxGridSelectCells</selection_mode>
|
||||||
<enable_editing>0</enable_editing>
|
|
||||||
<enable_grid_lines>1</enable_grid_lines>
|
|
||||||
<enable_col_resize>0</enable_col_resize>
|
|
||||||
<enable_row_resize>0</enable_row_resize>
|
|
||||||
<enable_grid_resize>0</enable_grid_resize>
|
|
||||||
<selection_mode>wxGrid.wxGridSelectCells</selection_mode>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem">
|
|
||||||
<option>0</option>
|
|
||||||
<border>0</border>
|
|
||||||
<flag>wxALIGN_CENTER</flag>
|
|
||||||
<object class="wxToggleButton" name="button_1" base="EditToggleButton">
|
|
||||||
<events>
|
|
||||||
<handler event="EVT_TOGGLEBUTTON">ToggleMonitoring</handler>
|
|
||||||
</events>
|
|
||||||
<disabled>1</disabled>
|
|
||||||
<label>Start</label>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem">
|
<object class="sizeritem">
|
||||||
|
|
|
||||||
12
stabiliti.py
12
stabiliti.py
|
|
@ -36,11 +36,21 @@ class StabilitiController(object):
|
||||||
return configDict
|
return configDict
|
||||||
|
|
||||||
def reg2utc(self, timel, timeu):
|
def reg2utc(self, timel, timeu):
|
||||||
return dt.utcfromtimestamp((timeu << 16) + timel)
|
return dt.fromtimestamp((timeu << 16) + timel)
|
||||||
|
|
||||||
def reg2bits(self, reg):
|
def reg2bits(self, reg):
|
||||||
return bin(reg)[2:].zfill(16)
|
return bin(reg)[2:].zfill(16)
|
||||||
|
|
||||||
|
def resetPcs(self):
|
||||||
|
self.checkConnect()
|
||||||
|
self.client.write_single_register(266, 0x8000)
|
||||||
|
|
||||||
|
def checkOpMode(self):
|
||||||
|
self.checkConnect()
|
||||||
|
val = self.client.read_holdingregisters(267, 1)
|
||||||
|
print (val)
|
||||||
|
return val[0] == 1
|
||||||
|
|
||||||
def readFaultDetail(self, findex):
|
def readFaultDetail(self, findex):
|
||||||
if not (0<=findex<=63):
|
if not (0<=findex<=63):
|
||||||
return None
|
return None
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue