<?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" xmi:id="_erwNgNykEeWlnZT785H8fA" name="model">
  <eAnnotations xmi:id="_erwNgNykEeWlnZT785H8fA0" source="genmymodel">
    <details xmi:id="_erwNgNykEeWlnZT785H8fA00" key="uuid" value="_erwNgNykEeWlnZT785H8fA"/>
  </eAnnotations>
  <eClassifiers xsi:type="ecore:EClass" xmi:id="_D652sL8PEDOdJL4y22_NHQ" name="SerialPortEventListener" interface="true">
    <eAnnotations xmi:id="_D652sL8PEDOdJL4y22_NHQ0" source="genmymodel">
      <details xmi:id="_D652sL8PEDOdJL4y22_NHQ00" key="uuid" value="_D652sL8PEDOdJL4y22_NHQ"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" xmi:id="_O_u2EL8PEDOdJL4y22_NHQ" name="Runnable" interface="true">
    <eAnnotations xmi:id="_O_u2EL8PEDOdJL4y22_NHQ0" source="genmymodel">
      <details xmi:id="_O_u2EL8PEDOdJL4y22_NHQ00" key="uuid" value="_O_u2EL8PEDOdJL4y22_NHQ"/>
    </eAnnotations>
  </eClassifiers>
  <eSubpackages xmi:id="_6ZWzgL8EEDOdJL4y22_NHQ" name="Comms">
    <eAnnotations xmi:id="_6ZWzgL8EEDOdJL4y22_NHQ0" source="genmymodel">
      <details xmi:id="_6ZWzgL8EEDOdJL4y22_NHQ00" key="uuid" value="_6ZWzgL8EEDOdJL4y22_NHQ"/>
    </eAnnotations>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_BTLLAL8FEDOdJL4y22_NHQ" name="TwoWaySerialComms">
      <eAnnotations xmi:id="_BTLLAL8FEDOdJL4y22_NHQ0" source="genmymodel">
        <details xmi:id="_BTLLAL8FEDOdJL4y22_NHQ00" key="uuid" value="_BTLLAL8FEDOdJL4y22_NHQ"/>
      </eAnnotations>
      <eOperations xmi:id="_LRDJYL8FEDOdJL4y22_NHQ" name="+connect">
        <eAnnotations xmi:id="_LRDJYL8FEDOdJL4y22_NHQ0" source="genmymodel">
          <details xmi:id="_LRDJYL8FEDOdJL4y22_NHQ00" key="uuid" value="_LRDJYL8FEDOdJL4y22_NHQ"/>
        </eAnnotations>
        <eParameters xmi:id="_SoIEoL8FEDOdJL4y22_NHQ" name="portName">
          <eAnnotations xmi:id="_SoIEoL8FEDOdJL4y22_NHQ0" source="genmymodel">
            <details xmi:id="_SoIEoL8FEDOdJL4y22_NHQ00" key="uuid" value="_SoIEoL8FEDOdJL4y22_NHQ"/>
          </eAnnotations>
          <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
        </eParameters>
      </eOperations>
      <eOperations xmi:id="_bXLl0L8NEDOdJL4y22_NHQ" name="+shutdown">
        <eAnnotations xmi:id="_bXLl0L8NEDOdJL4y22_NHQ0" source="genmymodel">
          <details xmi:id="_bXLl0L8NEDOdJL4y22_NHQ00" key="uuid" value="_bXLl0L8NEDOdJL4y22_NHQ"/>
        </eAnnotations>
      </eOperations>
      <eOperations xmi:id="_lBSToL8NEDOdJL4y22_NHQ" name="#stateReact">
        <eAnnotations xmi:id="_lBSToL8NEDOdJL4y22_NHQ0" source="genmymodel">
          <details xmi:id="_lBSToL8NEDOdJL4y22_NHQ00" key="uuid" value="_lBSToL8NEDOdJL4y22_NHQ"/>
        </eAnnotations>
        <eParameters xmi:id="_vV4TcL8OEDOdJL4y22_NHQ" name="buffer" lowerBound="1" upperBound="-1">
          <eAnnotations xmi:id="_vV4TcL8OEDOdJL4y22_NHQ0" source="genmymodel">
            <details xmi:id="_vV4TcL8OEDOdJL4y22_NHQ00" key="uuid" value="_vV4TcL8OEDOdJL4y22_NHQ"/>
          </eAnnotations>
          <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EByte"/>
        </eParameters>
      </eOperations>
      <eOperations xmi:id="_p3DoYL8QEDOdJL4y22_NHQ" name="#stateReact">
        <eAnnotations xmi:id="_p3DoYL8QEDOdJL4y22_NHQ0" source="genmymodel">
          <details xmi:id="_p3DoYL8QEDOdJL4y22_NHQ00" key="uuid" value="_p3DoYL8QEDOdJL4y22_NHQ"/>
        </eAnnotations>
        <eParameters xmi:id="_sBI6UL8QEDOdJL4y22_NHQ" name="isAttIdle">
          <eAnnotations xmi:id="_sBI6UL8QEDOdJL4y22_NHQ0" source="genmymodel">
            <details xmi:id="_sBI6UL8QEDOdJL4y22_NHQ00" key="uuid" value="_sBI6UL8QEDOdJL4y22_NHQ"/>
          </eAnnotations>
          <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
        </eParameters>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="_jPzzIL8GEDOdJL4y22_NHQ" name="#state" eType="_pROUQL8MEDOdJL4y22_NHQ" changeable="false" defaultValueLiteral="S0">
        <eAnnotations xmi:id="_jPzzIL8GEDOdJL4y22_NHQ0" source="genmymodel">
          <details xmi:id="_jPzzIL8GEDOdJL4y22_NHQ00" key="uuid" value="_jPzzIL8GEDOdJL4y22_NHQ"/>
        </eAnnotations>
      </eStructuralFeatures>
      <eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="_CmprcL8NEDOdJL4y22_NHQ" name="-SerialReader">
        <eAnnotations xmi:id="_CmprcL8NEDOdJL4y22_NHQ0" source="genmymodel">
          <details xmi:id="_CmprcL8NEDOdJL4y22_NHQ00" key="uuid" value="_CmprcL8NEDOdJL4y22_NHQ"/>
        </eAnnotations>
      </eStructuralFeatures>
      <eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="_PZLiwL8NEDOdJL4y22_NHQ" name="-SerialWriter">
        <eAnnotations xmi:id="_PZLiwL8NEDOdJL4y22_NHQ0" source="genmymodel">
          <details xmi:id="_PZLiwL8NEDOdJL4y22_NHQ00" key="uuid" value="_PZLiwL8NEDOdJL4y22_NHQ"/>
        </eAnnotations>
      </eStructuralFeatures>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_LBem4L8GEDOdJL4y22_NHQ" name="SerialReader" eSuperTypes="_D652sL8PEDOdJL4y22_NHQ">
      <eAnnotations xmi:id="_LBem4L8GEDOdJL4y22_NHQ0" source="genmymodel">
        <details xmi:id="_LBem4L8GEDOdJL4y22_NHQ00" key="uuid" value="_LBem4L8GEDOdJL4y22_NHQ"/>
      </eAnnotations>
      <eOperations xmi:id="_aao9sL8QEDOdJL4y22_NHQ" name="-calcIdleTime">
        <eAnnotations xmi:id="_aao9sL8QEDOdJL4y22_NHQ0" source="genmymodel">
          <details xmi:id="_aao9sL8QEDOdJL4y22_NHQ00" key="uuid" value="_aao9sL8QEDOdJL4y22_NHQ"/>
        </eAnnotations>
        <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="_Z5aVYL8PEDOdJL4y22_NHQ" name="-InputStream" ordered="false" volatile="true">
        <eAnnotations xmi:id="_Z5aVYL8PEDOdJL4y22_NHQ0" source="genmymodel">
          <details xmi:id="_Z5aVYL8PEDOdJL4y22_NHQ00" key="uuid" value="_Z5aVYL8PEDOdJL4y22_NHQ"/>
        </eAnnotations>
      </eStructuralFeatures>
      <eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="_7dRtoL8PEDOdJL4y22_NHQ" name="-buffer" upperBound="-1">
        <eAnnotations xmi:id="_7dRtoL8PEDOdJL4y22_NHQ0" source="genmymodel">
          <details xmi:id="_7dRtoL8PEDOdJL4y22_NHQ00" key="uuid" value="_7dRtoL8PEDOdJL4y22_NHQ"/>
        </eAnnotations>
        <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EByte"/>
      </eStructuralFeatures>
      <eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="_NsGOgL8QEDOdJL4y22_NHQ" name="-timeDataRecieved">
        <eAnnotations xmi:id="_NsGOgL8QEDOdJL4y22_NHQ0" source="genmymodel">
          <details xmi:id="_NsGOgL8QEDOdJL4y22_NHQ00" key="uuid" value="_NsGOgL8QEDOdJL4y22_NHQ"/>
        </eAnnotations>
        <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
      </eStructuralFeatures>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EEnum" xmi:id="_pROUQL8MEDOdJL4y22_NHQ" name="CommState" serializable="false">
      <eAnnotations xmi:id="_pROUQL8MEDOdJL4y22_NHQ0" source="genmymodel">
        <details xmi:id="_pROUQL8MEDOdJL4y22_NHQ00" key="uuid" value="_pROUQL8MEDOdJL4y22_NHQ"/>
        <details xmi:id="_pROUQL8MEDOdJL4y22_NHQ01" key="gmm-documentation" value="The states for the state based serial comms."/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Q8V-oL8NEDOdJL4y22_NHQ" name="SerialWriter" eSuperTypes="_O_u2EL8PEDOdJL4y22_NHQ">
      <eAnnotations xmi:id="_Q8V-oL8NEDOdJL4y22_NHQ0" source="genmymodel">
        <details xmi:id="_Q8V-oL8NEDOdJL4y22_NHQ00" key="uuid" value="_Q8V-oL8NEDOdJL4y22_NHQ"/>
      </eAnnotations>
    </eClassifiers>
  </eSubpackages>
