﻿<?xml version="1.0" encoding="utf-8"?>
<!--created with CoDeSys 3.0 (http://www.3s-software.com) by DeviceDescriptionBuilder (3S-Smart Software Solutions GmbH)-->
<DeviceDescription xmlns="http://www.3s-software.com/schemas/DeviceDescription-1.0.xsd" xmlns:ts="http://www.3s-software.com/schemas/TargetSettings-0.1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Types namespace="local">
    <EnumType basetype="std:BYTE" name="GPIOTypeCLK">
      <Enum identifier="unconfigured">
        <Value>255</Value>
        <VisibleName name="local:">not used</VisibleName>
      </Enum>
      <Enum identifier="Input">
        <Value>2#000</Value>
        <VisibleName name="local:">Input</VisibleName>
      </Enum>
      <Enum identifier="Input">
        <Value>2#001</Value>
        <VisibleName name="local:">Output</VisibleName>
      </Enum>
      <Enum identifier="Input">
        <Value>2#100</Value>
        <VisibleName name="local:">CLK</VisibleName>
      </Enum>
    </EnumType>
    <EnumType basetype="std:BYTE" name="GPIOTypePWM">
      <Enum identifier="unconfigured">
        <Value>255</Value>
        <VisibleName name="local:">not used</VisibleName>
      </Enum>
      <Enum identifier="Input">
        <Value>2#000</Value>
        <VisibleName name="local:">Input</VisibleName>
      </Enum>
      <Enum identifier="Input">
        <Value>2#001</Value>
        <VisibleName name="local:">Output</VisibleName>
      </Enum>
      <Enum identifier="Input">
        <Value>2#010</Value>
        <VisibleName name="local:">PWM</VisibleName>
      </Enum>
    </EnumType>
    <EnumType basetype="std:BYTE" name="GPIOType">
      <Enum identifier="unconfigured">
        <Value>255</Value>
        <VisibleName name="local:">not used</VisibleName>
      </Enum>
      <Enum identifier="Input">
        <Value>2#000</Value>
        <VisibleName name="local:">Input</VisibleName>
      </Enum>
      <Enum identifier="Input">
        <Value>2#001</Value>
        <VisibleName name="local:">Output</VisibleName>
      </Enum>
     <!--
      <Enum identifier="Input">
        <Value>2#100</Value>
        <VisibleName name="local:">ALT0</VisibleName>
      </Enum>
      <Enum identifier="Input">
        <Value>2#101</Value>
        <VisibleName name="local:">ALT1</VisibleName>
      </Enum>
      <Enum identifier="Input">
        <Value>2#110</Value>
        <VisibleName name="local:">ALT2</VisibleName>
      </Enum>
      <Enum identifier="Input">
        <Value>2#111</Value>
        <VisibleName name="local:">ALT3</VisibleName>
      </Enum>
      <Enum identifier="Input">
        <Value>2#011</Value>
        <VisibleName name="local:">ALT4</VisibleName>
      </Enum>
      <Enum identifier="Input">
        <Value>2#010</Value>
        <VisibleName name="local:">ALT5</VisibleName>
      </Enum> -->
    </EnumType>
    <BitfieldType name="BITFIELD_GPIO" basetype="std:DWORD">
        <Component identifier="Bit0" type="std:BOOL" offlineaccess="none" onlineaccess="none">
            <Default />
            <VisibleName name="localStrings:Bit0">Bit0</VisibleName>
        </Component>
        <Component identifier="Bit1" type="std:BOOL" offlineaccess="none" onlineaccess="none">
            <Default />
            <VisibleName name="localStrings:Bit1">Bit1</VisibleName>
        </Component>
        <Component identifier="Bit2" type="std:BOOL" offlineaccess="none" onlineaccess="none">
            <Default />
            <VisibleName name="localStrings:Bit2">Bit2</VisibleName>
        </Component>
        <Component identifier="Bit3" type="std:BOOL" offlineaccess="none" onlineaccess="none">
            <Default />
            <VisibleName name="localStrings:Bit3">Bit3</VisibleName>
        </Component>
        <Component identifier="Bit4" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit4">Bit4</VisibleName>
        </Component>
        <Component identifier="Bit5" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit5">Bit5</VisibleName>
        </Component>
        <Component identifier="Bit6" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit6">Bit6</VisibleName>
        </Component>
        <Component identifier="Bit7" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit7">Bit7</VisibleName>
        </Component>
        <Component identifier="Bit8" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit8">Bit8</VisibleName>
        </Component>
        <Component identifier="Bit9" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit9">Bit9</VisibleName>
        </Component>
        <Component identifier="Bit10" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit10">Bit10</VisibleName>
        </Component>
        <Component identifier="Bit11" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit11">Bit11</VisibleName>
        </Component>
        <Component identifier="Bit12" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit12">Bit12</VisibleName>
        </Component>
        <Component identifier="Bit13" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit13">Bit13</VisibleName>
        </Component>
        <Component identifier="Bit14" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit14">Bit14</VisibleName>
        </Component>
        <Component identifier="Bit15" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit15">Bit15</VisibleName>
        </Component>
        <Component identifier="Bit16" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit16">Bit16</VisibleName>
        </Component>
        <Component identifier="Bit17" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit17">Bit17</VisibleName>
        </Component>
        <Component identifier="Bit18" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit18">Bit18</VisibleName>
        </Component>
        <Component identifier="Bit19" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit19">Bit19</VisibleName>
        </Component>
        <Component identifier="Bit20" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit20">Bit20</VisibleName>
        </Component>
        <Component identifier="Bit21" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit21">Bit21</VisibleName>
        </Component>
        <Component identifier="Bit22" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit22">Bit22</VisibleName>
        </Component>
        <Component identifier="Bit23" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit23">Bit23</VisibleName>
        </Component>
        <Component identifier="Bit24" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit24">Bit24</VisibleName>
        </Component>
        <Component identifier="Bit25" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit25">Bit25</VisibleName>
        </Component>
        <Component identifier="Bit26" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit26">Bit26</VisibleName>
        </Component>
        <Component identifier="Bit27" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit27">Bit27</VisibleName>
        </Component>
        <Component identifier="Bit28" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit28">Bit28</VisibleName>
        </Component>
        <Component identifier="Bit29" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit29">Bit29</VisibleName>
        </Component>
        <Component identifier="Bit30" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit30">Bit30</VisibleName>
        </Component>
        <Component identifier="Bit31" type="std:BOOL" onlineaccess="read">
            <Default />
            <VisibleName name="localStrings:Bit31">Bit31</VisibleName>
        </Component>
    </BitfieldType>
  </Types>
  <Strings namespace="local">
    <Language lang="en">
    </Language>
  </Strings>
  <Files namespace="local">
    <Language lang="en">
      <File fileref="local" identifier="GPIO">
        <LocalFile>GPIO.ico</LocalFile>
      </File>
    </Language>
  </Files>
  <Device hideInCatalogue="false">
    <DeviceIdentification>
      <Type>504</Type>
      <Id>0000 0002</Id>
      <Version>3.5.16.0</Version>
    </DeviceIdentification>
    <DeviceInfo>
      <Name name="local:ModelName">GPIOs Compute Module</Name>
      <Description name="local:DeviceDescription">Raspberry GPIOs of Compute Module</Description>
      <Vendor name="local:VendorName">3S - Smart Software Solutions GmbH</Vendor>
      <OrderNumber>-</OrderNumber>
      <Icon name="local:GPIO">GPIO.ico</Icon>
    </DeviceInfo>
    <Connector moduleType="504" interface="Raspberry.GPIOs" role="child" explicit="false" connectorId="1" hostpath="-1" alwaysmapping="true">
      <InterfaceName name="local:PCI">GPIOs</InterfaceName>
      <Slot count="1" allowEmpty="false">
      </Slot>
      <DriverInfo needsBusCycle="true">
        <RequiredLib libname="IoDrvGPIO" vendor="3S - Smart Software Solutions GmbH" version="3.5.16.0" identifier="IoDrvGPIO">
          <FBInstance basename="GPIOs_Instance" fbname="IoDrvGPIO">
            <Initialize methodName="Initialize"/>
          </FBInstance>
        </RequiredLib>
      </DriverInfo>
      <HostParameterSet>
        <Parameter ParameterId="4" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO4</Name>
          <Description name="local:">configuration of GPIO4</Description>
        </Parameter>
		<Parameter ParameterId="5" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO5</Name>
          <Description name="local:">configuration of GPIO5</Description>
        </Parameter>
		<Parameter ParameterId="6" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO6</Name>
          <Description name="local:">configuration of GPIO6</Description>
        </Parameter>
		<Parameter ParameterId="7" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO7</Name>
          <Description name="local:">configuration of GPIO7</Description>
        </Parameter>
		<Parameter ParameterId="8" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO8</Name>
          <Description name="local:">configuration of GPIO8</Description>
        </Parameter>
		<Parameter ParameterId="9" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO9</Name>
          <Description name="local:">configuration of GPIO9</Description>
        </Parameter>
		<Parameter ParameterId="10" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO10</Name>
          <Description name="local:">configuration of GPIO10</Description>
        </Parameter>
		<Parameter ParameterId="11" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO11</Name>
          <Description name="local:">configuration of GPIO11</Description>
        </Parameter>
		<Parameter ParameterId="12" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO12</Name>
          <Description name="local:">configuration of GPIO12</Description>
        </Parameter>
		<Parameter ParameterId="13" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO13</Name>
          <Description name="local:">configuration of GPIO13</Description>
        </Parameter>
		<Parameter ParameterId="14" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO14</Name>
          <Description name="local:">configuration of GPIO14</Description>
        </Parameter>
		<Parameter ParameterId="15" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO15</Name>
          <Description name="local:">configuration of GPIO15</Description>
        </Parameter>
		<Parameter ParameterId="16" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO16</Name>
          <Description name="local:">configuration of GPIO16</Description>
        </Parameter>
        <Parameter ParameterId="17" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO17</Name>
          <Description name="local:">configuration of GPIO17</Description>
        </Parameter>
        <Parameter ParameterId="18" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO18</Name>
          <Description name="local:">configuration of GPIO18</Description>
        </Parameter>
		<Parameter ParameterId="19" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO19</Name>
          <Description name="local:">configuration of GPIO19</Description>
        </Parameter>
		<Parameter ParameterId="20" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO20</Name>
          <Description name="local:">configuration of GPIO20</Description>
        </Parameter>
		<Parameter ParameterId="21" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO21</Name>
          <Description name="local:">configuration of GPIO21</Description>
        </Parameter>
        <Parameter ParameterId="22" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO22</Name>
          <Description name="local:">configuration of GPIO22</Description>
        </Parameter>
        <Parameter ParameterId="23" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO23</Name>
          <Description name="local:">configuration of GPIO23</Description>
        </Parameter>
        <Parameter ParameterId="24" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO24</Name>
          <Description name="local:">configuration of GPIO24</Description>
        </Parameter>
        <Parameter ParameterId="25" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO25</Name>
          <Description name="local:">configuration of GPIO25</Description>
        </Parameter>
        <Parameter ParameterId="26" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO26</Name>
          <Description name="local:">configuration of GPIO26</Description>
        </Parameter>
        <Parameter ParameterId="27" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO27</Name>
          <Description name="local:">configuration of GPIO27</Description>
        </Parameter>
        <Parameter ParameterId="28" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO28</Name>
          <Description name="local:">configuration of GPIO28</Description>
        </Parameter>
        <Parameter ParameterId="29" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO29</Name>
          <Description name="local:">configuration of GPIO29</Description>
        </Parameter>
        <Parameter ParameterId="30" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO30</Name>
          <Description name="local:">configuration of GPIO30</Description>
        </Parameter>
        <Parameter ParameterId="31" type="local:GPIOType">
          <Attributes channel="none" download="true" functional="false" onlineaccess="read" />
          <Default>255</Default>
          <Name name="local:">GPIO31</Name>
          <Description name="local:">configuration of GPIO31</Description>
        </Parameter>
        <Parameter ParameterId="1000" type="local:BITFIELD_GPIO">
          <Attributes channel="input"/>
          <Name name="local:in1">digital inputs (GPIO0..GPIO31)</Name>
        </Parameter>
        <Parameter ParameterId="2000" type="local:BITFIELD_GPIO">
          <Attributes channel="output"/>
          <Name name="local:out1">digital outputs (GPIO0..GPIO31)</Name>
        </Parameter>
<!--        <Parameter ParameterId="2100" type="std:UDINT">
          <Attributes channel="output"/>
          <Name name="local:out1">PWM: frequency [Hz]</Name>
        </Parameter>
        <Parameter ParameterId="2101" type="std:UINT">
          <Attributes channel="output"/>
          <Name name="local:out1">PWM:duty cycle [], ON signal (0: always OFF; 16#FFFF: always ON)</Name>
        </Parameter>
        <Parameter ParameterId="2200" type="std:UDINT">
          <Attributes channel="output"/>
          <Name name="local:out1">CLK: frequency [Hz]</Name>
        </Parameter> -->
      </HostParameterSet>
    </Connector>
    <ExtendedSettings>
      <ts:TargetSettings>
        <ts:section name="deviceconfiguration">
          <ts:setting name="createBitChannels" type="boolean" access="visible">
            <ts:value>1</ts:value>
          </ts:setting>
        </ts:section>
      </ts:TargetSettings>
    </ExtendedSettings>
  </Device>
</DeviceDescription>