232 lines
14 KiB
XML
232 lines
14 KiB
XML
<mxfile host="app.diagrams.net">
|
|
<diagram name="Smart Thermostat Activity Diagram">
|
|
<mxGraphModel dx="1422" dy="962" grid="1" gridSize="10" guides="1">
|
|
<root>
|
|
<mxCell id="0"/>
|
|
<mxCell id="1" parent="0"/>
|
|
|
|
<!-- Start Node -->
|
|
<mxCell id="start" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#000000;" vertex="1" parent="1">
|
|
<mxGeometry x="390" y="20" width="20" height="20" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- User Input Activity -->
|
|
<mxCell id="userInput" value="Home Owner
Provides Input" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
<mxGeometry x="340" y="70" width="120" height="50" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- Electronic Device Processes Input -->
|
|
<mxCell id="processInput" value="Electronic Device/App
Processes User Input" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
|
|
<mxGeometry x="340" y="150" width="120" height="50" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- Send Data to Network -->
|
|
<mxCell id="sendToNetwork" value="Send Data to
Internet Gateway" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
|
|
<mxGeometry x="340" y="230" width="120" height="50" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- Network Receives Data -->
|
|
<mxCell id="networkReceive" value="Internet Gateway
Receives Data" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
|
|
<mxGeometry x="340" y="310" width="120" height="50" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- Send to SmartThermostat -->
|
|
<mxCell id="sendToThermostat" value="Send Data to
SmartThermostat" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
|
|
<mxGeometry x="340" y="390" width="120" height="50" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- Fork for Parallel Activities -->
|
|
<mxCell id="fork1" value="" style="line;strokeWidth=3;html=1;fillColor=#000000;" vertex="1" parent="1">
|
|
<mxGeometry x="350" y="470" width="100" height="10" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- Left Branch - Sensor Activities -->
|
|
<mxCell id="readSensors" value="Read Temperature
from Sensors" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
|
|
<mxGeometry x="180" y="520" width="120" height="50" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="sendSensorData" value="Send Sensor Data
to SmartThermostat" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
|
|
<mxGeometry x="180" y="600" width="120" height="50" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- Right Branch - Database Activities -->
|
|
<mxCell id="retrieveData" value="Retrieve Data
from Database" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
|
|
<mxGeometry x="500" y="520" width="120" height="50" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="storeData" value="Store Sensor Data
in Database" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
|
|
<mxGeometry x="500" y="600" width="120" height="50" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- Join after Parallel Activities -->
|
|
<mxCell id="join1" value="" style="line;strokeWidth=3;html=1;fillColor=#000000;" vertex="1" parent="1">
|
|
<mxGeometry x="350" y="700" width="100" height="10" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- Decision Diamond -->
|
|
<mxCell id="decision1" value="Temperature
Control Needed?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
|
|
<mxGeometry x="320" y="750" width="160" height="80" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- Heating Branch -->
|
|
<mxCell id="startHeating" value="Switch HVAC to
Heating Mode" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffcccc;strokeColor=#ff6666;" vertex="1" parent="1">
|
|
<mxGeometry x="120" y="880" width="120" height="50" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="sendHeatingState" value="Send Heating State
Data to SmartThermostat" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffcccc;strokeColor=#ff6666;" vertex="1" parent="1">
|
|
<mxGeometry x="120" y="960" width="120" height="50" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- Cooling Branch -->
|
|
<mxCell id="startCooling" value="Switch HVAC to
Cooling Mode" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ccffff;strokeColor=#0066cc;" vertex="1" parent="1">
|
|
<mxGeometry x="560" y="880" width="120" height="50" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="sendCoolingState" value="Send Cooling State
Data to SmartThermostat" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ccffff;strokeColor=#0066cc;" vertex="1" parent="1">
|
|
<mxGeometry x="560" y="960" width="120" height="50" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- No Action Branch -->
|
|
<mxCell id="maintain" value="Maintain Current
Temperature" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" vertex="1" parent="1">
|
|
<mxGeometry x="340" y="880" width="120" height="50" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- Join after Decision -->
|
|
<mxCell id="join2" value="" style="line;strokeWidth=3;html=1;fillColor=#000000;" vertex="1" parent="1">
|
|
<mxGeometry x="350" y="1050" width="100" height="10" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- Display Current Temperature -->
|
|
<mxCell id="displayTemp" value="Display Current
Temperature to User" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
<mxGeometry x="340" y="1090" width="120" height="50" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- Wait Activity -->
|
|
<mxCell id="wait" value="Wait for Next
Monitoring Cycle" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f0f0;strokeColor=#999999;" vertex="1" parent="1">
|
|
<mxGeometry x="340" y="1170" width="120" height="50" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- Loop Back Decision -->
|
|
<mxCell id="loopDecision" value="Continue
Monitoring?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
|
|
<mxGeometry x="320" y="1250" width="160" height="80" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- End Node -->
|
|
<mxCell id="end" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#000000;strokeColor=#000000;strokeWidth=3;" vertex="1" parent="1">
|
|
<mxGeometry x="390" y="1370" width="20" height="20" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<!-- Transitions -->
|
|
<mxCell id="t1" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="start" target="userInput">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t2" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="userInput" target="processInput">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t3" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="processInput" target="sendToNetwork">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t4" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="sendToNetwork" target="networkReceive">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t5" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="networkReceive" target="sendToThermostat">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t6" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="sendToThermostat" target="fork1">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t7" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0;exitY=0.5;entryX=0.5;entryY=0;" edge="1" parent="1" source="fork1" target="readSensors">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t8" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.5;entryX=0.5;entryY=0;" edge="1" parent="1" source="fork1" target="retrieveData">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t9" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="readSensors" target="sendSensorData">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t10" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="retrieveData" target="storeData">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t11" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0;entryY=0.5;" edge="1" parent="1" source="sendSensorData" target="join1">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t12" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=1;entryY=0.5;" edge="1" parent="1" source="storeData" target="join1">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t13" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="join1" target="decision1">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t14" value="Need Heating" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0;exitY=0.5;entryX=0.5;entryY=0;" edge="1" parent="1" source="decision1" target="startHeating">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t15" value="Need Cooling" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.5;entryX=0.5;entryY=0;" edge="1" parent="1" source="decision1" target="startCooling">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t16" value="No Change" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="decision1" target="maintain">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t17" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="startHeating" target="sendHeatingState">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t18" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="startCooling" target="sendCoolingState">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t19" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0;entryY=0.5;" edge="1" parent="1" source="sendHeatingState" target="join2">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t20" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=1;entryY=0.5;" edge="1" parent="1" source="sendCoolingState" target="join2">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t21" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0.5;" edge="1" parent="1" source="maintain" target="join2">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t22" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="join2" target="displayTemp">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t23" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="displayTemp" target="wait">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t24" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="wait" target="loopDecision">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
<mxCell id="t25" value="Yes" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1" source="loopDecision" target="readSensors">
|
|
<mxGeometry relative="1" as="geometry">
|
|
<Array as="points">
|
|
<mxPoint x="50" y="1290"/>
|
|
<mxPoint x="50" y="545"/>
|
|
</Array>
|
|
</mxGeometry>
|
|
</mxCell>
|
|
|
|
<mxCell id="t26" value="No" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="loopDecision" target="end">
|
|
<mxGeometry relative="1" as="geometry"/>
|
|
</mxCell>
|
|
|
|
</root>
|
|
</mxGraphModel>
|
|
</diagram>
|
|
</mxfile> |