<?xml version="1.0" encoding="UTF-8"?>
<!-- 
/*******************************************************************************
 * Copyright (c) 2014 fortiss GmbH
 * 
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without 
 * modification, are permitted provided that the following conditions are met:
 *   - Redistributions of source code must retain the above copyright notice, 
 *     this list of conditions and the following disclaimer.
 *   - Redistributions in binary form must reproduce the above copyright notice,
 *     this list of conditions and the following disclaimer in the documentation
 *     and/or other materials provided with the distribution.  
 *   - Neither the name of the Eclipse Foundation, Inc. nor the names of its 
 *     contributors may be used to endorse or promote products derived from this
 *     software without specific prior written permission.
 *     
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
 * POSSIBILITY OF SUCH DAMAGE.
 *
 * Contributors:
 *   Alois Zoitl
 *     - initial API and implementation and/or initial documentation
 *******************************************************************************/
 -->
<!DOCTYPE FBType SYSTEM "http://www.holobloc.com/xml/LibraryElement.dtd" >
<SubAppType Name="SubApp" Comment="Subapplication Type" >
  <Identification Standard="61499-2" />
  <VersionInfo Organization="4DIAC-Consortium" Version="0.0" Author="4DIAC-IDE" Date="2012-02-28" />
  <SubAppInterfaceList>
    <SubAppEventInputs>
      <SubAppEvent Name="INIT" Comment="Initialization Request" >
      </SubAppEvent>
      <SubAppEvent Name="REQ" Comment="Normal Execution Request" >
      </SubAppEvent>
    </SubAppEventInputs>
    <SubAppEventOutputs>
      <SubAppEvent Name="INITO" Comment="Initialization Confirm" >
      </SubAppEvent>
      <SubAppEvent Name="CNF" Comment="Execution Confirmation" >
      </SubAppEvent>
    </SubAppEventOutputs>
    <InputVars>
      <VarDeclaration Name="QI" Type="BOOL" Comment="Input event qualifier" />
    </InputVars>
    <OutputVars>
      <VarDeclaration Name="QO" Type="BOOL" Comment="Output event qualifier" />
    </OutputVars>
  </SubAppInterfaceList>
  <SubAppNetwork >
  </SubAppNetwork>
</SubAppType>
