arduinoml
DigitalState
OFF
OFF
ON
ON
AMLMachine
bricks
states
start
frequency
AMLState
transitions
actions
Brick
pin
DigitalSensor
DigitalActuator
AnalogSensor
AnalogActuator
Transition
goto
conditions
DigitalCondition
dState
sensor
DigitalAction
dState
actuator
NamedElement
name
Condition
TimeCondition
time
tComp
TimeComparison
AFTER
AFTER
BEFORE
BEFORE
AnalogComparison
GREATER
GREATER
GREATEREQ
GREATEREQ
EQUAL
EQUAL
LOWEREQ
LOWEREQ
LOWER
LOWER
AnalogCondition
aComp
value
sensor
AnalogAction
actuator
Action
AnalogActionValue
value
AnalogActionSensor
sensor
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="arduinoml" nsURI="http://arduinoml/1.0" nsPrefix="arduinoml">
  <eAnnotations source="http://www.eclipse.org/OCL/Import">
    <details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore#/"/>
  </eAnnotations>
  <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
    <details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
    <details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
    <details key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
  </eAnnotations>
  <eClassifiers xsi:type="ecore:EEnum" name="DigitalState">
    <eLiterals name="OFF"/>
    <eLiterals name="ON" value="1"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="AMLMachine">
    <eStructuralFeatures xsi:type="ecore:EReference" name="bricks" upperBound="-1"
        eType="#//Brick" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="states" lowerBound="1"
        upperBound="-1" eType="#//AMLState" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="start" lowerBound="1" eType="#//AMLState"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="frequency" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="AMLState" eSuperTypes="#//NamedElement">
    <eStructuralFeatures xsi:type="ecore:EReference" name="transitions" upperBound="-1"
        eType="#//Transition" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="actions" upperBound="-1"
        eType="#//Action" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Brick" abstract="true" eSuperTypes="#//NamedElement">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="TooMuchBricks"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="TooMuchBricks" value="&#xA;&#x9;&#x9;Brick.allInstances()->select(b | b.oclIsTypeOf(DigitalSensor) or b.oclIsTypeOf(DigitalActuator) or b.oclIsTypeOf(AnalogActuator))->size() &lt;= 5"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="pin" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
        changeable="false" volatile="true" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="derivation" value="&#xA;&#x9;&#x9;&#x9;&#x9;if (self.oclIsTypeOf(AnalogSensor)) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;Brick.allInstances()->select(b | b.oclIsTypeOf(AnalogSensor) and b.name &lt;> null)->sortedBy(name)->indexOf(self)&#xA;&#x9;&#x9;&#x9;&#x9;else if (self.oclIsTypeOf(AnalogActuator)) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;8 + Brick.allInstances()->select(b | b.oclIsTypeOf(AnalogActuator) and b.name &lt;> null)->sortedBy(name)->indexOf(self)&#xA;&#x9;&#x9;&#x9;&#x9;else if (Brick.allInstances()->select(b | (b.oclIsTypeOf(DigitalSensor) or b.oclIsTypeOf(DigitalActuator)) and b.name &lt;> null)->sortedBy(name)->indexOf(self) = 1) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;8&#xA;&#x9;&#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;13 - Brick.allInstances()->select(b | (b.oclIsTypeOf(DigitalSensor) or b.oclIsTypeOf(DigitalActuator)) and b.name &lt;> null)->sortedBy(name)->indexOf(self)&#xA;&#x9;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;&#x9;endif&#xA;&#x9;&#x9;&#x9;&#x9;endif"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DigitalSensor" eSuperTypes="#//Brick"/>
  <eClassifiers xsi:type="ecore:EClass" name="DigitalActuator" eSuperTypes="#//Brick"/>
  <eClassifiers xsi:type="ecore:EClass" name="AnalogSensor" eSuperTypes="#//Brick">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="TooMuchAnalogSensor"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="TooMuchAnalogSensor" value="&#xA;&#x9;&#x9;AnalogSensor.allInstances()->size() &lt;= 5"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="AnalogActuator" eSuperTypes="#//Brick">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="TooMuchAnalogActuator"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="TooMuchAnalogActuator" value="&#xA;&#x9;&#x9;AnalogSensor.allInstances()->size() &lt;= 3"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Transition">
    <eStructuralFeatures xsi:type="ecore:EReference" name="goto" lowerBound="1" eType="#//AMLState"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="conditions" lowerBound="1"
        upperBound="-1" eType="#//Condition" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DigitalCondition" eSuperTypes="#//Condition">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dState" lowerBound="1"
        eType="#//DigitalState"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="sensor" lowerBound="1"
        eType="#//DigitalSensor"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DigitalAction" eSuperTypes="#//Action">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dState" lowerBound="1"
        eType="#//DigitalState"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="actuator" lowerBound="1"
        eType="#//DigitalActuator"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        iD="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Condition" abstract="true"/>
  <eClassifiers xsi:type="ecore:EClass" name="TimeCondition" eSuperTypes="#//Condition">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="TimeMustBePositive"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="TimeMustBePositive" value="&#xA;&#x9;self.time > 0"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="time" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tComp" lowerBound="1" eType="#//TimeComparison"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="TimeComparison">
    <eLiterals name="AFTER" value="1"/>
    <eLiterals name="BEFORE"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="AnalogComparison">
    <eLiterals name="GREATER" value="2"/>
    <eLiterals name="GREATEREQ" value="3"/>
    <eLiterals name="EQUAL" value="1"/>
    <eLiterals name="LOWEREQ" value="5"/>
    <eLiterals name="LOWER" value="4"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="AnalogCondition" eSuperTypes="#//Condition">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="InvalidValue"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="InvalidValue" value="&#xA;&#x9;self.value >= 0 and self.value &lt;= 1023"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="aComp" lowerBound="1" eType="#//AnalogComparison"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="sensor" lowerBound="1"
        eType="#//AnalogSensor"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="AnalogAction" abstract="true" eSuperTypes="#//Action">
    <eStructuralFeatures xsi:type="ecore:EReference" name="actuator" lowerBound="1"
        eType="#//AnalogActuator"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Action" abstract="true"/>
  <eClassifiers xsi:type="ecore:EClass" name="AnalogActionValue" eSuperTypes="#//AnalogAction">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="InvalidValue"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="InvalidValue" value="&#xA;&#x9;self.value >= 0 and self.value &lt;= 1023"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="AnalogActionSensor" eSuperTypes="#//AnalogAction">
    <eStructuralFeatures xsi:type="ecore:EReference" name="sensor" lowerBound="1"
        eType="#//AnalogSensor"/>
  </eClassifiers>
