Add new example : CANOpen shell
authorgreg
Wed, 15 Jul 2009 09:32:35 +0200
changeset 555 ee24dcbd3e64
parent 554 b9b7ed3821f0
child 556 8296acd119a9
Add new example : CANOpen shell
configure
examples/CANOpenShell/CANOpenShell.c
examples/CANOpenShell/CANOpenShell.h
examples/CANOpenShell/CANOpenShell.vcproj
examples/CANOpenShell/CANOpenShellMasterOD.od
examples/CANOpenShell/CANOpenShellSlaveOD.od
examples/CANOpenShell/CANOpenShellsln
examples/CANOpenShell/Makefile.in
examples/Makefile.in
--- a/configure	Fri Jul 10 11:41:00 2009 +0200
+++ b/configure	Wed Jul 15 09:32:35 2009 +0200
@@ -767,6 +767,7 @@
 
 elif [ "$SUB_TARGET" = "unix" ]; then
 	MAKEFILES=$MAKEFILES\
+\	examples/CANOpenShell/Makefile.in\
 \	examples/TestMasterSlave/Makefile.in\
 \	examples/TestMasterSlaveLSS/Makefile.in\
 \	examples/SillySlave/Makefile.in\
@@ -775,6 +776,7 @@
 
 if [ "$SUB_TARGET" = "win32" ]; then
 	MAKEFILES=$MAKEFILES\
