author | laurent |
Wed, 12 Aug 2009 11:43:40 +0200 | |
changeset 370 | ee802ef00ca5 |
parent 369 | bd54d41a7573 |
child 371 | b7cb57a2da08 |
--- 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
--- 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
--- 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
--- 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; i<s.Length() && i<STR_MAX_LEN; i++) - res.body[i] = s.GetChar(i); - res.len = i; - return res; -} - -"""%{"location" : "_".join(map(str, self.CurrentLocation))} - - return text - - def GenerateProgramEventTable(self): - text = """BEGIN_DECLARE_EVENT_TYPES() -DECLARE_LOCAL_EVENT_TYPE( EVT_PLC, wxNewEventType() ) -END_DECLARE_EVENT_TYPES() - -DEFINE_LOCAL_EVENT_TYPE( EVT_PLC ) - -""" - #Event Table Declaration - text += "BEGIN_EVENT_TABLE(Program, SVGUIWindow)\n" - for element in self.Elements: - element_type = GetElementType(element) - element_name = element.getname() - if element_type == ITEM_BUTTON: - text += " EVT_BUTTON (SVGUIID(\"%s\"), Program::On%sClick)\n"%(element_name, element_name) - elif element_type in [ITEM_SCROLLBAR, ITEM_ROTATING, ITEM_TRANSFORM]: - text += " EVT_COMMAND_SCROLL_THUMBTRACK (SVGUIID(\"%s\"), Program::On%sChanging)\n"%(element_name, element_name) - elif element_type == ITEM_NOTEBOOK: - text += " EVT_NOTEBOOK_PAGE_CHANGED (SVGUIID(\"%s\"), Program::On%sTabChanged)\n"%(element_name, element_name) - text += " EVT_CUSTOM(EVT_PLC, wxID_ANY, Program::OnPlcOutEvent)\n" - text += "END_EVENT_TABLE()\n\n" - return text - - def GenerateProgramInitFrame(self): - text = """MainFrame::MainFrame(wxWindow *parent, const wxString& title, const wxPoint& pos,const wxSize& size, long style): wxFrame(parent, wxID_ANY, title, pos, size, style) -{ - wxFileName svgfilepath(wxTheApp->argv[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
--- 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
--- 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 @@ -<?xml version="1.0" encoding="UTF-8"?> -<BaseParams Name="Master" IEC_Channel="0"/>
--- 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
--- 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
--- 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 @@ -<?xml version="1.0"?> -<!DOCTYPE PyObject SYSTEM "PyObjects.dtd"> -<PyObject module="node" class="Node" id="162426796"> -<attr name="Profile" type="dict" id="162446980" > -</attr> -<attr name="Description" type="string" value="" /> -<attr name="Dictionary" type="dict" id="162446708" > - <entry> - <key type="numeric" value="4096" /> - <val type="numeric" value="0" /> - </entry> - <entry> - <key type="numeric" value="4097" /> - <val type="numeric" value="0" /> - </entry> - <entry> - <key type="numeric" value="4120" /> - <val type="list" id="162447532" > - <item type="numeric" value="0" /> - <item type="numeric" value="0" /> - <item type="numeric" value="0" /> - <item type="numeric" value="0" /> - </val> - </entry> -</attr> -<attr name="SpecificMenu" type="list" id="162426764" > -</attr> -<attr name="ParamsDictionary" type="dict" id="162446300" > -</attr> -<attr name="UserMapping" type="dict" id="162446028" > -</attr> -<attr name="DS302" type="dict" id="161287404" > - <entry> - <key type="numeric" value="7968" /> - <val type="dict" id="160043732" > - <entry> - <key type="string" value="need" /> - <val type="False" value="" /> - </entry> - <entry> - <key type="string" value="values" /> - <val type="list" id="162447628" > - <item type="dict" id="162451772" > - <entry> - <key type="string" value="access" /> - <val type="string" value="ro" /> - </entry> - <entry> - <key type="string" value="pdo" /> - <val type="False" value="" /> - </entry> - <entry> - <key type="string" value="type" /> - <val type="numeric" value="5" /> - </entry> - <entry> - <key type="string" value="name" /> - <val type="string" value="Number of Entries" /> - </entry> - </item> - <item type="dict" id="162446164" > - <entry> - <key type="string" value="access" /> - <val type="string" value="rw" /> - </entry> - <entry> - <key type="string" value="pdo" /> - <val type="False" value="" /> - </entry> - <entry> - <key type="string" value="type" /> - <val type="numeric" value="15" /> - </entry> - <entry> - <key type="string" value="name" /> - <val type="string" value="Store DCF for node %d[(sub)]" /> - </entry> - <entry> - <key type="string" value="nbmax" /> - <val type="numeric" value="127" /> - </entry> - </item> - </val> - </entry> - <entry> - <key type="string" value="name" /> - <val type="string" value="Store DCF" /> - </entry> - <entry> - <key type="string" value="struct" /> - <val type="numeric" value="7" /> - </entry> - </val> - </entry> - <entry> - <key type="numeric" value="7969" /> - <val type="dict" id="162446572" > - <entry> - <key type="string" value="need" /> - <val type="False" value="" /> - </entry> - <entry> - <key type="string" value="values" /> - <val type="list" id="162447788" > - <item type="dict" id="162452044" > - <entry> - <key type="string" value="access" /> - <val type="string" value="ro" /> - </entry> - <entry> - <key type="string" value="pdo" /> - <val type="False" value="" /> - </entry> - <entry> - <key type="string" value="type" /> - <val type="numeric" value="5" /> - </entry> - <entry> - <key type="string" value="name" /> - <val type="string" value="Number of Entries" /> - </entry> - </item> - <item type="dict" id="162452316" > - <entry> - <key type="string" value="access" /> - <val type="string" value="rw" /> - </entry> - <entry> - <key type="string" value="pdo" /> - <val type="False" value="" /> - </entry> - <entry> - <key type="string" value="type" /> - <val type="numeric" value="2" /> - </entry> - <entry> - <key type="string" value="name" /> - <val type="string" value="Storage Format for Node %d[(sub)]" /> - </entry> - <entry> - <key type="string" value="nbmax" /> - <val type="numeric" value="127" /> - </entry> - </item> - </val> - </entry> - <entry> - <key type="string" value="name" /> - <val type="string" value="Storage Format" /> - </entry> - <entry> - <key type="string" value="struct" /> - <val type="numeric" value="7" /> - </entry> - </val> - </entry> - <entry> - <key type="numeric" value="7970" /> - <val type="dict" id="162452452" > - <entry> - <key type="string" value="need" /> - <val type="False" value="" /> - </entry> - <entry> - <key type="string" value="values" /> - <val type="list" id="162447820" > - <item type="dict" id="162447116" > - <entry> - <key type="string" value="access" /> - <val type="string" value="ro" /> - </entry> - <entry> - <key type="string" value="pdo" /> - <val type="False" value="" /> - </entry> - <entry> - <key type="string" value="type" /> - <val type="numeric" value="5" /> - </entry> - <entry> - <key type="string" value="name" /> - <val type="string" value="Number of Entries" /> - </entry> - </item> - <item type="dict" id="162452724" > - <entry> - <key type="string" value="access" /> - <val type="string" value="rw" /> - </entry> - <entry> - <key type="string" value="pdo" /> - <val type="False" value="" /> - </entry> - <entry> - <key type="string" value="type" /> - <val type="numeric" value="15" /> - </entry> - <entry> - <key type="string" value="name" /> - <val type="string" value="Concise DCF for Node %d[(sub)]" /> - </entry> - <entry> - <key type="string" value="nbmax" /> - <val type="numeric" value="127" /> - </entry> - </item> - </val> - </entry> - <entry> - <key type="string" value="name" /> - <val type="string" value="Concise DCF" /> - </entry> - <entry> - <key type="string" value="struct" /> - <val type="numeric" value="7" /> - </entry> - </val> - </entry> -</attr> -<attr name="ProfileName" type="string" value="None" /> -<attr name="Type" type="string" value="master" /> -<attr name="ID" type="numeric" value="0" /> -<attr name="Name" type="string" value="MasterNode" /> -</PyObject>
--- 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
--- 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 @@ -<?xml version="1.0" encoding="UTF-8"?> -<CanFestivalNode CAN_Device="vcan0" CAN_Baudrate="125K" NodeId="1"/>
--- 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 @@ -<?xml version="1.0" encoding="UTF-8"?> -<BaseParams Name="CANopen" IEC_Channel="0"/>
--- 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 @@ -<?xml version="1.0" encoding="UTF-8"?> -<CanFestivalInstance CAN_Driver="../CanFestival-3/drivers/can_socket/libcanfestival_can_socket.so"/>
--- 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 @@ -<?xml version="1.0" encoding="UTF-8"?> -<BeremizRoot URI_location="LOCAL://"> - <TargetType> - <Linux CFLAGS="-g" LDFLAGS=""/> - </TargetType> -</BeremizRoot>
--- 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
--- 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 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns="http://www.plcopen.org/xml/tc6.xsd" - xmlns:xhtml="http://www.w3.org/1999/xhtml" - xsi:schemaLocation="http://www.plcopen.org/xml/tc6.xsd http://www.plcopen.org/xml/tc6.xsd"> - <fileHeader companyName="LOLITECH" - companyURL="www.lolitech.com" - productName="BREMIZ" - productVersion="1" - productRelease="1" - creationDateTime="2007-07-07 11:58:26" - contentDescription="This tests as most as possible IEC standard library"/> - <contentHeader name="STD_TEST" - modificationDateTime="2008-06-26 18:38:30"> - <coordinateInfo> - <fbd> - <scaling x="5" y="5"/> - </fbd> - <ld> - <scaling x="5" y="5"/> - </ld> - <sfc> - <scaling x="5" y="5"/> - </sfc> - </coordinateInfo> - </contentHeader> - <types> - <dataTypes> - <dataType name="MYTYPE"> - <baseType> - <subrangeSigned> - <range lower="0" upper="1000"/> - <baseType> - <INT/> - </baseType> - </subrangeSigned> - </baseType> - </dataType> - <dataType name="MYTYPE2"> - <baseType> - <enum> - <values> - <value name="OPEN"/> - <value name="CLOSED"/> - </values> - </enum> - </baseType> - <initialValue> - <simpleValue value="CLOSED"/> - </initialValue> - </dataType> - <dataType name="MYTYPE3"> - <baseType> - <array> - <dimension lower="0" upper="7"/> - <dimension lower="1" upper="8"/> - <baseType> - <derived name="MYTYPE5"/> - </baseType> - </array> - </baseType> - <initialValue> - <arrayValue> - <value repetitionValue="32"> - <simpleValue value="0"/> - </value> - <value repetitionValue="30"> - <simpleValue value="1"/> - </value> - </arrayValue> - </initialValue> - </dataType> - <dataType name="MYTYPE4"> - <baseType> - <subrangeUnsigned> - <range lower="1" upper="100"/> - <baseType> - <UINT/> - </baseType> - </subrangeUnsigned> - </baseType> - </dataType> - <dataType name="MYTYPE5"> - <baseType> - <derived name="MYTYPE4"/> - </baseType> - <initialValue> - <simpleValue value="10"/> - </initialValue> - </dataType> - </dataTypes> - <pous> - <pou name="MAIN_TEST" pouType="program"> - <interface> - <localVars> - <variable name="DigitalOut" address="%QB0.0.16.25088.1"> - <type> - <BYTE/> - </type> - </variable> - <variable name="DigitalIn" address="%IB0.0.32.24576.1"> - <type> - <BYTE/> - </type> - </variable> - <variable name="AnalogOut1" address="%QW0.0.16.25617.1"> - <type> - <derived name="MYTYPE"/> - </type> - </variable> - <variable name="AnalogOut2" address="%QW0.0.16.25617.2"> - <type> - <derived name="MYTYPE"/> - </type> - </variable> - <variable name="AnalogOut3" address="%QW0.0.16.25617.3"> - <type> - <INT/> - </type> - </variable> - <variable name="AnalogIn1" address="%IW0.0.32.25601.1"> - <type> - <INT/> - </type> - </variable> - <variable name="AnalogIn2" address="%IW0.0.32.25601.2"> - <type> - <INT/> - </type> - </variable> - </localVars> - <localVars> - <variable name="Test"> - <type> - <derived name="Bitwise_Block"/> - </type> - </variable> - <variable name="Test2"> - <type> - <derived name="Test_SFC"/> - </type> - </variable> - <variable name="t1"> - <type> - <derived name="TOF"/> - </type> - </variable> - <variable name="latch"> - <type> - <derived name="RS"/> - </type> - </variable> - <variable name="t2"> - <type> - <derived name="TOF"/> - </type> - </variable> - <variable name="test1"> - <type> - <derived name="Button"/> - </type> - </variable> - <variable name="test2"> - <type> - <derived name="Button"/> - </type> - </variable> - <variable name="LED1"> - <type> - <derived name="Button"/> - </type> - </variable> - <variable name="LED2"> - <type> - <derived name="Button"/> - </type> - </variable> - <variable name="LED3"> - <type> - <derived name="Button"/> - </type> - </variable> - <variable name="LED4"> - <type> - <derived name="Button"/> - </type> - </variable> - <variable name="counter1"> - <type> - <derived name="RotatingCtrl"/> - </type> - </variable> - <variable name="counter2"> - <type> - <derived name="RotatingCtrl"/> - </type> - </variable> - </localVars> - </interface> - <body> - <FBD> - <comment localId="26" height="80" width="475"> - <position x="25" y="5"/> - <content> -<![CDATA[Main program]]> - </content> - </comment> - <inVariable localId="40" height="30" width="100"> - <position x="25" y="155"/> - <connectionPointOut> - <relPosition x="100" y="15"/> - </connectionPointOut> - <expression>DigitalOut</expression> - </inVariable> - <block localId="52" width="127" height="141" typeName="Bitwise_Block" instanceName="Test"> - <position x="410" y="535"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="35"/> - <connection refLocalId="105" formalParameter="State"> - <position x="410" y="570"/> - <position x="240" y="570"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="65"/> - <connection refLocalId="106" formalParameter="State"> - <position x="410" y="600"/> - <position x="350" y="600"/> - <position x="350" y="710"/> - <position x="240" y="710"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT_AND"> - <connectionPointOut> - <relPosition x="127" y="35"/> - </connectionPointOut> - </variable> - <variable formalParameter="OUT_OR"> - <connectionPointOut> - <relPosition x="127" y="65"/> - </connectionPointOut> - </variable> - <variable formalParameter="OUT_XOR"> - <connectionPointOut> - <relPosition x="127" y="95"/> - </connectionPointOut> - </variable> - <variable formalParameter="OUT_SR"> - <connectionPointOut> - <relPosition x="127" y="125"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="59" height="30" width="100"> - <position x="45" y="910"/> - <connectionPointOut> - <relPosition x="100" y="15"/> - </connectionPointOut> - <expression>AnalogOut1</expression> - </inVariable> - <outVariable localId="60" height="30" width="100"> - <position x="910" y="840"/> - <connectionPointIn> - <relPosition x="0" y="15"/> - <connection refLocalId="69" formalParameter="OUT1"> - <position x="910" y="855"/> - <position x="610" y="855"/> - </connection> - </connectionPointIn> - <expression>AnalogOut1</expression> - </outVariable> - <inVariable localId="64" height="30" width="95"> - <position x="45" y="980"/> - <connectionPointOut> - <relPosition x="95" y="15"/> - </connectionPointOut> - <expression>AnalogIn1</expression> - </inVariable> - <block localId="69" width="160" height="230" typeName="Test_SFC" instanceName="Test2"> - <position x="450" y="820"/> - <inputVariables> - <variable formalParameter="CNT1"> - <connectionPointIn> - <relPosition x="0" y="35"/> - <connection refLocalId="105" formalParameter="State"> - <position x="450" y="855"/> - <position x="380" y="855"/> - <position x="380" y="570"/> - <position x="240" y="570"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="CNT2"> - <connectionPointIn> - <relPosition x="0" y="70"/> - <connection refLocalId="106" formalParameter="State"> - <position x="450" y="890"/> - <position x="350" y="890"/> - <position x="350" y="710"/> - <position x="240" y="710"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="105"/> - <connection refLocalId="59"> - <position x="450" y="925"/> - <position x="145" y="925"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="140"/> - <connection refLocalId="71"> - <position x="450" y="960"/> - <position x="145" y="960"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="UPPER1"> - <connectionPointIn> - <relPosition x="0" y="175"/> - <connection refLocalId="64"> - <position x="450" y="995"/> - <position x="140" y="995"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="UPPER2"> - <connectionPointIn> - <relPosition x="0" y="210"/> - <connection refLocalId="72"> - <position x="450" y="1030"/> - <position x="140" y="1030"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT1"> - <connectionPointOut> - <relPosition x="160" y="35"/> - </connectionPointOut> - </variable> - <variable formalParameter="OUT2"> - <connectionPointOut> - <relPosition x="160" y="70"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <outVariable localId="70" height="30" width="100"> - <position x="910" y="875"/> - <connectionPointIn> - <relPosition x="0" y="15"/> - <connection refLocalId="69" formalParameter="OUT2"> - <position x="910" y="890"/> - <position x="610" y="890"/> - </connection> - </connectionPointIn> - <expression>AnalogOut2</expression> - </outVariable> - <inVariable localId="71" height="30" width="100"> - <position x="45" y="945"/> - <connectionPointOut> - <relPosition x="100" y="15"/> - </connectionPointOut> - <expression>AnalogOut2</expression> - </inVariable> - <inVariable localId="72" height="35" width="95"> - <position x="45" y="1015"/> - <connectionPointOut> - <relPosition x="95" y="15"/> - </connectionPointOut> - <expression>AnalogIn2</expression> - </inVariable> - <block localId="73" width="120" height="80" typeName="SETBIT"> - <position x="745" y="140"/> - <inputVariables> - <variable formalParameter="INPUT_BYTE"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="40"> - <position x="745" y="170"/> - <position x="125" y="170"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="INPUT_BIT"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="77" formalParameter="Q"> - <position x="745" y="190"/> - <position x="526" y="190"/> - <position x="526" y="220"/> - <position x="507" y="220"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="NUM_BIT"> - <connectionPointIn> - <relPosition x="0" y="70"/> - <connection refLocalId="74"> - <position x="745" y="210"/> - <position x="540" y="210"/> - <position x="540" y="295"/> - <position x="95" y="295"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter=""> - <connectionPointOut> - <relPosition x="120" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="74" height="30" width="65"> - <position x="30" y="280"/> - <connectionPointOut> - <relPosition x="65" y="15"/> - </connectionPointOut> - <expression>UINT#7</expression> - </inVariable> - <block localId="75" width="120" height="60" typeName="GETBIT"> - <position x="170" y="190"/> - <inputVariables> - <variable formalParameter="INPUT_BYTE"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="40"> - <position x="170" y="220"/> - <position x="150" y="220"/> - <position x="150" y="170"/> - <position x="125" y="170"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="NUM_BIT"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="74"> - <position x="170" y="240"/> - <position x="151" y="240"/> - <position x="151" y="295"/> - <position x="95" y="295"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter=""> - <connectionPointOut> - <relPosition x="120" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <outVariable localId="76" height="30" width="100"> - <position x="910" y="155"/> - <connectionPointIn> - <relPosition x="0" y="15"/> - <connection refLocalId="73"> - <position x="910" y="170"/> - <position x="865" y="170"/> - </connection> - </connectionPointIn> - <expression>DigitalOut</expression> - </outVariable> - <block localId="77" width="57" height="60" typeName="TP" instanceName="t1"> - <position x="450" y="190"/> - <inputVariables> - <variable formalParameter="IN" negated="true"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="85" formalParameter="Q"> - <position x="450" y="220"/> - <position x="400" y="220"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="PT"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="80"> - <position x="450" y="240"/> - <position x="420" y="240"/> - <position x="420" y="270"/> - <position x="220" y="270"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="Q"> - <connectionPointOut> - <relPosition x="57" y="30"/> - </connectionPointOut> - </variable> - <variable formalParameter="ET"> - <connectionPointOut> - <relPosition x="57" y="50"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="80" height="27" width="50"> - <position x="170" y="255"/> - <connectionPointOut> - <relPosition x="50" y="15"/> - </connectionPointOut> - <expression>T#1s</expression> - </inVariable> - <block localId="85" width="60" height="60" typeName="TOF" instanceName="t2"> - <position x="340" y="190"/> - <inputVariables> - <variable formalParameter="IN"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="75"> - <position x="340" y="220"/> - <position x="290" y="220"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="PT"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="80"> - <position x="340" y="240"/> - <position x="296" y="240"/> - <position x="296" y="270"/> - <position x="220" y="270"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="Q"> - <connectionPointOut> - <relPosition x="60" y="30"/> - </connectionPointOut> - </variable> - <variable formalParameter="ET"> - <connectionPointOut> - <relPosition x="60" y="50"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <outVariable localId="86" height="30" width="100"> - <position x="910" y="330"/> - <connectionPointIn> - <relPosition x="0" y="15"/> - <connection refLocalId="90" formalParameter="OUT"> - <position x="910" y="345"/> - <position x="865" y="345"/> - </connection> - </connectionPointIn> - <expression>AnalogOut3</expression> - </outVariable> - <block localId="87" width="120" height="40" typeName="TIME_TO_REAL"> - <position x="455" y="315"/> - <inputVariables> - <variable formalParameter="IN"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="77" formalParameter="ET"> - <position x="455" y="345"/> - <position x="445" y="345"/> - <position x="445" y="275"/> - <position x="517" y="275"/> - <position x="517" y="240"/> - <position x="507" y="240"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="120" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <block localId="88" width="80" height="60" typeName="MUL"> - <position x="630" y="315"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="87" formalParameter="OUT"> - <position x="630" y="345"/> - <position x="575" y="345"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="89"> - <position x="630" y="365"/> - <position x="607" y="365"/> - <position x="607" y="400"/> - <position x="585" y="400"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="80" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="89" height="35" width="120"> - <position x="465" y="385"/> - <connectionPointOut> - <relPosition x="120" y="15"/> - </connectionPointOut> - <expression>REAL#10000.0</expression> - </inVariable> - <block localId="90" width="120" height="40" typeName="REAL_TO_INT"> - <position x="745" y="315"/> - <inputVariables> - <variable formalParameter="IN"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="88" formalParameter="OUT"> - <position x="745" y="345"/> - <position x="710" y="345"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="120" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <comment localId="100" height="40" width="400"> - <position x="25" y="100"/> - <content> -<![CDATA[A simple blinking output (2s period)]]> - </content> - </comment> - <comment localId="102" height="40" width="430"> - <position x="580" y="255"/> - <content> -<![CDATA[Output value of TP block as analog output #3]]> - </content> - </comment> - <comment localId="103" height="65" width="420"> - <position x="25" y="425"/> - <content> -<![CDATA[Map input and output of bitwise_block test to bits of DigitalIn and Digital out]]> - </content> - </comment> - <comment localId="104" height="85" width="285"> - <position x="40" y="805"/> - <content> -<![CDATA[Map AnalogIN #1 #2 and AnalogOUT #1 #2 to SFC test interface]]> - </content> - </comment> - <block localId="105" width="150" height="100" typeName="Button" instanceName="test1"> - <position x="90" y="535"/> - <inputVariables> - <variable formalParameter="Show"> - <connectionPointIn> - <relPosition x="0" y="35"/> - </connectionPointIn> - </variable> - <variable formalParameter="Enable"> - <connectionPointIn> - <relPosition x="0" y="60"/> - </connectionPointIn> - </variable> - <variable formalParameter="Toggle"> - <connectionPointIn> - <relPosition x="0" y="85"/> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="State"> - <connectionPointOut> - <relPosition x="150" y="35"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <block localId="106" width="150" height="100" typeName="Button" instanceName="test2"> - <position x="90" y="675"/> - <inputVariables> - <variable formalParameter="Show"> - <connectionPointIn> - <relPosition x="0" y="35"/> - </connectionPointIn> - </variable> - <variable formalParameter="Enable"> - <connectionPointIn> - <relPosition x="0" y="60"/> - </connectionPointIn> - </variable> - <variable formalParameter="Toggle"> - <connectionPointIn> - <relPosition x="0" y="85"/> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="State"> - <connectionPointOut> - <relPosition x="150" y="35"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <block localId="107" width="150" height="90" typeName="Button" instanceName="LED1"> - <position x="675" y="405"/> - <inputVariables> - <variable formalParameter="Show"> - <connectionPointIn> - <relPosition x="0" y="30"/> - </connectionPointIn> - </variable> - <variable formalParameter="Enable"> - <connectionPointIn> - <relPosition x="0" y="55"/> - </connectionPointIn> - </variable> - <variable formalParameter="Toggle"> - <connectionPointIn> - <relPosition x="0" y="75"/> - <connection refLocalId="52" formalParameter="OUT_AND"> - <position x="675" y="480"/> - <position x="650" y="480"/> - <position x="650" y="570"/> - <position x="537" y="570"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="State"> - <connectionPointOut> - <relPosition x="150" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <block localId="108" width="150" height="90" typeName="Button" instanceName="LED2"> - <position x="675" y="525"/> - <inputVariables> - <variable formalParameter="Show"> - <connectionPointIn> - <relPosition x="0" y="30"/> - </connectionPointIn> - </variable> - <variable formalParameter="Enable"> - <connectionPointIn> - <relPosition x="0" y="55"/> - </connectionPointIn> - </variable> - <variable formalParameter="Toggle"> - <connectionPointIn> - <relPosition x="0" y="75"/> - <connection refLocalId="52" formalParameter="OUT_OR"> - <position x="675" y="600"/> - <position x="537" y="600"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="State"> - <connectionPointOut> - <relPosition x="150" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <block localId="109" width="150" height="85" typeName="Button" instanceName="LED3"> - <position x="675" y="640"/> - <inputVariables> - <variable formalParameter="Show"> - <connectionPointIn> - <relPosition x="0" y="30"/> - </connectionPointIn> - </variable> - <variable formalParameter="Enable"> - <connectionPointIn> - <relPosition x="0" y="50"/> - </connectionPointIn> - </variable> - <variable formalParameter="Toggle"> - <connectionPointIn> - <relPosition x="0" y="70"/> - <connection refLocalId="52" formalParameter="OUT_XOR"> - <position x="675" y="710"/> - <position x="650" y="710"/> - <position x="650" y="630"/> - <position x="537" y="630"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="State"> - <connectionPointOut> - <relPosition x="150" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <block localId="110" width="150" height="85" typeName="Button" instanceName="LED4"> - <position x="675" y="750"/> - <inputVariables> - <variable formalParameter="Show"> - <connectionPointIn> - <relPosition x="0" y="30"/> - </connectionPointIn> - </variable> - <variable formalParameter="Enable"> - <connectionPointIn> - <relPosition x="0" y="50"/> - </connectionPointIn> - </variable> - <variable formalParameter="Toggle"> - <connectionPointIn> - <relPosition x="0" y="70"/> - <connection refLocalId="52" formalParameter="OUT_SR"> - <position x="675" y="820"/> - <position x="630" y="820"/> - <position x="630" y="660"/> - <position x="537" y="660"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="State"> - <connectionPointOut> - <relPosition x="150" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <block localId="111" width="150" height="105" typeName="RotatingCtrl" instanceName="counter1"> - <position x="1195" y="880"/> - <inputVariables> - <variable formalParameter="Show"> - <connectionPointIn> - <relPosition x="0" y="35"/> - </connectionPointIn> - </variable> - <variable formalParameter="Enable"> - <connectionPointIn> - <relPosition x="0" y="60"/> - </connectionPointIn> - </variable> - <variable formalParameter="SetAngle"> - <connectionPointIn> - <relPosition x="0" y="90"/> - <connection refLocalId="113" formalParameter="OUT"> - <position x="1195" y="970"/> - <position x="1130" y="970"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="Angle"> - <connectionPointOut> - <relPosition x="150" y="35"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <block localId="112" width="120" height="45" typeName="INT_TO_REAL"> - <position x="680" y="940"/> - <inputVariables> - <variable formalParameter="IN"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="69" formalParameter="OUT1"> - <position x="680" y="970"/> - <position x="645" y="970"/> - <position x="645" y="855"/> - <position x="610" y="855"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="120" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <block localId="113" width="100" height="85" typeName="MUL"> - <position x="1030" y="935"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="35"/> - <connection refLocalId="114" formalParameter="OUT"> - <position x="1030" y="970"/> - <position x="960" y="970"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="70"/> - <connection refLocalId="116"> - <position x="1030" y="1005"/> - <position x="1002" y="1005"/> - <position x="1002" y="1045"/> - <position x="975" y="1045"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="100" y="35"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <block localId="114" width="95" height="80" typeName="DIV"> - <position x="865" y="935"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="35"/> - <connection refLocalId="112" formalParameter="OUT"> - <position x="865" y="970"/> - <position x="800" y="970"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="65"/> - <connection refLocalId="115"> - <position x="865" y="1000"/> - <position x="830" y="1000"/> - <position x="830" y="1025"/> - <position x="795" y="1025"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="95" y="35"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="115" height="25" width="110"> - <position x="685" y="1015"/> - <connectionPointOut> - <relPosition x="110" y="10"/> - </connectionPointOut> - <expression>REAL#400.0</expression> - </inVariable> - <inVariable localId="116" height="25" width="120"> - <position x="855" y="1035"/> - <connectionPointOut> - <relPosition x="120" y="10"/> - </connectionPointOut> - <expression>REAL#-180.0</expression> - </inVariable> - <block localId="117" width="100" height="85" typeName="MUL"> - <position x="1035" y="1080"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="35"/> - <connection refLocalId="118" formalParameter="OUT"> - <position x="1035" y="1115"/> - <position x="965" y="1115"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="70"/> - <connection refLocalId="119"> - <position x="1035" y="1150"/> - <position x="1007" y="1150"/> - <position x="1007" y="1190"/> - <position x="980" y="1190"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="100" y="35"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <block localId="118" width="95" height="80" typeName="DIV"> - <position x="870" y="1080"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="35"/> - <connection refLocalId="121" formalParameter="OUT"> - <position x="870" y="1115"/> - <position x="805" y="1115"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="65"/> - <connection refLocalId="120"> - <position x="870" y="1145"/> - <position x="835" y="1145"/> - <position x="835" y="1170"/> - <position x="800" y="1170"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="95" y="35"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="119" height="25" width="120"> - <position x="860" y="1180"/> - <connectionPointOut> - <relPosition x="120" y="10"/> - </connectionPointOut> - <expression>REAL#-180.0</expression> - </inVariable> - <inVariable localId="120" height="25" width="110"> - <position x="690" y="1160"/> - <connectionPointOut> - <relPosition x="110" y="10"/> - </connectionPointOut> - <expression>REAL#400.0</expression> - </inVariable> - <block localId="121" width="120" height="45" typeName="INT_TO_REAL"> - <position x="685" y="1085"/> - <inputVariables> - <variable formalParameter="IN"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="69" formalParameter="OUT2"> - <position x="685" y="1115"/> - <position x="630" y="1115"/> - <position x="630" y="890"/> - <position x="610" y="890"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="120" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <block localId="122" width="150" height="105" typeName="RotatingCtrl" instanceName="counter2"> - <position x="1195" y="1025"/> - <inputVariables> - <variable formalParameter="Show"> - <connectionPointIn> - <relPosition x="0" y="35"/> - </connectionPointIn> - </variable> - <variable formalParameter="Enable"> - <connectionPointIn> - <relPosition x="0" y="60"/> - </connectionPointIn> - </variable> - <variable formalParameter="SetAngle"> - <connectionPointIn> - <relPosition x="0" y="90"/> - <connection refLocalId="117" formalParameter="OUT"> - <position x="1195" y="1115"/> - <position x="1135" y="1115"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="Angle"> - <connectionPointOut> - <relPosition x="150" y="35"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - </FBD> - </body> - </pou> - <pou name="GETBIT" pouType="function"> - <interface> - <returnType> - <BOOL/> - </returnType> - <inputVars> - <variable name="INPUT_BYTE"> - <type> - <BYTE/> - </type> - </variable> - <variable name="NUM_BIT"> - <type> - <USINT/> - </type> - </variable> - </inputVars> - </interface> - <body> - <FBD> - <block localId="1" width="70" height="60" typeName="SHR"> - <position x="175" y="110"/> - <inputVariables> - <variable formalParameter="IN"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="2"> - <position x="175" y="140"/> - <position x="135" y="140"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="N"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="3"> - <position x="175" y="160"/> - <position x="140" y="160"/> - <position x="140" y="180"/> - <position x="105" y="180"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="70" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="2" height="30" width="105"> - <position x="30" y="125"/> - <connectionPointOut> - <relPosition x="105" y="15"/> - </connectionPointOut> - <expression>INPUT_BYTE</expression> - </inVariable> - <inVariable localId="3" height="30" width="75"> - <position x="30" y="165"/> - <connectionPointOut> - <relPosition x="75" y="15"/> - </connectionPointOut> - <expression>NUM_BIT</expression> - </inVariable> - <outVariable localId="4" height="30" width="65"> - <position x="555" y="125"/> - <connectionPointIn> - <relPosition x="0" y="15"/> - <connection refLocalId="7" formalParameter="OUT"> - <position x="555" y="140"/> - <position x="525" y="140"/> - </connection> - </connectionPointIn> - <expression>GETBIT</expression> - </outVariable> - <block localId="5" width="85" height="60" typeName="AND"> - <position x="275" y="110"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="1" formalParameter="OUT"> - <position x="275" y="140"/> - <position x="245" y="140"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="6"> - <position x="275" y="160"/> - <position x="255" y="160"/> - <position x="255" y="195"/> - <position x="240" y="195"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="85" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="6" height="30" width="65"> - <position x="175" y="180"/> - <connectionPointOut> - <relPosition x="65" y="15"/> - </connectionPointOut> - <expression>BYTE#1</expression> - </inVariable> - <block localId="7" width="120" height="40" typeName="BYTE_TO_BOOL"> - <position x="405" y="110"/> - <inputVariables> - <variable formalParameter="IN"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="5" formalParameter="OUT"> - <position x="405" y="140"/> - <position x="360" y="140"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="120" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <comment localId="8" height="70" width="545"> - <position x="30" y="20"/> - <content> -<![CDATA[Function that return NUM_BIT'th bit value of INPUT_BYTE]]> - </content> - </comment> - </FBD> - </body> - </pou> - <pou name="SETBIT" pouType="function"> - <interface> - <returnType> - <BYTE/> - </returnType> - <inputVars> - <variable name="INPUT_BYTE"> - <type> - <BYTE/> - </type> - </variable> - <variable name="INPUT_BIT"> - <type> - <BOOL/> - </type> - </variable> - <variable name="NUM_BIT"> - <type> - <USINT/> - </type> - </variable> - </inputVars> - </interface> - <body> - <FBD> - <inVariable localId="1" height="30" width="100"> - <position x="40" y="255"/> - <connectionPointOut> - <relPosition x="100" y="15"/> - </connectionPointOut> - <expression>INPUT_BYTE</expression> - </inVariable> - <inVariable localId="2" height="30" width="95"> - <position x="40" y="125"/> - <connectionPointOut> - <relPosition x="95" y="15"/> - </connectionPointOut> - <expression>INPUT_BIT</expression> - </inVariable> - <block localId="3" width="120" height="45" typeName="BOOL_TO_BYTE"> - <position x="165" y="110"/> - <inputVariables> - <variable formalParameter="IN"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="2"> - <position x="165" y="140"/> - <position x="135" y="140"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="120" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <block localId="4" width="70" height="60" typeName="SHL"> - <position x="335" y="110"/> - <inputVariables> - <variable formalParameter="IN"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="3" formalParameter="OUT"> - <position x="335" y="140"/> - <position x="285" y="140"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="N"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="5"> - <position x="335" y="160"/> - <position x="130" y="160"/> - <position x="130" y="230"/> - <position x="115" y="230"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="70" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="5" height="30" width="75"> - <position x="40" y="215"/> - <connectionPointOut> - <relPosition x="75" y="15"/> - </connectionPointOut> - <expression>NUM_BIT</expression> - </inVariable> - <block localId="7" width="70" height="60" typeName="SHL"> - <position x="235" y="180"/> - <inputVariables> - <variable formalParameter="IN"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="8"> - <position x="235" y="210"/> - <position x="215" y="210"/> - <position x="220" y="210"/> - <position x="220" y="210"/> - <position x="220" y="210"/> - <position x="210" y="210"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="N"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="5"> - <position x="235" y="230"/> - <position x="115" y="230"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="70" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="8" height="30" width="65"> - <position x="145" y="195"/> - <connectionPointOut> - <relPosition x="65" y="15"/> - </connectionPointOut> - <expression>BYTE#1</expression> - </inVariable> - <block localId="9" width="70" height="40" typeName="NOT"> - <position x="335" y="180"/> - <inputVariables> - <variable formalParameter="IN"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="7" formalParameter="OUT"> - <position x="335" y="210"/> - <position x="305" y="210"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="70" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <block localId="10" width="80" height="60" typeName="AND"> - <position x="440" y="180"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="9" formalParameter="OUT"> - <position x="440" y="210"/> - <position x="405" y="210"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="1"> - <position x="440" y="230"/> - <position x="320" y="230"/> - <position x="320" y="270"/> - <position x="140" y="270"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="80" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <block localId="11" width="80" height="60" typeName="OR"> - <position x="565" y="110"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="4" formalParameter="OUT"> - <position x="565" y="140"/> - <position x="405" y="140"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="50"/> - <connection refLocalId="10" formalParameter="OUT"> - <position x="565" y="160"/> - <position x="545" y="160"/> - <position x="545" y="210"/> - <position x="520" y="210"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="80" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <outVariable localId="12" height="30" width="70"> - <position x="695" y="125"/> - <connectionPointIn> - <relPosition x="0" y="15"/> - <connection refLocalId="11" formalParameter="OUT"> - <position x="695" y="140"/> - <position x="645" y="140"/> - </connection> - </connectionPointIn> - <expression>SETBIT</expression> - </outVariable> - <comment localId="13" height="75" width="435"> - <position x="35" y="15"/> - <content> -<![CDATA[Function that return INPUT_BYTE with NUM_BIT'th bit set to INPUT_BIT value]]> - </content> - </comment> - </FBD> - </body> - </pou> - <pou name="Bitwise_Block" pouType="functionBlock"> - <interface> - <inputVars> - <variable name="IN1"> - <type> - <BOOL/> - </type> - </variable> - <variable name="IN2"> - <type> - <BOOL/> - </type> - </variable> - </inputVars> - <outputVars> - <variable name="OUT_AND"> - <type> - <BOOL/> - </type> - </variable> - <variable name="OUT_OR"> - <type> - <BOOL/> - </type> - </variable> - <variable name="OUT_XOR"> - <type> - <BOOL/> - </type> - </variable> - <variable name="OUT_SR"> - <type> - <BOOL/> - </type> - </variable> - </outputVars> - <localVars> - <variable name="SR1"> - <type> - <derived name="SR"/> - </type> - </variable> - </localVars> - </interface> - <body> - <LD> - <leftPowerRail localId="1" height="80" width="3"> - <position x="40" y="180"/> - <connectionPointOut formalParameter=""> - <relPosition x="3" y="20"/> - </connectionPointOut> - <connectionPointOut formalParameter=""> - <relPosition x="3" y="55"/> - </connectionPointOut> - </leftPowerRail> - <contact localId="2" height="15" width="25"> - <position x="90" y="190"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="1"> - <position x="90" y="200"/> - <position x="43" y="200"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="25" y="10"/> - </connectionPointOut> - <variable>IN1</variable> - </contact> - <contact localId="3" height="20" width="25"> - <position x="90" y="225"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="1"> - <position x="90" y="235"/> - <position x="43" y="235"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="25" y="10"/> - </connectionPointOut> - <variable>IN2</variable> - </contact> - <coil localId="4" height="20" width="25"> - <position x="225" y="190"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="2"> - <position x="225" y="200"/> - <position x="115" y="200"/> - </connection> - <connection refLocalId="3"> - <position x="225" y="200"/> - <position x="189" y="200"/> - <position x="189" y="235"/> - <position x="115" y="235"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="25" y="10"/> - </connectionPointOut> - <variable>OUT_OR</variable> - </coil> - <rightPowerRail localId="5" height="40" width="3"> - <position x="350" y="180"/> - <connectionPointIn> - <relPosition x="0" y="20"/> - <connection refLocalId="4"> - <position x="350" y="200"/> - <position x="250" y="200"/> - </connection> - </connectionPointIn> - </rightPowerRail> - <leftPowerRail localId="6" height="40" width="3"> - <position x="40" y="315"/> - <connectionPointOut formalParameter=""> - <relPosition x="3" y="20"/> - </connectionPointOut> - </leftPowerRail> - <contact localId="7" height="20" width="25"> - <position x="100" y="325"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="6"> - <position x="100" y="335"/> - <position x="43" y="335"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="25" y="10"/> - </connectionPointOut> - <variable>IN1</variable> - </contact> - <contact localId="8" height="20" width="25"> - <position x="185" y="325"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="7"> - <position x="185" y="335"/> - <position x="125" y="335"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="25" y="10"/> - </connectionPointOut> - <variable>IN2</variable> - </contact> - <coil localId="9" height="20" width="25"> - <position x="275" y="325"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="8"> - <position x="275" y="335"/> - <position x="210" y="335"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="25" y="10"/> - </connectionPointOut> - <variable>OUT_AND</variable> - </coil> - <rightPowerRail localId="10" height="40" width="3"> - <position x="350" y="315"/> - <connectionPointIn> - <relPosition x="0" y="20"/> - <connection refLocalId="9"> - <position x="350" y="335"/> - <position x="300" y="335"/> - </connection> - </connectionPointIn> - </rightPowerRail> - <leftPowerRail localId="11" height="80" width="3"> - <position x="40" y="415"/> - <connectionPointOut formalParameter=""> - <relPosition x="3" y="20"/> - </connectionPointOut> - <connectionPointOut formalParameter=""> - <relPosition x="3" y="60"/> - </connectionPointOut> - </leftPowerRail> - <contact localId="12" height="20" width="25"> - <position x="100" y="425"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="11"> - <position x="100" y="435"/> - <position x="43" y="435"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="25" y="10"/> - </connectionPointOut> - <variable>IN1</variable> - </contact> - <contact localId="13" height="20" width="25" negated="true"> - <position x="100" y="465"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="11"> - <position x="100" y="475"/> - <position x="43" y="475"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="25" y="10"/> - </connectionPointOut> - <variable>IN1</variable> - </contact> - <contact localId="14" height="20" width="25" negated="true"> - <position x="190" y="425"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="12"> - <position x="190" y="435"/> - <position x="125" y="435"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="25" y="10"/> - </connectionPointOut> - <variable>IN2</variable> - </contact> - <contact localId="15" height="20" width="25"> - <position x="190" y="465"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="13"> - <position x="190" y="475"/> - <position x="125" y="475"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="25" y="10"/> - </connectionPointOut> - <variable>IN2</variable> - </contact> - <coil localId="16" height="20" width="30"> - <position x="295" y="425"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="14"> - <position x="295" y="435"/> - <position x="215" y="435"/> - </connection> - <connection refLocalId="15"> - <position x="295" y="435"/> - <position x="270" y="435"/> - <position x="270" y="475"/> - <position x="215" y="475"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="30" y="10"/> - </connectionPointOut> - <variable>OUT_XOR</variable> - </coil> - <rightPowerRail localId="17" height="40" width="3"> - <position x="350" y="415"/> - <connectionPointIn> - <relPosition x="0" y="20"/> - <connection refLocalId="16"> - <position x="350" y="435"/> - <position x="325" y="435"/> - </connection> - </connectionPointIn> - </rightPowerRail> - <leftPowerRail localId="18" height="80" width="3"> - <position x="40" y="550"/> - <connectionPointOut formalParameter=""> - <relPosition x="3" y="20"/> - </connectionPointOut> - <connectionPointOut formalParameter=""> - <relPosition x="3" y="60"/> - </connectionPointOut> - </leftPowerRail> - <contact localId="19" height="20" width="25"> - <position x="100" y="560"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="18"> - <position x="100" y="570"/> - <position x="43" y="570"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="25" y="10"/> - </connectionPointOut> - <variable>IN1</variable> - </contact> - <contact localId="21" height="20" width="25"> - <position x="100" y="600"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="18"> - <position x="100" y="610"/> - <position x="43" y="610"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="25" y="10"/> - </connectionPointOut> - <variable>IN2</variable> - </contact> - <block localId="22" width="60" height="100" typeName="SR" instanceName="SR1"> - <position x="170" y="530"/> - <inputVariables> - <variable formalParameter="S1"> - <connectionPointIn> - <relPosition x="0" y="40"/> - <connection refLocalId="19"> - <position x="170" y="570"/> - <position x="125" y="570"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="R"> - <connectionPointIn> - <relPosition x="0" y="80"/> - <connection refLocalId="21"> - <position x="170" y="610"/> - <position x="125" y="610"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="Q1"> - <connectionPointOut> - <relPosition x="60" y="40"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <coil localId="24" height="20" width="25"> - <position x="295" y="560"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="22" formalParameter="Q1"> - <position x="295" y="570"/> - <position x="230" y="570"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="25" y="10"/> - </connectionPointOut> - <variable>OUT_SR</variable> - </coil> - <rightPowerRail localId="25" height="40" width="3"> - <position x="350" y="550"/> - <connectionPointIn> - <relPosition x="0" y="20"/> - <connection refLocalId="24"> - <position x="350" y="570"/> - <position x="320" y="570"/> - </connection> - </connectionPointIn> - </rightPowerRail> - <comment localId="26" height="85" width="385"> - <position x="25" y="35"/> - <content> -<![CDATA[A LD function block that embeds some FB and check basic LD]]> - </content> - </comment> - </LD> - </body> - </pou> - <pou name="Test_SFC" pouType="functionBlock"> - <interface> - <inputVars> - <variable name="CNT1"> - <type> - <BOOL/> - </type> - </variable> - <variable name="CNT2"> - <type> - <BOOL/> - </type> - </variable> - <variable name="IN1"> - <type> - <derived name="MYTYPE"/> - </type> - </variable> - <variable name="IN2"> - <type> - <derived name="MYTYPE"/> - </type> - </variable> - <variable name="UPPER1"> - <type> - <INT/> - </type> - </variable> - <variable name="UPPER2"> - <type> - <INT/> - </type> - </variable> - </inputVars> - <outputVars> - <variable name="OUT1"> - <type> - <derived name="MYTYPE"/> - </type> - </variable> - <variable name="OUT2"> - <type> - <derived name="MYTYPE"/> - </type> - </variable> - </outputVars> - <localVars> - <variable name="TEST_ENUM"> - <type> - <derived name="MYTYPE2"/> - </type> - </variable> - <variable name="TEST_ARRAY"> - <type> - <derived name="MYTYPE3"/> - </type> - </variable> - <variable name="GO"> - <type> - <BOOL/> - </type> - </variable> - </localVars> - </interface> - <actions> - <action name="COUNT1"> - <body> - <ST> -<![CDATA[OUT1 := IN1 + 1; -TEST_ENUM := OPEN; -]]> - </ST> - </body> - </action> - <action name="COUNT2"> - <body> - <ST> -<![CDATA[OUT2 := IN2 + 1; -TEST_ARRAY[0,1] := TEST_ARRAY[0,2] + 50; -]]> - </ST> - </body> - </action> - </actions> - <transitions> - <transition name="REACH_UPPER1"> - <body> - <ST> -<![CDATA[:= OUT1 >= UPPER1;]]> - </ST> - </body> - </transition> - <transition name="REACH_UPPER2"> - <body> - <ST> -<![CDATA[:= OUT2 >= UPPER2;]]> - </ST> - </body> - </transition> - </transitions> - <body> - <SFC> - <step localId="1" height="31" width="55" name="Start" initialStep="true"> - <position x="125" y="170"/> - <connectionPointOut formalParameter=""> - <relPosition x="25" y="31"/> - </connectionPointOut> - <connectionPointOutAction formalParameter=""> - <relPosition x="55" y="15"/> - </connectionPointOutAction> - </step> - <step localId="4" height="30" width="55" name="Step3"> - <position x="440" y="370"/> - <connectionPointIn> - <relPosition x="25" y="0"/> - <connection refLocalId="22"> - <position x="465" y="370"/> - <position x="465" y="348"/> - </connection> - </connectionPointIn> - <connectionPointOut formalParameter=""> - <relPosition x="25" y="30"/> - </connectionPointOut> - <connectionPointOutAction formalParameter=""> - <relPosition x="55" y="15"/> - </connectionPointOutAction> - </step> - <jumpStep localId="5" height="13" width="20" targetName="Start"> - <position x="205" y="755"/> - <connectionPointIn> - <relPosition x="10" y="0"/> - <connection refLocalId="56"> - <position x="215" y="755"/> - <position x="215" y="715"/> - </connection> - </connectionPointIn> - </jumpStep> - <transition localId="8" height="2" width="20"> - <position x="560" y="565"/> - <connectionPointIn> - <relPosition x="10" y="0"/> - <connection refLocalId="25"> - <position x="570" y="565"/> - <position x="570" y="523"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="10" y="2"/> - </connectionPointOut> - <condition> - <inline name=""> - <ST> -<![CDATA[TRUE]]> - </ST> - </inline> - </condition> - </transition> - <actionBlock localId="9" height="30" width="90"> - <position x="325" y="375"/> - <connectionPointIn> - <relPosition x="0" y="15"/> - <connection refLocalId="13"> - <position x="325" y="390"/> - <position x="300" y="390"/> - </connection> - </connectionPointIn> - <action> - <reference name="COUNT1"/> - </action> - </actionBlock> - <actionBlock localId="10" height="30" width="90"> - <position x="520" y="370"/> - <connectionPointIn> - <relPosition x="0" y="15"/> - <connection refLocalId="4"> - <position x="520" y="385"/> - <position x="495" y="385"/> - </connection> - </connectionPointIn> - <action> - <reference name="COUNT1"/> - </action> - </actionBlock> - <selectionDivergence localId="11" height="1" width="530"> - <position x="45" y="230"/> - <connectionPointIn> - <relPosition x="105" y="0"/> - <connection refLocalId="1"> - <position x="150" y="230"/> - <position x="150" y="201"/> - </connection> - </connectionPointIn> - <connectionPointOut formalParameter=""> - <relPosition x="0" y="1"/> - </connectionPointOut> - <connectionPointOut formalParameter=""> - <relPosition x="225" y="1"/> - </connectionPointOut> - <connectionPointOut formalParameter=""> - <relPosition x="530" y="1"/> - </connectionPointOut> - </selectionDivergence> - <selectionConvergence localId="12" height="1" width="525"> - <position x="45" y="600"/> - <connectionPointIn> - <relPosition x="0" y="0"/> - <connection refLocalId="38"> - <position x="45" y="600"/> - <position x="45" y="472"/> - </connection> - </connectionPointIn> - <connectionPointIn> - <relPosition x="225" y="0"/> - <connection refLocalId="15"> - <position x="270" y="600"/> - <position x="270" y="472"/> - </connection> - </connectionPointIn> - <connectionPointIn> - <relPosition x="525" y="0"/> - <connection refLocalId="8"> - <position x="570" y="600"/> - <position x="570" y="567"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="170" y="1"/> - </connectionPointOut> - </selectionConvergence> - <step localId="13" height="30" width="55" name="Step1"> - <position x="245" y="375"/> - <connectionPointIn> - <relPosition x="25" y="0"/> - <connection refLocalId="44"> - <position x="270" y="375"/> - <position x="270" y="280"/> - </connection> - </connectionPointIn> - <connectionPointOut formalParameter=""> - <relPosition x="25" y="30"/> - </connectionPointOut> - <connectionPointOutAction formalParameter=""> - <relPosition x="55" y="15"/> - </connectionPointOutAction> - </step> - <transition localId="15" height="2" width="20"> - <position x="260" y="470"/> - <connectionPointIn> - <relPosition x="10" y="0"/> - <connection refLocalId="13"> - <position x="270" y="470"/> - <position x="270" y="405"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="10" y="2"/> - </connectionPointOut> - <condition> - <reference name="REACH_UPPER1"/> - </condition> - </transition> - <simultaneousDivergence localId="22" height="3" width="210"> - <position x="465" y="345"/> - <connectionPointIn> - <relPosition x="110" y="0"/> - <connection refLocalId="45"> - <position x="575" y="345"/> - <position x="575" y="280"/> - </connection> - </connectionPointIn> - <connectionPointOut formalParameter=""> - <relPosition x="0" y="3"/> - </connectionPointOut> - <connectionPointOut formalParameter=""> - <relPosition x="210" y="3"/> - </connectionPointOut> - </simultaneousDivergence> - <transition localId="23" height="2" width="20"> - <position x="455" y="430"/> - <connectionPointIn> - <relPosition x="10" y="0"/> - <connection refLocalId="4"> - <position x="465" y="430"/> - <position x="465" y="400"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="10" y="2"/> - </connectionPointOut> - <condition> - <reference name="REACH_UPPER1"/> - </condition> - </transition> - <step localId="24" height="27" width="55" name="WAIT1"> - <position x="440" y="465"/> - <connectionPointIn> - <relPosition x="25" y="0"/> - <connection refLocalId="23"> - <position x="465" y="465"/> - <position x="465" y="432"/> - </connection> - </connectionPointIn> - <connectionPointOut formalParameter=""> - <relPosition x="25" y="27"/> - </connectionPointOut> - </step> - <simultaneousConvergence localId="25" height="3" width="210"> - <position x="465" y="520"/> - <connectionPointIn> - <relPosition x="0" y="0"/> - <connection refLocalId="24"> - <position x="465" y="520"/> - <position x="465" y="492"/> - </connection> - </connectionPointIn> - <connectionPointIn> - <relPosition x="210" y="0"/> - <connection refLocalId="29"> - <position x="675" y="520"/> - <position x="675" y="492"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="105" y="3"/> - </connectionPointOut> - </simultaneousConvergence> - <step localId="26" height="30" width="55" name="Step4"> - <position x="650" y="370"/> - <connectionPointIn> - <relPosition x="25" y="0"/> - <connection refLocalId="22"> - <position x="675" y="370"/> - <position x="675" y="348"/> - </connection> - </connectionPointIn> - <connectionPointOut formalParameter=""> - <relPosition x="25" y="30"/> - </connectionPointOut> - <connectionPointOutAction formalParameter=""> - <relPosition x="55" y="15"/> - </connectionPointOutAction> - </step> - <transition localId="28" height="2" width="20"> - <position x="665" y="430"/> - <connectionPointIn> - <relPosition x="10" y="0"/> - <connection refLocalId="26"> - <position x="675" y="430"/> - <position x="675" y="400"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="10" y="2"/> - </connectionPointOut> - <condition> - <reference name="REACH_UPPER2"/> - </condition> - </transition> - <step localId="29" height="27" width="55" name="WAIT2"> - <position x="650" y="465"/> - <connectionPointIn> - <relPosition x="25" y="0"/> - <connection refLocalId="28"> - <position x="675" y="465"/> - <position x="675" y="432"/> - </connection> - </connectionPointIn> - <connectionPointOut formalParameter=""> - <relPosition x="25" y="27"/> - </connectionPointOut> - </step> - <actionBlock localId="31" height="30" width="90"> - <position x="730" y="370"/> - <connectionPointIn> - <relPosition x="0" y="15"/> - <connection refLocalId="26"> - <position x="730" y="385"/> - <position x="705" y="385"/> - </connection> - </connectionPointIn> - <action> - <reference name="COUNT2"/> - </action> - </actionBlock> - <actionBlock localId="32" height="30" width="350"> - <position x="200" y="170"/> - <connectionPointIn> - <relPosition x="0" y="15"/> - <connection refLocalId="1"> - <position x="200" y="185"/> - <position x="180" y="185"/> - </connection> - </connectionPointIn> - <action> - <inline> - <ST> -<![CDATA[OUT1 := 0;OUT2 := 0;GO := FALSE;]]> - </ST> - </inline> - </action> - </actionBlock> - <transition localId="33" height="2" width="20"> - <position x="35" y="325"/> - <connectionPointIn> - <relPosition x="10" y="0"/> - <connection refLocalId="11"> - <position x="45" y="325"/> - <position x="45" y="231"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="10" y="2"/> - </connectionPointOut> - <condition> - <inline name=""> - <ST> -<![CDATA[CNT2 AND NOT CNT1]]> - </ST> - </inline> - </condition> - </transition> - <block localId="34" width="80" height="90" typeName="AND"> - <position x="435" y="240"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="35"/> - <connection refLocalId="35"> - <position x="435" y="275"/> - <position x="410" y="275"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="70"/> - <connection refLocalId="39"> - <position x="435" y="310"/> - <position x="410" y="310"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="80" y="35"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <inVariable localId="35" height="30" width="50"> - <position x="360" y="260"/> - <connectionPointOut> - <relPosition x="50" y="15"/> - </connectionPointOut> - <expression>CNT1</expression> - </inVariable> - <step localId="36" height="27" width="60" name="Step2"> - <position x="15" y="375"/> - <connectionPointIn> - <relPosition x="30" y="0"/> - <connection refLocalId="33"> - <position x="45" y="375"/> - <position x="45" y="327"/> - </connection> - </connectionPointIn> - <connectionPointOut formalParameter=""> - <relPosition x="30" y="27"/> - </connectionPointOut> - <connectionPointOutAction formalParameter=""> - <relPosition x="60" y="15"/> - </connectionPointOutAction> - </step> - <actionBlock localId="37" height="30" width="90"> - <position x="100" y="375"/> - <connectionPointIn> - <relPosition x="0" y="15"/> - <connection refLocalId="36"> - <position x="100" y="390"/> - <position x="75" y="390"/> - </connection> - </connectionPointIn> - <action> - <reference name="COUNT2"/> - </action> - </actionBlock> - <transition localId="38" height="2" width="20"> - <position x="35" y="470"/> - <connectionPointIn> - <relPosition x="10" y="0"/> - <connection refLocalId="36"> - <position x="45" y="470"/> - <position x="45" y="402"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="10" y="2"/> - </connectionPointOut> - <condition> - <reference name="REACH_UPPER2"/> - </condition> - </transition> - <inVariable localId="39" height="30" width="50"> - <position x="360" y="295"/> - <connectionPointOut> - <relPosition x="50" y="15"/> - </connectionPointOut> - <expression>CNT2</expression> - </inVariable> - <leftPowerRail localId="40" height="40" width="3"> - <position x="70" y="255"/> - <connectionPointOut formalParameter=""> - <relPosition x="3" y="20"/> - </connectionPointOut> - </leftPowerRail> - <contact localId="41" height="20" width="25"> - <position x="110" y="265"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="40"> - <position x="110" y="275"/> - <position x="73" y="275"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="25" y="10"/> - </connectionPointOut> - <variable>CNT1</variable> - </contact> - <contact localId="42" height="20" width="25" negated="true"> - <position x="190" y="265"/> - <connectionPointIn> - <relPosition x="0" y="10"/> - <connection refLocalId="41"> - <position x="190" y="275"/> - <position x="135" y="275"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="25" y="10"/> - </connectionPointOut> - <variable>CNT2</variable> - </contact> - <transition localId="44" height="10" width="20"> - <position x="260" y="270"/> - <connectionPointIn> - <relPosition x="10" y="0"/> - <connection refLocalId="11"> - <position x="270" y="270"/> - <position x="270" y="231"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="10" y="10"/> - </connectionPointOut> - <condition> - <connection refLocalId="42"> - <position x="260" y="275"/> - <position x="215" y="275"/> - </connection> - </condition> - </transition> - <transition localId="45" height="10" width="20"> - <position x="565" y="270"/> - <connectionPointIn> - <relPosition x="10" y="0"/> - <connection refLocalId="11"> - <position x="575" y="270"/> - <position x="575" y="231"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="10" y="10"/> - </connectionPointOut> - <condition> - <connection refLocalId="34" formalParameter="OUT"> - <position x="565" y="275"/> - <position x="515" y="275"/> - </connection> - </condition> - </transition> - <comment localId="46" height="120" width="785"> - <position x="15" y="25"/> - <content> -<![CDATA[A SFC that make use of different kinds of divergences, and mix LD and FBD and inline transitions. -It is supposed to increment OUT1 and OUT2 according CNT1 and CNT2, and untill UPPER1 and UPPER2 limits are reached.]]> - </content> - </comment> - <step localId="47" height="45" width="75" name="Start2" initialStep="true"> - <position x="1010" y="215"/> - <connectionPointOut formalParameter=""> - <relPosition x="35" y="45"/> - </connectionPointOut> - </step> - <transition localId="48" height="10" width="20"> - <position x="1035" y="285"/> - <connectionPointIn> - <relPosition x="10" y="0"/> - <connection refLocalId="47"> - <position x="1045" y="285"/> - <position x="1045" y="260"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="10" y="10"/> - </connectionPointOut> - <condition> - <connection refLocalId="54" formalParameter="OUT"> - <position x="1035" y="290"/> - <position x="1000" y="290"/> - </connection> - </condition> - </transition> - <transition localId="49" height="5" width="20"> - <position x="1035" y="380"/> - <connectionPointIn> - <relPosition x="10" y="0"/> - <connection refLocalId="50"> - <position x="1045" y="380"/> - <position x="1045" y="355"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="10" y="5"/> - </connectionPointOut> - <condition> - <inline name=""> - <ST> -<![CDATA[CNT2]]> - </ST> - </inline> - </condition> - </transition> - <step localId="50" height="35" width="60" name="WAIT3"> - <position x="1015" y="320"/> - <connectionPointIn> - <relPosition x="30" y="0"/> - <connection refLocalId="48"> - <position x="1045" y="320"/> - <position x="1045" y="310"/> - <position x="1045" y="310"/> - <position x="1045" y="295"/> - </connection> - </connectionPointIn> - <connectionPointOut formalParameter=""> - <relPosition x="30" y="35"/> - </connectionPointOut> - </step> - <jumpStep localId="51" height="15" width="20" targetName="Start2"> - <position x="1035" y="415"/> - <connectionPointIn> - <relPosition x="10" y="0"/> - <connection refLocalId="49"> - <position x="1045" y="415"/> - <position x="1045" y="385"/> - </connection> - </connectionPointIn> - </jumpStep> - <inVariable localId="52" height="30" width="170"> - <position x="700" y="245"/> - <connectionPointOut> - <relPosition x="170" y="15"/> - </connectionPointOut> - <expression>TEST_ARRAY[0, 1]</expression> - </inVariable> - <inVariable localId="53" height="30" width="70"> - <position x="800" y="320"/> - <connectionPointOut> - <relPosition x="70" y="15"/> - </connectionPointOut> - <expression>UINT#0</expression> - </inVariable> - <block localId="54" width="75" height="70" typeName="GT"> - <position x="925" y="260"/> - <inputVariables> - <variable formalParameter="IN1"> - <connectionPointIn> - <relPosition x="0" y="30"/> - <connection refLocalId="52"> - <position x="925" y="290"/> - <position x="900" y="290"/> - <position x="900" y="260"/> - <position x="870" y="260"/> - </connection> - </connectionPointIn> - </variable> - <variable formalParameter="IN2"> - <connectionPointIn> - <relPosition x="0" y="55"/> - <connection refLocalId="53"> - <position x="925" y="315"/> - <position x="900" y="315"/> - <position x="900" y="335"/> - <position x="870" y="335"/> - </connection> - </connectionPointIn> - </variable> - </inputVariables> - <inOutVariables/> - <outputVariables> - <variable formalParameter="OUT"> - <connectionPointOut> - <relPosition x="75" y="30"/> - </connectionPointOut> - </variable> - </outputVariables> - </block> - <step localId="55" height="40" width="120" name="TIMED_WAIT"> - <position x="155" y="635"/> - <connectionPointIn> - <relPosition x="60" y="0"/> - <connection refLocalId="12"> - <position x="215" y="635"/> - <position x="215" y="601"/> - </connection> - </connectionPointIn> - <connectionPointOut formalParameter=""> - <relPosition x="60" y="40"/> - </connectionPointOut> - <connectionPointOutAction formalParameter=""> - <relPosition x="120" y="20"/> - </connectionPointOutAction> - </step> - <transition localId="56" height="5" width="20"> - <position x="205" y="710"/> - <connectionPointIn> - <relPosition x="10" y="0"/> - <connection refLocalId="55"> - <position x="215" y="710"/> - <position x="215" y="675"/> - </connection> - </connectionPointIn> - <connectionPointOut> - <relPosition x="10" y="5"/> - </connectionPointOut> - <condition> - <inline name=""> - <ST> -<![CDATA[GO]]> - </ST> - </inline> - </condition> - </transition> - <actionBlock localId="57" height="35" width="170"> - <position x="320" y="640"/> - <connectionPointIn> - <relPosition x="0" y="15"/> - <connection refLocalId="55"> - <position x="320" y="655"/> - <position x="275" y="655"/> - </connection> - </connectionPointIn> - <action qualifier="D" duration="T#2s"> - <inline> - <ST> -<![CDATA[GO := TRUE;]]> - </ST> - </inline> - </action> - </actionBlock> - </SFC> - </body> - </pou> - </pous> - </types> - <instances> - <configurations> - <configuration name="STD_CONF"> - <resource name="STD_RESSOURCE"> - <task name="STD_TASK" interval="00:00:00.100000" priority="0"> - <pouInstance name="MAIN_INSTANCE" type="MAIN_TEST"/> - </task> - </resource> - </configuration> - </configurations> - </instances> -</project>
--- 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 @@ -<?xml version="1.0" encoding="UTF-8"?> -<BaseParams Name="supervisor" IEC_Channel="1"/>
--- 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 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://web.resource.org/cc/" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="350" - height="300" - id="svg2" - sodipodi:version="0.32" - inkscape:version="0.45.1" - version="1.0" - sodipodi:docbase="/taf/Pim/workspace_laurent/Beremiz/test/supervisor@svgui" - sodipodi:docname="gui.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs4"> - <linearGradient - id="linearGradient9073"> - <stop - style="stop-color:#929292;stop-opacity:1;" - offset="0" - id="stop9075" /> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="1" - id="stop9077" /> - </linearGradient> - <linearGradient - id="linearGradient8094"> - <stop - style="stop-color:#464637;stop-opacity:1" - offset="0" - id="stop8096" /> - <stop - style="stop-color:#467d37;stop-opacity:1;" - offset="1" - id="stop8098" /> - </linearGradient> - <linearGradient - id="linearGradient5177"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop5179" /> - <stop - style="stop-color:#ffffff;stop-opacity:0;" - offset="1" - id="stop5181" /> - </linearGradient> - <linearGradient - id="linearGradient6435"> - <stop - id="stop6437" - offset="0" - style="stop-color:#ffffff;stop-opacity:1;" /> - <stop - id="stop6439" - offset="1" - style="stop-color:#000000;stop-opacity:1;" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient6435" - id="linearGradient6406" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-397.14282,-761.42857)" - x1="361.4903" - y1="-285.12421" - x2="454.45035" - y2="-474.94891" /> - <mask - maskUnits="userSpaceOnUse" - id="mask6467"> - <use - x="0" - y="0" - xlink:href="#rect6425" - id="use6469" - transform="translate(397.14282,761.42857)" - width="512" - height="512" /> - </mask> - <linearGradient - id="linearGradient8142"> - <stop - style="stop-color:#ffffff;stop-opacity:1;" - offset="0" - id="stop8144" /> - <stop - style="stop-color:#dcdcdc;stop-opacity:1;" - offset="1" - id="stop8146" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient8142" - id="linearGradient8148" - x1="-1432.7773" - y1="3066.0334" - x2="-1432.7773" - y2="2856.0334" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(0.7352941,0,0,1.4285714,1228.5128,-4080.0482)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient8094" - id="radialGradient8100" - cx="30.328453" - cy="11.321448" - fx="30.328453" - fy="11.321448" - r="13.374369" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.2670353,1.6569583e-2,-1.6571845e-2,1.2672083,-6.3869815,-6.6630278)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient9073" - id="radialGradient9081" - cx="35.721348" - cy="7.3671589" - fx="35.721348" - fy="7.3671589" - r="13.002643" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.6730924,6.1221359e-3,-6.9425482e-3,1.8972995,-23.992621,-6.8292465)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5177" - id="radialGradient10056" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.4617839,-2.8861501e-2,3.1134805e-2,1.5769227,-19.270392,2.2543889)" - cx="41.852623" - cy="-1.8138641" - fx="41.852623" - fy="-1.8138641" - r="12.374369" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient9073" - id="radialGradient10074" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.6730924,6.1221359e-3,-6.9425482e-3,1.8972995,-23.992621,-6.8292465)" - cx="35.721348" - cy="7.3671589" - fx="35.721348" - fy="7.3671589" - r="13.002643" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient8094" - id="radialGradient10076" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.2670353,1.6569583e-2,-1.6571845e-2,1.2672083,-6.3869815,-6.6630278)" - cx="30.328453" - cy="11.321448" - fx="30.328453" - fy="11.321448" - r="13.374369" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5177" - id="radialGradient10084" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.4617839,-2.8861501e-2,3.1134805e-2,1.5769227,-19.270392,2.2543889)" - cx="41.852623" - cy="-1.8138641" - fx="41.852623" - fy="-1.8138641" - r="12.374369" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5177" - id="radialGradient10092" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.4617839,-2.8861501e-2,3.1134805e-2,1.5769227,-19.270392,2.2543889)" - cx="41.852623" - cy="-1.8138641" - fx="41.852623" - fy="-1.8138641" - r="12.374369" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5177" - id="radialGradient10100" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.4617839,-2.8861501e-2,3.1134805e-2,1.5769227,-19.270392,2.2543889)" - cx="41.852623" - cy="-1.8138641" - fx="41.852623" - fy="-1.8138641" - r="12.374369" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient9073" - id="radialGradient10108" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.6730924,6.1221359e-3,-6.9425482e-3,1.8972995,-23.992621,-6.8292465)" - cx="35.721348" - cy="7.3671589" - fx="35.721348" - fy="7.3671589" - r="13.002643" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient8094" - id="radialGradient10110" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.2670353,1.6569583e-2,-1.6571845e-2,1.2672083,-6.3869815,-6.6630278)" - cx="30.328453" - cy="11.321448" - fx="30.328453" - fy="11.321448" - r="13.374369" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient9073" - id="radialGradient10118" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.6730924,6.1221359e-3,-6.9425482e-3,1.8972995,-23.992621,-6.8292465)" - cx="35.721348" - cy="7.3671589" - fx="35.721348" - fy="7.3671589" - r="13.002643" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient8094" - id="radialGradient10120" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.2670353,1.6569583e-2,-1.6571845e-2,1.2672083,-6.3869815,-6.6630278)" - cx="30.328453" - cy="11.321448" - fx="30.328453" - fy="11.321448" - r="13.374369" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient9073" - id="radialGradient10128" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.6730924,6.1221359e-3,-6.9425482e-3,1.8972995,-23.992621,-6.8292465)" - cx="35.721348" - cy="7.3671589" - fx="35.721348" - fy="7.3671589" - r="13.002643" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient8094" - id="radialGradient10130" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.2670353,1.6569583e-2,-1.6571845e-2,1.2672083,-6.3869815,-6.6630278)" - cx="30.328453" - cy="11.321448" - fx="30.328453" - fy="11.321448" - r="13.374369" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.4" - inkscape:cx="70.388142" - inkscape:cy="143.56774" - inkscape:document-units="px" - inkscape:current-layer="layer1" - width="350px" - height="300px" - inkscape:window-width="1272" - inkscape:window-height="937" - inkscape:window-x="0" - inkscape:window-y="0" /> - <metadata - id="metadata7"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Calque 1" - inkscape:groupmode="layer" - id="layer1" - style="display:inline"> - <path - style="fill:url(#linearGradient8148);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.43299961;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" - d="M 0,3.1974423e-14 L 350,3.1974423e-14 L 350,300 L 0,300 L 0,3.1974423e-14 z " - id="fond" - sodipodi:nodetypes="ccccc" - inkscape:export-filename="Y:\LoLiTech\Solutions_Techniques\beremiz\splash.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" /> - <text - xml:space="preserve" - style="font-size:11.23303699px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black" - x="31.775957" - y="282.53265" - id="text6426" - sodipodi:linespacing="125%"><tspan - sodipodi:role="line" - id="tspan6428" - x="31.775957" - y="282.53265">Pre-Alpha Release. Copyright © LOLITECH 2008</tspan></text> - <g - id="LED1_off" - transform="translate(21.642857,18.214286)"> - <path - transform="matrix(1.5916608,0,0,1.5916608,-4.534839,45.738269)" - d="M 51.012705 1.7575644 A 12.374369 12.374369 0 1 1 26.263968,1.7575644 A 12.374369 12.374369 0 1 1 51.012705 1.7575644 z" - sodipodi:ry="12.374369" - sodipodi:rx="12.374369" - sodipodi:cy="1.7575644" - sodipodi:cx="38.638336" - id="path8102" - style="opacity:1;color:#000000;fill:url(#radialGradient10074);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.25654912;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <path - transform="translate(18.32595,46.778151)" - d="M 51.012705 1.7575644 A 12.374369 12.374369 0 1 1 26.263968,1.7575644 A 12.374369 12.374369 0 1 1 51.012705 1.7575644 z" - sodipodi:ry="12.374369" - sodipodi:rx="12.374369" - sodipodi:cy="1.7575644" - sodipodi:cx="38.638336" - id="path6154" - style="opacity:1;color:#000000;fill:url(#radialGradient10076);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - </g> - <g - id="LED1_on" - transform="translate(-18.357143,16.214286)"> - <path - transform="translate(58.32595,48.778151)" - d="M 51.012705 1.7575644 A 12.374369 12.374369 0 1 1 26.263968,1.7575644 A 12.374369 12.374369 0 1 1 51.012705 1.7575644 z" - sodipodi:ry="12.374369" - sodipodi:rx="12.374369" - sodipodi:cy="1.7575644" - sodipodi:cx="38.638336" - id="path2264" - style="opacity:1;color:#000000;fill:#46e837;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <path - transform="matrix(0.9170232,0,0,0.9170232,61.532035,48.923988)" - d="M 51.012705 1.7575644 A 12.374369 12.374369 0 1 1 26.263968,1.7575644 A 12.374369 12.374369 0 1 1 51.012705 1.7575644 z" - sodipodi:ry="12.374369" - sodipodi:rx="12.374369" - sodipodi:cy="1.7575644" - sodipodi:cx="38.638336" - id="path4206" - style="opacity:1;color:#000000;fill:url(#radialGradient10056);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - </g> - <g - transform="translate(81.642857,18.214286)" - id="LED2_off"> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:url(#radialGradient10108);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.25654912;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="path10104" - sodipodi:cx="38.638336" - sodipodi:cy="1.7575644" - sodipodi:rx="12.374369" - sodipodi:ry="12.374369" - d="M 51.012705 1.7575644 A 12.374369 12.374369 0 1 1 26.263968,1.7575644 A 12.374369 12.374369 0 1 1 51.012705 1.7575644 z" - transform="matrix(1.5916608,0,0,1.5916608,-4.534839,45.738269)" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:url(#radialGradient10110);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="path10106" - sodipodi:cx="38.638336" - sodipodi:cy="1.7575644" - sodipodi:rx="12.374369" - sodipodi:ry="12.374369" - d="M 51.012705 1.7575644 A 12.374369 12.374369 0 1 1 26.263968,1.7575644 A 12.374369 12.374369 0 1 1 51.012705 1.7575644 z" - transform="translate(18.32595,46.778151)" /> - </g> - <g - style="display:inline" - id="LED2_on" - transform="translate(41.642857,16.214286)"> - <path - transform="translate(58.32595,48.778151)" - d="M 51.012705 1.7575644 A 12.374369 12.374369 0 1 1 26.263968,1.7575644 A 12.374369 12.374369 0 1 1 51.012705 1.7575644 z" - sodipodi:ry="12.374369" - sodipodi:rx="12.374369" - sodipodi:cy="1.7575644" - sodipodi:cx="38.638336" - id="path10080" - style="opacity:1;color:#000000;fill:#46e837;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <path - transform="matrix(0.9170232,0,0,0.9170232,61.532035,48.923988)" - d="M 51.012705 1.7575644 A 12.374369 12.374369 0 1 1 26.263968,1.7575644 A 12.374369 12.374369 0 1 1 51.012705 1.7575644 z" - sodipodi:ry="12.374369" - sodipodi:rx="12.374369" - sodipodi:cy="1.7575644" - sodipodi:cx="38.638336" - id="path10082" - style="opacity:1;color:#000000;fill:url(#radialGradient10084);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - </g> - <g - transform="translate(141.64286,18.214286)" - id="LED3_off"> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:url(#radialGradient10118);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.25654912;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="path10114" - sodipodi:cx="38.638336" - sodipodi:cy="1.7575644" - sodipodi:rx="12.374369" - sodipodi:ry="12.374369" - d="M 51.012705 1.7575644 A 12.374369 12.374369 0 1 1 26.263968,1.7575644 A 12.374369 12.374369 0 1 1 51.012705 1.7575644 z" - transform="matrix(1.5916608,0,0,1.5916608,-4.534839,45.738269)" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:url(#radialGradient10120);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="path10116" - sodipodi:cx="38.638336" - sodipodi:cy="1.7575644" - sodipodi:rx="12.374369" - sodipodi:ry="12.374369" - d="M 51.012705 1.7575644 A 12.374369 12.374369 0 1 1 26.263968,1.7575644 A 12.374369 12.374369 0 1 1 51.012705 1.7575644 z" - transform="translate(18.32595,46.778151)" /> - </g> - <g - style="display:inline" - id="LED3_on" - transform="translate(101.64286,16.214286)"> - <path - transform="translate(58.32595,48.778151)" - d="M 51.012705 1.7575644 A 12.374369 12.374369 0 1 1 26.263968,1.7575644 A 12.374369 12.374369 0 1 1 51.012705 1.7575644 z" - sodipodi:ry="12.374369" - sodipodi:rx="12.374369" - sodipodi:cy="1.7575644" - sodipodi:cx="38.638336" - id="path10088" - style="opacity:1;color:#000000;fill:#46e837;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <path - transform="matrix(0.9170232,0,0,0.9170232,61.532035,48.923988)" - d="M 51.012705 1.7575644 A 12.374369 12.374369 0 1 1 26.263968,1.7575644 A 12.374369 12.374369 0 1 1 51.012705 1.7575644 z" - sodipodi:ry="12.374369" - sodipodi:rx="12.374369" - sodipodi:cy="1.7575644" - sodipodi:cx="38.638336" - id="path10090" - style="opacity:1;color:#000000;fill:url(#radialGradient10092);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - </g> - <g - transform="translate(201.64286,18.214286)" - id="LED4_off"> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:url(#radialGradient10128);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.25654912;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="path10124" - sodipodi:cx="38.638336" - sodipodi:cy="1.7575644" - sodipodi:rx="12.374369" - sodipodi:ry="12.374369" - d="M 51.012705 1.7575644 A 12.374369 12.374369 0 1 1 26.263968,1.7575644 A 12.374369 12.374369 0 1 1 51.012705 1.7575644 z" - transform="matrix(1.5916608,0,0,1.5916608,-4.534839,45.738269)" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:url(#radialGradient10130);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="path10126" - sodipodi:cx="38.638336" - sodipodi:cy="1.7575644" - sodipodi:rx="12.374369" - sodipodi:ry="12.374369" - d="M 51.012705 1.7575644 A 12.374369 12.374369 0 1 1 26.263968,1.7575644 A 12.374369 12.374369 0 1 1 51.012705 1.7575644 z" - transform="translate(18.32595,46.778151)" /> - </g> - <g - style="display:inline" - id="LED4_on" - transform="translate(161.64286,16.214286)"> - <path - transform="translate(58.32595,48.778151)" - d="M 51.012705 1.7575644 A 12.374369 12.374369 0 1 1 26.263968,1.7575644 A 12.374369 12.374369 0 1 1 51.012705 1.7575644 z" - sodipodi:ry="12.374369" - sodipodi:rx="12.374369" - sodipodi:cy="1.7575644" - sodipodi:cx="38.638336" - id="path10096" - style="opacity:1;color:#000000;fill:#46e837;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <path - transform="matrix(0.9170232,0,0,0.9170232,61.532035,48.923988)" - d="M 51.012705 1.7575644 A 12.374369 12.374369 0 1 1 26.263968,1.7575644 A 12.374369 12.374369 0 1 1 51.012705 1.7575644 z" - sodipodi:ry="12.374369" - sodipodi:rx="12.374369" - sodipodi:cy="1.7575644" - sodipodi:cx="38.638336" - id="path10098" - style="opacity:1;color:#000000;fill:url(#radialGradient10100);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - </g> - <g - id="test1_off" - transform="translate(51.753807,188.92012)"> - <rect - style="opacity:1;color:#000000;fill:#d19f34;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="rect17048" - width="83.842659" - height="31.314728" - x="10.200684" - y="36.850182" - ry="12.12183" /> - <text - id="text15984" - y="59.597401" - x="24.05316" - style="font-size:19.83609772px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" - xml:space="preserve"><tspan - y="59.597401" - x="24.05316" - id="tspan15986" - sodipodi:role="line">Test 1</tspan></text> - </g> - <g - id="test1_on" - transform="translate(125.52799,188.72465)"> - <rect - style="opacity:1;color:#000000;fill:#469837;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="rect22887" - width="83.842659" - height="31.314728" - x="-63.573494" - y="37.045647" - ry="12.12183" /> - <text - xml:space="preserve" - style="font-size:19.83609772px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" - x="-49.721016" - y="59.792866" - id="text2290"><tspan - sodipodi:role="line" - id="tspan2292" - x="-49.721016" - y="59.792866">Test 1</tspan></text> - </g> - <g - id="test2_off" - transform="translate(183.75381,188.92012)"> - <rect - style="opacity:1;color:#000000;fill:#d19f34;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="rect22894" - width="83.842659" - height="31.314728" - x="10.200684" - y="36.850182" - ry="12.12183" /> - <text - id="text22896" - y="59.728157" - x="24.130646" - style="font-size:19.83609772px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" - xml:space="preserve"><tspan - y="59.728157" - x="24.130646" - sodipodi:role="line" - id="tspan22908">Test 2</tspan></text> - </g> - <g - id="test2_on" - transform="translate(177.52798,188.72465)"> - <rect - style="opacity:1;color:#000000;fill:#469837;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="rect22902" - width="83.842659" - height="31.314728" - x="16.426506" - y="37.045647" - ry="12.12183" /> - <text - xml:space="preserve" - style="font-size:19.83609772px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" - x="30.356468" - y="59.923622" - id="text22904"><tspan - sodipodi:role="line" - id="tspan22906" - x="30.356468" - y="59.923622">Test 2</tspan></text> - </g> - <text - xml:space="preserve" - style="font-size:16.68435478px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" - x="60.320545" - y="41.062721" - id="text10132"><tspan - sodipodi:role="line" - id="tspan10134" - x="60.320545" - y="41.062721">AND</tspan></text> - <text - xml:space="preserve" - style="font-size:16.68435478px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans" - x="125.98962" - y="41.054573" - id="text10136"><tspan - sodipodi:role="line" - id="tspan10138" - x="125.98962" - y="41.054573">OR</tspan></text> - <text - xml:space="preserve" - style="font-size:16.68435478px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans" - x="181.33791" - y="41.054573" - id="text10140"><tspan - sodipodi:role="line" - id="tspan10142" - x="181.33791" - y="41.054573">XOR</tspan></text> - <text - xml:space="preserve" - style="font-size:16.68435478px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans" - x="247.44803" - y="41.054573" - id="text10144"><tspan - sodipodi:role="line" - id="tspan10146" - x="247.44803" - y="41.054573">SR</tspan></text> - <g - id="counter1_back"> - <path - transform="matrix(0.7823622,0,0,-0.7804636,-14.93274,367.15766)" - sodipodi:end="3.1415927" - sodipodi:start="0" - d="M 209.99999,218.57143 A 76.785713,76.785713 0 1 1 56.428566,218.57142 L 133.21428,218.57143 z" - sodipodi:ry="76.785713" - sodipodi:rx="76.785713" - sodipodi:cy="218.57143" - sodipodi:cx="133.21428" - id="path2374" - style="opacity:1;color:#000000;fill:#d19f34;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.55946827;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <path - id="path4318" - d="M 47.131352,154.48975 L 52.879275,160.22814" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - <path - id="path5289" - d="M 89.21358,137.37676 L 89.21358,145.49207" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" /> - <path - id="path7231" - d="M 131.42332,154.60011 L 125.6754,160.3385" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" /> - </g> - <text - xml:space="preserve" - style="font-size:10.49618816px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" - x="25.443737" - y="152.96327" - id="text7233" - transform="scale(1.0008304,0.9991703)"><tspan - sodipodi:role="line" - id="tspan7235" - x="25.443737" - y="152.96327">100</tspan></text> - <text - xml:space="preserve" - style="font-size:10.49618816px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans" - x="78.358131" - y="131.48071" - id="text7237" - transform="scale(1.0008304,0.9991703)"><tspan - sodipodi:role="line" - id="tspan7239" - x="78.358131" - y="131.48071">200</tspan></text> - <text - xml:space="preserve" - style="font-size:10.49618816px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans" - x="135.34219" - y="152.66052" - id="text7241" - transform="scale(1.0008304,0.9991703)"><tspan - sodipodi:role="line" - id="tspan7243" - x="135.34219" - y="152.66052">300</tspan></text> - <text - xml:space="preserve" - style="font-size:10.49618816px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans" - x="151.75835" - y="199.39355" - id="text7245" - transform="scale(1.0008304,0.9991703)"><tspan - sodipodi:role="line" - id="tspan7247" - x="151.75835" - y="199.39355">400</tspan></text> - <text - xml:space="preserve" - style="font-size:10.49618816px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans" - x="19.618824" - y="199.64346" - id="text7249" - transform="scale(1.0008304,0.9991703)"><tspan - sodipodi:role="line" - id="tspan7251" - x="19.618824" - y="199.64346">0</tspan></text> - <g - id="counter2_back"> - <path - transform="matrix(0.7823622,0,0,-0.7804636,146.35389,367.13373)" - sodipodi:end="3.1415927" - sodipodi:start="0" - d="M 209.99999,218.57143 A 76.785713,76.785713 0 1 1 56.428566,218.57142 L 133.21428,218.57143 z" - sodipodi:ry="76.785713" - sodipodi:rx="76.785713" - sodipodi:cy="218.57143" - sodipodi:cx="133.21428" - id="path7253" - style="opacity:1;color:#000000;fill:#d19f34;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.55946827;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" /> - <path - id="path7255" - d="M 208.41798,154.46582 L 214.1659,160.20421" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" /> - <path - id="path7257" - d="M 250.50021,137.35283 L 250.50021,145.46814" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" /> - <path - id="path7259" - d="M 292.70994,154.57618 L 286.96202,160.31457" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" /> - </g> - <text - xml:space="preserve" - style="font-size:10.49618816px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans" - x="186.59656" - y="152.93927" - id="text7261" - transform="scale(1.0008304,0.9991703)"><tspan - sodipodi:role="line" - id="tspan7263" - x="186.59656" - y="152.93927">100</tspan></text> - <text - xml:space="preserve" - style="font-size:10.49618816px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans" - x="239.51093" - y="131.45671" - id="text7265" - transform="scale(1.0008304,0.9991703)"><tspan - sodipodi:role="line" - id="tspan7267" - x="239.51093" - y="131.45671">200</tspan></text> - <text - xml:space="preserve" - style="font-size:10.49618816px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans" - x="296.49496" - y="152.63652" - id="text7269" - transform="scale(1.0008304,0.9991703)"><tspan - sodipodi:role="line" - id="tspan7271" - x="296.49496" - y="152.63652">300</tspan></text> - <text - xml:space="preserve" - style="font-size:10.49618816px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans" - x="312.9111" - y="199.36955" - id="text7273" - transform="scale(1.0008304,0.9991703)"><tspan - sodipodi:role="line" - id="tspan7275" - x="312.9111" - y="199.36955">400</tspan></text> - <text - xml:space="preserve" - style="font-size:10.49618816px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans" - x="180.77165" - y="199.61946" - id="text7277" - transform="scale(1.0008304,0.9991703)"><tspan - sodipodi:role="line" - id="tspan7279" - x="180.77165" - y="199.61946">0</tspan></text> - <path - style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 39.875,192.09375 L 36.09375,194.34375 L 32.46875,196.5 L 36.25,198.78125 L 39.84375,200.9375 L 39.84375,197.53125 L 88.15625,197.53125 L 89.15625,197.53125 L 89.15625,195.53125 L 88.15625,195.53125 L 39.84375,195.53125 L 39.875,192.09375 z " - id="counter1_rotating" /> - <path - style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" - d="M 201.1377,192.09375 L 197.35645,194.34375 L 193.73145,196.5 L 197.5127,198.78125 L 201.10645,200.9375 L 201.10645,197.53125 L 249.41895,197.53125 L 250.41895,197.53125 L 250.41895,195.53125 L 249.41895,195.53125 L 201.10645,195.53125 L 201.1377,192.09375 z " - id="counter2_rotating" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="counter1_center" - sodipodi:cx="91.923882" - sodipodi:cy="199.42668" - sodipodi:rx="4.9244938" - sodipodi:ry="4.8613591" - d="M 96.848375 199.42668 A 4.9244938 4.8613591 0 1 1 86.999388,199.42668 A 4.9244938 4.8613591 0 1 1 96.848375 199.42668 z" - transform="matrix(0.5324675,0,0,0.5324675,40.296231,90.33426)" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="counter2_center" - sodipodi:cx="91.923882" - sodipodi:cy="199.42668" - sodipodi:rx="4.9244938" - sodipodi:ry="4.8613591" - d="M 96.848375 199.42668 A 4.9244938 4.8613591 0 1 1 86.999388,199.42668 A 4.9244938 4.8613591 0 1 1 96.848375 199.42668 z" - transform="matrix(0.5324675,0,0,0.5324675,201.57135,90.271137)" /> - </g> -</svg>
--- 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 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<Interface xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="def_xsd.xsd" id="1" name="Interface" background_id="fond"> - <Button toggle="true" selected_id="test1_on" id="2" name="test1" background_id="test1_off"/> - <Button toggle="true" selected_id="test2_on" id="3" name="test2" background_id="test2_off"/> - <Button toggle="true" selected_id="LED1_on" id="4" name="LED1" enable="false" background_id="LED1_off"/> - <Button toggle="true" selected_id="LED2_on" id="5" name="LED2" enable="false" background_id="LED2_off"/> - <Button toggle="true" selected_id="LED3_on" id="6" name="LED3" enable="false" background_id="LED3_off"/> - <Button toggle="true" selected_id="LED4_on" id="7" name="LED4" enable="false" background_id="LED4_off"/> - <RotatingCtrl rotating_id="counter1_rotating" center_id="counter1_center" min_angle="-180" show_center="true" max_angle="0" id="8" name="counter1" enable="false" background_id="counter1_back"/> - <RotatingCtrl rotating_id="counter2_rotating" center_id="counter2_center" min_angle="-180" show_center="true" max_angle="0" id="9" name="counter2" enable="false" background_id="counter2_back"/> -</Interface>