# HG changeset patch # User laurent # Date 1250070220 -7200 # Node ID ee802ef00ca5226bc6952623f16e301fedb4981a # Parent bd54d41a7573dd655227b83ccb5f16e34680aca2 Removing old svgui support using wxsvg diff -r bd54d41a7573 -r ee802ef00ca5 plugins/svgui/.cvsignore --- a/plugins/svgui/.cvsignore Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -*.pyc diff -r bd54d41a7573 -r ee802ef00ca5 plugins/svgui/README --- a/plugins/svgui/README Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -SVGUI HMI \ No newline at end of file diff -r bd54d41a7573 -r ee802ef00ca5 plugins/svgui/__init__.py --- a/plugins/svgui/__init__.py Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -from svgui import * -controller = None -view = None \ No newline at end of file diff -r bd54d41a7573 -r ee802ef00ca5 plugins/svgui/svgui.py --- a/plugins/svgui/svgui.py Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,798 +0,0 @@ -import os, shutil, sys -base_folder = os.path.split(sys.path[0])[0] -sys.path.append(os.path.join(base_folder, "wxsvg", "SVGUIEditor")) -sys.path.append(os.path.join(base_folder, "plcopeneditor", "graphics")) - -import wx, subprocess - -from SVGUIGenerator import * -from SVGUIControler import * -from SVGUIEditor import * -from FBD_Objects import * -from PLCGenerator import PLCGenException - -from wxPopen import ProcessLogger -from wx.wxsvg import SVGDocument -from docutils import * - -[ID_SVGUIEDITORFBDPANEL, -] = [wx.NewId() for _init_ctrls in range(1)] - -SVGUIFB_Types = {ITEM_CONTAINER : "Container", - ITEM_BUTTON : "Button", - ITEM_TEXT : "TextCtrl", - ITEM_SCROLLBAR : "ScrollBar", - ITEM_ROTATING : "RotatingCtrl", - ITEM_NOTEBOOK : "NoteBook", - ITEM_TRANSFORM : "Transform"} - -class _SVGUIEditor(SVGUIEditor): - """ - This Class add IEC specific features to the SVGUIEditor : - - FDB preview - - FBD begin drag - """ - - def _init_coll_EditorGridSizer_Items(self, parent): - SVGUIEditor._init_coll_EditorGridSizer_Items(self, parent) - parent.AddWindow(self.FBDPanel, 0, border=0, flag=wx.GROW) - - def _init_ctrls(self, prnt): - SVGUIEditor._init_ctrls(self, prnt, False) - - self.FBDPanel = wx.Panel(id=ID_SVGUIEDITORFBDPANEL, - name='FBDPanel', parent=self.EditorPanel, pos=wx.Point(0, 0), - size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL|wx.SIMPLE_BORDER) - self.FBDPanel.SetBackgroundColour(wx.WHITE) - self.FBDPanel.Bind(wx.EVT_LEFT_DOWN, self.OnFBDPanelClick) - self.FBDPanel.Bind(wx.EVT_PAINT, self.OnPaintFBDPanel) - - setattr(self.FBDPanel, "GetScaling", lambda: None) - setattr(self.FBDPanel, "IsOfType", self.IsOfType) - setattr(self.FBDPanel, "GetBlockType", self.GetBlockType) - - self._init_sizers() - - def __init__(self, parent, controler = None, fileOpen = None): - SVGUIEditor.__init__(self, parent, controler, fileOpen) - - self.FBDBlock = None - - def IsOfType(self, type, reference): - return self.Controler.GetPlugRoot().IsOfType(type, reference) - - def GetBlockType(self, type, inputs = None): - return self.Controler.GetPlugRoot().GetBlockType(type, inputs) - - def RefreshView(self, select_id = None): - SVGUIEditor.RefreshView(self, select_id) - self.FBDPanel.Refresh() - - def OnPaintFBDPanel(self,event): - dc = wx.ClientDC(self.FBDPanel) - dc.Clear() - selected = self.GetSelected() - if selected is not None: - selected_type = self.Controler.GetElementType(selected) - if selected_type is not None: - self.FBDBlock = FBD_Block(parent=self.FBDPanel,type=SVGUIFB_Types[selected_type],name=self.Controler.GetElementName(selected)) - width, height = self.FBDBlock.GetMinSize() - self.FBDBlock.SetSize(width,height) - clientsize = self.FBDPanel.GetClientSize() - x = (clientsize.width - width) / 2 - y = (clientsize.height - height) / 2 - self.FBDBlock.SetPosition(x, y) - self.FBDBlock.Draw(dc) - else: - self.FBDBlock = None - event.Skip() - - def OnFBDPanelClick(self, event): - if self.FBDBlock: - data = wx.TextDataObject(str((self.FBDBlock.GetType(), "functionBlock", self.FBDBlock.GetName()))) - DropSrc = wx.DropSource(self.FBDPanel) - DropSrc.SetData(data) - DropSrc.DoDragDrop() - event.Skip() - - def OnInterfaceTreeItemSelected(self, event): - self.FBDPanel.Refresh() - SVGUIEditor.OnInterfaceTreeItemSelected(self, event) - - def OnGenerate(self,event): - self.SaveProject() - self.Controler.PlugGenerate_C(sys.path[0],(0,0,4,5),None) - event.Skip() - -TYPECONVERSION = {"BOOL" : "X", "SINT" : "B", "INT" : "W", "DINT" : "D", "LINT" : "L", - "USINT" : "B", "UINT" : "W", "UDINT" : "D", "ULINT" : "L", "REAL" : "D", "LREAL" : "L", - "STRING" : "B", "BYTE" : "B", "WORD" : "W", "DWORD" : "D", "LWORD" : "L", "WSTRING" : "W"} - -CTYPECONVERSION = {"BOOL" : "IEC_BOOL", "UINT" : "IEC_UINT", "STRING" : "IEC_STRING", "REAL" : "IEC_REAL"} -CPRINTTYPECONVERSION = {"BOOL" : "d", "UINT" : "d", "STRING" : "s", "REAL" : "f"} - -class RootClass(SVGUIControler): - - def __init__(self): - SVGUIControler.__init__(self) - filepath = os.path.join(self.PlugPath(), "gui.xml") - - if os.path.isfile(filepath): - svgfile = os.path.join(self.PlugPath(), "gui.svg") - if os.path.isfile(svgfile): - self.SvgFilepath = svgfile - self.OpenXMLFile(filepath) - else: - self.CreateNewInterface() - self.SetFilePath(filepath) - - def GetElementIdFromName(self, name): - element = self.GetElementByName(name) - if element is not None: - return element.getid() - return None - - _View = None - def _OpenView(self): - if not self._View: - def _onclose(): - self._View = None - def _onsave(): - self.GetPlugRoot().SaveProject() - self._View = _SVGUIEditor(self.GetPlugRoot().AppFrame, self) - self._View._onclose = _onclose - self._View._onsave = _onsave - self._View.Show() - - def _ImportSVG(self): - if not self._View: - dialog = wx.FileDialog(self.GetPlugRoot().AppFrame, "Choose a SVG file", os.getcwd(), "", "SVG files (*.svg)|*.svg|All files|*.*", wx.OPEN) - if dialog.ShowModal() == wx.ID_OK: - svgpath = dialog.GetPath() - if os.path.isfile(svgpath): - shutil.copy(svgpath, os.path.join(self.PlugPath(), "gui.svg")) - else: - self.logger.write_error("No such SVG file: %s\n"%svgpath) - dialog.Destroy() - - def _ImportXML(self): - if not self._View: - dialog = wx.FileDialog(self.GetPlugRoot().AppFrame, "Choose a XML file", os.getcwd(), "", "XML files (*.xml)|*.xml|All files|*.*", wx.OPEN) - if dialog.ShowModal() == wx.ID_OK: - xmlpath = dialog.GetPath() - if os.path.isfile(xmlpath): - shutil.copy(xmlpath, os.path.join(self.PlugPath(), "gui.xml")) - else: - self.logger.write_error("No such XML file: %s\n"%xmlpath) - dialog.Destroy() - - def _StartInkscape(self): - svgfile = os.path.join(self.PlugPath(), "gui.svg") - if not os.path.isfile(svgfile): - svgfile = None - open_svg(svgfile) - - PluginMethods = [ - {"bitmap" : os.path.join("images","HMIEditor"), - "name" : "HMI Editor", - "tooltip" : "HMI Editor", - "method" : "_OpenView"}, - {"bitmap" : os.path.join("images","ImportSVG"), - "name" : "Import SVG", - "tooltip" : "Import SVG", - "method" : "_ImportSVG"}, - {"bitmap" : os.path.join("images","ImportDEF"), - "name" : "Import XML", - "tooltip" : "Import XML", - "method" : "_ImportXML"}, - {"bitmap" : os.path.join("images","ImportSVG"), - "name" : "Inkscape", - "tooltip" : "Create HMI", - "method" : "_StartInkscape"}, - ] - - def OnPlugSave(self): - self.SaveXMLFile(os.path.join(self.PlugPath(), "gui.xml")) - return True - - def PlugGenerate_C(self, buildpath, locations): - progname = "SVGUI_%s"%"_".join(map(str, self.GetCurrentLocation())) - - doc = SVGDocument(self.GetSVGFilePath()) - root_element = doc.GetRootElement() - window_size = (int(float(root_element.GetAttribute("width"))), - int(float(root_element.GetAttribute("height")))) - -# svgfilepath = self.GetSVGFilePath() -# xmlfilepath = self.GetFilePath() -# shutil.copy(svgfilepath, buildpath) -# shutil.copy(xmlfilepath, buildpath) - - SVGFilePath = self.GetSVGFilePath() - SVGFileBaseName = os.path.split(SVGFilePath)[1] - FilePath = self.GetFilePath() - FileBaseName = os.path.split(FilePath)[1] - - generator = _SVGUICGenerator(self, self.GetElementsByType(), - os.path.split(self.GetSVGFilePath())[1], - os.path.split(self.GetFilePath())[1], - self.GetCurrentLocation()) - generator.GenerateProgram(window_size, buildpath, progname) - Gen_C_file = os.path.join(buildpath, progname+".cpp" ) - - if wx.Platform == '__WXMSW__': - cxx_flags = "-I..\\lib\\wx\\include\\msw-unicode-release-2.8 -I..\\include\\wx-2.8 -I..\\..\\matiec\\lib -DWXUSINGDLL -D__WXMSW__ -mthreads" - libs = "\"..\\lib\\libwxsvg.a\" \"..\\lib\\libwxsvg_agg.a\" \"..\\lib\\libagg.a\" \"..\\lib\\libaggplatformwin32.a\" \"..\\lib\\libaggfontwin32tt.a\" -L..\\lib -mwindows -mthreads -Wl,--subsystem,windows -mwindows -lwx_mswu_richtext-2.8 -lwx_mswu_aui-2.8 -lwx_mswu_xrc-2.8 -lwx_mswu_qa-2.8 -lwx_mswu_html-2.8 -lwx_mswu_adv-2.8 -lwx_mswu_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8" - else: - status, result, err_result = ProcessLogger(self.logger, "wx-config --cxxflags", no_stdout=True).spin() - if status: - self.logger.write_error("Unable to get wx cxxflags\n") - cxx_flags = result.strip() + " -I../matiec/lib" - - status, result, err_result = ProcessLogger(self.logger, "wx-config --libs", no_stdout=True).spin() - if status: - self.logger.write_error("Unable to get wx libs\n") - libs = result.strip() + " -lwxsvg" - - return [(Gen_C_file, cxx_flags)],libs,True,(SVGFileBaseName, file(SVGFilePath, "rb")), (FileBaseName, file(FilePath, "rb")) - - def BlockTypesFactory(self): - - SVGUIBlock_Types = [] - - def GetSVGUIBlockType(type): - for category in SVGUIBlock_Types: - for blocktype in category["list"]: - if blocktype["name"] == type: - return blocktype - setattr(self, "GetSVGUIBlockType", GetSVGUIBlockType) - - def generate_svgui_block(generator, block, body, link, order=False): - name = block.getinstanceName() - block_id = self.GetElementIdFromName(name) - if block_id == None: - raise PLCGenException, "Undefined SVGUI Block \"%s\""%name - type = block.gettypeName() - block_infos = GetSVGUIBlockType(type) - current_location = ".".join(map(str, self.GetCurrentLocation())) - if not generator.ComputedBlocks.get(block, False) and not order: - generator.ComputedBlocks[block] = True - for num, variable in enumerate(block.inputVariables.getvariable()): - connections = variable.connectionPointIn.getconnections() - if connections is not None: - input_info = (generator.TagName, "block", block.getlocalId(), "input", num) - parameter = "%sQ%s%s.%d.%d"%("%", TYPECONVERSION[block_infos["inputs"][num][1]], current_location, block_id, num+1) - value = generator.ComputeExpression(body, connections) - generator.Program += [(generator.CurrentIndent, ()), - (parameter, input_info), - (" := ", ())] - generator.Program += generator.ExtractModifier(variable, value, input_info) - generator.Program += [(";\n", ())] - if link: - connectionPoint = link.getposition()[-1] - for num, variable in enumerate(block.outputVariables.getvariable()): - blockPointx, blockPointy = variable.connectionPointOut.getrelPositionXY() - output_info = (generator.TagName, "block", block.getlocalId(), "output", num) - parameter = "%sI%s%s.%d.%d"%("%", TYPECONVERSION[block_infos["outputs"][num][1]], current_location, block_id, num+1) - if block.getx() + blockPointx == connectionPoint.getx() and block.gety() + blockPointy == connectionPoint.gety(): - return generator.ExtractModifier(variable, [(parameter, output_info)], output_info) - raise PLCGenException, "No corresponding output variable found on SVGUI Block \"%s\""%name - else: - return None - - def initialise_block(type, name, block = None): - block_id = self.GetElementIdFromName(name) - if block_id == None: - raise PLCGenException, "Undefined SVGUI Block \"%s\""%name - block_infos = GetSVGUIBlockType(type) - current_location = ".".join(map(str, self.GetCurrentLocation())) - variables = [] - if block is not None: - input_variables = block.inputVariables.getvariable() - output_variables = block.outputVariables.getvariable() - else: - input_variables = None - output_variables = None - for num, (input_name, input_type, input_modifier) in enumerate(block_infos["inputs"]): - if input_variables is not None and num < len(input_variables): - connections = input_variables[num].connectionPointIn.getconnections() - if input_variables is None or connections and len(connections) == 1: - variables.append((input_type, None, "%sQ%s%s.%d.%d"%("%", TYPECONVERSION[input_type], current_location, block_id, num+1), None)) - for num, (output_name, output_type, output_modifier) in enumerate(block_infos["outputs"]): - variables.append((output_type, None, "%sI%s%s.%d.%d"%("%", TYPECONVERSION[input_type], current_location, block_id, num+1), None)) - return variables - - SVGUIBlock_Types.extend([{"name" : "SVGUI function blocks", "list" : - [{"name" : "Container", "type" : "functionBlock", "extensible" : False, - "inputs" : [("Show","BOOL","none"),("Enable","BOOL","none")], - "outputs" : [], - "comment" : "SVGUI Container", - "generate" : generate_svgui_block, "initialise" : initialise_block}, - {"name" : "Button", "type" : "functionBlock", "extensible" : False, - "inputs" : [("Show","BOOL","none"),("Enable","BOOL","none"),("Value","BOOL","none")], - "outputs" : [("State","BOOL","none")], - "comment" : "SVGUI Button", - "generate" : generate_svgui_block, "initialise" : initialise_block}, - {"name" : "TextCtrl", "type" : "functionBlock", "extensible" : False, - "inputs" : [("Show","BOOL","none"),("Enable","BOOL","none"),("SetText","STRING","none")], - "outputs" : [("Text","STRING","none")], - "comment" : "SVGUI Text Control", - "generate" : generate_svgui_block, "initialise" : initialise_block}, - {"name" : "ScrollBar", "type" : "functionBlock", "extensible" : False, - "inputs" : [("Show","BOOL","none"),("Enable","BOOL","none"),("SetThumb","UINT","none"),("SetRange","UINT","none"),("SetPosition","UINT","none")], - "outputs" : [("Position","UINT","none")], - "comment" : "SVGUI ScrollBar", - "generate" : generate_svgui_block, "initialise" : initialise_block}, - {"name" : "NoteBook", "type" : "functionBlock", "extensible" : False, - "inputs" : [("Show","BOOL","none"),("Enable","BOOL","none"),("SetSelected","BOOL","none")], - "outputs" : [("Selected","UINT","none")], - "comment" : "SVGUI Notebook", - "generate" : generate_svgui_block, "initialise" : initialise_block}, - {"name" : "RotatingCtrl", "type" : "functionBlock", "extensible" : False, - "inputs" : [("Show","BOOL","none"),("Enable","BOOL","none"),("SetAngle","REAL","none")], - "outputs" : [("Angle","REAL","none")], - "comment" : "SVGUI Rotating Control", - "generate" : generate_svgui_block, "initialise" : initialise_block}, - {"name" : "Transform", "type" : "functionBlock", "extensible" : False, - "inputs" : [("Show","BOOL","none"),("Enable","BOOL","none"),("SetX","REAL","none"),("SetY","REAL","none"),("SetXScale","REAL","none"),("SetYScale","REAL","none"),("SetAngle","REAL","none")], - "outputs" : [("X","REAL","none"),("Y","REAL","none")], - "comment" : "SVGUI Transform", - "generate" : generate_svgui_block, "initialise" : initialise_block}, - ]} - ]) - - return SVGUIBlock_Types - - -class _SVGUICGenerator(SVGUICGenerator): - - def __init__(self, controler, elements, svgfile, xmlfile, current_location): - SVGUICGenerator.__init__(self, elements, svgfile, xmlfile) - - self.CurrentLocation = current_location - self.Controler = controler - - def GenerateProgramHeadersPublicVars(self): - text = """ - void OnPlcOutEvent(wxEvent& event); - - void Retrieve(); - void Publish(); - void Initialize(); -""" -# text += " void Print();\n" - return text - - def GenerateIECVars(self): - text = "" - for element in self.Elements: - text += "STATE_TYPE out_state_%d;\n"%element.getid() - text += "STATE_TYPE in_state_%d;\n"%element.getid() - text +="\n" - current_location = "_".join(map(str, self.CurrentLocation)) - #Declaration des variables - for element in self.Elements: - block_infos = self.Controler.GetSVGUIBlockType(SVGUIFB_Types[GetElementType(element)]) - block_id = element.getid() - for i, input in enumerate(block_infos["inputs"]): - element_c_type = CTYPECONVERSION[input[1]] - variable = "__Q%s%s_%d_%d"%(TYPECONVERSION[input[1]], current_location, block_id, i + 1) - text += "%s beremiz%s;\n"%(element_c_type, variable) - text += "%s* %s = &beremiz%s;\n"%(element_c_type, variable, variable) - text += "%s _copy%s;\n"%(element_c_type, variable) - for i, output in enumerate(block_infos["outputs"]): - element_c_type = CTYPECONVERSION[output[1]] - variable = "__I%s%s_%d_%d"%(TYPECONVERSION[output[1]], current_location, block_id, i + 1) - text += "%s beremiz%s;\n"%(element_c_type, variable) - text += "%s* %s = &beremiz%s;\n"%(element_c_type, variable, variable) - text += "%s _copy%s;\n"%(element_c_type, variable) - text +="\n" - return text - - def GenerateGlobalVarsAndFuncs(self, size): - text = """#include "iec_types.h" -#ifdef __WXMSW__ -#define COMPARE_AND_SWAP_VAL(Destination, comparand, exchange) InterlockedCompareExchange(Destination, exchange, comparand) -#define THREAD_RETURN_TYPE DWORD WINAPI -#define STATE_TYPE long int -#else -#define COMPARE_AND_SWAP_VAL(Destination, comparand, exchange) __sync_val_compare_and_swap(Destination, comparand, exchange) -#define THREAD_RETURN_TYPE void* -#define STATE_TYPE volatile int -#endif - -""" - - text += self.GenerateIECVars() - - text += """IMPLEMENT_APP_NO_MAIN(SVGViewApp); -SVGViewApp *myapp = NULL; -wxSemaphore MyInitSem; - -#ifdef __WXMSW__ -HANDLE wxMainLoop; -DWORD wxMainLoopId; -#else -pthread_t wxMainLoop; -#endif - -""" - - text += """int myargc = 0; -char** myargv = NULL; - -#define UNCHANGED 1 -#define PLC_BUSY 2 -#define CHANGED 3 -#define GUI_BUSY 4 -#ifdef __WXMSW__ -#else -#endif - -bool refresh = false; -bool refreshing = false; - -THREAD_RETURN_TYPE InitWxEntry(void* args) -{ - wxEntry(myargc,myargv); - myapp = NULL; - MyInitSem.Post(); - return 0; -} - -""" - - text += """ -bool SVGViewApp::OnInit() -{ - #ifndef __WXMSW__ - setlocale(LC_NUMERIC, "C"); - #endif -""" - - text += """ frame = new MainFrame(NULL, wxT("Program"),wxDefaultPosition, wxSize(%d, %d)); - frame->Show(); - myapp = this; -"""%size - text += """ return true; -} - -extern "C" { - -int __init_%(location)s(int argc, char** argv) -{ - myargc = argc; - myargv = argv; -#ifdef __WXMSW__ - wxMainLoop = CreateThread(NULL, 0, InitWxEntry, 0, 0, &wxMainLoopId); -#else - pthread_create(&wxMainLoop, NULL, InitWxEntry, NULL); -#endif - MyInitSem.Wait(); - return 0; -} - -void __cleanup_%(location)s() -{ - if(myapp){ - wxCloseEvent event(wxEVT_CLOSE_WINDOW); - myapp->frame->AddPendingEvent(event); - myapp = NULL; - } - MyInitSem.Wait(); -} - -void __retrieve_%(location)s() -{ - if(myapp){ - myapp->frame->m_svgCtrl->Retrieve(); - } -} - -void __publish_%(location)s() -{ - if(myapp){ - myapp->frame->m_svgCtrl->Publish(); - } -} - -} - -IEC_STRING wxStringToIEC_STRING(wxString s) -{ - IEC_STRING res = {0,""}; - int i; - for(i = 0; iargv[1], wxT("%s")); - wxFileName xmlfilepath(wxTheApp->argv[1], wxT("%s")); - - m_svgCtrl = new Program(this); - if (m_svgCtrl->LoadFiles(svgfilepath.GetFullPath(), xmlfilepath.GetFullPath())) - { - Show(true); - m_svgCtrl->SetFocus(); - m_svgCtrl->SetFitToFrame(true); - m_svgCtrl->InitScrollBars(); - m_svgCtrl->Initialize(); - m_svgCtrl->Update(); - } - else - { - printf("Error while opening SVGUI files\\n"); - } -} - - -"""%(self.SVGFilePath, self.XMLFilePath) - - return text - - def GenerateProgramInitProgram(self): - text = "Program::Program(wxWindow* parent):SVGUIWindow(parent)\n{\n" - for element in self.Elements: - text += " out_state_%d = UNCHANGED;\n"%element.getid() - text += " in_state_%d = UNCHANGED;\n"%element.getid() - text += "}\n\n" - return text - - def GenerateProgramEventFunctions(self): - text = "" - current_location = "_".join(map(str, self.CurrentLocation)) - for element in self.Elements: - element_type = GetElementType(element) - element_lock = """ - if (COMPARE_AND_SWAP_VAL(&in_state_%d, CHANGED, GUI_BUSY) == CHANGED || - COMPARE_AND_SWAP_VAL(&in_state_%d, UNCHANGED, GUI_BUSY) == UNCHANGED) { -"""%(element.getid(), element.getid()) - element_unlock = """ - COMPARE_AND_SWAP_VAL(&in_state_%d, GUI_BUSY, CHANGED); - event.Skip(); - }else{ - /* re post event for idle */ - AddPendingEvent(event); - } -} - -"""%element.getid() - element_name = element.getname() - - if element_type == ITEM_BUTTON: - text += """void Program::On%sClick(wxCommandEvent& event) -{ - SVGUIButton* button = (SVGUIButton*)GetElementByName(wxT("%s"));\n"""%(element_name, element_name) - text += element_lock - text += " _copy__IX%s_%d_1 = button->GetToggle();\n"%(current_location, element.getid()) - text += element_unlock - elif element_type == ITEM_ROTATING: - text += """void Program::On%sChanging(wxScrollEvent& event) -{ - SVGUIRotatingCtrl* rotating = (SVGUIRotatingCtrl*)GetElementByName(wxT("%s")); -"""%(element_name, element_name) - text += element_lock - text += " _copy__ID%s_%d_1 = rotating->GetAngle();\n"%(current_location, element.getid()) - text += element_unlock - elif element_type == ITEM_NOTEBOOK: - text += """void Program::On%sTabChanged(wxNotebookEvent& event) -{ - SVGUINoteBook* notebook = (SVGUINoteBook*)GetElementByName(wxT("%s")); -"""%(element_name, element_name) - text += element_lock - text += " _copy__IB%s_%d_1 = notebook->GetCurrentPage();\n"%(current_location, element.getid()) - text += element_unlock - elif element_type == ITEM_TRANSFORM: - text += """void Program::On%sChanging(wxScrollEvent& event) -{ - SVGUITransform* transform = (SVGUITransform*)GetElementByName(wxT("%s")); -"""%(element_name, element_name) - text += element_lock - text += " _copy__ID%s_%d_1 = transform->GetX();\n"%(current_location, element.getid()) - text += " _copy__ID%s_%d_2 = transform->GetY();\n"%(current_location, element.getid()) - text += element_unlock - - text += "/* OnPlcOutEvent update GUI with provided IEC __Q* PLC output variables */\n" - text += """void Program::OnPlcOutEvent(wxEvent& event) -{ - SVGUIElement* element; - - refreshing = true; - - -""" - for element in self.Elements: - element_type = GetElementType(element) - texts = {"location" : current_location, "id" : element.getid()} - - text += """ if (COMPARE_AND_SWAP_VAL(&out_state_%(id)d, CHANGED, GUI_BUSY) == CHANGED) - { - element = (SVGUIElement*)GetElementById(wxT("%(id)d")); - - if (_copy__QX%(location)s_%(id)d_1 != element->IsVisible()) { - if (_copy__QX%(location)s_%(id)d_1) - element->Show(); - else - element->Hide(); - } - if (_copy__QX%(location)s_%(id)d_2 != element->IsEnabled()) { - if (_copy__QX%(location)s_%(id)d_2) - element->Enable(); - else - element->Disable(); - } -"""%texts - if element_type == ITEM_BUTTON: - text += """ if (_copy__QX%(location)s_%(id)d_3 != ((SVGUIButton*)element)->GetToggle()) - ((SVGUIButton*)element)->SetToggle(_copy__QX%(location)s_%(id)d_3); -"""%texts - elif element_type == ITEM_TEXT: - text += """ if (((SVGUITextCtrl*)element)->GetValue().compare(_copy__QX%(location)s_%(id)d_3)) - { - wxString str = wxString::FromAscii(_copy__QB%(location)s_%(id)d_3); - ((SVGUITextCtrl*)element)->SetText(str); - } -"""%texts - elif element_type == ITEM_SCROLLBAR: - text += """ if (_copy__QW%(location)s_%(id)d_3 != ((SVGUIScrollBar*)element)->GetThumbPosition() || - _copy__QW%(location)s_%(id)d_4 != ((SVGUIScrollBar*)element)->GetThumbSize() || - _copy__QW%(location)s_%(id)d_5 != ((SVGUIScrollBar*)element)->GetRange()) - ((SVGUIScrollBar*)element)->Init_ScrollBar(_copy__QW%(location)s_%(id)d_3, _copy__QW%(location)s_%(id)d_4, _copy__QW%(location)s_%(id)d_5); -"""%texts - elif element_type == ITEM_ROTATING: - text += """ if (_copy__QD%(location)s_%(id)d_3 != ((SVGUIRotatingCtrl*)element)->GetAngle()) - ((SVGUIRotatingCtrl*)element)->SetAngle(_copy__QD%(location)s_%(id)d_3); -"""%texts - elif element_type == ITEM_NOTEBOOK: - text += """ if (_copy__QB%(location)s_%(id)d_3 != ((SVGUINoteBook*)element)->GetCurrentPage()) - ((SVGUINoteBook*)element)->SetCurrentPage(_copy__QB%(location)s_%(id)d_3); -"""%texts - elif element_type == ITEM_TRANSFORM: - text += """ if (_copy__QD%(location)s_%(id)d_3 != ((SVGUITransform*)element)->GetX() || - _copy__QD%(location)s_%(id)d_4 != ((SVGUITransform*)element)->GetY()) - ((SVGUITransform*)element)->Move(_copy__QD%(location)s_%(id)d_3, _copy__QD%(location)s_%(id)d_4); - if (_copy__QD%(location)s_%(id)d_5 != ((SVGUITransform*)element)->GetXScale() || - _copy__QD%(location)s_%(id)d_6 != ((SVGUITransform*)element)->GetYScale()) - ((SVGUITransform*)element)->Scale(_copy__QD%(location)s_%(id)d_5, _copy__QD%(location)s_%(id)d_6); - if (_copy__QD%(location)s_%(id)d_7 != ((SVGUITransform*)element)->GetAngle()) - ((SVGUITransform*)element)->Rotate(_copy__QD%(location)s_%(id)d_7); -"""%texts - text += " COMPARE_AND_SWAP_VAL(&out_state_%(id)d, GUI_BUSY, UNCHANGED);\n }\n"%texts - - text += """ - - refreshing = false; - - event.Skip(); -} - -""" - return text - - def GenerateProgramPrivateFunctions(self): - current_location = "_".join(map(str, self.CurrentLocation)) - - text = "void Program::Retrieve()\n{\n" - for element in self.Elements: - element_type = GetElementType(element) - texts = {"location" : current_location, "id" : element.getid()} - block_infos = self.Controler.GetSVGUIBlockType(SVGUIFB_Types[GetElementType(element)]) - if len(block_infos["outputs"]) > 0: - text += """ if (COMPARE_AND_SWAP_VAL(&in_state_%(id)d, CHANGED, PLC_BUSY) == CHANGED) { -"""%texts - for i, output in enumerate(block_infos["outputs"]): - texts["type"] = TYPECONVERSION[output[1]] - texts["pin"] = i + 1 - - variable = "__I%(type)s%(location)s_%(id)d_%(pin)d"%texts - text +=" beremiz%s = _copy%s;\n"%(variable, variable) - - text += """ COMPARE_AND_SWAP_VAL(&in_state_%(id)d, PLC_BUSY, UNCHANGED); - } -"""%texts - text += "}\n\n" - - text += "void Program::Publish()\n{\n STATE_TYPE new_state;\n\n" - for element in self.Elements: - element_type = GetElementType(element) - texts = {"location" : current_location, "id" : element.getid()} - block_infos = self.Controler.GetSVGUIBlockType(SVGUIFB_Types[GetElementType(element)]) - - text += """ if ((new_state = COMPARE_AND_SWAP_VAL(&out_state_%(id)d, UNCHANGED, PLC_BUSY)) == UNCHANGED || - (new_state = COMPARE_AND_SWAP_VAL(&out_state_%(id)d, CHANGED, PLC_BUSY)) == CHANGED) { -"""%texts - for i, input in enumerate(block_infos["inputs"]): - texts["type"] = TYPECONVERSION[input[1]] - texts["pin"] = i + 1 - variable = "__Q%(type)s%(location)s_%(id)d_%(pin)d"%texts - text += " if (_copy%s != beremiz%s) {\n"%(variable, variable) - text += " _copy%s = beremiz%s;\n"%(variable, variable) - text += " new_state = CHANGED;\n }\n"%texts - text += """ COMPARE_AND_SWAP_VAL(&out_state_%(id)d, PLC_BUSY, new_state); - refresh |= new_state == CHANGED; - } -"""%texts - - text += """ /* Replace this with determinist signal if called from RT */ - if (refresh && !refreshing) { - wxCommandEvent event( EVT_PLC ); - AddPendingEvent(event); - refresh = false; - } -}; - -""" - - text += """void Program::Initialize() -{ - SVGUIElement* element; -""" - for element in self.Elements: - element_type = GetElementType(element) - texts = {"location" : current_location, "id" : element.getid()} - - text += """ - element = (SVGUIElement*)GetElementById(wxT("%(id)d")); - beremiz__QX%(location)s_%(id)d_1 = _copy__QX%(location)s_%(id)d_1 = element->IsVisible(); - beremiz__QX%(location)s_%(id)d_2 = _copy__QX%(location)s_%(id)d_2 = element->IsEnabled(); -"""%texts - if element_type == ITEM_BUTTON: - text += " beremiz__QX%(location)s_%(id)d_3 = _copy__QX%(location)s_%(id)d_3 = ((SVGUIButton*)element)->GetToggle();\n"%texts - text += " beremiz__IX%(location)s_%(id)d_1 = _copy__IX%(location)s_%(id)d_1 = ((SVGUIButton*)element)->GetToggle();\n"%texts - elif element_type == ITEM_TEXT: - text += " beremiz__QB%(location)s_%(id)d_3 = _copy__QB%(location)s_%(id)d_3 = ((SVGUITextCtrl*)element)->GetValue();\n"%texts - text += " beremiz__IB%(location)s_%(id)d_1 = _copy__IB%(location)s_%(id)d_1 = ((SVGUITextCtrl*)element)->GetValue();\n"%texts - elif element_type == ITEM_SCROLLBAR: - text += " beremiz__QW%(location)s_%(id)d_3 = _copy__QW%(location)s_%(id)d_3 = ((SVGUIScrollBar*)element)->GetThumbSize();\n"%texts - text += " beremiz__QW%(location)s_%(id)d_4 = _copy__QW%(location)s_%(id)d_4 = ((SVGUIScrollBar*)element)->GetRange();\n"%texts - text += " beremiz__QW%(location)s_%(id)d_5 = _copy__QW%(location)s_%(id)d_5 = ((SVGUIScrollBar*)element)->GetThumbPosition();\n"%texts - text += " beremiz__IW%(location)s_%(id)d_1 = _copy__IW%(location)s_%(id)d_1 = ((SVGUIScrollBar*)element)->GetThumbPosition();\n"%texts - elif element_type == ITEM_ROTATING: - text += " beremiz__QD%(location)s_%(id)d_3 = _copy__QD%(location)s_%(id)d_3 = ((SVGUIRotatingCtrl*)element)->GetAngle();\n"%texts - text += " beremiz__ID%(location)s_%(id)d_1 = _copy__ID%(location)s_%(id)d_1 = ((SVGUIRotatingCtrl*)element)->GetAngle();\n"%texts - elif element_type == ITEM_NOTEBOOK: - text += " beremiz__QB%(location)s_%(id)d_3 = _copy__QB%(location)s_%(id)d_3 = ((SVGUINoteBook*)element)->GetCurrentPage();\n"%texts - text += " beremiz__IB%(location)s_%(id)d_1 = _copy__IB%(location)s_%(id)d_1 = ((SVGUINoteBook*)element)->GetCurrentPage();\n"%texts - elif element_type == ITEM_TRANSFORM: - text += " beremiz__QD%(location)s_%(id)d_3 = _copy__QD%(location)s_%(id)d_3 = ((SVGUITransform*)element)->GetX();\n"%texts - text += " beremiz__QD%(location)s_%(id)d_4 = _copy__QD%(location)s_%(id)d_4 = ((SVGUITransform*)element)->GetY();\n"%texts - text += " beremiz__QD%(location)s_%(id)d_5 = _copy__QD%(location)s_%(id)d_5 = ((SVGUITransform*)element)->GetXScale();\n"%texts - text += " beremiz__QD%(location)s_%(id)d_6 = _copy__QD%(location)s_%(id)d_6 = ((SVGUITransform*)element)->GetYScale();\n"%texts - text += " beremiz__QD%(location)s_%(id)d_7 = _copy__QD%(location)s_%(id)d_7 = ((SVGUITransform*)element)->GetAngle();\n"%texts - text += " beremiz__ID%(location)s_%(id)d_1 = _copy__ID%(location)s_%(id)d_1 = ((SVGUITransform*)element)->GetX();\n"%texts - text += " beremiz__ID%(location)s_%(id)d_2 = _copy__ID%(location)s_%(id)d_2 = ((SVGUITransform*)element)->GetY();\n"%texts - - text += "\n MyInitSem.Post();\n}\n\n" - return text diff -r bd54d41a7573 -r ee802ef00ca5 tests/linux/test_svgui/.cvsignore --- a/tests/linux/test_svgui/.cvsignore Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -build diff -r bd54d41a7573 -r ee802ef00ca5 tests/linux/test_svgui/CANopen@canfestival/Master@CanOpenNode/baseplugin.xml --- a/tests/linux/test_svgui/CANopen@canfestival/Master@CanOpenNode/baseplugin.xml Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ - - diff -r bd54d41a7573 -r ee802ef00ca5 tests/linux/test_svgui/CANopen@canfestival/Master@CanOpenNode/eds/DS401_Slave_Gui.eds --- a/tests/linux/test_svgui/CANopen@canfestival/Master@CanOpenNode/eds/DS401_Slave_Gui.eds Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1142 +0,0 @@ -[FileInfo] -FileName=DS401_Slave_Gui.eds -FileVersion=1 -FileRevision=1 -EDSVersion=4.0 -Description= -CreationTime=05:58PM -CreationDate=10-02-2007 -CreatedBy=CANFestival -ModificationTime=05:58PM -ModificationDate=10-02-2007 -ModifiedBy=CANFestival - -[DeviceInfo] -VendorName=CANFestival -VendorNumber=0x00000175 -ProductName=ObjDict -ProductNumber=0x00100000 -RevisionNumber=0x00010001 -BaudRate_10=1 -BaudRate_20=1 -BaudRate_50=1 -BaudRate_125=1 -BaudRate_250=1 -BaudRate_500=1 -BaudRate_800=1 -BaudRate_1000=1 -SimpleBootUpMaster=0 -SimpleBootUpSlave=1 -Granularity=8 -DynamicChannelsSupported=0 -CompactPDO=0 -GroupMessaging=0 -NrOfRXPDO=2 -NrOfTXPDO=3 -LSS_Supported=0 - -[DummyUsage] -Dummy0001=0 -Dummy0002=1 -Dummy0003=1 -Dummy0004=1 -Dummy0005=1 -Dummy0006=1 -Dummy0007=1 - -[Comments] -Lines=0 - -[MandatoryObjects] -SupportedObjects=3 -1=0x1000 -2=0x1001 -3=0x1018 - -[1000] -ParameterName=Device Type -ObjectType=0x7 -DataType=0x0007 -AccessType=ro -DefaultValue=983441 -PDOMapping=0 - -[1001] -ParameterName=Error Register -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=0 -PDOMapping=1 - -[1018] -ParameterName=Identity -ObjectType=0x8 -SubNumber=4 - -[1018sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=3 -PDOMapping=0 - -[1018sub1] -ParameterName=Vendor ID -ObjectType=0x7 -DataType=0x0007 -AccessType=ro -DefaultValue=373 -PDOMapping=0 - -[1018sub2] -ParameterName=Product Code -ObjectType=0x7 -DataType=0x0007 -AccessType=ro -DefaultValue=1048576 -PDOMapping=0 - -[1018sub3] -ParameterName=Revision Number -ObjectType=0x7 -DataType=0x0007 -AccessType=ro -DefaultValue=65537 -PDOMapping=0 - -[OptionalObjects] -SupportedObjects=35 -1=0x1002 -2=0x1005 -3=0x1008 -4=0x1009 -5=0x100A -6=0x100C -7=0x100D -8=0x1010 -9=0x1011 -10=0x1016 -11=0x1017 -12=0x1020 -13=0x1200 -14=0x1400 -15=0x1401 -16=0x1600 -17=0x1601 -18=0x1800 -19=0x1801 -20=0x1802 -21=0x1A00 -22=0x1A01 -23=0x1A02 -24=0x6000 -25=0x6002 -26=0x6200 -27=0x6202 -28=0x6206 -29=0x6207 -30=0x6401 -31=0x6411 -32=0x6423 -33=0x6426 -34=0x6443 -35=0x6444 - -[1002] -ParameterName=Manufacturer Status Register -ObjectType=0x7 -DataType=0x0007 -AccessType=ro -DefaultValue=0 -PDOMapping=1 - -[1005] -ParameterName=SYNC COB ID -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=128 -PDOMapping=0 - -[1008] -ParameterName=Manufacturer Device Name -ObjectType=0x7 -DataType=0x0009 -AccessType=ro -DefaultValue=0 -PDOMapping=0 - -[1009] -ParameterName=Manufacturer Hardware Version -ObjectType=0x7 -DataType=0x0009 -AccessType=ro -DefaultValue=0 -PDOMapping=0 - -[100A] -ParameterName=Manufacturer Software Version -ObjectType=0x7 -DataType=0x0009 -AccessType=ro -DefaultValue=0 -PDOMapping=0 - -[100C] -ParameterName=Guard Time -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[100D] -ParameterName=Life Time Factor -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1010] -ParameterName=Store parameters -ObjectType=0x8 -SubNumber=2 - -[1010sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=1 -PDOMapping=0 - -[1010sub1] -ParameterName=Save All Parameters -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1011] -ParameterName=Restore Default Parameters -ObjectType=0x8 -SubNumber=2 - -[1011sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=1 -PDOMapping=0 - -[1011sub1] -ParameterName=Restore All Default Parameters -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1016] -ParameterName=Consumer Heartbeat Time -ObjectType=0x9 -SubNumber=4 - -[1016sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=3 -PDOMapping=0 - -[1016sub1] -ParameterName=Consumer Heartbeat Time -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1016sub2] -ParameterName=Consumer Heartbeat Time -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1016sub3] -ParameterName=Consumer Heartbeat Time -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1017] -ParameterName=Producer Heartbeat Time -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1020] -ParameterName=Verify Configuration -ObjectType=0x8 -SubNumber=3 - -[1020sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=2 -PDOMapping=0 - -[1020sub1] -ParameterName=Configuration Date -ObjectType=0x7 -DataType=0x0007 -AccessType=ro -DefaultValue=0 -PDOMapping=0 - -[1020sub2] -ParameterName=Configuration Time -ObjectType=0x7 -DataType=0x0007 -AccessType=ro -DefaultValue=0 -PDOMapping=0 - -[1200] -ParameterName=Server SDO Parameter -ObjectType=0x8 -SubNumber=3 - -[1200sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=2 -PDOMapping=0 - -[1200sub1] -ParameterName=COB ID Client to Server (Receive SDO) -ObjectType=0x7 -DataType=0x0007 -AccessType=ro -DefaultValue=$NODEID+0x600 -PDOMapping=0 - -[1200sub2] -ParameterName=COB ID Server to Client (Transmit SDO) -ObjectType=0x7 -DataType=0x0007 -AccessType=ro -DefaultValue=$NODEID+0x580 -PDOMapping=0 - -[1400] -ParameterName=Receive PDO 1 Parameter -ObjectType=0x8 -SubNumber=3 - -[1400sub0] -ParameterName=Highest SubIndex Supported -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=2 -PDOMapping=0 - -[1400sub1] -ParameterName=COB ID used by PDO -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=$NODEID+0x200 -PDOMapping=0 - -[1400sub2] -ParameterName=Transmission Type -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=1 -PDOMapping=0 - -[1401] -ParameterName=Receive PDO 2 Parameter -ObjectType=0x8 -SubNumber=3 - -[1401sub0] -ParameterName=Highest SubIndex Supported -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=2 -PDOMapping=0 - -[1401sub1] -ParameterName=COB ID used by PDO -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=$NODEID+0x300 -PDOMapping=0 - -[1401sub2] -ParameterName=Transmission Type -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=1 -PDOMapping=0 - -[1600] -ParameterName=Receive PDO 1 Mapping -ObjectType=0x9 -SubNumber=2 - -[1600sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=1 -PDOMapping=0 - -[1600sub1] -ParameterName=PDO 1 Mapping for an application object 1 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=1644167432 -PDOMapping=0 - -[1601] -ParameterName=Receive PDO 2 Mapping -ObjectType=0x9 -SubNumber=5 - -[1601sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=4 -PDOMapping=0 - -[1601sub1] -ParameterName=PDO 2 Mapping for an application object 1 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=1678835984 -PDOMapping=0 - -[1601sub2] -ParameterName=PDO 2 Mapping for an application object 2 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=1678836240 -PDOMapping=0 - -[1601sub3] -ParameterName=PDO 2 Mapping for an application object 3 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=1678836496 -PDOMapping=0 - -[1601sub4] -ParameterName=PDO 2 Mapping for an application object 4 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=1678836752 -PDOMapping=0 - -[1800] -ParameterName=Transmit PDO 1 Parameter -ObjectType=0x8 -SubNumber=5 - -[1800sub0] -ParameterName=Highest SubIndex Supported -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=5 -PDOMapping=0 - -[1800sub1] -ParameterName=COB ID used by PDO -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=$NODEID+0x180 -PDOMapping=0 - -[1800sub2] -ParameterName=Transmission Type -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=1 -PDOMapping=0 - -[1800sub3] -ParameterName=Inhibit Time -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1800sub5] -ParameterName=Event Timer -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1801] -ParameterName=Transmit PDO 2 Parameter -ObjectType=0x8 -SubNumber=5 - -[1801sub0] -ParameterName=Highest SubIndex Supported -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=5 -PDOMapping=0 - -[1801sub1] -ParameterName=COB ID used by PDO -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=$NODEID+0x280 -PDOMapping=0 - -[1801sub2] -ParameterName=Transmission Type -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=1 -PDOMapping=0 - -[1801sub3] -ParameterName=Inhibit Time -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1801sub5] -ParameterName=Event Timer -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1802] -ParameterName=Transmit PDO 3 Parameter -ObjectType=0x8 -SubNumber=5 - -[1802sub0] -ParameterName=Highest SubIndex Supported -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=5 -PDOMapping=0 - -[1802sub1] -ParameterName=COB ID used by PDO -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=$NODEID+0x380 -PDOMapping=0 - -[1802sub2] -ParameterName=Transmission Type -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=1 -PDOMapping=0 - -[1802sub3] -ParameterName=Inhibit Time -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1802sub5] -ParameterName=Event Timer -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1A00] -ParameterName=Transmit PDO 1 Mapping -ObjectType=0x9 -SubNumber=2 - -[1A00sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=1 -PDOMapping=0 - -[1A00sub1] -ParameterName=PDO 1 Mapping for a process data variable 1 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=1610613000 -PDOMapping=0 - -[1A01] -ParameterName=Transmit PDO 2 Mapping -ObjectType=0x9 -SubNumber=5 - -[1A01sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=4 -PDOMapping=0 - -[1A01sub1] -ParameterName=PDO 2 Mapping for a process data variable 1 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=1677787408 -PDOMapping=0 - -[1A01sub2] -ParameterName=PDO 2 Mapping for a process data variable 2 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=1677787664 -PDOMapping=0 - -[1A01sub3] -ParameterName=PDO 2 Mapping for a process data variable 3 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=1677787920 -PDOMapping=0 - -[1A01sub4] -ParameterName=PDO 2 Mapping for a process data variable 4 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=1677788176 -PDOMapping=0 - -[1A02] -ParameterName=Transmit PDO 3 Mapping -ObjectType=0x9 -SubNumber=5 - -[1A02sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=4 -PDOMapping=0 - -[1A02sub1] -ParameterName=PDO 3 Mapping for a process data variable 1 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=1677788432 -PDOMapping=0 - -[1A02sub2] -ParameterName=PDO 3 Mapping for a process data variable 2 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=1677788688 -PDOMapping=0 - -[1A02sub3] -ParameterName=PDO 3 Mapping for a process data variable 3 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=1677788944 -PDOMapping=0 - -[1A02sub4] -ParameterName=PDO 3 Mapping for a process data variable 4 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=1677789200 -PDOMapping=0 - -[6000] -ParameterName=Read Inputs 8 Bit -ObjectType=0x9 -SubNumber=2 - -[6000sub0] -ParameterName=Number of Input 8 bit -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=1 -PDOMapping=0 - -[6000sub1] -ParameterName=Read Inputs 0x1 to 0x8 -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=0 -PDOMapping=1 - -[6002] -ParameterName=Polarity Input 8 Bit -ObjectType=0x9 -SubNumber=2 - -[6002sub0] -ParameterName=Number of Input 8 bit -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=1 -PDOMapping=0 - -[6002sub1] -ParameterName=Polarity Input 0x1 to 0x8 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6200] -ParameterName=Write Outputs 8 Bit -ObjectType=0x9 -SubNumber=2 - -[6200sub0] -ParameterName=Number of Output 8 Bit -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=1 -PDOMapping=0 - -[6200sub1] -ParameterName=Write Outputs 0x1 to 0x8 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6202] -ParameterName=Change Polarity Outputs 8 Bit -ObjectType=0x9 -SubNumber=2 - -[6202sub0] -ParameterName=Number of Output 8 Bit -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=1 -PDOMapping=0 - -[6202sub1] -ParameterName=Change Polarity Outputs 0x1 to 0x8 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6206] -ParameterName=Error Mode Outputs 8 Bit -ObjectType=0x9 -SubNumber=2 - -[6206sub0] -ParameterName=Number of Output 8 Bit -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=1 -PDOMapping=0 - -[6206sub1] -ParameterName=Error Mode Outputs 0x1 to 0x8 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6207] -ParameterName=Error Value Outputs 8 Bit -ObjectType=0x9 -SubNumber=2 - -[6207sub0] -ParameterName=Number of Output 8 Bit -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=1 -PDOMapping=0 - -[6207sub1] -ParameterName=Error Value Outputs 0x1 to 0x8 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6401] -ParameterName=Read Analogue Input 16 Bit -ObjectType=0x9 -SubNumber=9 - -[6401sub0] -ParameterName=Number of Analogue Input 16 Bit -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=8 -PDOMapping=0 - -[6401sub1] -ParameterName=Analogue Input 1 -ObjectType=0x7 -DataType=0x0003 -AccessType=ro -DefaultValue=0 -PDOMapping=1 - -[6401sub2] -ParameterName=Analogue Input 2 -ObjectType=0x7 -DataType=0x0003 -AccessType=ro -DefaultValue=0 -PDOMapping=1 - -[6401sub3] -ParameterName=Analogue Input 3 -ObjectType=0x7 -DataType=0x0003 -AccessType=ro -DefaultValue=0 -PDOMapping=1 - -[6401sub4] -ParameterName=Analogue Input 4 -ObjectType=0x7 -DataType=0x0003 -AccessType=ro -DefaultValue=0 -PDOMapping=1 - -[6401sub5] -ParameterName=Analogue Input 5 -ObjectType=0x7 -DataType=0x0003 -AccessType=ro -DefaultValue=0 -PDOMapping=1 - -[6401sub6] -ParameterName=Analogue Input 6 -ObjectType=0x7 -DataType=0x0003 -AccessType=ro -DefaultValue=0 -PDOMapping=1 - -[6401sub7] -ParameterName=Analogue Input 7 -ObjectType=0x7 -DataType=0x0003 -AccessType=ro -DefaultValue=0 -PDOMapping=1 - -[6401sub8] -ParameterName=Analogue Input 8 -ObjectType=0x7 -DataType=0x0003 -AccessType=ro -DefaultValue=0 -PDOMapping=1 - -[6411] -ParameterName=Write Analogue Output 16 Bit -ObjectType=0x9 -SubNumber=5 - -[6411sub0] -ParameterName=Number of Analogue Input 16 Bit -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=4 -PDOMapping=0 - -[6411sub1] -ParameterName=Analogue Output 1 -ObjectType=0x7 -DataType=0x0003 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6411sub2] -ParameterName=Analogue Output 2 -ObjectType=0x7 -DataType=0x0003 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6411sub3] -ParameterName=Analogue Output 3 -ObjectType=0x7 -DataType=0x0003 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6411sub4] -ParameterName=Analogue Output 4 -ObjectType=0x7 -DataType=0x0003 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6423] -ParameterName=Analogue Input Global Interrupt Enable -ObjectType=0x7 -DataType=0x0001 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6426] -ParameterName=Analogue Input Interrupt Delta Unsigned -ObjectType=0x9 -SubNumber=9 - -[6426sub0] -ParameterName=Number of Analogue Inputs -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=8 -PDOMapping=0 - -[6426sub1] -ParameterName=Analogue Input 1 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6426sub2] -ParameterName=Analogue Input 2 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6426sub3] -ParameterName=Analogue Input 3 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6426sub4] -ParameterName=Analogue Input 4 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6426sub5] -ParameterName=Analogue Input 5 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6426sub6] -ParameterName=Analogue Input 6 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6426sub7] -ParameterName=Analogue Input 7 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6426sub8] -ParameterName=Analogue Input 8 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6443] -ParameterName=Analogue Output Error Mode -ObjectType=0x9 -SubNumber=5 - -[6443sub0] -ParameterName=Number of Analogue Outputs -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=4 -PDOMapping=0 - -[6443sub1] -ParameterName=Error Mode Analogue Output 1 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6443sub2] -ParameterName=Error Mode Analogue Output 2 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6443sub3] -ParameterName=Error Mode Analogue Output 3 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6443sub4] -ParameterName=Error Mode Analogue Output 4 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6444] -ParameterName=Analogue Output Error Value Integer -ObjectType=0x9 -SubNumber=5 - -[6444sub0] -ParameterName=Number of Analogue Outputs -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=4 -PDOMapping=0 - -[6444sub1] -ParameterName=Analogue Output 1 -ObjectType=0x7 -DataType=0x0004 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6444sub2] -ParameterName=Analogue Output 2 -ObjectType=0x7 -DataType=0x0004 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6444sub3] -ParameterName=Analogue Output 3 -ObjectType=0x7 -DataType=0x0004 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[6444sub4] -ParameterName=Analogue Output 4 -ObjectType=0x7 -DataType=0x0004 -AccessType=rw -DefaultValue=0 -PDOMapping=1 - -[ManufacturerObjects] -SupportedObjects=0 diff -r bd54d41a7573 -r ee802ef00ca5 tests/linux/test_svgui/CANopen@canfestival/Master@CanOpenNode/eds/PEAK MicroMod.eds --- a/tests/linux/test_svgui/CANopen@canfestival/Master@CanOpenNode/eds/PEAK MicroMod.eds Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1289 +0,0 @@ -[FileInfo] -CreatedBy=ESAcademy -ModifiedBy=ESAcademy -Description=PEAK MicroMod CANopenIA Generic -CreationTime=09:41PM -CreationDate=05-05-2003 -ModificationTime=05:05PM -ModificationDate=03-23-2005 -FileName=C:\CANopenCT\Tests\PEAK MicroMod.eds -FileVersion=1 -FileRevision=1 -EDSVersion=4 - -[DeviceInfo] -VendorName=PEAK System Technik -VendorNumber=0x00000175 -ProductName=PEAK MicroMod CANopenIA Generic -ProductNumber=0x00100000 -RevisionNumber=0x00010001 -OrderCode=na -BaudRate_10=0 -BaudRate_20=0 -BaudRate_50=1 -BaudRate_125=1 -BaudRate_250=1 -BaudRate_500=1 -BaudRate_800=1 -BaudRate_1000=1 -SimpleBootUpMaster=0 -SimpleBootUpSlave=1 -Granularity=0 -DynamicChannelsSupported=0 -CompactPDO=0 -GroupMessaging=0 -NrOfRXPDO=4 -NrOfTXPDO=4 -LSS_Supported=0 - -[DummyUsage] -Dummy0001=0 -Dummy0002=0 -Dummy0003=0 -Dummy0004=0 -Dummy0005=1 -Dummy0006=1 -Dummy0007=1 - -[Comments] -Lines=0 - -[MandatoryObjects] -SupportedObjects=3 -1=0x1000 -2=0x1001 -3=0x1018 - -[1000] -ParameterName=Device Type -ObjectType=0x7 -DataType=0x0007 -AccessType=ro -DefaultValue=0x000F0191 -PDOMapping=0 - -[1001] -ParameterName=Error Register -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=0 -PDOMapping=0 - -[1018] -ParameterName=Identity Object -ObjectType=0x9 -SubNumber=4 - -[1018sub0] -ParameterName=number of entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=3 -PDOMapping=0 - -[1018sub1] -ParameterName=Vendor ID -ObjectType=0x7 -DataType=0x0007 -AccessType=ro -DefaultValue=0x00000175 -PDOMapping=0 - -[1018sub2] -ParameterName=Product Code -ObjectType=0x7 -DataType=0x0007 -AccessType=ro -DefaultValue=0x00100000 -PDOMapping=0 - -[1018sub3] -ParameterName=Revision number -ObjectType=0x7 -DataType=0x0007 -AccessType=ro -DefaultValue=0x00010001 -PDOMapping=0 - -[OptionalObjects] -SupportedObjects=41 -1=0x1002 -2=0x1005 -3=0x1008 -4=0x1009 -5=0x100A -6=0x100C -7=0x100D -8=0x1010 -9=0x1011 -10=0x1016 -11=0x1017 -12=0x1020 -13=0x1400 -14=0x1401 -15=0x1402 -16=0x1403 -17=0x1600 -18=0x1601 -19=0x1602 -20=0x1603 -21=0x1800 -22=0x1801 -23=0x1802 -24=0x1803 -25=0x1A00 -26=0x1A01 -27=0x1A02 -28=0x1A03 -29=0x1F50 -30=0x6000 -31=0x6002 -32=0x6200 -33=0x6202 -34=0x6206 -35=0x6207 -36=0x6401 -37=0x6411 -38=0x6423 -39=0x6426 -40=0x6443 -41=0x6444 - -[1002] -ParameterName=PEAK Status Register -ObjectType=0x7 -DataType=0x0007 -AccessType=ro -PDOMapping=0 - -[1005] -ParameterName=COB-ID SYNC -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0x00000080 -PDOMapping=0 - -[1008] -ParameterName=Manufacturer Device Name -ObjectType=0x7 -DataType=0x0009 -AccessType=const -PDOMapping=0 - -[1009] -ParameterName=Manufacturer Hardware Version -ObjectType=0x7 -DataType=0x0009 -AccessType=const -PDOMapping=0 - -[100a] -ParameterName=Manufacturer Software Version -ObjectType=0x7 -DataType=0x0009 -AccessType=const -PDOMapping=0 - -[100c] -ParameterName=Guard Time -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[100d] -ParameterName=Life Time Factor -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0x00 -PDOMapping=0 - -[1010] -ParameterName=Store Parameter Field -ObjectType=0x8 -SubNumber=2 - -[1010sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=1 -PDOMapping=0 - -[1010sub1] -ParameterName=Save all Parameters -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -PDOMapping=0 - -[1011] -ParameterName=Restore Default Parameters -ObjectType=0x8 -SubNumber=2 - -[1011sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=1 -PDOMapping=0 - -[1011sub1] -ParameterName=Restore all Default Parameters -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -PDOMapping=0 - -[1016] -ParameterName=Consumer Heartbeat Time -ObjectType=0x8 -SubNumber=4 - -[1016sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=3 -PDOMapping=0 -LowLimit=0x1 - -[1016sub1] -ParameterName=Consumer Heartbeat Time -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1016sub2] -ParameterName=Consumer Heartbeat Time -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1016sub3] -ParameterName=Consumer Heartbeat Time -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1017] -ParameterName=Producer Heartbeat Time -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1020] -ParameterName=Verify Configuration -ObjectType=0x8 -SubNumber=3 - -[1020sub0] -ParameterName=Number of entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=2 -PDOMapping=0 - -[1020sub1] -ParameterName=Configuration date -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -PDOMapping=0 - -[1020sub2] -ParameterName=Configuration time -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -PDOMapping=0 - -[1400] -ParameterName=Receive PDO Communication Parameter -ObjectType=0x9 -SubNumber=3 - -[1400sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=2 -PDOMapping=0 - -[1400sub1] -ParameterName=COB-ID -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=$NODEID+0x200 -PDOMapping=0 -LowLimit=0x00000001 -HighLimit=0xFFFFFFFF - -[1400sub2] -ParameterName=Transmission Type -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=255 -PDOMapping=0 - -[1401] -ParameterName=Receive PDO Communication Parameter -ObjectType=0x9 -SubNumber=3 - -[1401sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=2 -PDOMapping=0 - -[1401sub1] -ParameterName=COB-ID -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=$NODEID+0x300 -PDOMapping=0 -LowLimit=0x00000001 -HighLimit=0xFFFFFFFF - -[1401sub2] -ParameterName=Transmission Type -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=255 -PDOMapping=0 - -[1402] -ParameterName=Receive PDO Communication Parameter -ObjectType=0x9 -SubNumber=3 - -[1402sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=2 -PDOMapping=0 -LowLimit=0x02 -HighLimit=0x05 - -[1402sub1] -ParameterName=COB-ID -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=$NODEID+0x80000400 -PDOMapping=0 -LowLimit=0x00000001 -HighLimit=0xFFFFFFFF - -[1402sub2] -ParameterName=Transmission Type -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=255 -PDOMapping=0 - -[1403] -ParameterName=Receive PDO Communication Parameter -ObjectType=0x9 -SubNumber=3 - -[1403sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=2 -PDOMapping=0 -LowLimit=0x02 -HighLimit=0x05 - -[1403sub1] -ParameterName=COB-ID -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=$NODEID+0x80000500 -PDOMapping=0 -LowLimit=0x00000001 -HighLimit=0xFFFFFFFF - -[1403sub2] -ParameterName=Transmission Type -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=255 -PDOMapping=0 - -[1600] -ParameterName=Receive PDO Mapping Parameter -ObjectType=0x9 -SubNumber=2 - -[1600sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=1 -PDOMapping=0 - -[1600sub1] -ParameterName=PDO Mapping Entry -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0x62000108 -PDOMapping=0 - -[1601] -ParameterName=Receive PDO Mapping Parameter -ObjectType=0x9 -SubNumber=5 - -[1601sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=4 -PDOMapping=0 - -[1601sub1] -ParameterName=PDO Mapping Entry -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0x64110110 -PDOMapping=0 - -[1601sub2] -ParameterName=PDO Mapping Entry -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0x64110210 -PDOMapping=0 - -[1601sub3] -ParameterName=PDO Mapping Entry -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0x64110310 -PDOMapping=0 - -[1601sub4] -ParameterName=PDO Mapping Entry -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0x64110410 -PDOMapping=0 - -[1602] -ParameterName=Receive PDO Mapping Parameter -ObjectType=0x9 -SubNumber=1 - -[1602sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1603] -ParameterName=Receive PDO Mapping Parameter -ObjectType=0x9 -SubNumber=1 - -[1603sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1800] -ParameterName=Transmit PDO Communication Parameter -ObjectType=0x9 -SubNumber=5 - -[1800sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=5 -PDOMapping=0 -LowLimit=0x02 -HighLimit=0x05 - -[1800sub1] -ParameterName=COB-ID -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=$NODEID+0x180 -PDOMapping=0 -LowLimit=0x00000001 -HighLimit=0xFFFFFFFF - -[1800sub2] -ParameterName=Transmission Type -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=255 -PDOMapping=0 - -[1800sub3] -ParameterName=Inhibit Time -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0x0000 -PDOMapping=0 - -[1800sub5] -ParameterName=Event Timer -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1801] -ParameterName=Transmit PDO Communication Parameter -ObjectType=0x9 -SubNumber=5 - -[1801sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=5 -PDOMapping=0 -LowLimit=0x02 -HighLimit=0x05 - -[1801sub1] -ParameterName=COB-ID -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=$NODEID+0x280 -PDOMapping=0 -LowLimit=0x00000001 -HighLimit=0xFFFFFFFF - -[1801sub2] -ParameterName=Transmission Type -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=255 -PDOMapping=0 - -[1801sub3] -ParameterName=Inhibit Time -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0x0000 -PDOMapping=0 - -[1801sub5] -ParameterName=Event Timer -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1802] -ParameterName=Transmit PDO Communication Parameter -ObjectType=0x9 -SubNumber=5 - -[1802sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=5 -PDOMapping=0 -LowLimit=0x02 -HighLimit=0x05 - -[1802sub1] -ParameterName=COB-ID -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=$NODEID+0x380 -PDOMapping=0 -LowLimit=0x00000001 -HighLimit=0xFFFFFFFF - -[1802sub2] -ParameterName=Transmission Type -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=255 -PDOMapping=0 - -[1802sub3] -ParameterName=Inhibit Time -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0x0000 -PDOMapping=0 - -[1802sub5] -ParameterName=Event Timer -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1803] -ParameterName=Transmit PDO Communication Parameter -ObjectType=0x9 -SubNumber=5 - -[1803sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=5 -PDOMapping=0 -LowLimit=0x02 -HighLimit=0x05 - -[1803sub1] -ParameterName=COB-ID -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=$NODEID+0x80000480 -PDOMapping=0 -LowLimit=0x00000001 -HighLimit=0xFFFFFFFF - -[1803sub2] -ParameterName=Transmission Type -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=255 -PDOMapping=0 - -[1803sub3] -ParameterName=Inhibit Time -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0x0000 -PDOMapping=0 - -[1803sub5] -ParameterName=Event Timer -ObjectType=0x7 -DataType=0x0006 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1a00] -ParameterName=Transmit PDO Mapping Parameter -ObjectType=0x9 -SubNumber=2 - -[1a00sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=1 -PDOMapping=0 - -[1a00sub1] -ParameterName=PDO Mapping Entry -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0x60000108 -PDOMapping=0 - -[1a01] -ParameterName=Transmit PDO Mapping Parameter -ObjectType=0x9 -SubNumber=5 - -[1a01sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=4 -PDOMapping=0 - -[1a01sub1] -ParameterName=PDO Mapping Entry -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0x64010110 -PDOMapping=0 - -[1a01sub2] -ParameterName=PDO Mapping Entry -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0x64010210 -PDOMapping=0 - -[1a01sub3] -ParameterName=PDO Mapping Entry -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0x64010310 -PDOMapping=0 - -[1a01sub4] -ParameterName=PDO Mapping Entry -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0x64010410 -PDOMapping=0 - -[1a02] -ParameterName=Transmit PDO Mapping Parameter -ObjectType=0x9 -SubNumber=5 - -[1a02sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=4 -PDOMapping=0 - -[1a02sub1] -ParameterName=PDO Mapping Entry -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0x64010510 -PDOMapping=0 - -[1a02sub2] -ParameterName=PDO Mapping Entry -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0x64010610 -PDOMapping=0 - -[1a02sub3] -ParameterName=PDO Mapping Entry -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0x64010710 -PDOMapping=0 - -[1a02sub4] -ParameterName=PDO Mapping Entry -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0x64010810 -PDOMapping=0 - -[1a03] -ParameterName=Transmit PDO Mapping Parameter -ObjectType=0x9 -SubNumber=1 - -[1a03sub0] -ParameterName=Number of Entries -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[1f50] -ParameterName=Download Program Data -ObjectType=0x8 -SubNumber=2 - -[1f50sub0] -ParameterName=Number of elements -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=3 -PDOMapping=0 - -[1f50sub3] -ParameterName=Download Program Data - HW Settings -ObjectType=0x7 -DataType=0x000F -AccessType=rw -PDOMapping=0 - -[6000] -ParameterName=Read Digital Input 8-bit -ObjectType=0x8 -SubNumber=2 - -[6000sub0] -ParameterName=Number of Elements -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=1 -PDOMapping=0 - -[6000sub1] -ParameterName=DigInput8_1 -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -PDOMapping=1 - -[6002] -ParameterName=Polarity Digital Input -ObjectType=0x8 -SubNumber=2 - -[6002sub0] -ParameterName=Number of Elements -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=1 -PDOMapping=0 - -[6002sub1] -ParameterName=Polarity8_1 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6200] -ParameterName=Write Digital Output 8-bit -ObjectType=0x8 -SubNumber=2 - -[6200sub0] -ParameterName=Number of elements -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=1 -PDOMapping=0 - -[6200sub1] -ParameterName=DigOutput8_1 -ObjectType=0x7 -DataType=0x0005 -AccessType=rww -PDOMapping=1 - -[6202] -ParameterName=Polarity Digital Output -ObjectType=0x8 -SubNumber=2 - -[6202sub0] -ParameterName=Number of Elements -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=1 -PDOMapping=0 - -[6202sub1] -ParameterName=Polarity8_1 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6206] -ParameterName=Error Mode Digital Output -ObjectType=0x8 -SubNumber=2 - -[6206sub0] -ParameterName=Number of elements -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=1 -PDOMapping=0 - -[6206sub1] -ParameterName=Error Mode 1 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6207] -ParameterName=Error Value Digital Output -ObjectType=0x8 -SubNumber=2 - -[6207sub0] -ParameterName=Number of elements -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=1 -PDOMapping=0 - -[6207sub1] -ParameterName=Error Value 1 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6401] -ParameterName=Read Analog Input 16-bit -ObjectType=0x8 -SubNumber=9 - -[6401sub0] -ParameterName=Number of elements -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=8 -PDOMapping=0 - -[6401sub1] -ParameterName=AnalogInput16_1 -ObjectType=0x7 -DataType=0x0003 -AccessType=ro -PDOMapping=1 - -[6401sub2] -ParameterName=AnalogInput16_2 -ObjectType=0x7 -DataType=0x0003 -AccessType=ro -PDOMapping=1 - -[6401sub3] -ParameterName=AnalogInput16_3 -ObjectType=0x7 -DataType=0x0003 -AccessType=ro -PDOMapping=1 - -[6401sub4] -ParameterName=AnalogInput16_4 -ObjectType=0x7 -DataType=0x0003 -AccessType=ro -PDOMapping=1 - -[6401sub5] -ParameterName=AnalogInput16_5 -ObjectType=0x7 -DataType=0x0003 -AccessType=ro -PDOMapping=1 - -[6401sub6] -ParameterName=AnalogInput16_6 -ObjectType=0x7 -DataType=0x0003 -AccessType=ro -PDOMapping=1 - -[6401sub7] -ParameterName=AnalogInput16_7 -ObjectType=0x7 -DataType=0x0003 -AccessType=ro -PDOMapping=1 - -[6401sub8] -ParameterName=AnalogInput16_8 -ObjectType=0x7 -DataType=0x0003 -AccessType=ro -PDOMapping=1 - -[6411] -ParameterName=Write Analog Output 16-bit -ObjectType=0x8 -SubNumber=5 - -[6411sub0] -ParameterName=Number of elements -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=4 -PDOMapping=0 - -[6411sub1] -ParameterName=AnalogOutput16_1 -ObjectType=0x7 -DataType=0x0003 -AccessType=rww -PDOMapping=1 - -[6411sub2] -ParameterName=AnalogOutput16_2 -ObjectType=0x7 -DataType=0x0003 -AccessType=rww -PDOMapping=1 - -[6411sub3] -ParameterName=AnalogOutput16_3 -ObjectType=0x7 -DataType=0x0003 -AccessType=rww -PDOMapping=1 - -[6411sub4] -ParameterName=AnalogOutput16_4 -ObjectType=0x7 -DataType=0x0003 -AccessType=rww -PDOMapping=1 - -[6423] -ParameterName=Analog Input Global Interrupt -ObjectType=0x7 -DataType=0x0001 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6426] -ParameterName=Analog Input Interrupt Delta -ObjectType=0x8 -SubNumber=9 - -[6426sub0] -ParameterName=NrOfObjects -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=8 -PDOMapping=0 - -[6426sub1] -ParameterName=Analog Input Delta 1 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6426sub2] -ParameterName=Analog Input Delta 2 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6426sub3] -ParameterName=Analog Input Delta 3 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6426sub4] -ParameterName=Analog Input Delta 4 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6426sub5] -ParameterName=Analog Input Delta 5 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6426sub6] -ParameterName=Analog Input Delta 6 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6426sub7] -ParameterName=Analog Input Delta 7 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6426sub8] -ParameterName=Analog Input Delta 8 -ObjectType=0x7 -DataType=0x0007 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6443] -ParameterName=Error Mode Analog Output -ObjectType=0x8 -SubNumber=5 - -[6443sub0] -ParameterName=Number of elements -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=4 -PDOMapping=0 - -[6443sub1] -ParameterName=Error Mode 1 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6443sub2] -ParameterName=Error Mode 2 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6443sub3] -ParameterName=Error Mode 3 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6443sub4] -ParameterName=Error Mode 4 -ObjectType=0x7 -DataType=0x0005 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6444] -ParameterName=Error Value Analog Output -ObjectType=0x8 -SubNumber=5 - -[6444sub0] -ParameterName=Number of elements -ObjectType=0x7 -DataType=0x0005 -AccessType=ro -DefaultValue=4 -PDOMapping=0 - -[6444sub1] -ParameterName=Error Value 1 -ObjectType=0x7 -DataType=0x0004 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6444sub2] -ParameterName=Error Value 2 -ObjectType=0x7 -DataType=0x0004 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6444sub3] -ParameterName=Error Value 3 -ObjectType=0x7 -DataType=0x0004 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[6444sub4] -ParameterName=Error Value 4 -ObjectType=0x7 -DataType=0x0004 -AccessType=rw -DefaultValue=0 -PDOMapping=0 - -[ManufacturerObjects] -SupportedObjects=0 diff -r bd54d41a7573 -r ee802ef00ca5 tests/linux/test_svgui/CANopen@canfestival/Master@CanOpenNode/master.od --- a/tests/linux/test_svgui/CANopen@canfestival/Master@CanOpenNode/master.od Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,224 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r bd54d41a7573 -r ee802ef00ca5 tests/linux/test_svgui/CANopen@canfestival/Master@CanOpenNode/nodelist.cpj --- a/tests/linux/test_svgui/CANopen@canfestival/Master@CanOpenNode/nodelist.cpj Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -[TOPOLOGY] -NetName=None -Nodes=0x02 -Node16Present=0x01 -Node16Name=DS401_Slave_GUI -Node16DCFName=DS401_Slave_Gui.eds -Node32Present=0x01 -Node32Name=GUI2 -Node32DCFName=DS401_Slave_Gui.eds -EDSBaseName=eds diff -r bd54d41a7573 -r ee802ef00ca5 tests/linux/test_svgui/CANopen@canfestival/Master@CanOpenNode/plugin.xml --- a/tests/linux/test_svgui/CANopen@canfestival/Master@CanOpenNode/plugin.xml Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ - - diff -r bd54d41a7573 -r ee802ef00ca5 tests/linux/test_svgui/CANopen@canfestival/baseplugin.xml --- a/tests/linux/test_svgui/CANopen@canfestival/baseplugin.xml Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ - - diff -r bd54d41a7573 -r ee802ef00ca5 tests/linux/test_svgui/CANopen@canfestival/plugin.xml --- a/tests/linux/test_svgui/CANopen@canfestival/plugin.xml Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ - - diff -r bd54d41a7573 -r ee802ef00ca5 tests/linux/test_svgui/beremiz.xml --- a/tests/linux/test_svgui/beremiz.xml Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -r bd54d41a7573 -r ee802ef00ca5 tests/linux/test_svgui/methods.py --- a/tests/linux/test_svgui/methods.py Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -self.logger.write_error("Welcome to the Beremiz Demo\n\n") -self.logger.write("This demo provides a PLC working with the CANopen plugin\n") -self.logger.write("""Some external programs are also provided:\n -- a CAN TCP server to simulate the CANopen network -- a virtual slave node to simulate input block -- a virtual slave node to simulate output block -""") -self.logger.write("\nInfo: For this demo, %s plugin has some special methods to run external programs.\nThese methods are defined in methods.py\n" % (PlugName or "Root")) -#open_pdf(os.path.join(os.path.split(__file__)[0], "doc", "manual_beremiz.pdf"), pagenum=21) - -if wx.Platform == '__WXMSW__': - self.listLaunchProg = [ - {'name' : 'Can Tcp Server', - 'command' : 'can_tcp_win32_server.exe', - 'keyword' : 'Accepts', - 'pid' : None, - 'no_gui' : True}, - {'name' : 'DS401 Slave Gui NodeId 32', - 'command' : 'DS401_Slave_Gui.exe -sI -l can_tcp_win32.dll -b 127.0.0.1 -i 20 -B 125K', - 'keyword' : '[OK]', - 'pid' : None, - 'no_gui' : False}, - {'name' : 'DS401 Slave Gui NodeId 16', - 'command' : 'DS401_Slave_Gui.exe -sO -l can_tcp_win32.dll -b 127.0.0.1 -i 10 -B 125K', - 'keyword' : '[OK]', - 'pid' : None, - 'no_gui' : False} - ] -else: - self.listLaunchProg = [ - {'name' : 'DS401 Slave Gui NodeId 32', - 'command' : '../CanFestival-3/examples/DS401_Slave_Gui/DS401_Slave_Gui -sI -l ../CanFestival-3/drivers/can_socket/libcanfestival_can_socket.so -b vcan0 -i 20 -B 125K', - 'keyword' : '[OK]', - 'pid' : None, - 'no_gui' : False}, - {'name' : 'DS401 Slave Gui NodeId 16', - 'command' : '../CanFestival-3/examples/DS401_Slave_Gui/DS401_Slave_Gui -sO -l ../CanFestival-3/drivers/can_socket/libcanfestival_can_socket.so -b vcan0 -i 10 -B 125K', - 'keyword' : '[OK]', - 'pid' : None, - 'no_gui' : False} - ] - - -def my_methods(self): - def _Run(): - # External programs list - # Launch them and get their pid - for prog in self.listLaunchProg: - self.logger.write("Starting %s\n" % prog['name']) - prog['pid'] = ProcessLogger(self.logger, prog['command'], no_gui=prog['no_gui']) - prog['pid'].spin( - timeout=200, - keyword = prog['keyword'], - kill_it = False) - - PluginsRoot._Run(self) - - def _Stop(): - PluginsRoot._Stop(self) - for prog in self.listLaunchProg: - self.logger.write("Stopping %s\n" % prog['name']) - prog['pid'].kill() - - return _Run, _Stop - -self._Run, self._Stop = my_methods(self) \ No newline at end of file diff -r bd54d41a7573 -r ee802ef00ca5 tests/linux/test_svgui/plc.xml --- a/tests/linux/test_svgui/plc.xml Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2702 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DigitalOut - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AnalogOut1 - - - - - - - - - - - AnalogOut1 - - - - - - - AnalogIn1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AnalogOut2 - - - - - - - AnalogOut2 - - - - - - - AnalogIn2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - UINT#7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DigitalOut - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - T#1s - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AnalogOut3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - REAL#10000.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - REAL#400.0 - - - - - - - REAL#-180.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - REAL#-180.0 - - - - - - - REAL#400.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - INPUT_BYTE - - - - - - - NUM_BIT - - - - - - - - - - - GETBIT - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BYTE#1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - INPUT_BYTE - - - - - - - INPUT_BIT - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NUM_BIT - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BYTE#1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SETBIT - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IN1 - - - - - - - - - - - - - - IN2 - - - - - - - - - - - - - - - - - - - - OUT_OR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IN1 - - - - - - - - - - - - - - IN2 - - - - - - - - - - - - - - OUT_AND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IN1 - - - - - - - - - - - - - - IN1 - - - - - - - - - - - - - - IN2 - - - - - - - - - - - - - - IN2 - - - - - - - - - - - - - - - - - - - - OUT_XOR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IN1 - - - - - - - - - - - - - - IN2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OUT_SR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -= UPPER1;]]> - - - - - - -= UPPER2;]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CNT1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CNT2 - - - - - - - - - - - - - - - - - - - - CNT1 - - - - - - - - - - - - - - CNT2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TEST_ARRAY[0, 1] - - - - - - - UINT#0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r bd54d41a7573 -r ee802ef00ca5 tests/linux/test_svgui/supervisor@svgui/baseplugin.xml --- a/tests/linux/test_svgui/supervisor@svgui/baseplugin.xml Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ - - diff -r bd54d41a7573 -r ee802ef00ca5 tests/linux/test_svgui/supervisor@svgui/gui.svg --- a/tests/linux/test_svgui/supervisor@svgui/gui.svg Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,834 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - Pre-Alpha Release. Copyright © LOLITECH 2008 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Test 1 - - - - Test 1 - - - - Test 2 - - - - Test 2 - - AND - OR - XOR - SR - - - - - - - 100 - 200 - 300 - 400 - 0 - - - - - - - 100 - 200 - 300 - 400 - 0 - - - - - - diff -r bd54d41a7573 -r ee802ef00ca5 tests/linux/test_svgui/supervisor@svgui/gui.xml --- a/tests/linux/test_svgui/supervisor@svgui/gui.xml Wed Aug 12 11:40:26 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ - - -