--- a/etherlab/CommonEtherCATFunction.py Sat Sep 29 17:52:33 2018 +0300
+++ b/etherlab/CommonEtherCATFunction.py Sat Sep 29 18:59:41 2018 +0300
@@ -195,7 +195,7 @@
# exectute "ethercat master" command
- error, return_val = self.Controler.RemoteExec(MASTER_STATE, return_val=None)
+ _error, return_val = self.Controler.RemoteExec(MASTER_STATE, return_val=None) for each_line in return_val.splitlines():
@@ -220,7 +220,9 @@
Command example : "ethercat states -p 0 PREOP" (target slave position and target state are given.)
@param command : target slave state
- error, return_val = self.Controler.RemoteExec(SLAVE_STATE % (self.Controler.GetSlavePos(), command), return_val=None)
+ _error, _return_val = self.Controler.RemoteExec( + SLAVE_STATE % (self.Controler.GetSlavePos(), command), def GetSlaveStateFromSlave(self):
@@ -228,7 +230,7 @@
(self.SlaveState) for "Slave State"
return_val example : 0 0:0 PREOP + EL9800 (V4.30) (PIC24, SPI, ET1100)
- error, return_val = self.Controler.RemoteExec(GET_SLAVE, return_val=None)
+ _error, return_val = self.Controler.RemoteExec(GET_SLAVE, return_val=None) self.SlaveState = return_val
@@ -241,7 +243,7 @@
Command example : "ethercat sdos -p 0"
@return return_val : execution results of "ethercat sdos" command (need to be parsed later)
- error, return_val = self.Controler.RemoteExec(SLAVE_SDO % (self.Controler.GetSlavePos()), return_val=None)
+ _error, return_val = self.Controler.RemoteExec(SLAVE_SDO % (self.Controler.GetSlavePos()), return_val=None) def SDODownload(self, data_type, idx, sub_idx, value):
@@ -253,7 +255,9 @@
@param sub_idx : subindex of the SDO entry
@param value : value of SDO entry
- error, return_val = self.Controler.RemoteExec(SDO_DOWNLOAD % (data_type, self.Controler.GetSlavePos(), idx, sub_idx, value), return_val=None)
+ _error, _return_val = self.Controler.RemoteExec( + SDO_DOWNLOAD % (data_type, self.Controler.GetSlavePos(), idx, sub_idx, value), def BackupSDODataSet(self):
@@ -271,7 +275,7 @@
Clear the specified SDO entry information.
self.SaveSDOData.append([])
# -------------------------------------------------------------------------------
@@ -285,7 +289,7 @@
slave = self.Controler.CTNParent.GetSlave(self.Controler.GetSlavePos())
type_infos = slave.getType()
- device, alignment = self.Controler.CTNParent.GetModuleInfos(type_infos)
+ device, _alignment = self.Controler.CTNParent.GetModuleInfos(type_infos) # Initialize PDO data set
@@ -301,7 +305,7 @@
@param device : Slave information extracted from ESI XML file
- for pdo, pdo_info in ([(pdo, "Inputs") for pdo in device.getTxPdo()]):
+ for pdo, _pdo_info in ([(pdo, "Inputs") for pdo in device.getTxPdo()]): # Save pdo_index, entry, and name of each entry
pdo_index = ExtractHexDecValue(pdo.getIndex().getcontent())
@@ -331,7 +335,7 @@
self.TxPDOCategory.append(categorys)
- for pdo, pdo_info in ([(rxpdo, "Outputs") for rxpdo in device.getRxPdo()]):
+ for pdo, _pdo_info in ([(rxpdo, "Outputs") for rxpdo in device.getRxPdo()]): # Save pdo_index, entry, and name of each entry
pdo_index = ExtractHexDecValue(pdo.getIndex().getcontent())
@@ -462,7 +466,7 @@
slave = self.Controler.CTNParent.GetSlave(self.Controler.GetSlavePos())
type_infos = slave.getType()
- device, alignment = self.Controler.CTNParent.GetModuleInfos(type_infos)
+ device, _alignment = self.Controler.CTNParent.GetModuleInfos(type_infos) # 'device' represents current slave device selected by user
@@ -558,7 +562,7 @@
Command example : "ethercat sii_read -p 0"
@return return_val : result of "ethercat sii_read" (binary data)
- error, return_val = self.Controler.RemoteExec(SII_READ % (self.Controler.GetSlavePos()), return_val=None)
+ _error, return_val = self.Controler.RemoteExec(SII_READ % (self.Controler.GetSlavePos()), return_val=None) self.SiiData = return_val
@@ -569,7 +573,10 @@
@param binary : EEPROM contents in binary data format
@return return_val : result of "ethercat sii_write" (If it succeeds, the return value is NULL.)
- error, return_val = self.Controler.RemoteExec(SII_WRITE % (self.Controler.GetSlavePos()), return_val=None, sii_data=binary)
+ _error, return_val = self.Controler.RemoteExec( + SII_WRITE % (self.Controler.GetSlavePos()), @@ -582,7 +589,7 @@
self.Controler.SiiData = self.BinaryCode
# append zero-filled padding data up to EEPROM size
- for index in range(self.SmartViewInfosFromXML["eeprom_size"] - len(self.BinaryCode)):
+ for dummy in range(self.SmartViewInfosFromXML["eeprom_size"] - len(self.BinaryCode)): self.BinaryCode = self.BinaryCode + 'ff'.decode('hex')
@@ -642,7 +649,7 @@
- for i in range(length/2):
+ for dummy in range(length/2): @@ -671,7 +678,7 @@
# 'device' is the slave device of the current EtherCAT slave plugin
slave = self.Controler.CTNParent.GetSlave(self.Controler.GetSlavePos())
type_infos = slave.getType()
- device, alignment = self.Controler.CTNParent.GetModuleInfos(type_infos)
+ device, _alignment = self.Controler.CTNParent.GetModuleInfos(type_infos) # get ConfigData for EEPROM offset 0x0000-0x000d; <Device>-<Eeprom>-<ConfigData>
@@ -688,7 +695,7 @@
crc = (crc << 1) | ((int(segment, 16) >> (7 - i)) & 0x01)
@@ -914,7 +921,6 @@
if grouptypeflag is False:
self.Strings.append(data)
vendor_spec_strings.append(data)
@@ -927,7 +933,7 @@
# element2-2; <EtherCATInfo>-<Groups>-<Group>-<Type>
if grouptypeflag is False:
if self.Controler.CTNParent.CTNParent.ModulesLibrary.Library is not None:
- for vendor_id, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems():
+ for _vendor_id, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems(): for group_type, group_etc in vendor["groups"].iteritems():
for device_item in group_etc["devices"]:
if device == device_item[1]:
@@ -939,7 +945,6 @@
if grouptypeflag is False:
self.Strings.append(data)
vendor_spec_strings.append(data)
@@ -952,7 +957,7 @@
# element3; <EtherCATInfo>-<Descriptions>-<Groups>-<Group>-<Name(LcId is "1033")>
if self.Controler.CTNParent.CTNParent.ModulesLibrary.Library is not None:
- for vendorId, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems():
+ for _vendorId, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems(): for group_type, group_etc in vendor["groups"].iteritems():
for device_item in group_etc["devices"]:
if device == device_item[1]:
@@ -1015,7 +1020,7 @@
# element5-2; <EtherCATInfo>-<Descriptions>-<Groups>-<Group>-<Image16x14>
if self.Controler.CTNParent.CTNParent.ModulesLibrary.Library is not None:
- for vendor_id, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems():
+ for _vendor_id, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems(): for group_type, group_etc in vendor["groups"].iteritems():
for device_item in group_etc["devices"]:
if device == device_item[1]:
@@ -1136,7 +1141,7 @@
- for iter in range(len(element)/2):
+ for dummy in range(len(element)/2): @@ -1155,7 +1160,6 @@
@return eeprom : "Strings" category EEPROM image data
@@ -1287,7 +1291,7 @@
eeprom.append("{:0>4x}".format((count)/2)[2:4])
eeprom.append("{:0>4x}".format((count)/2)[0:2])
+ for dummy in range(count): @@ -1331,7 +1335,7 @@
eeprom.append("{:0>4x}".format(len(data)/4)[2:4])
eeprom.append("{:0>4x}".format(len(data)/4)[0:2])
- for i in range(len(data)/2):
+ for dummy in range(len(data)/2): @@ -1440,7 +1444,7 @@
eeprom.append("{:0>4x}".format(len(data)/4)[2:4])
eeprom.append("{:0>4x}".format(len(data)/4)[0:2])
- for i in range(len(data)/2):
+ for dummy in range(len(data)/2): @@ -1514,7 +1518,7 @@
eeprom.append("{:0>4x}".format(len(data)/4)[2:4])
eeprom.append("{:0>4x}".format(len(data)/4)[0:2])
- for i in range(len(data)/2):
+ for dummy in range(len(data)/2): @@ -1534,7 +1538,9 @@
@param length : register length
@return return_val : register data
- error, return_val = self.Controler.RemoteExec(REG_READ % (self.Controler.GetSlavePos(), offset, length), return_val=None)
+ _error, return_val = self.Controler.RemoteExec( + REG_READ % (self.Controler.GetSlavePos(), offset, length), def RegWrite(self, address, data):
@@ -1545,7 +1551,9 @@
@param data : data to write
@return return_val : the execution result of "ethercat reg_write" (for error check)
- error, return_val = self.Controler.RemoteExec(REG_WRITE % (self.Controler.GetSlavePos(), address, data), return_val=None)
+ _error, return_val = self.Controler.RemoteExec( + REG_WRITE % (self.Controler.GetSlavePos(), address, data), @@ -1553,7 +1561,7 @@
Synchronize EEPROM data in master controller with the data in slave device after EEPROM write.
Command example : "ethercat rescan -p 0"
- error, return_val = self.Controler.RemoteExec(RESCAN % (self.Controler.GetSlavePos()), return_val=None)
+ _error, _return_val = self.Controler.RemoteExec(RESCAN % (self.Controler.GetSlavePos()), return_val=None) # -------------------------------------------------------------------------------
@@ -1567,7 +1575,7 @@
if self.Controler.GetCTRoot()._connector is not None:
# Check connection between the master and the slave.
# Command example : "ethercat xml -p 0"
- error, return_val = self.Controler.RemoteExec(SLAVE_XML % (self.Controler.GetSlavePos()), return_val=None)
+ _error, return_val = self.Controler.RemoteExec(SLAVE_XML % (self.Controler.GetSlavePos()), return_val=None) number_of_lines = return_val.split("\n")
if len(number_of_lines) <= 2: # No slave connected to the master controller
--- a/etherlab/ConfigEditor.py Sat Sep 29 17:52:33 2018 +0300
+++ b/etherlab/ConfigEditor.py Sat Sep 29 18:59:41 2018 +0300
@@ -215,7 +215,7 @@
def OnVariablesGridLeftClick(self, event):
- item, flags, col = self.VariablesGrid.HitTest(event.GetPosition())
+ item, _flags, col = self.VariablesGrid.HitTest(event.GetPosition()) entry = self.VariablesGrid.GetItemPyData(item)
data_type = entry.get("Type", "")
@@ -1165,10 +1165,10 @@
for colname, colsize, colalign in zip(
[_("Name")] + [param_infos["column_label"]
- for param, param_infos in
+ for _param, param_infos in self.ModuleLibrary.MODULES_EXTRA_PARAMS],
[400] + [param_infos["column_size"]
- for param, param_infos in
+ for _param, param_infos in self.ModuleLibrary.MODULES_EXTRA_PARAMS],
[wx.ALIGN_LEFT] + [wx.ALIGN_RIGHT] * len(self.ModuleLibrary.MODULES_EXTRA_PARAMS)):
self.ModulesGrid.AddColumn(_(colname), colsize, colalign, edit=True)
@@ -1209,7 +1209,7 @@
item = self.ModulesGrid.AppendItem(root, "")
self.ModulesGrid.SetItemText(item, module["name"], 0)
if module["infos"] is not None:
- for param_idx, (param, param_infos) in enumerate(self.ModuleLibrary.MODULES_EXTRA_PARAMS):
+ for param_idx, (param, _param_infos) in enumerate(self.ModuleLibrary.MODULES_EXTRA_PARAMS): self.ModulesGrid.SetItemText(item,
str(module["infos"][param]),
@@ -1254,7 +1254,7 @@
def OnDeleteButton(self, event):
filepath = self.GetSelectedFilePath()
if os.path.isfile(filepath):
- folder, filename = os.path.split(filepath)
+ _folder, filename = os.path.split(filepath) dialog = wx.MessageDialog(self.ParentWindow,
_("Do you really want to delete the file '%s'?") % filename,
@@ -1270,7 +1270,7 @@
def OnModulesGridLeftDown(self, event):
- item, flags, col = self.ModulesGrid.HitTest(event.GetPosition())
+ item, _flags, col = self.ModulesGrid.HitTest(event.GetPosition()) entry_infos = self.ModulesGrid.GetItemPyData(item)
if entry_infos is not None and col > 0:
@@ -1322,13 +1322,13 @@
def OnModulesGridHeaderMotion(self, event):
- item, flags, col = self.ModulesGrid.HitTest(event.GetPosition())
+ _item, _flags, col = self.ModulesGrid.HitTest(event.GetPosition()) if col != self.LastToolTipCol and self.LastToolTipCol is not None:
self.ModulesGrid.GetHeaderWindow().SetToolTip(None)
self.LastToolTipCol = None
if col > 0 and self.LastToolTipCol != col:
self.LastToolTipCol = col
- param, param_infos = self.ModuleLibrary.MODULES_EXTRA_PARAMS[col - 1]
+ _param, param_infos = self.ModuleLibrary.MODULES_EXTRA_PARAMS[col - 1] wx.CallAfter(self.ModulesGrid.GetHeaderWindow().SetToolTipString,
param_infos["description"])
--- a/etherlab/EtherCATManagementEditor.py Sat Sep 29 17:52:33 2018 +0300
+++ b/etherlab/EtherCATManagementEditor.py Sat Sep 29 18:59:41 2018 +0300
@@ -80,21 +80,6 @@
for spname, spclass in subs:
self.AddSubPage(spclass(self, self.Controler), spname)
- self.Bind(wx.EVT_TREEBOOK_PAGE_CHANGED, self.OnPageChanged)
- self.Bind(wx.EVT_TREEBOOK_PAGE_CHANGING, self.OnPageChanging)
- def OnPageChanged(self, event):
- old = event.GetOldSelection()
- new = event.GetSelection()
- sel = event.GetSelection()
- def OnPageChanging(self, event):
- old = event.GetOldSelection()
- new = event.GetSelection()
- sel = event.GetSelection()
# -------------------------------------------------------------------------------
@@ -256,7 +241,7 @@
# (1) If current PLC status is "Started", then request slave state transition
# (2) Otherwise, show error message and return
- status, count = self.Controler.GetCTRoot()._connector.GetPLCstatus()
+ status, _log_count = self.Controler.GetCTRoot()._connector.GetPLCstatus() self.Controler.CommonMethod.RequestSlaveState("OP")
self.TextCtrlDic["TargetState"].SetValue("OP")
@@ -399,20 +384,20 @@
# token_head = ['0x1000:00', 'r-r-r-', 'uint32', '32 bit', '']
token_head = token_head.split(",")
- ful_idx, access, type, size, empty = token_head
+ ful_idx, access, type, size, _empty = token_head # ful_idx.split(":") = ['0x1000', '00']
idx, sub_idx = ful_idx.split(":")
# token_tail = ['', '0x00020192', '131474']
token_tail = token_tail.split(",")
- empty, hex_val, dec_val = token_tail
+ _empty, hex_val, _dec_val = token_tail # SDO data is not return "dec value"
# 0x1702:01,rwr-r-,uint32,32 bit," 1st mapping", ----
- empty, hex_val = token_tail
+ _empty, hex_val = token_tail name_after_check = self.StringTest(name)
@@ -437,9 +422,9 @@
self.Controler.CommonMethod.SaveSDOData[self.AllSDOData].append(self.Data)
if count >= len(self.SDOs.splitlines()) / 2:
- (keep_going, skip) = slaveSDO_progress.Update(count, "Please waiting a moment!!")
+ (keep_going, _skip) = slaveSDO_progress.Update(count, "Please waiting a moment!!") - (keep_going, skip) = slaveSDO_progress.Update(count)
+ (keep_going, _skip) = slaveSDO_progress.Update(count) # If user click "Cancel" loop suspend immediately
@@ -483,9 +468,6 @@
- self.Bind(wx.EVT_CHOICEBOOK_PAGE_CHANGED, self.OnPageChanged)
- self.Bind(wx.EVT_CHOICEBOOK_PAGE_CHANGING, self.OnPageChanging)
def CreateNoteBook(self):
Create each NoteBook page, divided SDO index
@@ -501,12 +483,12 @@
("0x6000 - 0x9fff", self.parent.ProfileSpecific),
("0xa000 - 0xffff", self.parent.Reserved)]
- page_tooltip_string = ["SDO Index 0x0000 - 0x0fff : Data Type Description",
- "SDO Index 0x1000 - 0x1fff : Communication object",
- "SDO Index 0x2000 - 0x5fff : Manufacturer specific",
- "SDO Index 0x6000 - 0x9fff : Profile specific",
- "SDO Index 0xa000 - 0xffff : Reserved",
+ # page_tooltip_string = ["SDO Index 0x0000 - 0x0fff : Data Type Description", + # "SDO Index 0x1000 - 0x1fff : Communication object", + # "SDO Index 0x2000 - 0x5fff : Manufacturer specific", + # "SDO Index 0x6000 - 0x9fff : Profile specific", + # "SDO Index 0xa000 - 0xffff : Reserved", @@ -515,18 +497,6 @@
self.Win = SlaveSDOTable(self, self.Data)
self.AddPage(self.Win, txt)
- def OnPageChanged(self, event):
- old = event.GetOldSelection()
- new = event.GetSelection()
- sel = self.GetSelection()
- def OnPageChanging(self, event):
- old = event.GetOldSelection()
- new = event.GetSelection()
- sel = self.GetSelection()
# -------------------------------------------------------------------------------
# For SDO Grid (fill index, subindex, etc...)
@@ -734,21 +704,6 @@
self.AddPage(RxWin, "RxPDO")
self.AddPage(TxWin, "TxPDO")
- self.Bind(wx.EVT_CHOICEBOOK_PAGE_CHANGED, self.OnPageChanged)
- self.Bind(wx.EVT_CHOICEBOOK_PAGE_CHANGING, self.OnPageChanging)
- def OnPageChanged(self, event):
- old = event.GetOldSelection()
- new = event.GetSelection()
- sel = self.GetSelection()
- def OnPageChanging(self, event):
- old = event.GetOldSelection()
- new = event.GetSelection()
- sel = self.GetSelection()
# -------------------------------------------------------------------------------
# For PDO Notebook (divide PDO index)
@@ -791,21 +746,6 @@
- self.Bind(wx.EVT_CHOICEBOOK_PAGE_CHANGED, self.OnPageChanged)
- self.Bind(wx.EVT_CHOICEBOOK_PAGE_CHANGING, self.OnPageChanging)
- def OnPageChanged(self, event):
- old = event.GetOldSelection()
- new = event.GetSelection()
- sel = self.GetSelection()
- def OnPageChanging(self, event):
- old = event.GetOldSelection()
- new = event.GetSelection()
- sel = self.GetSelection()
# -------------------------------------------------------------------------------
# For PDO Grid (fill entry index, subindex etc...)
@@ -965,7 +905,7 @@
# Check whether beremiz connected or not, and whether status is "Started" or not.
check_connect_flag = self.Controler.CommonMethod.CheckConnect(False)
- status, count = self.Controler.GetCTRoot()._connector.GetPLCstatus()
+ status, _log_count = self.Controler.GetCTRoot()._connector.GetPLCstatus() if status is not "Started":
dialog = wx.FileDialog(self, _("Choose a binary file"), os.getcwd(), "", _("bin files (*.bin)|*.bin"), wx.OPEN)
@@ -1334,7 +1274,7 @@
# and whether status is "Started" or not.
check_connect_flag = self.Controler.CommonMethod.CheckConnect(False)
- status, count = self.Controler.GetCTRoot()._connector.GetPLCstatus()
+ status, _log_count = self.Controler.GetCTRoot()._connector.GetPLCstatus() if status is not "Started":
self.Controler.CommonMethod.SiiWrite(self.SiiBinary)
self.Controler.CommonMethod.Rescan()
@@ -1830,30 +1770,16 @@
+ for dummy in range(pages): self.RegPage.append(None)
+ for index in range(pages): self.RegPage[index] = RegisterNotebookPanel(self, self.Controler,
parent.MainRow[index], parent.MainCol)
self.AddPage(self.RegPage[index],
"0x"+"{:0>4x}".format(index*1024)+" - 0x"+"{:0>4x}".format((index+1)*1024-1))
- self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.OnPageChanged)
- self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGING, self.OnPageChanging)
- def OnPageChanged(self, event):
- old = event.GetOldSelection()
- new = event.GetSelection()
- sel = self.GetSelection()
- def OnPageChanging(self, event):
- old = event.GetOldSelection()
- new = event.GetSelection()
- sel = self.GetSelection()
# -------------------------------------------------------------------------------
# For Register Access Notebook Panel
--- a/etherlab/EthercatCIA402Slave.py Sat Sep 29 17:52:33 2018 +0300
+++ b/etherlab/EthercatCIA402Slave.py Sat Sep 29 18:59:41 2018 +0300
@@ -16,7 +16,7 @@
from PLCControler import LOCATION_CONFNODE, LOCATION_VAR_INPUT
-from MotionLibrary import Headers, AxisXSD
+from MotionLibrary import AxisXSD from etherlab.EthercatSlave import _EthercatSlaveCTN, _CommonSlave
from etherlab.ConfigEditor import CIA402NodeEditor
@@ -205,7 +205,6 @@
location_str = "_".join(map(str, current_location))
slave_pos = self.GetSlavePos()
# Open CIA402 node code template file
plc_cia402node_filepath = os.path.join(os.path.split(__file__)[0],
@@ -241,13 +240,25 @@
return_outputs = "\n".join([
- __SET_VAR(data__->,%(output_name)s,,
- __GET_VAR(%(blockname)s->%(output_name)s));""" % locals()
+ __SET_VAR(data__->,%(output_name)s,, + __GET_VAR(%(blockname)s->%(output_name)s));""" % { + "output_name": output_name, for output_name in ["DONE", "BUSY", "ERROR"] + [
for output in blocktype_infos["outputs"]]
+ "ucase_blocktype": ucase_blocktype, + "blocktype": blocktype, + "blockname": blockname, + "location_str": location_str, + "extract_inputs": extract_inputs, + "return_outputs": return_outputs, fieldbus_interface_declaration.append("""
extern void ETHERLAB%(ucase_blocktype)s_body__(ETHERLAB%(ucase_blocktype)s* data__);
void __%(blocktype)s_%(location_str)s(MC_%(ucase_blocktype)s *data__) {
@@ -257,11 +268,11 @@
ETHERLAB%(ucase_blocktype)s_body__(%(blockname)s);
fieldbus_interface_definition.append("""\
AxsPub.axis->__mcl_func_MC_%(blocktype)s = __%(blocktype)s_%(location_str)s;\
# Get a copy list of default variables to map
variables = NODE_VARIABLES[:]
@@ -288,14 +299,16 @@
variables.append(variable_infos["description"])
# Add code to publish or retrive variable
- for var_exchange_dir, str_list, default_template in [
- ("retrieve", extra_variables_retrieve,
- " AxsPub.axis->%(var_name)s = *(AxsPub.%(var_name)s);"),
- ("publish", extra_variables_publish,
- " *(AxsPub.%(var_name)s) = AxsPub.axis->%(var_name)s;")]:
- template = variable_infos.get(var_exchange_dir,
+ extra_variables_retrieve, + " AxsPub.axis->%(var_name)s = *(AxsPub.%(var_name)s);"), + extra_variables_publish, + " *(AxsPub.%(var_name)s) = AxsPub.axis->%(var_name)s;") + for var_exchange_dir, _str_list, default_template in coded: + template = variable_infos.get(var_exchange_dir, default_template) extra_variables_publish.append(template % locals())
@@ -306,21 +319,30 @@
else str(param["value"]))
init_axis_params.append("""\
- AxsPub.axis->%(param_name)s = %(param_value)s;""" % locals())
+ AxsPub.axis->%(param_name)s = %(param_value)s;""" % {"param_value": param_value}) # Add each variable in list of variables to map to master list of
# variables to add to network configuration
for name, index, subindex, var_type, dir in variables:
var_size = self.GetSizeOfType(var_type)
+ "location_str": location_str, -__%(dir)s%(var_size)s%(location_str)s_%(index)d_%(subindex)d""" % locals()
+__%(dir)s%(var_size)s%(location_str)s_%(index)d_%(subindex)d""" % loc_dict + loc_dict["var_name"] = var_name extern_located_variables_declaration.append(
- "IEC_%(var_type)s *%(var_name)s;" % locals())
+ "IEC_%(var_type)s *%(var_name)s;" % loc_dict) - " IEC_%(var_type)s *%(name)s;" % locals())
+ " IEC_%(var_type)s *%(name)s;" % loc_dict) init_entry_variables.append(
- " AxsPub.%(name)s = %(var_name)s;" % locals())
+ " AxsPub.%(name)s = %(var_name)s;" % loc_dict) self.CTNParent.FileGenerator.DeclareVariable(
slave_pos, index, subindex, var_type, dir, var_name)
--- a/etherlab/EthercatMaster.py Sat Sep 29 17:52:33 2018 +0300
+++ b/etherlab/EthercatMaster.py Sat Sep 29 18:59:41 2018 +0300
@@ -93,7 +93,6 @@
ethelabfile.write(etherlab_ext_code)
- runtimefile_path = os.path.join(os.path.split(__file__)[0], "runtime_etherlab.py")
return ((["etherlab_ext"], [(Gen_etherlabfile_path, IECCFLAGS)], True), "",
("runtime_etherlab.py", file(GetLocalPath("runtime_etherlab.py"))))
@@ -304,7 +303,7 @@
self.GetSlaveTypesLibrary())
if dialog.ShowModal() == wx.ID_OK:
type_infos = dialog.GetValueInfos()
- device, module_extra_params = self.GetModuleInfos(type_infos)
+ device, _module_extra_params = self.GetModuleInfos(type_infos) if HAS_MCL and _EthercatCIA402SlaveCTN.NODE_PROFILE in device.GetProfileNumbers():
ConfNodeType = "EthercatCIA402Slave"
@@ -335,7 +334,7 @@
type_infos = slave.getType()
if vendor is not None and ExtractHexDecValue(type_infos["vendor"]) != vendor:
- device, module_extra_params = self.GetModuleInfos(type_infos)
+ device, _module_extra_params = self.GetModuleInfos(type_infos) if slave_profile is not None and slave_profile not in device.GetProfileNumbers():
@@ -474,7 +473,7 @@
"product_code": slave["product_code"],
"revision_number": slave["revision_number"],
- device, module_extra_params = self.GetModuleInfos(type_infos)
+ device, _module_extra_params = self.GetModuleInfos(type_infos) if HAS_MCL and _EthercatCIA402SlaveCTN.NODE_PROFILE in device.GetProfileNumbers():
CTNType = "EthercatCIA402Slave"
@@ -568,7 +567,7 @@
slave = self.GetSlave(slave_pos)
type_infos = slave.getType()
- device, module_extra_params = self.GetModuleInfos(type_infos)
+ device, _module_extra_params = self.GetModuleInfos(type_infos) infos = type_infos.copy()
infos.update({"physics": device.getPhysics(),
@@ -582,7 +581,7 @@
slave = self.GetSlave(slave_pos)
type_infos = slave.getType()
- device, module_extra_params = self.GetModuleInfos(type_infos)
+ device, _module_extra_params = self.GetModuleInfos(type_infos) entries = device.GetEntriesList(limits)
entries_list = entries.items()
@@ -590,7 +589,7 @@
- for (index, subindex), entry in entries_list:
+ for (index, _subindex), entry in entries_list: if slave_pos is not None:
entry["Position"] = str(slave_pos)
@@ -608,7 +607,7 @@
def GetSlaveVariableDataType(self, slave_pos, index, subindex):
slave = self.GetSlave(slave_pos)
- device, module_extra_params = self.GetModuleInfos(slave.getType())
+ device, _module_extra_params = self.GetModuleInfos(slave.getType()) entries = device.GetEntriesList()
entry_infos = entries.get((index, subindex))
@@ -625,7 +624,7 @@
type_infos = slave.getType()
if vendor is not None and ExtractHexDecValue(type_infos["vendor"]) != vendor:
- device, module_extra_params = self.GetModuleInfos(type_infos)
+ device, _module_extra_params = self.GetModuleInfos(type_infos) if slave_profile is not None and slave_profile not in device.GetProfileNumbers():
entries.extend(self.GetSlaveVariables(slave_position, limits, device))
@@ -646,7 +645,7 @@
type_infos = slave.getType()
- device, module_extra_params = self.GetModuleInfos(type_infos)
+ device, _module_extra_params = self.GetModuleInfos(type_infos) for sync_manager in device.getSm():
--- a/etherlab/etherlab.py Sat Sep 29 17:52:33 2018 +0300
+++ b/etherlab/etherlab.py Sat Sep 29 18:59:41 2018 +0300
@@ -320,7 +320,7 @@
vendor = ExtractHexDecValue(module_infos["vendor"])
vendor_infos = self.Library.get(vendor)
if vendor_infos is not None:
- for group_name, group_infos in vendor_infos["groups"].iteritems():
+ for _group_name, group_infos in vendor_infos["groups"].iteritems(): for device_type, device_infos in group_infos["devices"]:
product_code = ExtractHexDecValue(device_infos.getType().getProductCode())
revision_number = ExtractHexDecValue(device_infos.getType().getRevisionNo())
@@ -354,7 +354,7 @@
- for (param, param_infos), value in zip(
+ for (param, _param_infos), value in zip( self.MODULES_EXTRA_PARAMS, row[3:]):
params_values[param] = int(value)
@@ -364,7 +364,7 @@
def SaveModulesExtraParams(self):
csvfile = open(self.GetModulesExtraParamsFilePath(), "wb")
- extra_params = [param for param, params_infos in self.MODULES_EXTRA_PARAMS]
+ extra_params = [param for param, _params_infos in self.MODULES_EXTRA_PARAMS] writer = csv.writer(csvfile, delimiter=';')
writer.writerow(['Vendor', 'product_code', 'revision_number'] + extra_params)
for (vendor, product_code, revision_number), module_extra_params in self.ModulesExtraParams.iteritems():