Diff of /tags/v1.0.0.0/CfUnitTimedTestExample.project.xml [000000] .. [r192]  Maximize  Restore

Switch to side-by-side view

--- a
+++ b/tags/v1.0.0.0/CfUnitTimedTestExample.project.xml
@@ -0,0 +1,607 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project xmlns="http://www.plcopen.org/xml/tc6_0200">
+  <fileHeader companyName="" productName="CODESYS" productVersion="CODESYS V3.5 SP14 Patch 2" creationDateTime="2019-08-31T20:36:36.201118" />
+  <contentHeader name="CfUnitTimedTestExample.project" modificationDateTime="2019-08-31T18:41:02.3508983">
+    <coordinateInfo>
+      <fbd>
+        <scaling x="1" y="1" />
+      </fbd>
+      <ld>
+        <scaling x="1" y="1" />
+      </ld>
+      <sfc>
+        <scaling x="1" y="1" />
+      </sfc>
+    </coordinateInfo>
+    <addData>
+      <data name="http://www.3s-software.com/plcopenxml/projectinformation" handleUnknown="implementation">
+        <ProjectInformation>
+          <property name="Project" type="string">CfUnitTimedTestExample</property>
+        </ProjectInformation>
+      </data>
+    </addData>
+  </contentHeader>
+  <types>
+    <dataTypes />
+    <pous />
+  </types>
+  <instances>
+    <configurations>
+      <configuration name="Device">
+        <resource name="Application">
+          <task name="MainTask" interval="PT0.02S" priority="1">
+            <pouInstance name="MAIN" typeName="">
+              <documentation>
+                <xhtml xmlns="http://www.w3.org/1999/xhtml" />
+              </documentation>
+            </pouInstance>
+            <addData>
+              <data name="http://www.3s-software.com/plcopenxml/tasksettings" handleUnknown="implementation">
+                <TaskSettings KindOfTask="Cyclic" Interval="t#20ms" IntervalUnit="ms" WithinSPSTimeSlicing="true">
+                  <Watchdog Enabled="false" TimeUnit="ms" Sensitivity="1" />
+                </TaskSettings>
+              </data>
+            </addData>
+          </task>
+          <addData>
+            <data name="http://www.3s-software.com/plcopenxml/pou" handleUnknown="implementation">
+              <pou name="FB_Timer" pouType="functionBlock">
+                <interface>
+                  <inputVars>
+                    <variable name="xSwitch">
+                      <type>
+                        <BOOL />
+                      </type>
+                    </variable>
+                    <variable name="xOff">
+                      <type>
+                        <BOOL />
+                      </type>
+                    </variable>
+                    <variable name="tDuration">
+                      <type>
+                        <TIME />
+                      </type>
+                      <initialValue>
+                        <simpleValue value="TIME#10s0ms" />
+                      </initialValue>
+                    </variable>
+                  </inputVars>
+                  <outputVars>
+                    <variable name="xOut">
+                      <type>
+                        <BOOL />
+                      </type>
+                    </variable>
+                  </outputVars>
+                  <localVars>
+                    <variable name="tonDuration">
+                      <type>
+                        <derived name="TON" />
+                      </type>
+                    </variable>
+                    <variable name="rtrigSwitch">
+                      <type>
+                        <derived name="R_TRIG" />
+                      </type>
+                    </variable>
+                    <variable name="rtrigOff">
+                      <type>
+                        <derived name="R_TRIG" />
+                      </type>
+                    </variable>
+                    <variable name="bStart">
+                      <type>
+                        <BOOL />
+                      </type>
+                    </variable>
+                  </localVars>
+                </interface>
+                <body>
+                  <ST>
+                    <xhtml xmlns="http://www.w3.org/1999/xhtml">rtrigSwitch(CLK := xSwitch);
+IF (rtrigSwitch.Q) THEN
+	bStart := TRUE;
+	xOut := TRUE;
+	tonDuration(IN := FALSE);
+END_IF
+
+rtrigOff(CLK := xOff);
+IF (rtrigOff.Q) THEN
+	bStart := FALSE;
+	xOut := FALSE;
+	tonDuration(IN := FALSE);
+END_IF
+
+IF (bStart) THEN
+	tonDuration(IN := TRUE, PT := tDuration);
+	IF (tonDuration.Q) THEN
+		tonDuration(IN := FALSE);
+		xOut := FALSE;
+		bStart := FALSE;
+	END_IF
+END_IF
+</xhtml>
+                  </ST>
+                </body>
+                <addData />
+              </pou>
+            </data>
+            <data name="http://www.3s-software.com/plcopenxml/pou" handleUnknown="implementation">
+              <pou name="MAIN" pouType="program">
+                <interface>
+                  <localVars>
+                    <variable name="fbFoo_Tests">
+                      <type>
+                        <derived name="FB_Timer_Tests" />
+                      </type>
+                    </variable>
+                  </localVars>
+                </interface>
+                <body>
+                  <ST>
+                    <xhtml xmlns="http://www.w3.org/1999/xhtml">CfUnit.RUN();</xhtml>
+                  </ST>
+                </body>
+                <addData />
+              </pou>
+            </data>
+            <data name="http://www.3s-software.com/plcopenxml/pou" handleUnknown="implementation">
+              <pou name="FB_Timer_Tests" pouType="functionBlock">
+                <interface>
+                  <localVars>
+                    <variable name="State">
+                      <type>
+                        <WORD />
+                      </type>
+                      <initialValue>
+                        <simpleValue value="0" />
+                      </initialValue>
+                    </variable>
+                    <variable name="tonDelay">
+                      <type>
+                        <derived name="TON" />
+                      </type>
+                    </variable>
+                    <variable name="fbTimer_0100">
+                      <type>
+                        <derived name="FB_Timer" />
+                      </type>
+                    </variable>
+                    <variable name="fbTimer_0200">
+                      <type>
+                        <derived name="FB_Timer" />
+                      </type>
+                    </variable>
+                    <variable name="fbTimer_0300">
+                      <type>
+                        <derived name="FB_Timer" />
+                      </type>
+                    </variable>
+                    <variable name="fbTimer_0400">
+                      <type>
+                        <derived name="FB_Timer" />
+                      </type>
+                    </variable>
+                    <variable name="xError">
+                      <type>
+                        <BOOL />
+                      </type>
+                    </variable>
+                    <variable name="xDone">
+                      <type>
+                        <BOOL />
+                      </type>
+                    </variable>
+                  </localVars>
+                  <addData>
+                    <data name="http://www.3s-software.com/plcopenxml/pouinheritance" handleUnknown="implementation">
+                      <Inheritance>
+                        <Extends>CfUnit.FB_TestSuite</Extends>
+                      </Inheritance>
+                    </data>
+                  </addData>
+                </interface>
+                <body>
+                  <ST>
+                    <xhtml xmlns="http://www.w3.org/1999/xhtml">SomeTimerTest( xError =&gt; xError,
+			   xDone  =&gt; xDone );</xhtml>
+                  </ST>
+                </body>
+                <addData>
+                  <data name="http://www.3s-software.com/plcopenxml/method" handleUnknown="implementation">
+                    <Method name="SomeTimerTest">
+                      <interface>
+                        <outputVars>
+                          <variable name="xDone">
+                            <type>
+                              <BOOL />
+                            </type>
+                          </variable>
+                          <variable name="xError">
+                            <type>
+                              <BOOL />
+                            </type>
+                          </variable>
+                        </outputVars>
+                      </interface>
+                      <body>
+                        <ST>
+                          <xhtml xmlns="http://www.w3.org/1999/xhtml">CASE State OF
+{region "start"}
+	0:
+		TEST('SomeFooTest');
+		LOGSTR( 1, 'Test start: %s' , CfUnit.GVL_CfUnit.CurrentTestNameBeingCalled ); // send a message to the log as information(1), warning(2), or error(4)
+		xError := FALSE;
+		xDone := FALSE;	
+		State := 100;
+{endregion}
+
+{region "Switch_RisingEdgeAndDuration1s_OutIsTrueFor1s"}
+	100:
+		fbTimer_0100(xSwitch := TRUE, tDuration := T#1S);
+		AssertEquals_BOOL(TRUE, fbTimer_0100.xOut, 'Switch_RisingEdgeAndDuration1s_OutIsTrueFor1s');		 
+		tonDelay(IN := TRUE, PT := T#900MS);
+		IF (tonDelay.Q) THEN
+			tonDelay(IN := FALSE);
+			State := 200;
+		END_IF	
+{endregion}
+
+{region "Switch_RisingEdgeAndDuration1s_OutIsFalseAfter1100ms"}
+	200:
+		fbTimer_0200(xSwitch := TRUE, tDuration := T#1S);
+		tonDelay(IN := TRUE, PT := T#1100MS);
+		IF (tonDelay.Q) THEN
+			tonDelay(IN := FALSE);
+			AssertEquals_BOOL(FALSE, fbTimer_0200.xOut, 'Switch_RisingEdgeAndDuration1s_OutIsFalseAfter1100ms');
+			State := 300;
+		END_IF	
+{endregion}
+
+{region "Switch_RetriggerSwitch_OutKeepsTrue"}
+	300:
+		fbTimer_0300(xSwitch := TRUE, tDuration := T#500MS);
+		AssertEquals_BOOL(TRUE, fbTimer_0300.xOut, 'Switch_RetriggerSwitch_OutKeepsTrue');
+		tonDelay(IN := TRUE, PT := T#400MS);
+		IF (tonDelay.Q) THEN
+			tonDelay(IN := FALSE);
+			fbTimer_0300(xSwitch := FALSE);
+			State := 310;			
+		END_IF		
+		
+	310:
+		fbTimer_0300(xSwitch := TRUE, tDuration := T#500MS);
+		AssertEquals_BOOL(TRUE, fbTimer_0300.xOut, 'Switch_RetriggerSwitch_OutKeepsTrue');
+		tonDelay(IN := TRUE, PT := T#400MS);
+		IF (tonDelay.Q) THEN
+			tonDelay(IN := FALSE);
+			State := 400;
+		END_IF
+{endregion}
+
+{region "Off_RisingEdgeAndOutIsTrue_OutIsFalse"}
+	400:
+		fbTimer_0400(xSwitch := TRUE, tDuration := T#200MS);
+		AssertEquals_BOOL(TRUE, fbTimer_0400.xOut, 'Off_RisingEdgeAndOutIsTrue_OutIsFalse');
+		tonDelay(IN := TRUE, PT := T#100MS);
+		IF (tonDelay.Q) THEN
+			tonDelay(IN := FALSE);
+			fbTimer_0400(xOff := TRUE);
+			AssertEquals_BOOL(FALSE, fbTimer_0400.xOut, 'Off_RisingEdgeAndOutIsTrue_OutIsFalse');
+			State := 1000;
+		END_IF
+{endregion}
+		
+{region "done"}
+	1000:
+		State := 1010;
+		LOGSTR( 1, 'Test finished: %s' , CfUnit.GVL_CfUnit.CurrentTestNameBeingCalled );			 
+
+	1010:
+		TEST_FINISHED();
+		xDone := TRUE;
+{endregion}
+
+{region "error"}
+	1200:
+		xError := TRUE;
+			 
+{endregion}
+	ELSE
+		state := 1200;
+END_CASE</xhtml>
+                        </ST>
+                      </body>
+                      <addData />
+                    </Method>
+                  </data>
+                </addData>
+              </pou>
+            </data>
+            <data name="http://www.3s-software.com/plcopenxml/libraries" handleUnknown="implementation">
+              <Libraries>
+                <Library Name="#Standard" Namespace="Standard" HideWhenReferencedAsDependency="false" PublishSymbolsInContainer="false" SystemLibrary="false" LinkAllContent="false" DefaultResolution="Standard, * (System)" />
+                <Library Name="#BreakpointLogging" Namespace="BPLog" HideWhenReferencedAsDependency="false" PublishSymbolsInContainer="false" SystemLibrary="true" LinkAllContent="false" DefaultResolution="Breakpoint Logging Functions, 3.5.5.0 (3S - Smart Software Solutions GmbH)" />
+                <Library Name="CfUnit, 1.0.0.0 (Open Source)" Namespace="CfUnit" HideWhenReferencedAsDependency="false" PublishSymbolsInContainer="false" SystemLibrary="false" LinkAllContent="false">
+                  <Parameters>
+                    <Parameter Name="MAXAMOUNTOFTESTSUITES" Value="300" />
+                    <Parameter Name="MAXAMOUNTOFTESTSFOREACHTESTSUITE" Value="100" />
+                    <Parameter Name="MAXAMOUNTOFASSERTS" Value="300" />
+                    <Parameter Name="MAXNUMBEROFTESTSUITES" Value="300" />
+                    <Parameter Name="MAXNUMBEROFTESTSFOREACHTESTSUITE" Value="100" />
+                    <Parameter Name="MAXNUMBEROFASSERTS" Value="300" />
+                    <Parameter Name="MAXFILESIZE" Value="4096" />
+                  </Parameters>
+                </Library>
+                <Library Name="#IoStandard" Namespace="IoStandard" HideWhenReferencedAsDependency="false" PublishSymbolsInContainer="false" SystemLibrary="true" LinkAllContent="true" DefaultResolution="IoStandard, 3.5.13.0 (System)" />
+                <Library Name="#3SLicense" Namespace="_3S_LICENSE" HideWhenReferencedAsDependency="false" PublishSymbolsInContainer="false" SystemLibrary="true" LinkAllContent="false" DefaultResolution="3SLicense, 0.0.0.0 (3S - Smart Software Solutions GmbH)" ResolverGuid="97c3b452-d9fa-4ac2-9d0c-3d420aa6d95b" />
+                <Library Name="#SM3_Basic" Namespace="SM3_Basic" HideWhenReferencedAsDependency="false" PublishSymbolsInContainer="false" SystemLibrary="true" LinkAllContent="false" DefaultResolution="SM3_Basic, 4.5.0.0 (3S - Smart Software Solutions GmbH)" />
+                <Library Name="#SM3_CNC" Namespace="SM3_CNC" HideWhenReferencedAsDependency="false" PublishSymbolsInContainer="false" SystemLibrary="true" LinkAllContent="false" DefaultResolution="SM3_CNC, 4.5.0.0 (3S - Smart Software Solutions GmbH)" />
+                <Library Name="IoDrvGPIO, 3.5.11.0 (3S - Smart Software Solutions GmbH)" Namespace="IoDrvGPIO" HideWhenReferencedAsDependency="false" PublishSymbolsInContainer="false" SystemLibrary="true" LinkAllContent="false" />
+                <Library Name="#SM3_Robotics" Namespace="SM3_Robotics" HideWhenReferencedAsDependency="false" PublishSymbolsInContainer="false" SystemLibrary="true" LinkAllContent="false" DefaultResolution="SM3_Robotics, 4.5.0.1 (3S - Smart Software Solutions GmbH)" />
+                <Library Name="#SM3_Robotics_Visu" Namespace="SM3_Robotics_Visu" HideWhenReferencedAsDependency="false" PublishSymbolsInContainer="false" SystemLibrary="true" LinkAllContent="false" DefaultResolution="SM3_Robotics_Visu, 4.5.0.0 (3S - Smart Software Solutions GmbH)" />
+                <Library Name="#SM3_Transformation" Namespace="TRAFO" HideWhenReferencedAsDependency="false" PublishSymbolsInContainer="false" SystemLibrary="true" LinkAllContent="false" DefaultResolution="SM3_Transformation, 4.5.0.1 (3S - Smart Software Solutions GmbH)" />
+                <addData />
+              </Libraries>
+            </data>
+          </addData>
+        </resource>
+        <addData>
+          <data name="Device" handleUnknown="discard">
+            <Device xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="">
+              <DeviceType>
+                <DeviceIdentification>
+                  <Type>4102</Type>
+                  <Id>0000 0010</Id>
+                  <Version>3.5.14.20</Version>
+                </DeviceIdentification>
+                <Connector moduleType="256" interface="Common.PCI" connectorId="0">
+                  <HostParameterSet />
+                </Connector>
+                <Connector moduleType="769" interface="SafetyInterface" connectorId="1">
+                  <HostParameterSet />
+                </Connector>
+                <Connector moduleType="1279" interface="Common.SoftMotion.General" connectorId="2">
+                  <HostParameterSet />
+                </Connector>
+                <Connector moduleType="496" interface="Raspberry.I2CMaster" connectorId="3">
+                  <HostParameterSet />
+                </Connector>
+                <Connector moduleType="497" interface="Raspberry.SPIMaster" connectorId="4">
+                  <HostParameterSet />
+                </Connector>
+                <Connector moduleType="504" interface="Raspberry.GPIOs" connectorId="5">
+                  <HostParameterSet />
+                </Connector>
+                <Connector moduleType="499" interface="Raspberry.OnewireMaster" connectorId="6">
+                  <HostParameterSet />
+                </Connector>
+                <Connector moduleType="502" interface="Raspberry.Camera2" connectorId="7">
+                  <HostParameterSet />
+                </Connector>
+                <DeviceParameterSet />
+              </DeviceType>
+            </Device>
+          </data>
+          <data name="configurations" handleUnknown="discard">
+            <configurations>
+              <configuration name="SoftMotion General Axis Pool">
+                <addData>
+                  <data name="ExplicitConnector" handleUnknown="discard">
+                    <ExplicitConnector connectorID="2" />
+                  </data>
+                </addData>
+              </configuration>
+              <configuration name="I²C">
+                <addData>
+                  <data name="ExplicitConnector" handleUnknown="discard">
+                    <ExplicitConnector connectorID="3" />
+                  </data>
+                </addData>
+              </configuration>
+              <configuration name="SPI">
+                <addData>
+                  <data name="ExplicitConnector" handleUnknown="discard">
+                    <ExplicitConnector connectorID="4" />
+                  </data>
+                </addData>
+              </configuration>
+              <configuration name="GPIOs_A_B">
+                <addData>
+                  <data name="Device" handleUnknown="discard">
+                    <Device xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="">
+                      <DeviceType>
+                        <DeviceIdentification>
+                          <Type>504</Type>
+                          <Id>0000 0000</Id>
+                          <Version>3.5.11.0</Version>
+                        </DeviceIdentification>
+                        <Connector moduleType="504" role="child" interface="Raspberry.GPIOs" connectorId="1">
+                          <HostParameterSet>
+                            <Parameter ParameterId="4" type="local:GPIOType" IndexInDevDesc="0">
+                              <Attributes onlineaccess="read" />
+                              <Value name="_x0034_" visiblename="GPIO4" onlineaccess="read" desc="configuration of GPIO4">255</Value>
+                              <Name>GPIO4</Name>
+                              <Description>configuration of GPIO4</Description>
+                            </Parameter>
+                            <Parameter ParameterId="17" type="local:GPIOType" IndexInDevDesc="1">
+                              <Attributes onlineaccess="read" />
+                              <Value name="_x0031_7" visiblename="GPIO17" onlineaccess="read" desc="configuration of GPIO17">255</Value>
+                              <Name>GPIO17</Name>
+                              <Description>configuration of GPIO17</Description>
+                            </Parameter>
+                            <Parameter ParameterId="18" type="local:GPIOType" IndexInDevDesc="2">
+                              <Attributes onlineaccess="read" />
+                              <Value name="_x0031_8" visiblename="GPIO18" onlineaccess="read" desc="configuration of GPIO18">255</Value>
+                              <Name>GPIO18</Name>
+                              <Description>configuration of GPIO18</Description>
+                            </Parameter>
+                            <Parameter ParameterId="22" type="local:GPIOType" IndexInDevDesc="3">
+                              <Attributes onlineaccess="read" />
+                              <Value name="_x0032_2" visiblename="GPIO22" onlineaccess="read" desc="configuration of GPIO22">255</Value>
+                              <Name>GPIO22</Name>
+                              <Description>configuration of GPIO22</Description>
+                            </Parameter>
+                            <Parameter ParameterId="23" type="local:GPIOType" IndexInDevDesc="4">
+                              <Attributes onlineaccess="read" />
+                              <Value name="_x0032_3" visiblename="GPIO23" onlineaccess="read" desc="configuration of GPIO23">255</Value>
+                              <Name>GPIO23</Name>
+                              <Description>configuration of GPIO23</Description>
+                            </Parameter>
+                            <Parameter ParameterId="24" type="local:GPIOType" IndexInDevDesc="5">
+                              <Attributes onlineaccess="read" />
+                              <Value name="_x0032_4" visiblename="GPIO24" onlineaccess="read" desc="configuration of GPIO24">255</Value>
+                              <Name>GPIO24</Name>
+                              <Description>configuration of GPIO24</Description>
+                            </Parameter>
+                            <Parameter ParameterId="25" type="local:GPIOType" IndexInDevDesc="6">
+                              <Attributes onlineaccess="read" />
+                              <Value name="_x0032_5" visiblename="GPIO25" onlineaccess="read" desc="configuration of GPIO25">255</Value>
+                              <Name>GPIO25</Name>
+                              <Description>configuration of GPIO25</Description>
+                            </Parameter>
+                            <Parameter ParameterId="27" type="local:GPIOType" IndexInDevDesc="7">
+                              <Attributes onlineaccess="read" />
+                              <Value name="_x0032_7" visiblename="GPIO27" onlineaccess="read" desc="configuration of GPIO27">255</Value>
+                              <Name>GPIO27</Name>
+                              <Description>configuration of GPIO27</Description>
+                            </Parameter>
+                            <Parameter ParameterId="28" type="local:GPIOType" IndexInDevDesc="8">
+                              <Attributes onlineaccess="read" />
+                              <Value name="_x0032_8" visiblename="GPIO28" onlineaccess="read" desc="configuration of GPIO28">255</Value>
+                              <Name>GPIO28</Name>
+                              <Description>configuration of GPIO28</Description>
+                            </Parameter>
+                            <Parameter ParameterId="29" type="local:GPIOType" IndexInDevDesc="9">
+                              <Attributes onlineaccess="read" />
+                              <Value name="_x0032_9" visiblename="GPIO29" onlineaccess="read" desc="configuration of GPIO29">255</Value>
+                              <Name>GPIO29</Name>
+                              <Description>configuration of GPIO29</Description>
+                            </Parameter>
+                            <Parameter ParameterId="30" type="local:GPIOType" IndexInDevDesc="10">
+                              <Attributes onlineaccess="read" />
+                              <Value name="_x0033_0" visiblename="GPIO30" onlineaccess="read" desc="configuration of GPIO30">255</Value>
+                              <Name>GPIO30</Name>
+                              <Description>configuration of GPIO30</Description>
+                            </Parameter>
+                            <Parameter ParameterId="31" type="local:GPIOType" IndexInDevDesc="11">
+                              <Attributes onlineaccess="read" />
+                              <Value name="_x0033_1" visiblename="GPIO31" onlineaccess="read" desc="configuration of GPIO31">255</Value>
+                              <Name>GPIO31</Name>
+                              <Description>configuration of GPIO31</Description>
+                            </Parameter>
+                            <Parameter ParameterId="1000" type="local:BITFIELD_GPIO" IndexInDevDesc="12">
+                              <Attributes channel="input" />
+                              <Value name="_x0031_000" visiblename="digital inputs (GPIO0..GPIO31)">
+                                <Element name="Bit0" visiblename="Bit0" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit1" visiblename="Bit1" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit2" visiblename="Bit2" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit3" visiblename="Bit3" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit4" visiblename="Bit4" onlineaccess="read" />
+                                <Element name="Bit5" visiblename="Bit5" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit6" visiblename="Bit6" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit7" visiblename="Bit7" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit8" visiblename="Bit8" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit9" visiblename="Bit9" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit10" visiblename="Bit10" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit11" visiblename="Bit11" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit12" visiblename="Bit12" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit13" visiblename="Bit13" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit14" visiblename="Bit14" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit15" visiblename="Bit15" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit16" visiblename="Bit16" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit17" visiblename="Bit17" onlineaccess="read" />
+                                <Element name="Bit18" visiblename="Bit18" onlineaccess="read" />
+                                <Element name="Bit19" visiblename="Bit19" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit20" visiblename="Bit20" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit21" visiblename="Bit21" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit22" visiblename="Bit22" onlineaccess="read" />
+                                <Element name="Bit23" visiblename="Bit23" onlineaccess="read" />
+                                <Element name="Bit24" visiblename="Bit24" onlineaccess="read" />
+                                <Element name="Bit25" visiblename="Bit25" onlineaccess="read" />
+                                <Element name="Bit26" visiblename="Bit26" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit27" visiblename="Bit27" onlineaccess="read" />
+                                <Element name="Bit28" visiblename="Bit28" onlineaccess="read" />
+                                <Element name="Bit29" visiblename="Bit29" onlineaccess="read" />
+                                <Element name="Bit30" visiblename="Bit30" onlineaccess="read" />
+                                <Element name="Bit31" visiblename="Bit31" onlineaccess="read" />
+                              </Value>
+                              <Name>digital inputs (GPIO0..GPIO31)</Name>
+                            </Parameter>
+                            <Parameter ParameterId="2000" type="local:BITFIELD_GPIO" IndexInDevDesc="13">
+                              <Attributes channel="output" />
+                              <Value name="_x0032_000" visiblename="digital outputs (GPIO0..GPIO31)">
+                                <Element name="Bit0" visiblename="Bit0" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit1" visiblename="Bit1" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit2" visiblename="Bit2" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit3" visiblename="Bit3" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit4" visiblename="Bit4" onlineaccess="read" />
+                                <Element name="Bit5" visiblename="Bit5" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit6" visiblename="Bit6" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit7" visiblename="Bit7" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit8" visiblename="Bit8" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit9" visiblename="Bit9" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit10" visiblename="Bit10" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit11" visiblename="Bit11" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit12" visiblename="Bit12" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit13" visiblename="Bit13" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit14" visiblename="Bit14" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit15" visiblename="Bit15" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit16" visiblename="Bit16" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit17" visiblename="Bit17" onlineaccess="read" />
+                                <Element name="Bit18" visiblename="Bit18" onlineaccess="read" />
+                                <Element name="Bit19" visiblename="Bit19" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit20" visiblename="Bit20" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit21" visiblename="Bit21" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit22" visiblename="Bit22" onlineaccess="read" />
+                                <Element name="Bit23" visiblename="Bit23" onlineaccess="read" />
+                                <Element name="Bit24" visiblename="Bit24" onlineaccess="read" />
+                                <Element name="Bit25" visiblename="Bit25" onlineaccess="read" />
+                                <Element name="Bit26" visiblename="Bit26" offlineaccess="none" onlineaccess="none" />
+                                <Element name="Bit27" visiblename="Bit27" onlineaccess="read" />
+                                <Element name="Bit28" visiblename="Bit28" onlineaccess="read" />
+                                <Element name="Bit29" visiblename="Bit29" onlineaccess="read" />
+                                <Element name="Bit30" visiblename="Bit30" onlineaccess="read" />
+                                <Element name="Bit31" visiblename="Bit31" onlineaccess="read" />
+                              </Value>
+                              <Name>digital outputs (GPIO0..GPIO31)</Name>
+                            </Parameter>
+                          </HostParameterSet>
+                        </Connector>
+                        <DeviceParameterSet />
+                      </DeviceType>
+                    </Device>
+                  </data>
+                </addData>
+              </configuration>
+              <configuration name="Onewire">
+                <addData>
+                  <data name="ExplicitConnector" handleUnknown="discard">
+                    <ExplicitConnector connectorID="6" />
+                  </data>
+                </addData>
+              </configuration>
+              <configuration name="Camera device">
+                <addData>
+                  <data name="ExplicitConnector" handleUnknown="discard">
+                    <ExplicitConnector connectorID="7" />
+                  </data>
+                  <data name="configurations" handleUnknown="discard">
+                    <configurations>
+                      <configuration name="&lt;Empty&gt;">
+                        <addData>
+                          <data name="Device" handleUnknown="discard" />
+                        </addData>
+                      </configuration>
+                    </configurations>
+                  </data>
+                </addData>
+              </configuration>
+            </configurations>
+          </data>
+        </addData>
+      </configuration>
+    </configurations>
+  </instances>
+</project>
\ No newline at end of file