+\	examples/CANOpenShell/Makefile.in\
 \	examples/TestMasterSlave/Makefile.in\
 \	examples/TestMasterSlaveLSS/Makefile.in\
 \	examples/SillySlave/Makefile.in\
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/CANOpenShell/CANOpenShell.c	Wed Jul 15 09:32:35 2009 +0200
@@ -0,0 +1,487 @@
+/*
+This file is part of CanFestival, a library implementing CanOpen Stack.
+
+Copyright (C): Edouard TISSERANT and Francis DUPIN
+
+See COPYING file for copyrights details.
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+
+#if defined(WIN32) && !defined(__CYGWIN__)
+	#include <windows.h>
+	#define CLEARSCREEN "cls"
+	#define SLEEP(time) Sleep(time * 1000)
+#else
+	#include <unistd.h>
+	#include <stdio.h>
+	#include <string.h>
+	#include <stdlib.h>
+	#include <signal.h>
+	#define CLEARSCREEN "clear"
+	#define SLEEP(time) sleep(time)
+#endif
+
+//****************************************************************************
+// INCLUDES
+#include "canfestival.h"
+#include "CANOpenShell.h"
+#include "CANOpenShellMasterOD.h"
+#include "CANOpenShellSlaveOD.h"
+
+//****************************************************************************
+// DEFINES
+#define MAX_NODES 127
+#define cst_str4(c1, c2, c3, c4) ((((unsigned int)0 | \
+                                    (char)c4 << 8) | \
+                                   (char)c3) << 8 | \
+                                  (char)c2) << 8 | \
+                                 (char)c1
+
+#define INIT_ERR 2
+#define QUIT 1
+
+//****************************************************************************
+// GLOBALS
+char BoardBusName[11];
+char BoardBaudRate[5];
+s_BOARD Board = {BoardBusName, BoardBaudRate};
+CO_Data* CANOpenShellOD_Data;
+int init_step = 0;
+char LibraryPath[512];
+
+/*****************************************************************************/
+#if !defined(WIN32) || defined(__CYGWIN__)
+void catch_signal(int sig)
+{
+	signal(SIGTERM, catch_signal);
+	signal(SIGINT, catch_signal);
+	printf("Got Signal %d\n",sig);
+}
+#endif
+
+/* Sleep for n seconds */
+void SleepFunction(int second)
+{
+	SLEEP(second);
+}
+
+/* Ask a slave node to go in operational mode */
+void StartNode(CO_Data* d, UNS8 nodeid)
+{
+	EnterMutex();
+	masterSendNMTstateChange(d, nodeid, NMT_Start_Node);
+	LeaveMutex();
+}
+
+/* Ask a slave node to go in pre-operational mode */
+void StopNode(CO_Data* d, UNS8 nodeid)
+{
+	EnterMutex();
+	masterSendNMTstateChange(d, nodeid, NMT_Stop_Node);
+	LeaveMutex();
+}
+
+/* Ask a slave node to reset */
+void ResetNode(CO_Data* d, UNS8 nodeid)
+{
+	EnterMutex();
+	masterSendNMTstateChange(d, nodeid, NMT_Reset_Node);
+	LeaveMutex();
+}
+
+/* Reset all nodes on the network and print message when boot-up*/
+void DiscoverNodes(CO_Data* d)
+{
+	printf("Wait for Slave nodes bootup...\n\n");
+	ResetNode(CANOpenShellOD_Data, 0x0);
+}
+
+/* Callback function that check the read SDO demand */
+void CheckReadInfoSDO(CO_Data* d, UNS8 nodeid)
+{
+	UNS32 abortCode;
+	UNS32 data;
+	UNS32 size=64;
+
+	if(getReadResultNetworkDict(d, nodeid, &data, &size, &abortCode) != SDO_FINISHED)
+		printf("Master : Failed in getting information for slave %2.2x, AbortCode :%4.4x \n", nodeid, abortCode);
+
+	/* Finalise last SDO transfer with this node */
+	closeSDOtransfer(CANOpenShellOD_Data, nodeid, SDO_CLIENT);
+
+	/* Display data received */
+	switch(init_step)
+	{
+		case 1:
+				printf("Device type     : %x\n", data);
+				break;
+		case 2:
+				printf("Vendor ID       : %x\n", data);
+				break;
+		case 3:
+				printf("Product Code    : %x\n", data);
+				break;
+		case 4:
+				printf("Revision Number : %x\n", data);
+				break;
+	}
+	GetSlaveNodeInfo(d, nodeid);
+}
+
+/* Retrieve node informations located at index 0x1000 (Device Type) and 0x1018 (Identity) */
+void GetSlaveNodeInfo(CO_Data* d, UNS8 nodeid)
+{
+		switch(++init_step)
+		{
+			case 1: /* Get device type */
+				printf("##################################\n");
+				printf("#### Informations for node %x ####\n", nodeid);
+				printf("##################################\n");
+				readNetworkDictCallback(d, nodeid, 0x1000, 0x00, 0, CheckReadInfoSDO);
+				break;
+
+			case 2: /* Get Vendor ID */
+				readNetworkDictCallback(d, nodeid, 0x1018, 0x01, 0, CheckReadInfoSDO);
+				break;
+
+			case 3: /* Get Product Code */
+				readNetworkDictCallback(d, nodeid, 0x1018, 0x02, 0, CheckReadInfoSDO);
+				break;
+
+			case 4: /* Get Revision Number */
+				readNetworkDictCallback(d, nodeid, 0x1018, 0x03, 0, CheckReadInfoSDO);
+				break;
+
+			case 5: /* Print node info */
+				init_step = 0;
+		}
+}
+
+/* Callback function that check the read SDO demand */
+void CheckReadSDO(CO_Data* d, UNS8 nodeid)
+{
+	UNS32 abortCode;
+	UNS32 data;
+	UNS32 size=64;
+
+	if(getReadResultNetworkDict(d, nodeid, &data, &size, &abortCode) != SDO_FINISHED)
+		printf("\nResult : Failed in getting information for slave %2.2x, AbortCode :%4.4x \n", nodeid, abortCode);
+	else
+		printf("\nResult : = %x\n", data);
+
+	/* Finalise last SDO transfer with this node */
+	closeSDOtransfer(CANOpenShellOD_Data, nodeid, SDO_CLIENT);
+}
+
+/* Read a slave node object dictionary entry */
+void ReadDeviceEntry(CO_Data* d, char* sdo)
+{
+	int nodeid;
+	int index;
+	int subindex;
+	int size;
+	int datatype = 0;
+
+	sscanf(sdo, "%2x%4x%2x", &nodeid, &index, &subindex);
+
+	printf("##################################\n");
+	printf("#### Read SDO                 ####\n");
+	printf("##################################\n");
+	printf("NodeId   : %2.2x\n", nodeid);
+	printf("Index    : %4.4x\n", index);
+	printf("SubIndex : %2.2x\n", subindex);
+
+	readNetworkDictCallback(d, (UNS8)nodeid, (UNS16)index, (UNS8)subindex, (UNS8)datatype, CheckReadSDO);
+}
+
+/* Callback function that check the write SDO demand */
+void CheckWriteSDO(CO_Data* d, UNS8 nodeid)
+{
+	UNS32 abortCode;
+
+	if(getWriteResultNetworkDict(d, nodeid, &abortCode) != SDO_FINISHED)
+		printf("\nResult : Failed in getting information for slave %2.2x, AbortCode :%4.4x \n", nodeid, abortCode);
+	else
+		printf("\nSend data OK\n");
+
+	/* Finalise last SDO transfer with this node */
+	closeSDOtransfer(CANOpenShellOD_Data, nodeid, SDO_CLIENT);
+}
+
+/* Write a slave node object dictionnary entry */
+void WriteDeviceEntry(CO_Data* d, char* sdo)
+{
+	int nodeid;
+	int index;
+	int subindex;
+	int size;
+	int data;
+
+	sscanf(sdo, "%2x%4x%2x%2x%4x", &nodeid , &index, &subindex, &size, &data);
+
+	printf("##################################\n");
+	printf("#### Write SDO                ####\n");
+	printf("##################################\n");
+	printf("NodeId   : %2.2x\n", nodeid);
+	printf("Index    : %4.4x\n", index);
+	printf("SubIndex : %2.2x\n", subindex);
+	printf("Size     : %2.2x\n", size);
+	printf("Data     : %x\n", data);
+
+	writeNetworkDictCallBackAI(d, nodeid, index, subindex, size, 0, &data, CheckWriteSDO, 1);
+}
+
+void CANOpenShellOD_post_SlaveBootup(CO_Data* d, UNS8 nodeid)
+{
+	printf("Slave %x boot up\n", nodeid);
+}
+
+/***************************  CALLBACK FUNCTIONS  *****************************************/
+void CANOpenShellOD_initialisation(CO_Data* d)
+{
+	//printf("Master_initialisation\n");
+}
+
+void CANOpenShellOD_preOperational(CO_Data* d)
+{
+	//printf("Master_preOperational\n");
+}
+
+void CANOpenShellOD_operational(CO_Data* d)
+{
+	//printf("Master_operational\n");
+}
+
+void CANOpenShellOD_stopped(CO_Data* d)
+{
+	//printf("Master_stopped\n");
+}
+
+void CANOpenShellOD_post_sync(CO_Data* d)
+{
+	//printf("Master_post_sync\n");
+}
+
+void CANOpenShellOD_post_TPDO(CO_Data* d)
+{
+	//printf("Master_post_TPDO\n");
+}
+
+/***************************  MASTER INITIALISATION **********************************/
+void Init(CO_Data* d, UNS32 nodeid)
+{
+	if(Board.baudrate)
+	{
+		/* Defining the node Id */
+		setNodeId(CANOpenShellOD_Data, nodeid);
+
+		/* Init */
+		setState(CANOpenShellOD_Data, Initialisation);
+	}
+}
+
+/***************************  MASTER CLEANUP  *****************************************/
+void Exit(CO_Data* d, UNS32 nodeid)
+{
+	if(strcmp(Board.baudrate, "none"))
+	{
+		/* Reset all nodes on the network */
+		masterSendNMTstateChange(CANOpenShellOD_Data, (UNS8)nodeid, NMT_Reset_Node);
+
+		/* Stop master */
+		setState(CANOpenShellOD_Data, Stopped);
+	}
+}
+
+int ExtractNodeId(char *command) {
+	int nodeid;
+	sscanf(command, "%2x", &nodeid);
+	return nodeid;
+}
+
+int NodeInit(CO_Data* d, int DeviceNodeID, int DeviceIsMaster)
+{
+	if(DeviceIsMaster)
+	{
+		CANOpenShellOD_Data = &CANOpenShellMasterOD_Data;
+	}
+	else
+	{
+		CANOpenShellOD_Data = &CANOpenShellSlaveOD_Data;
+	}
+
+	/* Load can library */
+	LoadCanDriver(LibraryPath);
+
+	/* Init stack timer */
+	TimerInit();
+
+	/* Define callback functions */
+	CANOpenShellOD_Data->initialisation = CANOpenShellOD_initialisation;
+	CANOpenShellOD_Data->preOperational = CANOpenShellOD_preOperational;
+	CANOpenShellOD_Data->operational = CANOpenShellOD_operational;
+	CANOpenShellOD_Data->stopped = CANOpenShellOD_stopped;
+	CANOpenShellOD_Data->post_sync = CANOpenShellOD_post_sync;
+	CANOpenShellOD_Data->post_TPDO = CANOpenShellOD_post_TPDO;
+	CANOpenShellOD_Data->post_SlaveBootup=CANOpenShellOD_post_SlaveBootup;
+
+	/* Open the Peak CANOpen device */
+	if(!canOpen(&Board,CANOpenShellOD_Data)) return 1;
+
+	/* Start Timer thread */
+	StartTimerLoop(&Init);
+	return 0;
+}
+
+void help_menu(void)
+{
+	printf("   MANDATORY COMMAND (must be the first command):\n");
+	printf("      load#Can library path,channel,baudrate,device nodeid,device type (m for master, s for slave)\n");
+	printf("\n");
+	printf("   NETWORK: (if nodeid=0x00 : broadcast)\n");
+	printf("     ssta#[nodeid] : Start a node\n");
+	printf("     ssto#[nodeid] : Stop a node\n");
+	printf("     srst#[nodeid] : Reset a node\n");
+	printf("     scan : Reset all nodes and print message when bootup\n");
+	printf("     wait#[seconds] : Sleep for n seconds\n");
+	printf("\n");
+	printf("   SDO: (size parameter : nb BYTES)\n");
+	printf("     info#[nodeid]\n");
+	printf("     rsdo#[nodeid][index][subindex] : read sdo\n");
+	printf("     wsdo#[nodeid][index][subindex][size][data] : write sdo\n");
+	printf("\n");
+	printf("     help : Display this menu\n");
+	printf("     quit : Quit application\n");
+	printf("\n");
+	printf("\n");
+}
+
+int ProcessCommand(char* command)
+{
+	int ret = 0;
+	int sec = 0;
+	int DeviceNodeID;
+	int DeviceType;
+
+	switch(cst_str4(command[0], command[1], command[2], command[3]))
+	{
+		case cst_str4('l', 'o', 'a', 'd') : /* Library Interface*/
+					ret = sscanf(command, "load#%100[^,],%10[^,],%4[^,],%d,%d",
+							LibraryPath,
+							BoardBusName,
+							BoardBaudRate,
+							&DeviceNodeID,
+							&DeviceType);
+
+					if(ret == 5)
+					{
+						ret = NodeInit(CANOpenShellOD_Data, DeviceNodeID, DeviceType);
+						return ret;
+					}
+					else{
+						help_menu();
+						exit(1);
+					}
+					break;
+		case cst_str4('h', 'e', 'l', 'p') : /* Display Help*/
+					help_menu();
+					break;
+		case cst_str4('s', 's', 't', 'a') : /* Slave Start*/
+					StartNode(CANOpenShellOD_Data, ExtractNodeId(command + 5));
+					break;
+		case cst_str4('s', 's', 't', 'o') : /* Slave Stop */
+					StopNode(CANOpenShellOD_Data, ExtractNodeId(command + 5));
+					break;
+		case cst_str4('s', 'r', 's', 't') : /* Slave Reset */
+					ResetNode(CANOpenShellOD_Data, ExtractNodeId(command + 5));
+					break;
+		case cst_str4('i', 'n', 'f', 'o') : /* Retrieve node informations */
+					GetSlaveNodeInfo(CANOpenShellOD_Data, ExtractNodeId(command + 5));
+					break;
+		case cst_str4('r', 's', 'd', 'o') : /* Read device entry */
+					ReadDeviceEntry(CANOpenShellOD_Data, command + 5);
+					break;
+		case cst_str4('w', 's', 'd', 'o') : /* Write device entry */
+					WriteDeviceEntry(CANOpenShellOD_Data, command + 5);
+					break;
+		case cst_str4('s', 'c', 'a', 'n') : /* Display master node state */
+					DiscoverNodes(CANOpenShellOD_Data);
+					break;
+		case cst_str4('w', 'a', 'i', 't') : /* Display master node state */
+					ret = sscanf(command, "wait=%d", &sec);
+					if(ret == 1) SleepFunction(sec);
+					break;
+		case cst_str4('q', 'u', 'i', 't') : /* Quit application */
+					return QUIT;
+		default :
+					help_menu();
+	}
+	return 0;
+}
+
+/****************************************************************************/
+/***************************  MAIN  *****************************************/
+/****************************************************************************/
+
+int main(int argc, char** argv)
+{
+	extern char *optarg;
+	char command[20];
+	char* res;
+	int ret=0;
+	int sysret=0;
+	int i=0;
+
+	/* Print help and exit immediatly*/
+	if(argc < 1)
+	{
+		help_menu();
+		exit(1);
+	}
+
+	/* Strip command-line*/
+	for(i=1 ; i<argc ; i++)
+	{
+		if(ProcessCommand(argv[i]) == INIT_ERR) goto init_fail;
+	}
+
+	#if !defined(WIN32) || defined(__CYGWIN__)
+		/* install signal handler for manual break */
+		signal(SIGTERM, catch_signal);
+		signal(SIGINT, catch_signal);
+	#endif
+
+	/* Enter in a loop to read stdin command until "quit" is called */
+	while(ret != QUIT)
+	{
+		// wait on stdin for string command
+		res = fgets(command, sizeof(command), stdin);
+		sysret = system(CLEARSCREEN);
+		ret = ProcessCommand(command);
+		fflush(stdout);
+	}
+
+	printf("Finishing.\n");
+
+	// Stop timer thread
+	StopTimerLoop(&Exit);
+
+init_fail:
+	TimerCleanup();
+	return 0;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/CANOpenShell/CANOpenShell.h	Wed Jul 15 09:32:35 2009 +0200
@@ -0,0 +1,40 @@
+/*
+This file is part of CanFestival, a library implementing CanOpen Stack.
+
+Copyright (C): Edouard TISSERANT and Francis DUPIN
+
+See COPYING file for copyrights details.
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+#ifdef USE_XENO
+#define eprintf(...)
+#else
+#define eprintf(...) printf (__VA_ARGS__)
+#endif
+
+#include "canfestival.h"
+
+void help(void);
+void StartNode(CO_Data*, UNS8);
+void StopNode(CO_Data*, UNS8);
+void ResetNode(CO_Data*, UNS8);
+void DiscoverNodes(CO_Data*);
+void CheckReadInfoSDO(CO_Data*, UNS8);
+void GetSlaveNodeInfo(CO_Data*, UNS8);
+void CheckReadSDO(CO_Data*, UNS8);
+void CheckWriteSDO(CO_Data*, UNS8);
+void ReadDeviceEntry(CO_Data*, char*);
+void WriteDeviceEntry(CO_Data*, char*);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/CANOpenShell/CANOpenShell.vcproj	Wed Jul 15 09:32:35 2009 +0200
@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9,00"
+	Name="CANOpenShell"
+	ProjectGUID="{06B3C378-9EE4-4C56-A519-775FF499DAB5}"
+	RootNamespace="CANOpenShell"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="196613"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="..\..\include;..\..\include\win32"
+				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+				MinimalRebuild="true"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="&quot;..\..\lib\static\libcanfestival.lib&quot; &quot;..\..\lib\static\libcanfestival_win32.lib&quot; &quot;..\..\lib\static\libgcc.lib&quot;"
+				LinkIncremental="2"
+				GenerateDebugInformation="false"
+				SubSystem="1"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="1"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				EnableIntrinsicFunctions="true"
+				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="true"
+				UsePrecompiledHeader="0"
+				WarningLevel="3"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				LinkIncremental="1"
+				GenerateDebugInformation="true"
+				SubSystem="1"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				TargetMachine="1"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Fichiers sources"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath=".\getopt.c"
+				>
+			</File>
+			<File
+				RelativePath=".\CANOpenShell.c"
+				>
+			</File>
+			<File
+				RelativePath=".\CANOpenShellOD.c"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Fichiers d&apos;en-t�te"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath=".\getopt.h"
+				>
+			</File>
+			<File
+				RelativePath=".\CANOpenShell.h"
+				>
+			</File>
+			<File
+				RelativePath=".\CANOpenShellOD.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Fichiers de ressources"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+			>
+		</Filter>
+		<File
+			RelativePath=".\ReadMe.txt"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/CANOpenShell/CANOpenShellMasterOD.od	Wed Jul 15 09:32:35 2009 +0200
@@ -0,0 +1,1577 @@
+<?xml version="1.0"?>
+<!DOCTYPE PyObject SYSTEM "PyObjects.dtd">
+<PyObject module="node" class="Node" id="190894796">
+<attr name="Profile" type="dict" id="190907772" >
+</attr>
+<attr name="Description" type="string"></attr>
+<attr name="Dictionary" type="dict" id="190907908" >
+  <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="4101" />
+    <val type="numeric" value="1073741952" />
+  </entry>
+  <entry>
+    <key type="numeric" value="4102" />
+    <val type="numeric" value="50000" />
+  </entry>
+  <entry>
+    <key type="numeric" value="4119" />
+    <val type="numeric" value="0" />
+  </entry>
+  <entry>
+    <key type="numeric" value="4120" />
+    <val type="list" id="190895756" >
+      <item type="numeric" value="0" />
+      <item type="numeric" value="0" />
+      <item type="numeric" value="0" />
+      <item type="numeric" value="0" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4736" />
+    <val type="list" id="190897452" >
+      <item type="numeric" value="1536" />
+      <item type="numeric" value="1408" />
+      <item type="numeric" value="0" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4737" />
+    <val type="list" id="190897516" >
+      <item type="numeric" value="1537" />
+      <item type="numeric" value="1409" />
+      <item type="numeric" value="1" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4738" />
+    <val type="list" id="190897388" >
+      <item type="numeric" value="1538" />
+      <item type="numeric" value="1410" />
+      <item type="numeric" value="2" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4739" />
+    <val type="list" id="190897260" >
+      <item type="numeric" value="1539" />
+      <item type="numeric" value="1411" />
+      <item type="numeric" value="3" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4740" />
+    <val type="list" id="190897772" >
+      <item type="numeric" value="1540" />
+      <item type="numeric" value="1412" />
+      <item type="numeric" value="4" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4741" />
+    <val type="list" id="190896396" >
+      <item type="numeric" value="1541" />
+      <item type="numeric" value="1413" />
+      <item type="numeric" value="5" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4742" />
+    <val type="list" id="190896332" >
+      <item type="numeric" value="1542" />
+      <item type="numeric" value="1414" />
+      <item type="numeric" value="6" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4743" />
+    <val type="list" id="190896268" >
+      <item type="numeric" value="1543" />
+      <item type="numeric" value="1415" />
+      <item type="numeric" value="7" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4744" />
+    <val type="list" id="190896204" >
+      <item type="numeric" value="1544" />
+      <item type="numeric" value="1416" />
+      <item type="numeric" value="8" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4745" />
+    <val type="list" id="190896140" >
+      <item type="numeric" value="1545" />
+      <item type="numeric" value="1417" />
+      <item type="numeric" value="9" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4746" />
+    <val type="list" id="190895340" >
+      <item type="numeric" value="1546" />
+      <item type="numeric" value="1418" />
+      <item type="numeric" value="10" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4747" />
+    <val type="list" id="190895404" >
+      <item type="numeric" value="1547" />
+      <item type="numeric" value="1419" />
+      <item type="numeric" value="11" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4748" />
+    <val type="list" id="190895212" >
+      <item type="numeric" value="1548" />
+      <item type="numeric" value="1420" />
+      <item type="numeric" value="12" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4749" />
+    <val type="list" id="190895276" >
+      <item type="numeric" value="1549" />
+      <item type="numeric" value="1421" />
+      <item type="numeric" value="13" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4750" />
+    <val type="list" id="190895468" >
+      <item type="numeric" value="1550" />
+      <item type="numeric" value="1422" />
+      <item type="numeric" value="14" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4751" />
+    <val type="list" id="190898092" >
+      <item type="numeric" value="1551" />
+      <item type="numeric" value="1423" />
+      <item type="numeric" value="15" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4752" />
+    <val type="list" id="190897836" >
+      <item type="numeric" value="1552" />
+      <item type="numeric" value="1424" />
+      <item type="numeric" value="16" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4753" />
+    <val type="list" id="190897964" >
+      <item type="numeric" value="1553" />
+      <item type="numeric" value="1425" />
+      <item type="numeric" value="17" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4754" />
+    <val type="list" id="190896908" >
+      <item type="numeric" value="1554" />
+      <item type="numeric" value="1426" />
+      <item type="numeric" value="18" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4755" />
+    <val type="list" id="190896972" >
+      <item type="numeric" value="1555" />
+      <item type="numeric" value="1427" />
+      <item type="numeric" value="19" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4756" />
+    <val type="list" id="190896780" >
+      <item type="numeric" value="1556" />
+      <item type="numeric" value="1428" />
+      <item type="numeric" value="20" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4757" />
+    <val type="list" id="190896844" >
+      <item type="numeric" value="1557" />
+      <item type="numeric" value="1429" />
+      <item type="numeric" value="21" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4758" />
+    <val type="list" id="190897068" >
+      <item type="numeric" value="1558" />
+      <item type="numeric" value="1430" />
+      <item type="numeric" value="22" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4759" />
+    <val type="list" id="190895916" >
+      <item type="numeric" value="1559" />
+      <item type="numeric" value="1431" />
+      <item type="numeric" value="23" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4760" />
+    <val type="list" id="190895852" >
+      <item type="numeric" value="1560" />
+      <item type="numeric" value="1432" />
+      <item type="numeric" value="24" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4761" />
+    <val type="list" id="190896044" >
+      <item type="numeric" value="1561" />
+      <item type="numeric" value="1433" />
+      <item type="numeric" value="25" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4762" />
+    <val type="list" id="190895980" >
+      <item type="numeric" value="1562" />
+      <item type="numeric" value="1434" />
+      <item type="numeric" value="26" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4763" />
+    <val type="list" id="190896108" >
+      <item type="numeric" value="1563" />
+      <item type="numeric" value="1435" />
+      <item type="numeric" value="27" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4764" />
+    <val type="list" id="190895116" >
+      <item type="numeric" value="1564" />
+      <item type="numeric" value="1436" />
+      <item type="numeric" value="28" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4765" />
+    <val type="list" id="190894924" >
+      <item type="numeric" value="1565" />
+      <item type="numeric" value="1437" />
+      <item type="numeric" value="29" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4766" />
+    <val type="list" id="190894860" >
+      <item type="numeric" value="1566" />
+      <item type="numeric" value="1438" />
+      <item type="numeric" value="30" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4767" />
+    <val type="list" id="190895052" >
+      <item type="numeric" value="1567" />
+      <item type="numeric" value="1439" />
+      <item type="numeric" value="31" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4768" />
+    <val type="list" id="190894988" >
+      <item type="numeric" value="1568" />
+      <item type="numeric" value="1440" />
+      <item type="numeric" value="32" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4769" />
+    <val type="list" id="190900684" >
+      <item type="numeric" value="1569" />
+      <item type="numeric" value="1441" />
+      <item type="numeric" value="33" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4770" />
+    <val type="list" id="190900300" >
+      <item type="numeric" value="1570" />
+      <item type="numeric" value="1442" />
+      <item type="numeric" value="34" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4771" />
+    <val type="list" id="190900364" >
+      <item type="numeric" value="1571" />
+      <item type="numeric" value="1443" />
+      <item type="numeric" value="35" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4772" />
+    <val type="list" id="190900460" >
+      <item type="numeric" value="1572" />
+      <item type="numeric" value="1444" />
+      <item type="numeric" value="36" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4773" />
+    <val type="list" id="190900556" >
+      <item type="numeric" value="1573" />
+      <item type="numeric" value="1445" />
+      <item type="numeric" value="37" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4774" />
+    <val type="list" id="190901292" >
+      <item type="numeric" value="1574" />
+      <item type="numeric" value="1446" />
+      <item type="numeric" value="38" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4775" />
+    <val type="list" id="190901196" >
+      <item type="numeric" value="1575" />
+      <item type="numeric" value="1447" />
+      <item type="numeric" value="39" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4776" />
+    <val type="list" id="190901068" >
+      <item type="numeric" value="1576" />
+      <item type="numeric" value="1448" />
+      <item type="numeric" value="40" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4777" />
+    <val type="list" id="190900972" >
+      <item type="numeric" value="1577" />
+      <item type="numeric" value="1449" />
+      <item type="numeric" value="41" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4778" />
+    <val type="list" id="190900844" >
+      <item type="numeric" value="1578" />
+      <item type="numeric" value="1450" />
+      <item type="numeric" value="42" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4779" />
+    <val type="list" id="190898956" >
+      <item type="numeric" value="1579" />
+      <item type="numeric" value="1451" />
+      <item type="numeric" value="43" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4780" />
+    <val type="list" id="190901644" >
+      <item type="numeric" value="1580" />
+      <item type="numeric" value="1452" />
+      <item type="numeric" value="44" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4781" />
+    <val type="list" id="190902220" >
+      <item type="numeric" value="1581" />
+      <item type="numeric" value="1453" />
+      <item type="numeric" value="45" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4782" />
+    <val type="list" id="190902092" >
+      <item type="numeric" value="1582" />
+      <item type="numeric" value="1454" />
+      <item type="numeric" value="46" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4783" />
+    <val type="list" id="190902156" >
+      <item type="numeric" value="1583" />
+      <item type="numeric" value="1455" />
+      <item type="numeric" value="47" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4784" />
+    <val type="list" id="190901708" >
+      <item type="numeric" value="1584" />
+      <item type="numeric" value="1456" />
+      <item type="numeric" value="48" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4785" />
+    <val type="list" id="190901772" >
+      <item type="numeric" value="1585" />
+      <item type="numeric" value="1457" />
+      <item type="numeric" value="49" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4786" />
+    <val type="list" id="190901868" >
+      <item type="numeric" value="1586" />
+      <item type="numeric" value="1458" />
+      <item type="numeric" value="50" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4787" />
+    <val type="list" id="190901932" >
+      <item type="numeric" value="1587" />
+      <item type="numeric" value="1459" />
+      <item type="numeric" value="51" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4788" />
+    <val type="list" id="190898252" >
+      <item type="numeric" value="1588" />
+      <item type="numeric" value="1460" />
+      <item type="numeric" value="52" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4789" />
+    <val type="list" id="190898380" >
+      <item type="numeric" value="1589" />
+      <item type="numeric" value="1461" />
+      <item type="numeric" value="53" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4790" />
+    <val type="list" id="190898636" >
+      <item type="numeric" value="1590" />
+      <item type="numeric" value="1462" />
+      <item type="numeric" value="54" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4791" />
+    <val type="list" id="190898508" >
+      <item type="numeric" value="1591" />
+      <item type="numeric" value="1463" />
+      <item type="numeric" value="55" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4792" />
+    <val type="list" id="190898764" >
+      <item type="numeric" value="1592" />
+      <item type="numeric" value="1464" />
+      <item type="numeric" value="56" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4793" />
+    <val type="list" id="190901996" >
+      <item type="numeric" value="1593" />
+      <item type="numeric" value="1465" />
+      <item type="numeric" value="57" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4794" />
+    <val type="list" id="190901484" >
+      <item type="numeric" value="1594" />
+      <item type="numeric" value="1466" />
+      <item type="numeric" value="58" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4795" />
+    <val type="list" id="190901612" >
+      <item type="numeric" value="1595" />
+      <item type="numeric" value="1467" />
+      <item type="numeric" value="59" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4796" />
+    <val type="list" id="190899660" >
+      <item type="numeric" value="1596" />
+      <item type="numeric" value="1468" />
+      <item type="numeric" value="60" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4797" />
+    <val type="list" id="190899532" >
+      <item type="numeric" value="1597" />
+      <item type="numeric" value="1469" />
+      <item type="numeric" value="61" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4798" />
+    <val type="list" id="190899404" >
+      <item type="numeric" value="1598" />
+      <item type="numeric" value="1470" />
+      <item type="numeric" value="62" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4799" />
+    <val type="list" id="190899276" >
+      <item type="numeric" value="1599" />
+      <item type="numeric" value="1471" />
+      <item type="numeric" value="63" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4800" />
+    <val type="list" id="190899148" >
+      <item type="numeric" value="1600" />
+      <item type="numeric" value="1472" />
+      <item type="numeric" value="64" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4801" />
+    <val type="list" id="190901452" >
+      <item type="numeric" value="1601" />
+      <item type="numeric" value="1473" />
+      <item type="numeric" value="65" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4802" />
+    <val type="list" id="190901324" >
+      <item type="numeric" value="1602" />
+      <item type="numeric" value="1474" />
+      <item type="numeric" value="66" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4803" />
+    <val type="list" id="190900236" >
+      <item type="numeric" value="1603" />
+      <item type="numeric" value="1475" />
+      <item type="numeric" value="67" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4804" />
+    <val type="list" id="190900044" >
+      <item type="numeric" value="1604" />
+      <item type="numeric" value="1476" />
+      <item type="numeric" value="68" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4805" />
+    <val type="list" id="190900172" >
+      <item type="numeric" value="1605" />
+      <item type="numeric" value="1477" />
+      <item type="numeric" value="69" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4806" />
+    <val type="list" id="190899788" >
+      <item type="numeric" value="1606" />
+      <item type="numeric" value="1478" />
+      <item type="numeric" value="70" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4807" />
+    <val type="list" id="190899916" >
+      <item type="numeric" value="1607" />
+      <item type="numeric" value="1479" />
+      <item type="numeric" value="71" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4808" />
+    <val type="list" id="190901516" >
+      <item type="numeric" value="1608" />
+      <item type="numeric" value="1480" />
+      <item type="numeric" value="72" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4809" />
+    <val type="list" id="190903148" >
+      <item type="numeric" value="1609" />
+      <item type="numeric" value="1481" />
+      <item type="numeric" value="73" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4810" />
+    <val type="list" id="190902988" >
+      <item type="numeric" value="1610" />
+      <item type="numeric" value="1482" />
+      <item type="numeric" value="74" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4811" />
+    <val type="list" id="190902892" >
+      <item type="numeric" value="1611" />
+      <item type="numeric" value="1483" />
+      <item type="numeric" value="75" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4812" />
+    <val type="list" id="190902412" >
+      <item type="numeric" value="1612" />
+      <item type="numeric" value="1484" />
+      <item type="numeric" value="76" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4813" />
+    <val type="list" id="190902380" >
+      <item type="numeric" value="1613" />
+      <item type="numeric" value="1485" />
+      <item type="numeric" value="77" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4814" />
+    <val type="list" id="190903020" >
+      <item type="numeric" value="1614" />
+      <item type="numeric" value="1486" />
+      <item type="numeric" value="78" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4815" />
+    <val type="list" id="190902764" >
+      <item type="numeric" value="1615" />
+      <item type="numeric" value="1487" />
+      <item type="numeric" value="79" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4816" />
+    <val type="list" id="190902572" >
+      <item type="numeric" value="1616" />
+      <item type="numeric" value="1488" />
+      <item type="numeric" value="80" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4817" />
+    <val type="list" id="190902508" >
+      <item type="numeric" value="1617" />
+      <item type="numeric" value="1489" />
+      <item type="numeric" value="81" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4818" />
+    <val type="list" id="190902636" >
+      <item type="numeric" value="1618" />
+      <item type="numeric" value="1490" />
+      <item type="numeric" value="82" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4819" />
+    <val type="list" id="190902828" >
+      <item type="numeric" value="1619" />
+      <item type="numeric" value="1491" />
+      <item type="numeric" value="83" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4820" />
+    <val type="list" id="190902860" >
+      <item type="numeric" value="1620" />
+      <item type="numeric" value="1492" />
+      <item type="numeric" value="84" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4821" />
+    <val type="list" id="190903628" >
+      <item type="numeric" value="1621" />
+      <item type="numeric" value="1493" />
+      <item type="numeric" value="85" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4822" />
+    <val type="list" id="190903212" >
+      <item type="numeric" value="1622" />
+      <item type="numeric" value="1494" />
+      <item type="numeric" value="86" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4823" />
+    <val type="list" id="190903276" >
+      <item type="numeric" value="1623" />
+      <item type="numeric" value="1495" />
+      <item type="numeric" value="87" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4824" />
+    <val type="list" id="190903372" >
+      <item type="numeric" value="1624" />
+      <item type="numeric" value="1496" />
+      <item type="numeric" value="88" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4825" />
+    <val type="list" id="190903500" >
+      <item type="numeric" value="1625" />
+      <item type="numeric" value="1497" />
+      <item type="numeric" value="89" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4826" />
+    <val type="list" id="190903724" >
+      <item type="numeric" value="1626" />
+      <item type="numeric" value="1498" />
+      <item type="numeric" value="90" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4827" />
+    <val type="list" id="190903788" >
+      <item type="numeric" value="1627" />
+      <item type="numeric" value="1499" />
+      <item type="numeric" value="91" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4828" />
+    <val type="list" id="190903852" >
+      <item type="numeric" value="1628" />
+      <item type="numeric" value="1500" />
+      <item type="numeric" value="92" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4829" />
+    <val type="list" id="190903916" >
+      <item type="numeric" value="1629" />
+      <item type="numeric" value="1501" />
+      <item type="numeric" value="93" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4830" />
+    <val type="list" id="190903980" >
+      <item type="numeric" value="1630" />
+      <item type="numeric" value="1502" />
+      <item type="numeric" value="94" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4831" />
+    <val type="list" id="190904044" >
+      <item type="numeric" value="1631" />
+      <item type="numeric" value="1503" />
+      <item type="numeric" value="95" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4832" />
+    <val type="list" id="190904108" >
+      <item type="numeric" value="1632" />
+      <item type="numeric" value="1504" />
+      <item type="numeric" value="96" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4833" />
+    <val type="list" id="190904172" >
+      <item type="numeric" value="1633" />
+      <item type="numeric" value="1505" />
+      <item type="numeric" value="97" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4834" />
+    <val type="list" id="190904236" >
+      <item type="numeric" value="1634" />
+      <item type="numeric" value="1506" />
+      <item type="numeric" value="98" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4835" />
+    <val type="list" id="190904300" >
+      <item type="numeric" value="1635" />
+      <item type="numeric" value="1507" />
+      <item type="numeric" value="99" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4836" />
+    <val type="list" id="190904364" >
+      <item type="numeric" value="1636" />
+      <item type="numeric" value="1508" />
+      <item type="numeric" value="100" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4837" />
+    <val type="list" id="190904428" >
+      <item type="numeric" value="1637" />
+      <item type="numeric" value="1509" />
+      <item type="numeric" value="101" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4838" />
+    <val type="list" id="190904492" >
+      <item type="numeric" value="1638" />
+      <item type="numeric" value="1510" />
+      <item type="numeric" value="102" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4839" />
+    <val type="list" id="190904556" >
+      <item type="numeric" value="1639" />
+      <item type="numeric" value="1511" />
+      <item type="numeric" value="103" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4840" />
+    <val type="list" id="190904620" >
+      <item type="numeric" value="1640" />
+      <item type="numeric" value="1512" />
+      <item type="numeric" value="104" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4841" />
+    <val type="list" id="190904684" >
+      <item type="numeric" value="1641" />
+      <item type="numeric" value="1513" />
+      <item type="numeric" value="105" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4842" />
+    <val type="list" id="190904748" >
+      <item type="numeric" value="1642" />
+      <item type="numeric" value="1514" />
+      <item type="numeric" value="106" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4843" />
+    <val type="list" id="190904812" >
+      <item type="numeric" value="1643" />
+      <item type="numeric" value="1515" />
+      <item type="numeric" value="107" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4844" />
+    <val type="list" id="190904876" >
+      <item type="numeric" value="1644" />
+      <item type="numeric" value="1516" />
+      <item type="numeric" value="108" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4845" />
+    <val type="list" id="190904940" >
+      <item type="numeric" value="1645" />
+      <item type="numeric" value="1517" />
+      <item type="numeric" value="109" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4846" />
+    <val type="list" id="190905004" >
+      <item type="numeric" value="1646" />
+      <item type="numeric" value="1518" />
+      <item type="numeric" value="110" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4847" />
+    <val type="list" id="190905068" >
+      <item type="numeric" value="1647" />
+      <item type="numeric" value="1519" />
+      <item type="numeric" value="111" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4848" />
+    <val type="list" id="190905132" >
+      <item type="numeric" value="1648" />
+      <item type="numeric" value="1520" />
+      <item type="numeric" value="112" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4849" />
+    <val type="list" id="190905196" >
+      <item type="numeric" value="1649" />
+      <item type="numeric" value="1521" />
+      <item type="numeric" value="113" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4850" />
+    <val type="list" id="190905260" >
+      <item type="numeric" value="1650" />
+      <item type="numeric" value="1522" />
+      <item type="numeric" value="114" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4851" />
+    <val type="list" id="190905324" >
+      <item type="numeric" value="1651" />
+      <item type="numeric" value="1523" />
+      <item type="numeric" value="115" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4852" />
+    <val type="list" id="190905388" >
+      <item type="numeric" value="1652" />
+      <item type="numeric" value="1524" />
+      <item type="numeric" value="116" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4853" />
+    <val type="list" id="190905452" >
+      <item type="numeric" value="1653" />
+      <item type="numeric" value="1525" />
+      <item type="numeric" value="117" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4854" />
+    <val type="list" id="190905516" >
+      <item type="numeric" value="1654" />
+      <item type="numeric" value="1526" />
+      <item type="numeric" value="118" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4855" />
+    <val type="list" id="190905580" >
+      <item type="numeric" value="1655" />
+      <item type="numeric" value="1527" />
+      <item type="numeric" value="119" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4856" />
+    <val type="list" id="190905644" >
+      <item type="numeric" value="1656" />
+      <item type="numeric" value="1528" />
+      <item type="numeric" value="120" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4857" />
+    <val type="list" id="190905708" >
+      <item type="numeric" value="1657" />
+      <item type="numeric" value="1529" />
+      <item type="numeric" value="121" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4858" />
+    <val type="list" id="190905772" >
+      <item type="numeric" value="1658" />
+      <item type="numeric" value="1530" />
+      <item type="numeric" value="122" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4859" />
+    <val type="list" id="190905836" >
+      <item type="numeric" value="1659" />
+      <item type="numeric" value="1531" />
+      <item type="numeric" value="123" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4860" />
+    <val type="list" id="190905900" >
+      <item type="numeric" value="1660" />
+      <item type="numeric" value="1532" />
+      <item type="numeric" value="124" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4861" />
+    <val type="list" id="190905964" >
+      <item type="numeric" value="1661" />
+      <item type="numeric" value="1533" />
+      <item type="numeric" value="125" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4862" />
+    <val type="list" id="190906028" >
+      <item type="numeric" value="1662" />
+      <item type="numeric" value="1534" />
+      <item type="numeric" value="126" />
+    </val>
+  </entry>
+</attr>
+<attr name="SpecificMenu" type="list" id="190906092" >
+</attr>
+<attr name="DefaultStringSize" type="numeric" value="10" />
+<attr name="ParamsDictionary" type="dict" id="190908044" >
+</attr>
+<attr name="UserMapping" type="dict" id="190908180" >
+</attr>
+<attr name="DS302" type="dict" id="190908316" >
+  <entry>
+    <key type="numeric" value="7968" />
+    <val type="dict" id="190908452" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="190910732" >
+          <item type="dict" id="190908588" >
+            <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="190908724" >
+            <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="190908860" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="190911180" >
+          <item type="dict" id="190908996" >
+            <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="190909132" >
+            <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="190909268" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="190911628" >
+          <item type="dict" id="190909404" >
+            <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="190909540" >
+            <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>
+  <entry>
+    <key type="numeric" value="8016" />
+    <val type="dict" id="190909676" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="190911884" >
+          <item type="dict" id="190909812" >
+            <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 different programs supported on the node" />
+            </entry>
+          </item>
+          <item type="dict" id="190909948" >
+            <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="Program Number %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="Download Program Data" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="8017" />
+    <val type="dict" id="190910084" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="190912140" >
+          <item type="dict" id="190910220" >
+            <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 different programs on the node" />
+            </entry>
+          </item>
+          <item type="dict" id="190914604" >
+            <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="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Program Number %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="Program Control" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="8018" />
+    <val type="dict" id="190914740" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="190912396" >
+          <item type="dict" id="190914876" >
+            <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="190915012" >
+            <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="7" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Application software date" />
+            </entry>
+          </item>
+          <item type="dict" id="190915148" >
+            <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="7" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Application sofware time" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Verify Application Software" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="3" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="8019" />
+    <val type="dict" id="190915284" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="190912652" >
+          <item type="dict" id="190915420" >
+            <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 different programs on the node" />
+            </entry>
+          </item>
+          <item type="dict" id="190915556" >
+            <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="7" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Program number %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="Expected Application SW Date" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="8021" />
+    <val type="dict" id="190915692" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="190912972" >
+          <item type="dict" id="190915828" >
+            <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 different programs on the node" />
+            </entry>
+          </item>
+          <item type="dict" id="190915964" >
+            <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="7" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Program number %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="Expected Application SW Time" />
+      </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">master</attr>
+<attr name="ID" type="numeric" value="0" />
+<attr name="Name" type="string">CANOpenShellMasterOD</attr>
+</PyObject>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/CANOpenShell/CANOpenShellSlaveOD.od	Wed Jul 15 09:32:35 2009 +0200
@@ -0,0 +1,1569 @@
+<?xml version="1.0"?>
+<!DOCTYPE PyObject SYSTEM "PyObjects.dtd">
+<PyObject module="node" class="Node" id="194706956">
+<attr name="Profile" type="dict" id="194697660" >
+</attr>
+<attr name="Description" type="string"></attr>
+<attr name="Dictionary" type="dict" id="194697796" >
+  <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="4119" />
+    <val type="numeric" value="0" />
+  </entry>
+  <entry>
+    <key type="numeric" value="4120" />
+    <val type="list" id="194706892" >
+      <item type="numeric" value="0" />
+      <item type="numeric" value="0" />
+      <item type="numeric" value="0" />
+      <item type="numeric" value="0" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4736" />
+    <val type="list" id="194704428" >
+      <item type="numeric" value="1536" />
+      <item type="numeric" value="1408" />
+      <item type="numeric" value="0" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4737" />
+    <val type="list" id="194704396" >
+      <item type="numeric" value="1537" />
+      <item type="numeric" value="1409" />
+      <item type="numeric" value="1" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4738" />
+    <val type="list" id="194704332" >
+      <item type="numeric" value="1538" />
+      <item type="numeric" value="1410" />
+      <item type="numeric" value="2" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4739" />
+    <val type="list" id="194704268" >
+      <item type="numeric" value="1539" />
+      <item type="numeric" value="1411" />
+      <item type="numeric" value="3" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4740" />
+    <val type="list" id="194704204" >
+      <item type="numeric" value="1540" />
+      <item type="numeric" value="1412" />
+      <item type="numeric" value="4" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4741" />
+    <val type="list" id="194703404" >
+      <item type="numeric" value="1541" />
+      <item type="numeric" value="1413" />
+      <item type="numeric" value="5" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4742" />
+    <val type="list" id="194703468" >
+      <item type="numeric" value="1542" />
+      <item type="numeric" value="1414" />
+      <item type="numeric" value="6" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4743" />
+    <val type="list" id="194706188" >
+      <item type="numeric" value="1543" />
+      <item type="numeric" value="1415" />
+      <item type="numeric" value="7" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4744" />
+    <val type="list" id="194706316" >
+      <item type="numeric" value="1544" />
+      <item type="numeric" value="1416" />
+      <item type="numeric" value="8" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4745" />
+    <val type="list" id="194705932" >
+      <item type="numeric" value="1545" />
+      <item type="numeric" value="1417" />
+      <item type="numeric" value="9" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4746" />
+    <val type="list" id="194706060" >
+      <item type="numeric" value="1546" />
+      <item type="numeric" value="1418" />
+      <item type="numeric" value="10" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4747" />
+    <val type="list" id="194706444" >
+      <item type="numeric" value="1547" />
+      <item type="numeric" value="1419" />
+      <item type="numeric" value="11" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4748" />
+    <val type="list" id="194704972" >
+      <item type="numeric" value="1548" />
+      <item type="numeric" value="1420" />
+      <item type="numeric" value="12" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4749" />
+    <val type="list" id="194705036" >
+      <item type="numeric" value="1549" />
+      <item type="numeric" value="1421" />
+      <item type="numeric" value="13" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4750" />
+    <val type="list" id="194704844" >
+      <item type="numeric" value="1550" />
+      <item type="numeric" value="1422" />
+      <item type="numeric" value="14" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4751" />
+    <val type="list" id="194704908" >
+      <item type="numeric" value="1551" />
+      <item type="numeric" value="1423" />
+      <item type="numeric" value="15" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4752" />
+    <val type="list" id="194706636" >
+      <item type="numeric" value="1552" />
+      <item type="numeric" value="1424" />
+      <item type="numeric" value="16" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4753" />
+    <val type="list" id="194706508" >
+      <item type="numeric" value="1553" />
+      <item type="numeric" value="1425" />
+      <item type="numeric" value="17" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4754" />
+    <val type="list" id="194705164" >
+      <item type="numeric" value="1554" />
+      <item type="numeric" value="1426" />
+      <item type="numeric" value="18" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4755" />
+    <val type="list" id="194706764" >
+      <item type="numeric" value="1555" />
+      <item type="numeric" value="1427" />
+      <item type="numeric" value="19" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4756" />
+    <val type="list" id="194703916" >
+      <item type="numeric" value="1556" />
+      <item type="numeric" value="1428" />
+      <item type="numeric" value="20" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4757" />
+    <val type="list" id="194703852" >
+      <item type="numeric" value="1557" />
+      <item type="numeric" value="1429" />
+      <item type="numeric" value="21" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4758" />
+    <val type="list" id="194704044" >
+      <item type="numeric" value="1558" />
+      <item type="numeric" value="1430" />
+      <item type="numeric" value="22" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4759" />
+    <val type="list" id="194703980" >
+      <item type="numeric" value="1559" />
+      <item type="numeric" value="1431" />
+      <item type="numeric" value="23" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4760" />
+    <val type="list" id="194704108" >
+      <item type="numeric" value="1560" />
+      <item type="numeric" value="1432" />
+      <item type="numeric" value="24" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4761" />
+    <val type="list" id="194707020" >
+      <item type="numeric" value="1561" />
+      <item type="numeric" value="1433" />
+      <item type="numeric" value="25" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4762" />
+    <val type="list" id="194707340" >
+      <item type="numeric" value="1562" />
+      <item type="numeric" value="1434" />
+      <item type="numeric" value="26" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4763" />
+    <val type="list" id="194707212" >
+      <item type="numeric" value="1563" />
+      <item type="numeric" value="1435" />
+      <item type="numeric" value="27" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4764" />
+    <val type="list" id="194707084" >
+      <item type="numeric" value="1564" />
+      <item type="numeric" value="1436" />
+      <item type="numeric" value="28" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4765" />
+    <val type="list" id="194702796" >
+      <item type="numeric" value="1565" />
+      <item type="numeric" value="1437" />
+      <item type="numeric" value="29" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4766" />
+    <val type="list" id="194702732" >
+      <item type="numeric" value="1566" />
+      <item type="numeric" value="1438" />
+      <item type="numeric" value="30" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4767" />
+    <val type="list" id="194702668" >
+      <item type="numeric" value="1567" />
+      <item type="numeric" value="1439" />
+      <item type="numeric" value="31" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4768" />
+    <val type="list" id="194702604" >
+      <item type="numeric" value="1568" />
+      <item type="numeric" value="1440" />
+      <item type="numeric" value="32" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4769" />
+    <val type="list" id="194702540" >
+      <item type="numeric" value="1569" />
+      <item type="numeric" value="1441" />
+      <item type="numeric" value="33" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4770" />
+    <val type="list" id="194703308" >
+      <item type="numeric" value="1570" />
+      <item type="numeric" value="1442" />
+      <item type="numeric" value="34" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4771" />
+    <val type="list" id="194703180" >
+      <item type="numeric" value="1571" />
+      <item type="numeric" value="1443" />
+      <item type="numeric" value="35" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4772" />
+    <val type="list" id="194703244" >
+      <item type="numeric" value="1572" />
+      <item type="numeric" value="1444" />
+      <item type="numeric" value="36" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4773" />
+    <val type="list" id="194703148" >
+      <item type="numeric" value="1573" />
+      <item type="numeric" value="1445" />
+      <item type="numeric" value="37" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4774" />
+    <val type="list" id="194702956" >
+      <item type="numeric" value="1574" />
+      <item type="numeric" value="1446" />
+      <item type="numeric" value="38" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4775" />
+    <val type="list" id="194702892" >
+      <item type="numeric" value="1575" />
+      <item type="numeric" value="1447" />
+      <item type="numeric" value="39" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4776" />
+    <val type="list" id="194703084" >
+      <item type="numeric" value="1576" />
+      <item type="numeric" value="1448" />
+      <item type="numeric" value="40" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4777" />
+    <val type="list" id="194703020" >
+      <item type="numeric" value="1577" />
+      <item type="numeric" value="1449" />
+      <item type="numeric" value="41" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4778" />
+    <val type="list" id="190901132" >
+      <item type="numeric" value="1578" />
+      <item type="numeric" value="1450" />
+      <item type="numeric" value="42" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4779" />
+    <val type="list" id="194708716" >
+      <item type="numeric" value="1579" />
+      <item type="numeric" value="1451" />
+      <item type="numeric" value="43" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4780" />
+    <val type="list" id="194711148" >
+      <item type="numeric" value="1580" />
+      <item type="numeric" value="1452" />
+      <item type="numeric" value="44" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4781" />
+    <val type="list" id="194708332" >
+      <item type="numeric" value="1581" />
+      <item type="numeric" value="1453" />
+      <item type="numeric" value="45" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4782" />
+    <val type="list" id="194708396" >
+      <item type="numeric" value="1582" />
+      <item type="numeric" value="1454" />
+      <item type="numeric" value="46" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4783" />
+    <val type="list" id="194708492" >
+      <item type="numeric" value="1583" />
+      <item type="numeric" value="1455" />
+      <item type="numeric" value="47" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4784" />
+    <val type="list" id="194708588" >
+      <item type="numeric" value="1584" />
+      <item type="numeric" value="1456" />
+      <item type="numeric" value="48" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4785" />
+    <val type="list" id="194709260" >
+      <item type="numeric" value="1585" />
+      <item type="numeric" value="1457" />
+      <item type="numeric" value="49" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4786" />
+    <val type="list" id="194709164" >
+      <item type="numeric" value="1586" />
+      <item type="numeric" value="1458" />
+      <item type="numeric" value="50" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4787" />
+    <val type="list" id="194709068" >
+      <item type="numeric" value="1587" />
+      <item type="numeric" value="1459" />
+      <item type="numeric" value="51" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4788" />
+    <val type="list" id="194708940" >
+      <item type="numeric" value="1588" />
+      <item type="numeric" value="1460" />
+      <item type="numeric" value="52" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4789" />
+    <val type="list" id="194708812" >
+      <item type="numeric" value="1589" />
+      <item type="numeric" value="1461" />
+      <item type="numeric" value="53" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4790" />
+    <val type="list" id="194710988" >
+      <item type="numeric" value="1590" />
+      <item type="numeric" value="1462" />
+      <item type="numeric" value="54" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4791" />
+    <val type="list" id="194709676" >
+      <item type="numeric" value="1591" />
+      <item type="numeric" value="1463" />
+      <item type="numeric" value="55" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4792" />
+    <val type="list" id="194710700" >
+      <item type="numeric" value="1592" />
+      <item type="numeric" value="1464" />
+      <item type="numeric" value="56" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4793" />
+    <val type="list" id="194710444" >
+      <item type="numeric" value="1593" />
+      <item type="numeric" value="1465" />
+      <item type="numeric" value="57" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4794" />
+    <val type="list" id="194710316" >
+      <item type="numeric" value="1594" />
+      <item type="numeric" value="1466" />
+      <item type="numeric" value="58" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4795" />
+    <val type="list" id="194710380" >
+      <item type="numeric" value="1595" />
+      <item type="numeric" value="1467" />
+      <item type="numeric" value="59" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4796" />
+    <val type="list" id="194710124" >
+      <item type="numeric" value="1596" />
+      <item type="numeric" value="1468" />
+      <item type="numeric" value="60" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4797" />
+    <val type="list" id="194710188" >
+      <item type="numeric" value="1597" />
+      <item type="numeric" value="1469" />
+      <item type="numeric" value="61" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4798" />
+    <val type="list" id="194710956" >
+      <item type="numeric" value="1598" />
+      <item type="numeric" value="1470" />
+      <item type="numeric" value="62" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4799" />
+    <val type="list" id="194709772" >
+      <item type="numeric" value="1599" />
+      <item type="numeric" value="1471" />
+      <item type="numeric" value="63" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4800" />
+    <val type="list" id="194709868" >
+      <item type="numeric" value="1600" />
+      <item type="numeric" value="1472" />
+      <item type="numeric" value="64" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4801" />
+    <val type="list" id="194709932" >
+      <item type="numeric" value="1601" />
+      <item type="numeric" value="1473" />
+      <item type="numeric" value="65" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4802" />
+    <val type="list" id="194711020" >
+      <item type="numeric" value="1602" />
+      <item type="numeric" value="1474" />
+      <item type="numeric" value="66" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4803" />
+    <val type="list" id="194711052" >
+      <item type="numeric" value="1603" />
+      <item type="numeric" value="1475" />
+      <item type="numeric" value="67" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4804" />
+    <val type="list" id="194710540" >
+      <item type="numeric" value="1604" />
+      <item type="numeric" value="1476" />
+      <item type="numeric" value="68" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4805" />
+    <val type="list" id="194710476" >
+      <item type="numeric" value="1605" />
+      <item type="numeric" value="1477" />
+      <item type="numeric" value="69" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4806" />
+    <val type="list" id="194710028" >
+      <item type="numeric" value="1606" />
+      <item type="numeric" value="1478" />
+      <item type="numeric" value="70" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4807" />
+    <val type="list" id="194710636" >
+      <item type="numeric" value="1607" />
+      <item type="numeric" value="1479" />
+      <item type="numeric" value="71" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4808" />
+    <val type="list" id="194710828" >
+      <item type="numeric" value="1608" />
+      <item type="numeric" value="1480" />
+      <item type="numeric" value="72" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4809" />
+    <val type="list" id="194710796" >
+      <item type="numeric" value="1609" />
+      <item type="numeric" value="1481" />
+      <item type="numeric" value="73" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4810" />
+    <val type="list" id="194709516" >
+      <item type="numeric" value="1610" />
+      <item type="numeric" value="1482" />
+      <item type="numeric" value="74" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4811" />
+    <val type="list" id="194707756" >
+      <item type="numeric" value="1611" />
+      <item type="numeric" value="1483" />
+      <item type="numeric" value="75" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4812" />
+    <val type="list" id="194707628" >
+      <item type="numeric" value="1612" />
+      <item type="numeric" value="1484" />
+      <item type="numeric" value="76" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4813" />
+    <val type="list" id="194707500" >
+      <item type="numeric" value="1613" />
+      <item type="numeric" value="1485" />
+      <item type="numeric" value="77" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4814" />
+    <val type="list" id="194709420" >
+      <item type="numeric" value="1614" />
+      <item type="numeric" value="1486" />
+      <item type="numeric" value="78" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4815" />
+    <val type="list" id="194709612" >
+      <item type="numeric" value="1615" />
+      <item type="numeric" value="1487" />
+      <item type="numeric" value="79" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4816" />
+    <val type="list" id="194708300" >
+      <item type="numeric" value="1616" />
+      <item type="numeric" value="1488" />
+      <item type="numeric" value="80" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4817" />
+    <val type="list" id="194708140" >
+      <item type="numeric" value="1617" />
+      <item type="numeric" value="1489" />
+      <item type="numeric" value="81" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4818" />
+    <val type="list" id="194708236" >
+      <item type="numeric" value="1618" />
+      <item type="numeric" value="1490" />
+      <item type="numeric" value="82" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4819" />
+    <val type="list" id="194707884" >
+      <item type="numeric" value="1619" />
+      <item type="numeric" value="1491" />
+      <item type="numeric" value="83" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4820" />
+    <val type="list" id="194708012" >
+      <item type="numeric" value="1620" />
+      <item type="numeric" value="1492" />
+      <item type="numeric" value="84" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4821" />
+    <val type="list" id="194711244" >
+      <item type="numeric" value="1621" />
+      <item type="numeric" value="1493" />
+      <item type="numeric" value="85" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4822" />
+    <val type="list" id="194711308" >
+      <item type="numeric" value="1622" />
+      <item type="numeric" value="1494" />
+      <item type="numeric" value="86" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4823" />
+    <val type="list" id="194711436" >
+      <item type="numeric" value="1623" />
+      <item type="numeric" value="1495" />
+      <item type="numeric" value="87" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4824" />
+    <val type="list" id="194711532" >
+      <item type="numeric" value="1624" />
+      <item type="numeric" value="1496" />
+      <item type="numeric" value="88" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4825" />
+    <val type="list" id="194711628" >
+      <item type="numeric" value="1625" />
+      <item type="numeric" value="1497" />
+      <item type="numeric" value="89" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4826" />
+    <val type="list" id="194711692" >
+      <item type="numeric" value="1626" />
+      <item type="numeric" value="1498" />
+      <item type="numeric" value="90" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4827" />
+    <val type="list" id="194711756" >
+      <item type="numeric" value="1627" />
+      <item type="numeric" value="1499" />
+      <item type="numeric" value="91" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4828" />
+    <val type="list" id="194711820" >
+      <item type="numeric" value="1628" />
+      <item type="numeric" value="1500" />
+      <item type="numeric" value="92" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4829" />
+    <val type="list" id="194711884" >
+      <item type="numeric" value="1629" />
+      <item type="numeric" value="1501" />
+      <item type="numeric" value="93" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4830" />
+    <val type="list" id="194711948" >
+      <item type="numeric" value="1630" />
+      <item type="numeric" value="1502" />
+      <item type="numeric" value="94" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4831" />
+    <val type="list" id="194712012" >
+      <item type="numeric" value="1631" />
+      <item type="numeric" value="1503" />
+      <item type="numeric" value="95" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4832" />
+    <val type="list" id="194712076" >
+      <item type="numeric" value="1632" />
+      <item type="numeric" value="1504" />
+      <item type="numeric" value="96" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4833" />
+    <val type="list" id="194712140" >
+      <item type="numeric" value="1633" />
+      <item type="numeric" value="1505" />
+      <item type="numeric" value="97" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4834" />
+    <val type="list" id="194712204" >
+      <item type="numeric" value="1634" />
+      <item type="numeric" value="1506" />
+      <item type="numeric" value="98" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4835" />
+    <val type="list" id="194712268" >
+      <item type="numeric" value="1635" />
+      <item type="numeric" value="1507" />
+      <item type="numeric" value="99" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4836" />
+    <val type="list" id="194712332" >
+      <item type="numeric" value="1636" />
+      <item type="numeric" value="1508" />
+      <item type="numeric" value="100" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4837" />
+    <val type="list" id="194712396" >
+      <item type="numeric" value="1637" />
+      <item type="numeric" value="1509" />
+      <item type="numeric" value="101" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4838" />
+    <val type="list" id="194712460" >
+      <item type="numeric" value="1638" />
+      <item type="numeric" value="1510" />
+      <item type="numeric" value="102" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4839" />
+    <val type="list" id="194712524" >
+      <item type="numeric" value="1639" />
+      <item type="numeric" value="1511" />
+      <item type="numeric" value="103" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4840" />
+    <val type="list" id="194712588" >
+      <item type="numeric" value="1640" />
+      <item type="numeric" value="1512" />
+      <item type="numeric" value="104" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4841" />
+    <val type="list" id="194712652" >
+      <item type="numeric" value="1641" />
+      <item type="numeric" value="1513" />
+      <item type="numeric" value="105" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4842" />
+    <val type="list" id="194712716" >
+      <item type="numeric" value="1642" />
+      <item type="numeric" value="1514" />
+      <item type="numeric" value="106" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4843" />
+    <val type="list" id="194712780" >
+      <item type="numeric" value="1643" />
+      <item type="numeric" value="1515" />
+      <item type="numeric" value="107" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4844" />
+    <val type="list" id="194712844" >
+      <item type="numeric" value="1644" />
+      <item type="numeric" value="1516" />
+      <item type="numeric" value="108" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4845" />
+    <val type="list" id="194712908" >
+      <item type="numeric" value="1645" />
+      <item type="numeric" value="1517" />
+      <item type="numeric" value="109" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4846" />
+    <val type="list" id="194712972" >
+      <item type="numeric" value="1646" />
+      <item type="numeric" value="1518" />
+      <item type="numeric" value="110" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4847" />
+    <val type="list" id="194713036" >
+      <item type="numeric" value="1647" />
+      <item type="numeric" value="1519" />
+      <item type="numeric" value="111" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4848" />
+    <val type="list" id="194713100" >
+      <item type="numeric" value="1648" />
+      <item type="numeric" value="1520" />
+      <item type="numeric" value="112" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4849" />
+    <val type="list" id="194713164" >
+      <item type="numeric" value="1649" />
+      <item type="numeric" value="1521" />
+      <item type="numeric" value="113" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4850" />
+    <val type="list" id="194713228" >
+      <item type="numeric" value="1650" />
+      <item type="numeric" value="1522" />
+      <item type="numeric" value="114" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4851" />
+    <val type="list" id="194713292" >
+      <item type="numeric" value="1651" />
+      <item type="numeric" value="1523" />
+      <item type="numeric" value="115" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4852" />
+    <val type="list" id="194713356" >
+      <item type="numeric" value="1652" />
+      <item type="numeric" value="1524" />
+      <item type="numeric" value="116" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4853" />
+    <val type="list" id="194713420" >
+      <item type="numeric" value="1653" />
+      <item type="numeric" value="1525" />
+      <item type="numeric" value="117" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4854" />
+    <val type="list" id="194713484" >
+      <item type="numeric" value="1654" />
+      <item type="numeric" value="1526" />
+      <item type="numeric" value="118" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4855" />
+    <val type="list" id="194713548" >
+      <item type="numeric" value="1655" />
+      <item type="numeric" value="1527" />
+      <item type="numeric" value="119" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4856" />
+    <val type="list" id="194713612" >
+      <item type="numeric" value="1656" />
+      <item type="numeric" value="1528" />
+      <item type="numeric" value="120" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4857" />
+    <val type="list" id="194713676" >
+      <item type="numeric" value="1657" />
+      <item type="numeric" value="1529" />
+      <item type="numeric" value="121" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4858" />
+    <val type="list" id="194713740" >
+      <item type="numeric" value="1658" />
+      <item type="numeric" value="1530" />
+      <item type="numeric" value="122" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4859" />
+    <val type="list" id="194713804" >
+      <item type="numeric" value="1659" />
+      <item type="numeric" value="1531" />
+      <item type="numeric" value="123" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4860" />
+    <val type="list" id="194713868" >
+      <item type="numeric" value="1660" />
+      <item type="numeric" value="1532" />
+      <item type="numeric" value="124" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4861" />
+    <val type="list" id="194713932" >
+      <item type="numeric" value="1661" />
+      <item type="numeric" value="1533" />
+      <item type="numeric" value="125" />
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="4862" />
+    <val type="list" id="194713996" >
+      <item type="numeric" value="1662" />
+      <item type="numeric" value="1534" />
+      <item type="numeric" value="126" />
+    </val>
+  </entry>
+</attr>
+<attr name="SpecificMenu" type="list" id="194714060" >
+</attr>
+<attr name="DefaultStringSize" type="numeric" value="10" />
+<attr name="ParamsDictionary" type="dict" id="194697932" >
+</attr>
+<attr name="UserMapping" type="dict" id="194698068" >
+</attr>
+<attr name="DS302" type="dict" id="194698204" >
+  <entry>
+    <key type="numeric" value="7968" />
+    <val type="dict" id="194698340" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="194714572" >
+          <item type="dict" id="194698476" >
+            <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="194698612" >
+            <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="194698748" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="194715020" >
+          <item type="dict" id="194698884" >
+            <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="194699020" >
+            <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="194719788" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="194715468" >
+          <item type="dict" id="194719924" >
+            <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="194720060" >
+            <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>
+  <entry>
+    <key type="numeric" value="8016" />
+    <val type="dict" id="194720196" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="194723948" >
+          <item type="dict" id="194720332" >
+            <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 different programs supported on the node" />
+            </entry>
+          </item>
+          <item type="dict" id="194720468" >
+            <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="Program Number %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="Download Program Data" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="8017" />
+    <val type="dict" id="194720604" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="194724204" >
+          <item type="dict" id="194720740" >
+            <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 different programs on the node" />
+            </entry>
+          </item>
+          <item type="dict" id="194720876" >
+            <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="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Program Number %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="Program Control" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="8018" />
+    <val type="dict" id="194721012" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="194724460" >
+          <item type="dict" id="194721148" >
+            <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="194721284" >
+            <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="7" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Application software date" />
+            </entry>
+          </item>
+          <item type="dict" id="194721420" >
+            <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="7" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Application sofware time" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Verify Application Software" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="3" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="8019" />
+    <val type="dict" id="194721556" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="194724716" >
+          <item type="dict" id="194721692" >
+            <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 different programs on the node" />
+            </entry>
+          </item>
+          <item type="dict" id="194721828" >
+            <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="7" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Program number %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="Expected Application SW Date" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="8021" />
+    <val type="dict" id="194721964" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="194725036" >
+          <item type="dict" id="194722100" >
+            <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 different programs on the node" />
+            </entry>
+          </item>
+          <item type="dict" id="194722236" >
+            <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="7" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Program number %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="Expected Application SW Time" />
+      </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">slave</attr>
+<attr name="ID" type="numeric" value="0" />
+<attr name="Name" type="string">CANOpenShellSlaveOD</attr>
+</PyObject>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/CANOpenShell/CANOpenShellsln	Wed Jul 15 09:32:35 2009 +0200
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CANOpenShell", "CANOpenShell.vcproj", "{06B3C378-9EE4-4C56-A519-775FF499DAB5}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{06B3C378-9EE4-4C56-A519-775FF499DAB5}.Debug|Win32.ActiveCfg = Debug|Win32
+		{06B3C378-9EE4-4C56-A519-775FF499DAB5}.Debug|Win32.Build.0 = Debug|Win32
+		{06B3C378-9EE4-4C56-A519-775FF499DAB5}.Release|Win32.ActiveCfg = Release|Win32
+		{06B3C378-9EE4-4C56-A519-775FF499DAB5}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/CANOpenShell/Makefile.in	Wed Jul 15 09:32:35 2009 +0200
@@ -0,0 +1,85 @@
+#! gmake
+
+#
+# Copyright (C) 2006 Laurent Bessard
+# 
+# This file is part of canfestival, a library implementing the canopen
+# stack
+# 
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+# 
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+# 
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+# 
+
+CC = SUB_CC
+CXX = SUB_CXX
+LD = SUB_LD
+OPT_CFLAGS = -O2
+CFLAGS = SUB_OPT_CFLAGS
+PROG_CFLAGS = SUB_PROG_CFLAGS
+EXE_CFLAGS = SUB_EXE_CFLAGS
+OS_NAME = SUB_OS_NAME
+ARCH_NAME = SUB_ARCH_NAME
+PREFIX = SUB_PREFIX
+TARGET = SUB_TARGET
+CAN_DRIVER = SUB_CAN_DRIVER
+TIMERS_DRIVER = SUB_TIMERS_DRIVER
+CANOPENSHELL = CANOpenShell
+
+INCLUDES = -I../../include -I../../include/$(TARGET) -I../../include/$(CAN_DRIVER) -I../../include/$(TIMERS_DRIVER)
+
+MASTER_OBJS = CANOpenShellMasterOD.o CANOpenShellSlaveOD.o CANOpenShell.o
+
+OBJS = $(MASTER_OBJS) ../../src/libcanfestival.a ../../drivers/$(TARGET)/libcanfestival_$(TARGET).a
+
+ifeq ($(TARGET),win32)
+	CANOPENSHELL = CANOpenShell.exe
+endif
+
+ifeq ($(TIMERS_DRIVER),timers_win32)
+	EXE_CFLAGS =
+endif
+
+ifeq ($(TIMERS_DRIVER),timers_xeno)
+	PROGDEFINES = -DUSE_XENO
+endif
+
+ifeq ($(TIMERS_DRIVER),timers_rtai)
+	PROGDEFINES = -DUSE_RTAI
+endif
+
+all: $(CANOPENSHELL)
+
+../../drivers/$(TARGET)/libcanfestival_$(TARGET).a:
+	$(MAKE) -C ../../drivers/$(TARGET) libcanfestival_$(TARGET).a
+
+$(CANOPENSHELL): $(OBJS)
+	$(LD) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ $(OBJS) $(EXE_CFLAGS)
+	mkdir -p Debug; cp $(CANOPENSHELL) Debug
+	
+CANOpenShellOD.c: CANOpenShellOD.od
+	$(MAKE) -C ../../objdictgen gnosis
+	python ../../objdictgen/objdictgen.py CANOpenShellMasterOD.od CANOpenShellMasterOD.c
+	python ../../objdictgen/objdictgen.py CANOpenShellSlaveOD.od CANOpenShellSlaveOD.c
+
+%o: %c
+	$(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
+
+clean:
+	rm -f $(MASTER_OBJS)
+	rm -f $(CANOPENSHELL)
+		
+mrproper: clean
+	rm -f CANOpenShellMasterOD.c
+	rm -f CANOpenShellSlaveOD.c
+
--- a/examples/Makefile.in	Fri Jul 10 11:41:00 2009 +0200
+++ b/examples/Makefile.in	Wed Jul 15 09:32:35 2009 +0200
@@ -50,6 +50,7 @@
 endef
 else
 define build_command_seq
+	$(MAKE) -C CANOpenShell $@
 	$(MAKE) -C TestMasterSlave $@
 	$(MAKE) -C TestMasterMicroMod $@
 	$(build_command_seq_wx)