lpcmanager

Added LPCBACnet.py to override Beremiz BACNet extention default IDs by Smarteh's official IDs
# -*- coding: utf-8 -*-
#This file is part of Beremiz, a Integrated Development Environment for
#programming IEC 61131-3 automates supporting plcopen standard and CanFestival.
#
#Copyright (C) 2015 : Yvan ROCH
#
#See COPYING file for copyrights details.
#
#This library is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public
#License as published by the Free Software Foundation; either
#version 2.1 of the License, or (at your option) any later version.
#
#This library is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
#General Public License for more details.
#
#You should have received a copy of the GNU General Public
#License along with this library; if not, write to the Free Software
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
import wx
from os.path import expanduser
class FirmwareUpdateDialog(wx.Dialog):
"""
This class is the dialog for firmware update parameters selection
"""
def _init_ctrls(self, parent):
wx.Dialog.__init__(self, parent=parent, size=wx.Size(600, 250), title=_('Firmware Update'))
# Widgets for the update image file selection
self.StaticTextFirmwareUpdateImageFile = wx.StaticText(label=_('Update image file:'), parent=self)
self.TextCtrltFirmwareUpdateImageFile = wx.TextCtrl(self)
self.TextCtrltFirmwareUpdateImageFile.SetMinSize((440, -1))
self.ButtonFirmwareUpdateImageFile = wx.Button(label=_('Add image file'), parent=self)
self.Bind(wx.EVT_BUTTON, self.OnButtonFirmwareUpdateImageFile, id=self.ButtonFirmwareUpdateImageFile.GetId())
# Widgets for the update type
self.StaticTextFirmwareUpdateType = wx.StaticText(label=_('Update type:'), parent=self)
self.RadioButtonFirmwareUpdateTypeLinuxKernel = wx.RadioButton(self, -1,
_('Linux kernel'), (10, 10), style=wx.RB_GROUP)
self.RadioButtonFirmwareUpdateTypeLinuxDTB = wx.RadioButton(self, -1,
_('Linux DTB'), (10, 30))
self.RadioButtonFirmwareUpdateTypeRootFs = wx.RadioButton(self, -1,
_('Root file system'), (10, 50))
# Widgets for the chunks size
self.StaticTextFirmwareUpdateChunksSize = wx.StaticText(label=_('Chunks size in KiB:'), parent=self)
self.SpinCtrlFirmwareUpdateChunksSize = wx.SpinCtrl(parent=self , size = (60, -1))
self.SpinCtrlFirmwareUpdateChunksSize.SetRange(1, 1024)
self.SpinCtrlFirmwareUpdateChunksSize.SetValue(256)
# Widgets for the reboot option
self.CheckBoxFirmwareUpdateReboot = wx.CheckBox(label=_('Reboot after update'), parent=self)
# Widgets for validation
self.ButtonSizer = self.CreateButtonSizer(wx.OK|wx.CANCEL)
# Sizers
self.MainSizer = wx.FlexGridSizer(cols=1, rows=2)
self.SizerFirmwareUpdateImageFile = wx.FlexGridSizer(cols=2, rows=2, hgap=10, vgap=10)
self.SizerFirmwareUpdateTypeChunks = wx.FlexGridSizer(cols=2, rows=4, hgap=10, vgap=10)
# Populate Main sizer
self.MainSizer.Add(self.SizerFirmwareUpdateImageFile, flag=wx.EXPAND)
self.MainSizer.Add(self.SizerFirmwareUpdateTypeChunks, flag=wx.EXPAND)
# Make the main sizer rows and columns growable
self.MainSizer.AddGrowableCol(0)
self.MainSizer.AddGrowableRow(0)
self.MainSizer.AddGrowableRow(1)
# Populate Update image file sizer
self.SizerFirmwareUpdateImageFile.Add(self.StaticTextFirmwareUpdateImageFile, border=20,
flag=wx.TOP|wx.LEFT)
self.SizerFirmwareUpdateImageFile.Add((0,0))
self.SizerFirmwareUpdateImageFile.Add(self.TextCtrltFirmwareUpdateImageFile, border=20,
flag=wx.LEFT)
self.SizerFirmwareUpdateImageFile.Add(self.ButtonFirmwareUpdateImageFile, border=20,
flag=wx.RIGHT|wx.ALIGN_RIGHT)
# Populate Sizer for update type and chunks size
self.SizerFirmwareUpdateTypeChunks.Add(self.StaticTextFirmwareUpdateType, border=20,
flag=wx.TOP|wx.LEFT)
self.SizerFirmwareUpdateTypeChunks.Add(self.StaticTextFirmwareUpdateChunksSize, border=20,
flag=wx.TOP|wx.LEFT)
self.SizerFirmwareUpdateTypeChunks.Add(self.RadioButtonFirmwareUpdateTypeLinuxKernel, border=20,
flag=wx.LEFT)
self.SizerFirmwareUpdateTypeChunks.Add(self.SpinCtrlFirmwareUpdateChunksSize, border=20,
flag=wx.LEFT)
self.SizerFirmwareUpdateTypeChunks.Add(self.RadioButtonFirmwareUpdateTypeLinuxDTB, border=20,
flag=wx.LEFT)
self.SizerFirmwareUpdateTypeChunks.Add(self.CheckBoxFirmwareUpdateReboot,border=20,
flag=wx.LEFT)
self.SizerFirmwareUpdateTypeChunks.Add(self.RadioButtonFirmwareUpdateTypeRootFs, border=20,
flag=wx.LEFT)
self.SizerFirmwareUpdateTypeChunks.Add(self.ButtonSizer, border=20, flag=wx.ALIGN_RIGHT|wx.RIGHT)
# Make the rows and columns growable
self.SizerFirmwareUpdateImageFile.AddGrowableCol(0)
self.SizerFirmwareUpdateImageFile.AddGrowableCol(1)
self.SizerFirmwareUpdateImageFile.AddGrowableRow(0)
self.SizerFirmwareUpdateImageFile.AddGrowableRow(1)
self.SizerFirmwareUpdateTypeChunks.AddGrowableCol(0)
self.SizerFirmwareUpdateTypeChunks.AddGrowableCol(1)
# Set the main sizer
self.SetSizer(self.MainSizer)
def __init__(self, parent):
self._init_ctrls(parent)
def OnButtonFirmwareUpdateImageFile(self, event):
dlg = wx.FileDialog(self, _("Choose a firmware image file"), expanduser("~"), "", "*", wx.OPEN)
if dlg.ShowModal() == wx.ID_OK:
path = dlg.GetPath()
self.TextCtrltFirmwareUpdateImageFile.SetValue(path)
dlg.Destroy()
def GetFirmwareImageFile(self):
return self.TextCtrltFirmwareUpdateImageFile.GetValue()
def GetFirmwareUpdateType(self):
if self.RadioButtonFirmwareUpdateTypeLinuxKernel.GetValue() == True:
return 1
elif self.RadioButtonFirmwareUpdateTypeLinuxDTB.GetValue() == True:
return 2
elif self.RadioButtonFirmwareUpdateTypeRootFs.GetValue() == True:
return 3
else:
return 0
def GetChunksSize(self):
return self.SpinCtrlFirmwareUpdateChunksSize.GetValue()*1024
def GetReboot(self):
return self.CheckBoxFirmwareUpdateReboot.GetValue()