</ecore:EPackage>

{"directed":true,"nodes":[{"nsPrefix":"arduinoml","nsURI":"http://arduinoml/1.0","name":"arduinoml","id":0,"eClass":"EPackage"},{"instanceTypeName":null,"instanceClassName":null,"name":"DigitalState","instanceClass":null,"id":1,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AMLMachine","instanceClass":null,"abstract":false,"id":2,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AMLState","instanceClass":null,"abstract":false,"id":3,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Brick","instanceClass":null,"abstract":true,"id":4,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DigitalSensor","instanceClass":null,"abstract":false,"id":5,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DigitalActuator","instanceClass":null,"abstract":false,"id":6,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnalogSensor","instanceClass":null,"abstract":false,"id":7,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnalogActuator","instanceClass":null,"abstract":false,"id":8,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Transition","instanceClass":null,"abstract":false,"id":9,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DigitalCondition","instanceClass":null,"abstract":false,"id":10,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DigitalAction","instanceClass":null,"abstract":false,"id":11,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NamedElement","instanceClass":null,"abstract":true,"id":12,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Condition","instanceClass":null,"abstract":true,"id":13,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TimeCondition","instanceClass":null,"abstract":false,"id":14,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"TimeComparison","instanceClass":null,"id":15,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"instanceClassName":null,"name":"AnalogComparison","instanceClass":null,"id":16,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnalogCondition","instanceClass":null,"abstract":false,"id":17,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnalogAction","instanceClass":null,"abstract":true,"id":18,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Action","instanceClass":null,"abstract":true,"id":19,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnalogActionValue","instanceClass":null,"abstract":false,"id":20,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnalogActionSensor","instanceClass":null,"abstract":false,"id":21,"interface":false,"eClass":"EClass"},{"name":"OFF","id":22,"value":0,"literal":"OFF","eClass":"EEnumLiteral"},{"name":"ON","id":23,"value":1,"literal":"ON","eClass":"EEnumLiteral"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"bricks","changeable":true,"resolveProxies":true,"lowerBound":0,"id":24,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"states","changeable":true,"resolveProxies":true,"lowerBound":1,"id":25,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"start","changeable":true,"resolveProxies":true,"lowerBound":1,"id":26,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"frequency","changeable":true,"lowerBound":0,"iD":false,"id":27,"derived":false},{"id":28,"eClass":"EGenericType"},{"id":29,"eClass":"EGenericType"},{"id":30,"eClass":"EGenericType"},{"id":31,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"transitions","changeable":true,"resolveProxies":true,"lowerBound":0,"id":32,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"actions","changeable":true,"resolveProxies":true,"lowerBound":0,"id":33,"derived":false},{"id":34,"eClass":"EGenericType"},{"id":35,"eClass":"EGenericType"},{"id":36,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":true,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"pin","changeable":false,"lowerBound":1,"iD":false,"id":37,"derived":true},{"id":38,"eClass":"EGenericType"},{"id":39,"eClass":"EGenericType"},{"id":40,"eClass":"EGenericType"},{"id":41,"eClass":"EGenericType"},{"id":42,"eClass":"EGenericType"},{"id":43,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"goto","changeable":true,"resolveProxies":true,"lowerBound":1,"id":44,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"conditions","changeable":true,"resolveProxies":true,"lowerBound":1,"id":45,"derived":false},{"id":46,"eClass":"EGenericType"},{"id":47,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"dState","changeable":true,"lowerBound":1,"iD":false,"id":48,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"sensor","changeable":true,"resolveProxies":true,"lowerBound":1,"id":49,"derived":false},{"id":50,"eClass":"EGenericType"},{"id":51,"eClass":"EGenericType"},{"id":52,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"dState","changeable":true,"lowerBound":1,"iD":false,"id":53,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"actuator","changeable":true,"resolveProxies":true,"lowerBound":1,"id":54,"derived":false},{"id":55,"eClass":"EGenericType"},{"id":56,"eClass":"EGenericType"},{"id":57,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":true,"lowerBound":1,"iD":true,"id":58,"derived":false},{"id":59,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"time","changeable":true,"lowerBound":1,"iD":false,"id":60,"derived":false},{"ordered":true,"upperBound":1,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"tComp","changeable":true,"lowerBound":1,"iD":false,"id":61,"derived":false},{"id":62,"eClass":"EGenericType"},{"id":63,"eClass":"EGenericType"},{"id":64,"eClass":"EGenericType"},{"name":"AFTER","id":65,"value":1,"literal":"AFTER","eClass":"EEnumLiteral"},{"name":"BEFORE","id":66,"value":0,"literal":"BEFORE","eClass":"EEnumLiteral"},{"name":"GREATER","id":67,"value":2,"literal":"GREATER","eClass":"EEnumLiteral"},{"name":"GREATEREQ","id":68,"value":3,"literal":"GREATEREQ","eClass":"EEnumLiteral"},{"name":"EQUAL","id":69,"value":1,"literal":"EQUAL","eClass":"EEnumLiteral"},{"name":"LOWEREQ","id":70,"value":5,"literal":"LOWEREQ","eClass":"EEnumLiteral"},{"name":"LOWER","id":71,"value":4,"literal":"LOWER","eClass":"EEnumLiteral"},{"ordered":true,"upperBound":1,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"aComp","changeable":true,"lowerBound":1,"iD":false,"id":72,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"value","changeable":true,"lowerBound":1,"iD":false,"id":73,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"sensor","changeable":true,"resolveProxies":true,"lowerBound":1,"id":74,"derived":false},{"id":75,"eClass":"EGenericType"},{"id":76,"eClass":"EGenericType"},{"id":77,"eClass":"EGenericType"},{"id":78,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"actuator","changeable":true,"resolveProxies":true,"lowerBound":1,"id":79,"derived":false},{"id":80,"eClass":"EGenericType"},{"id":81,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"value","changeable":true,"lowerBound":1,"iD":false,"id":82,"derived":false},{"id":83,"eClass":"EGenericType"},{"id":84,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"sensor","changeable":true,"resolveProxies":true,"lowerBound":1,"id":85,"derived":false},{"id":86,"eClass":"EGenericType"},{"id":87,"eClass":"EGenericType"}],"links":[{"source":0,"target":1},{"source":0,"target":2},{"source":0,"target":3},{"source":0,"target":4},{"source":0,"target":5},{"source":0,"target":6},{"source":0,"target":7},{"source":0,"target":8},{"source":0,"target":9},{"source":0,"target":10},{"source":0,"target":11},{"source":0,"target":12},{"source":0,"target":13},{"source":0,"target":14},{"source":0,"target":15},{"source":0,"target":16},{"source":0,"target":17},{"source":0,"target":18},{"source":0,"target":19},{"source":0,"target":20},{"source":0,"target":21},{"source":1,"target":0},{"source":1,"target":22},{"source":1,"target":23},{"source":22,"target":1},{"source":23,"target":1},{"source":2,"target":0},{"source":2,"target":24},{"source":2,"target":25},{"source":2,"target":26},{"source":2,"target":27},{"source":24,"target":4},{"source":24,"target":28},{"source":24,"target":2},{"source":28,"target":4},{"source":25,"target":3},{"source":25,"target":29},{"source":25,"target":2},{"source":29,"target":3},{"source":26,"target":3},{"source":26,"target":30},{"source":26,"target":2},{"source":30,"target":3},{"source":27,"target":31},{"source":27,"target":2},{"source":3,"target":0},{"source":3,"target":12},{"source":3,"target":32},{"source":3,"target":33},{"source":3,"target":34},{"source":32,"target":9},{"source":32,"target":35},{"source":32,"target":3},{"source":35,"target":9},{"source":33,"target":19},{"source":33,"target":36},{"source":33,"target":3},{"source":36,"target":19},{"source":34,"target":12},{"source":4,"target":0},{"source":4,"target":12},{"source":4,"target":37},{"source":4,"target":38},{"source":37,"target":39},{"source":37,"target":4},{"source":38,"target":12},{"source":5,"target":0},{"source":5,"target":4},{"source":5,"target":40},{"source":40,"target":4},{"source":6,"target":0},{"source":6,"target":4},{"source":6,"target":41},{"source":41,"target":4},{"source":7,"target":0},{"source":7,"target":4},{"source":7,"target":42},{"source":42,"target":4},{"source":8,"target":0},{"source":8,"target":4},{"source":8,"target":43},{"source":43,"target":4},{"source":9,"target":0},{"source":9,"target":44},{"source":9,"target":45},{"source":44,"target":3},{"source":44,"target":46},{"source":44,"target":9},{"source":46,"target":3},{"source":45,"target":13},{"source":45,"target":47},{"source":45,"target":9},{"source":47,"target":13},{"source":10,"target":0},{"source":10,"target":13},{"source":10,"target":48},{"source":10,"target":49},{"source":10,"target":50},{"source":48,"target":1},{"source":48,"target":51},{"source":48,"target":10},{"source":51,"target":1},{"source":49,"target":5},{"source":49,"target":52},{"source":49,"target":10},{"source":52,"target":5},{"source":50,"target":13},{"source":11,"target":0},{"source":11,"target":19},{"source":11,"target":53},{"source":11,"target":54},{"source":11,"target":55},{"source":53,"target":1},{"source":53,"target":56},{"source":53,"target":11},{"source":56,"target":1},{"source":54,"target":6},{"source":54,"target":57},{"source":54,"target":11},{"source":57,"target":6},{"source":55,"target":19},{"source":12,"target":0},{"source":12,"target":58},{"source":58,"target":59},{"source":58,"target":12},{"source":13,"target":0},{"source":14,"target":0},{"source":14,"target":13},{"source":14,"target":60},{"source":14,"target":61},{"source":14,"target":62},{"source":60,"target":63},{"source":60,"target":14},{"source":61,"target":15},{"source":61,"target":64},{"source":61,"target":14},{"source":64,"target":15},{"source":62,"target":13},{"source":15,"target":0},{"source":15,"target":65},{"source":15,"target":66},{"source":65,"target":15},{"source":66,"target":15},{"source":16,"target":0},{"source":16,"target":67},{"source":16,"target":68},{"source":16,"target":69},{"source":16,"target":70},{"source":16,"target":71},{"source":67,"target":16},{"source":68,"target":16},{"source":69,"target":16},{"source":70,"target":16},{"source":71,"target":16},{"source":17,"target":0},{"source":17,"target":13},{"source":17,"target":72},{"source":17,"target":73},{"source":17,"target":74},{"source":17,"target":75},{"source":72,"target":16},{"source":72,"target":76},{"source":72,"target":17},{"source":76,"target":16},{"source":73,"target":77},{"source":73,"target":17},{"source":74,"target":7},{"source":74,"target":78},{"source":74,"target":17},{"source":78,"target":7},{"source":75,"target":13},{"source":18,"target":0},{"source":18,"target":19},{"source":18,"target":79},{"source":18,"target":80},{"source":79,"target":8},{"source":79,"target":81},{"source":79,"target":18},{"source":81,"target":8},{"source":80,"target":19},{"source":19,"target":0},{"source":20,"target":0},{"source":20,"target":18},{"source":20,"target":82},{"source":20,"target":83},{"source":82,"target":84},{"source":82,"target":20},{"source":83,"target":18},{"source":21,"target":0},{"source":21,"target":18},{"source":21,"target":85},{"source":21,"target":86},{"source":85,"target":7},{"source":85,"target":87},{"source":85,"target":21},{"source":87,"target":7},{"source":86,"target":18}],"multigraph":true}