You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
4.7 KiB
124 lines
4.7 KiB
2 years ago
|
#!/usr/bin/env python
|
||
|
# -*- encoding: utf-8 -*-
|
||
|
import wx
|
||
|
# from configobj import ConfigObj
|
||
|
from myconfig import MyConfig,RamsesSURFACE
|
||
|
from myconfig import YAML_FILE_NAME
|
||
|
|
||
|
class UISensor(wx.Dialog):
|
||
|
"""
|
||
|
@description : Sensor 配置
|
||
|
"""
|
||
|
def __init__(self, parent, id, did):
|
||
|
# 参数调入后初始化
|
||
|
self.did = did
|
||
|
super(UISensor, self).__init__( parent, id=id )
|
||
|
self.config = MyConfig()
|
||
|
self.InitUI()
|
||
|
self.SetSize((400, 400))
|
||
|
self.SetTitle(" 设置页面 串口 采集间隔 ")
|
||
|
|
||
|
def InitUI(self):
|
||
|
|
||
|
self.config_sensor = self.config.read_yaml()
|
||
|
# self.sensor = self.config_sensor.get(self.did)
|
||
|
# print(self.config_sensor)
|
||
|
# print(self.sensor)
|
||
|
|
||
|
self.panel = wx.Panel(self)
|
||
|
self.vbox = wx.BoxSizer(wx.VERTICAL)
|
||
|
|
||
|
self.sb = wx.StaticBox(self.panel, label='设置页面')
|
||
|
self.sbs = wx.StaticBoxSizer(self.sb, orient=wx.VERTICAL)
|
||
|
|
||
|
self.hbox1 = wx.BoxSizer(wx.HORIZONTAL)
|
||
|
self.staticText1 = wx.StaticText(self.panel, label='Lsky: ',size=(60, -1), style=wx.ALIGN_CENTRE_VERTICAL )
|
||
|
self.textCtrl1 = wx.TextCtrl(self.panel, value="",size=(250,25) )
|
||
|
tmp = self.getSnByDidAndFunc("Lsky",self.did)
|
||
|
if tmp is not None:
|
||
|
self.textCtrl1.SetValue(tmp)
|
||
|
self.hbox1.Add(self.staticText1, flag=wx.TOP|wx.LEFT, border=5)
|
||
|
self.hbox1.Add(self.textCtrl1, flag=wx.TOP|wx.LEFT, border=5)
|
||
|
self.sbs.Add(self.hbox1, flag=wx.TOP|wx.LEFT, border= 5)
|
||
|
|
||
|
self.hbox2 = wx.BoxSizer(wx.HORIZONTAL)
|
||
|
self.staticText2 = wx.StaticText(self.panel, label='Esky: ' ,size=(60, -1))
|
||
|
# self.staticText2_1 = wx.StaticText(self.panel, label='分钟 ' ,size=(60, -1))
|
||
|
self.textCtrl2 = wx.TextCtrl(self.panel, value="",size=(250,25))
|
||
|
tmp = self.getSnByDidAndFunc("Esky",self.did)
|
||
|
if tmp is not None:
|
||
|
self.textCtrl2.SetValue(tmp)
|
||
|
self.hbox2.Add(self.staticText2, flag=wx.TOP|wx.LEFT, border=5)
|
||
|
self.hbox2.Add(self.textCtrl2,flag=wx.TOP|wx.LEFT, border=5)
|
||
|
# self.hbox2.Add(self.staticText2_1, flag=wx.TOP|wx.LEFT, border=5)
|
||
|
self.sbs.Add(self.hbox2, flag=wx.TOP|wx.LEFT, border=5)
|
||
|
|
||
|
self.hbox3 = wx.BoxSizer(wx.HORIZONTAL)
|
||
|
self.staticText3 = wx.StaticText(self.panel, label='Lwater: ' ,size=(60, -1))
|
||
|
# self.staticText3_1 = wx.StaticText(self.panel, label='分钟 ' ,size=(60, -1))
|
||
|
self.textCtrl3 = wx.TextCtrl(self.panel, value="",size=(250,25))
|
||
|
tmp = self.getSnByDidAndFunc("Lwater",self.did)
|
||
|
if tmp is not None:
|
||
|
self.textCtrl3.SetValue(tmp)
|
||
|
self.hbox3.Add(self.staticText3, flag=wx.TOP|wx.LEFT, border=5)
|
||
|
self.hbox3.Add(self.textCtrl3,flag=wx.TOP|wx.LEFT, border=5)
|
||
|
# self.hbox3.Add(self.staticText3_1, flag=wx.TOP|wx.LEFT, border=5)
|
||
|
self.sbs.Add(self.hbox3, flag=wx.TOP|wx.LEFT, border=5)
|
||
|
|
||
|
self.panel.SetSizer(self.sbs)
|
||
|
|
||
|
self.hbox_0 = wx.BoxSizer(wx.HORIZONTAL)
|
||
|
self.okButton = wx.Button(self, label=u'保存配置')
|
||
|
self.closeButton = wx.Button(self, label='Close')
|
||
|
self.hbox_0.Add(self.okButton)
|
||
|
self.hbox_0.Add(self.closeButton, flag = wx.LEFT, border=5)
|
||
|
|
||
|
# 添加 vbox 到panel
|
||
|
self.vbox.Add(self.panel, proportion=1,
|
||
|
flag=wx.ALL | wx.EXPAND, border=5)
|
||
|
|
||
|
self.vbox.Add(self.hbox_0, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=10)
|
||
|
|
||
|
self.SetSizer(self.vbox)
|
||
|
|
||
|
self.okButton.Bind(wx.EVT_BUTTON, self.OnSave)
|
||
|
self.closeButton.Bind(wx.EVT_BUTTON, self.OnClose)
|
||
|
|
||
|
def getSnByDidAndFunc(self,func,did):
|
||
|
temp:dict = self.config_sensor.get(did)
|
||
|
for v in temp.values():
|
||
|
if v["FUNC"] == func:
|
||
|
return v["SN"]
|
||
|
return None
|
||
|
pass
|
||
|
|
||
|
def setSnByDidAndFunc(self,func,did,val):
|
||
|
temp:dict = self.config_sensor.get(did)
|
||
|
for k,v in temp.items():
|
||
|
if v["FUNC"] == func:
|
||
|
temp[k]['SN'] =val
|
||
|
self.config_sensor.update({did:temp})
|
||
|
|
||
|
pass
|
||
|
|
||
|
def saveData(self, e):
|
||
|
pass
|
||
|
|
||
|
def OnClose(self, e):
|
||
|
|
||
|
self.Destroy()
|
||
|
|
||
|
def OnSave(self, e):
|
||
|
success = True
|
||
|
# 赋值字典,写入文件
|
||
|
self.setSnByDidAndFunc('Lsky',self.did,self.textCtrl1.GetValue( ))
|
||
|
self.setSnByDidAndFunc('Esky',self.did,self.textCtrl2.GetValue( ))
|
||
|
self.setSnByDidAndFunc('Lwater',self.did,self.textCtrl3.GetValue( ))
|
||
|
print(self.textCtrl3.GetValue( ))
|
||
|
|
||
|
print(self.config_sensor)
|
||
|
self.config.write_yaml(self.config_sensor)
|
||
|
del self.config
|
||
|
|
||
|
if success:
|
||
|
self.EndModal(wx.ID_OK)
|