</ecore:EPackage>

{"directed":true,"nodes":[{"nsPrefix":null,"nsURI":null,"name":"model","id":0,"eClass":"EPackage"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SerialPortEventListener","instanceClass":null,"abstract":false,"id":1,"interface":true,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Runnable","instanceClass":null,"abstract":false,"id":2,"interface":true,"eClass":"EClass"},{"nsPrefix":null,"nsURI":null,"name":"Comms","id":3,"eClass":"EPackage"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TwoWaySerialComms","instanceClass":null,"abstract":false,"id":4,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SerialReader","instanceClass":null,"abstract":false,"id":5,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CommState","instanceClass":null,"id":6,"serializable":false,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SerialWriter","instanceClass":null,"abstract":false,"id":7,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"unique":true,"name":"+connect","lowerBound":0,"id":8,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"+shutdown","lowerBound":0,"id":9,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"#stateReact","lowerBound":0,"id":10,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"#stateReact","lowerBound":0,"id":11,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":"S0","unsettable":false,"transient":false,"unique":true,"name":"#state","changeable":false,"lowerBound":0,"iD":false,"id":12,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"-SerialReader","changeable":true,"lowerBound":0,"iD":false,"id":13,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"-SerialWriter","changeable":true,"lowerBound":0,"iD":false,"id":14,"derived":false},{"ordered":true,"upperBound":1,"unique":true,"name":"portName","lowerBound":0,"id":15,"many":false,"required":false,"eClass":"EParameter"},{"id":16,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"buffer","lowerBound":1,"id":17,"many":true,"required":true,"eClass":"EParameter"},{"id":18,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"isAttIdle","lowerBound":0,"id":19,"many":false,"required":false,"eClass":"EParameter"},{"id":20,"eClass":"EGenericType"},{"id":21,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"-calcIdleTime","lowerBound":0,"id":22,"many":false,"required":false,"eClass":"EOperation"},{"ordered":false,"upperBound":1,"defaultValue":null,"volatile":true,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"-InputStream","changeable":true,"lowerBound":0,"iD":false,"id":23,"derived":false},{"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"-buffer","changeable":true,"lowerBound":0,"iD":false,"id":24,"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":"-timeDataRecieved","changeable":true,"lowerBound":0,"iD":false,"id":25,"derived":false},{"id":26,"eClass":"EGenericType"},{"id":27,"eClass":"EGenericType"},{"id":28,"eClass":"EGenericType"},{"id":29,"eClass":"EGenericType"},{"id":30,"eClass":"EGenericType"}],"links":[{"source":0,"target":1},{"source":0,"target":2},{"source":0,"target":3},{"source":1,"target":0},{"source":2,"target":0},{"source":3,"target":4},{"source":3,"target":5},{"source":3,"target":6},{"source":3,"target":7},{"source":3,"target":0},{"source":4,"target":3},{"source":4,"target":8},{"source":4,"target":9},{"source":4,"target":10},{"source":4,"target":11},{"source":4,"target":12},{"source":4,"target":13},{"source":4,"target":14},{"source":8,"target":4},{"source":8,"target":15},{"source":15,"target":16},{"source":15,"target":8},{"source":9,"target":4},{"source":10,"target":4},{"source":10,"target":17},{"source":17,"target":18},{"source":17,"target":10},{"source":11,"target":4},{"source":11,"target":19},{"source":19,"target":20},{"source":19,"target":11},{"source":12,"target":6},{"source":12,"target":21},{"source":12,"target":4},{"source":21,"target":6},{"source":13,"target":4},{"source":14,"target":4},{"source":5,"target":3},{"source":5,"target":1},{"source":5,"target":22},{"source":5,"target":23},{"source":5,"target":24},{"source":5,"target":25},{"source":5,"target":26},{"source":22,"target":27},{"source":22,"target":5},{"source":23,"target":5},{"source":24,"target":28},{"source":24,"target":5},{"source":25,"target":29},{"source":25,"target":5},{"source":26,"target":1},{"source":6,"target":3},{"source":7,"target":3},{"source":7,"target":2},{"source":7,"target":30},{"source":30,"target":2}],"multigraph":true}
model
SerialPortEventListener
Runnable
Comms
TwoWaySerialComms
+connect
portName
+shutdown
#stateReact
buffer
#stateReact
isAttIdle
#state
S0
-SerialReader
-SerialWriter
SerialReader
-calcIdleTime
-InputStream
-buffer
-timeDataRecieved
CommState
SerialWriter