mv-bms/Documentation/State machine diagram.svg
2024-05-26 20:59:05 +02:00

4 lines
33 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file with editors other than draw.io -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="682px" height="721px" viewBox="-0.5 -0.5 682 721" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2024-05-26T18:55:13.063Z&quot; agent=&quot;Mozilla/5.0 (X11; Linux x86_64; rv:126.0) Gecko/20100101 Firefox/126.0&quot; etag=&quot;CCtJgSg6BFkhytZ3gOLU&quot; version=&quot;24.4.8&quot; type=&quot;device&quot;&gt;&#xA; &lt;diagram name=&quot;Page-1&quot; id=&quot;1QHtqUjNJOinxrO5YjKP&quot;&gt;&#xA; &lt;mxGraphModel dx=&quot;1235&quot; dy=&quot;713&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;0&quot; tooltips=&quot;1&quot; connect=&quot;0&quot; arrows=&quot;0&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;827&quot; pageHeight=&quot;1169&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&#xA; &lt;root&gt;&#xA; &lt;mxCell id=&quot;0&quot; /&gt;&#xA; &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-36&quot; value=&quot;&quot; style=&quot;whiteSpace=wrap;html=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;glass=0;rounded=0;fillColor=default;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;80&quot; width=&quot;680&quot; height=&quot;720&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-2&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;Uq7C48yd8U4UPNIid9w1-1&quot; target=&quot;Uq7C48yd8U4UPNIid9w1-3&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;420&quot; y=&quot;390&quot; as=&quot;targetPoint&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-20&quot; value=&quot;CAN Signal: 1000 0000&quot; style=&quot;edgeLabel;align=center;verticalAlign=middle;resizable=0;points=[];rounded=1;&quot; vertex=&quot;1&quot; connectable=&quot;0&quot; parent=&quot;Uq7C48yd8U4UPNIid9w1-2&quot;&gt;&#xA; &lt;mxGeometry y=&quot;3&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;-63&quot; as=&quot;offset&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-13&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;Uq7C48yd8U4UPNIid9w1-1&quot; target=&quot;Uq7C48yd8U4UPNIid9w1-12&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;620&quot; y=&quot;70&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-22&quot; value=&quot;RELAY_BAT_SIDE &amp;gt; RELAY_ESC_SIDE&amp;#xa;for longer than 5 seconds&amp;#xa;&quot; style=&quot;edgeLabel;align=center;verticalAlign=middle;resizable=0;points=[];rounded=1;&quot; vertex=&quot;1&quot; connectable=&quot;0&quot; parent=&quot;Uq7C48yd8U4UPNIid9w1-13&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-0.513&quot; y=&quot;-2&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;-22&quot; y=&quot;-54&quot; as=&quot;offset&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-1&quot; value=&quot;INACTIVE&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;560&quot; y=&quot;160&quot; width=&quot;120&quot; height=&quot;60&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-4&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;Uq7C48yd8U4UPNIid9w1-3&quot; target=&quot;Uq7C48yd8U4UPNIid9w1-5&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;240&quot; y=&quot;350&quot; as=&quot;targetPoint&quot; /&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;430&quot; y=&quot;370&quot; /&gt;&#xA; &lt;mxPoint x=&quot;430&quot; y=&quot;370&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-35&quot; value=&quot;Allows quick shutdown. Could be done with ERROR&quot; style=&quot;edgeLabel;align=center;verticalAlign=middle;resizable=0;points=[];rounded=1;&quot; vertex=&quot;1&quot; connectable=&quot;0&quot; parent=&quot;Uq7C48yd8U4UPNIid9w1-4&quot;&gt;&#xA; &lt;mxGeometry x=&quot;0.0063&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;1&quot; y=&quot;10&quot; as=&quot;offset&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-7&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;Uq7C48yd8U4UPNIid9w1-3&quot; target=&quot;Uq7C48yd8U4UPNIid9w1-6&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;620&quot; y=&quot;490&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-26&quot; value=&quot;RELAY_BAT_SIDE = RELAY_ESC_SIDE&amp;#xa;if it is around 90% done&quot; style=&quot;edgeLabel;align=left;verticalAlign=middle;resizable=0;points=[];rounded=1;&quot; vertex=&quot;1&quot; connectable=&quot;0&quot; parent=&quot;Uq7C48yd8U4UPNIid9w1-7&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-0.128&quot; y=&quot;1&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;-131&quot; y=&quot;21&quot; as=&quot;offset&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-3&quot; value=&quot;PRECHARGE&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;560&quot; y=&quot;320&quot; width=&quot;120&quot; height=&quot;60&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-17&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;Uq7C48yd8U4UPNIid9w1-5&quot; target=&quot;Uq7C48yd8U4UPNIid9w1-3&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;420&quot; y=&quot;350&quot; /&gt;&#xA; &lt;mxPoint x=&quot;420&quot; y=&quot;350&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-34&quot; value=&quot;Allows quick reactivation instead of shutdown&quot; style=&quot;edgeLabel;align=center;verticalAlign=middle;resizable=0;points=[];rounded=1;&quot; vertex=&quot;1&quot; connectable=&quot;0&quot; parent=&quot;Uq7C48yd8U4UPNIid9w1-17&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-0.0651&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;9&quot; y=&quot;-10&quot; as=&quot;offset&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-31&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; target=&quot;Uq7C48yd8U4UPNIid9w1-1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;280&quot; y=&quot;330&quot; as=&quot;sourcePoint&quot; /&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;280&quot; y=&quot;330&quot; /&gt;&#xA; &lt;mxPoint x=&quot;420&quot; y=&quot;330&quot; /&gt;&#xA; &lt;mxPoint x=&quot;420&quot; y=&quot;190&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-32&quot; value=&quot;RELAY_ESC_SIDE == 0&amp;#xa;&quot; style=&quot;edgeLabel;align=center;verticalAlign=middle;resizable=0;points=[];rounded=1;&quot; vertex=&quot;1&quot; connectable=&quot;0&quot; parent=&quot;Uq7C48yd8U4UPNIid9w1-31&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-0.0317&quot; y=&quot;3&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;73&quot; y=&quot;-87&quot; as=&quot;offset&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-5&quot; value=&quot;DISCHARGE&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;160&quot; y=&quot;320&quot; width=&quot;120&quot; height=&quot;60&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-8&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;Uq7C48yd8U4UPNIid9w1-6&quot; target=&quot;Uq7C48yd8U4UPNIid9w1-5&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-10&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;Uq7C48yd8U4UPNIid9w1-6&quot; target=&quot;Uq7C48yd8U4UPNIid9w1-9&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;440&quot; y=&quot;570&quot; /&gt;&#xA; &lt;mxPoint x=&quot;440&quot; y=&quot;570&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-27&quot; value=&quot;CAN Signal = 1100 0000&quot; style=&quot;edgeLabel;align=center;verticalAlign=middle;resizable=0;points=[];rounded=1;&quot; vertex=&quot;1&quot; connectable=&quot;0&quot; parent=&quot;Uq7C48yd8U4UPNIid9w1-10&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-0.1&quot; y=&quot;1&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;69&quot; as=&quot;offset&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-6&quot; value=&quot;READY&quot; style=&quot;whiteSpace=wrap;html=1;rounded=1;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;360&quot; y=&quot;460&quot; width=&quot;120&quot; height=&quot;60&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-11&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;Uq7C48yd8U4UPNIid9w1-9&quot; target=&quot;Uq7C48yd8U4UPNIid9w1-5&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-28&quot; value=&quot;CAN Signal: 0000 0000 OR&amp;#xa;Battery out of charge&amp;#xa;&quot; style=&quot;edgeLabel;align=center;verticalAlign=middle;resizable=0;points=[];rounded=1;&quot; vertex=&quot;1&quot; connectable=&quot;0&quot; parent=&quot;Uq7C48yd8U4UPNIid9w1-11&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-0.6115&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint y=&quot;30&quot; as=&quot;offset&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-18&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;Uq7C48yd8U4UPNIid9w1-9&quot; target=&quot;Uq7C48yd8U4UPNIid9w1-6&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;Array as=&quot;points&quot;&gt;&#xA; &lt;mxPoint x=&quot;400&quot; y=&quot;570&quot; /&gt;&#xA; &lt;mxPoint x=&quot;400&quot; y=&quot;570&quot; /&gt;&#xA; &lt;/Array&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-19&quot; value=&quot;CAN_Signal: 1000 0000 &quot; style=&quot;edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];rounded=1;&quot; vertex=&quot;1&quot; connectable=&quot;0&quot; parent=&quot;Uq7C48yd8U4UPNIid9w1-18&quot;&gt;&#xA; &lt;mxGeometry x=&quot;0.075&quot; y=&quot;-3&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;-73&quot; as=&quot;offset&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-9&quot; value=&quot;ACTIVE&quot; style=&quot;whiteSpace=wrap;html=1;rounded=1;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;360&quot; y=&quot;600&quot; width=&quot;120&quot; height=&quot;60&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-15&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;Uq7C48yd8U4UPNIid9w1-12&quot; target=&quot;Uq7C48yd8U4UPNIid9w1-14&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-23&quot; value=&quot;PRECHARGE is done &amp;#xa;&quot; style=&quot;edgeLabel;align=center;verticalAlign=middle;resizable=0;points=[];rounded=1;&quot; vertex=&quot;1&quot; connectable=&quot;0&quot; parent=&quot;Uq7C48yd8U4UPNIid9w1-15&quot;&gt;&#xA; &lt;mxGeometry x=&quot;0.3217&quot; y=&quot;1&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;69&quot; y=&quot;-22&quot; as=&quot;offset&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-12&quot; value=&quot;&amp;lt;div&amp;gt;CHARGING&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;PRECHAGE&amp;lt;/div&amp;gt;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;360&quot; y=&quot;40&quot; width=&quot;120&quot; height=&quot;60&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-16&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;Uq7C48yd8U4UPNIid9w1-14&quot; target=&quot;Uq7C48yd8U4UPNIid9w1-5&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;40&quot; y=&quot;350&quot; as=&quot;targetPoint&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-24&quot; value=&quot;CHARGING is done&quot; style=&quot;edgeLabel;align=center;verticalAlign=middle;resizable=0;points=[];rounded=1;&quot; vertex=&quot;1&quot; connectable=&quot;0&quot; parent=&quot;Uq7C48yd8U4UPNIid9w1-16&quot;&gt;&#xA; &lt;mxGeometry x=&quot;-0.1&quot; y=&quot;1&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;59&quot; y=&quot;5&quot; as=&quot;offset&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-14&quot; value=&quot;CHARGING&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;160&quot; y=&quot;160&quot; width=&quot;120&quot; height=&quot;60&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;Uq7C48yd8U4UPNIid9w1-30&quot; value=&quot;CAN_Signal: 0000 0000 &quot; style=&quot;edgeLabel;align=center;verticalAlign=middle;resizable=0;points=[];rounded=1;&quot; vertex=&quot;1&quot; connectable=&quot;0&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;280&quot; y=&quot;490&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;12&quot; y=&quot;11&quot; as=&quot;offset&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;/root&gt;&#xA; &lt;/mxGraphModel&gt;&#xA; &lt;/diagram&gt;&#xA;&lt;/mxfile&gt;&#xA;"><defs/><g><g><rect x="0" y="0" width="680" height="720" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/></g><g><path d="M 540 220 L 540 313.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 540 318.88 L 536.5 311.88 L 540 313.63 L 543.5 311.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-anchor="middle" font-size="11px"><rect fill="rgb(255, 255, 255)" stroke="none" x="423" y="265" width="117" height="14" stroke-width="0"/><text x="480.09" y="275.18">CAN Signal: 1000 0000</text></g></g><g><path d="M 540.06 160 L 540.06 80.06 Q 540.06 70.06 530.06 70.06 L 406.37 70.06" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 401.12 70.06 L 408.12 66.56 L 406.37 70.06 L 408.12 73.56 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-anchor="middle" font-size="11px"><rect fill="rgb(255, 255, 255)" stroke="none" x="420" y="38" width="203" height="27" stroke-width="0"/><text x="520.15" y="41.12">RELAY_BAT_SIDE &gt; RELAY_ESC_SIDE</text><text x="520.15" y="54.12">for longer than 5 seconds</text></g></g><g><rect x="480" y="160" width="120" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 190px; margin-left: 481px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">INACTIVE</div></div></div></foreignObject><text x="540" y="194" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">INACTIVE</text></switch></g></g><g><path d="M 480 370.06 L 360.06 370.06 Q 350.06 370.06 340.06 370.06 L 206.37 370.06" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 201.12 370.06 L 208.12 366.56 L 206.37 370.06 L 208.12 373.56 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-anchor="middle" font-size="11px"><rect fill="rgb(255, 255, 255)" stroke="none" x="213" y="375" width="255" height="14" stroke-width="0"/><text x="339.91" y="384.65">Allows quick shutdown. Could be done with ERROR</text></g></g><g><path d="M 540.06 380 L 540.06 480.06 Q 540.06 490.06 530.06 490.06 L 406.37 490.06" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 401.12 490.06 L 408.12 486.56 L 406.37 490.06 L 408.12 493.56 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><g fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px"><rect fill="rgb(255, 255, 255)" stroke="none" x="412" y="498" width="203" height="27" stroke-width="0"/><text x="411.56" y="508.5">RELAY_BAT_SIDE = RELAY_ESC_SIDE</text><text x="411.56" y="521.5">if it is around 90% done</text></g></g><g><rect x="480" y="320" width="120" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 350px; margin-left: 481px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">PRECHARGE</div></div></div></foreignObject><text x="540" y="354" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">PRECHARGE</text></switch></g></g><g><path d="M 200 350.06 L 330.06 350.06 Q 340.06 350.06 350.06 350.06 L 473.63 350.06" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 478.88 350.06 L 471.88 353.56 L 473.63 350.06 L 471.88 346.56 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-anchor="middle" font-size="11px"><rect fill="rgb(255, 255, 255)" stroke="none" x="230" y="335" width="222" height="14" stroke-width="0"/><text x="339.68" y="344.65">Allows quick reactivation instead of shutdown</text></g></g><g><path d="M 200 330 L 330.06 330.05 Q 340.06 330.06 340.06 320.06 L 340.06 200.06 Q 340.06 190.06 350.06 190.05 L 473.63 190" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 478.88 190 L 471.88 193.5 L 473.63 190 L 471.88 186.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-anchor="middle" font-size="11px"><rect fill="rgb(255, 255, 255)" stroke="none" x="350" y="174" width="123" height="14" stroke-width="0"/><text x="410.15" y="177.68">RELAY_ESC_SIDE == 0</text></g></g><g><rect x="80" y="320" width="120" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 350px; margin-left: 81px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">DISCHARGE</div></div></div></foreignObject><text x="140" y="354" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">DISCHARGE</text></switch></g></g><g><path d="M 280 490.06 L 150.06 490.06 Q 140.06 490.06 140.05 480.06 L 140 386.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 140 381.12 L 143.5 388.12 L 140 386.37 L 136.5 388.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 360.06 520 L 360.06 560.06 Q 360.06 570.06 360.06 580.06 L 360.06 593.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 360.06 598.88 L 356.56 591.88 L 360.06 593.63 L 363.56 591.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-anchor="middle" font-size="11px"><rect fill="rgb(255, 255, 255)" stroke="none" x="370" y="551" width="123" height="14" stroke-width="0"/><text x="430.15" y="561.06">CAN Signal = 1100 0000</text></g></g><g><rect x="280" y="460" width="120" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 490px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">READY</div></div></div></foreignObject><text x="340" y="494" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">READY</text></switch></g></g><g><path d="M 280 630.06 L 70.06 630.06 Q 60.06 630.06 60.06 620.06 L 60.06 360.06 Q 60.06 350.06 66.85 350.04 L 73.63 350.02" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 78.88 350 L 71.89 353.52 L 73.63 350.02 L 71.87 346.52 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-anchor="middle" font-size="11px"><rect fill="rgb(255, 255, 255)" stroke="none" x="112" y="648" width="136" height="27" stroke-width="0"/><text x="178.91" y="651.65">CAN Signal: 0000 0000 OR</text><text x="178.91" y="664.65">Battery out of charge</text></g></g><g><path d="M 320.06 600 L 320.06 580.06 Q 320.06 570.06 320.06 560.06 L 320.06 526.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 320.06 521.12 L 323.56 528.12 L 320.06 526.37 L 316.56 528.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 557px; margin-left: 251px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">CAN_Signal: 1000 0000 </div></div></div></foreignObject><text x="251" y="560" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">CAN_Signal: 1000 0000 </text></switch></g></g><g><rect x="280" y="600" width="120" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 630px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">ACTIVE</div></div></div></foreignObject><text x="340" y="634" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">ACTIVE</text></switch></g></g><g><path d="M 280 70.06 L 150.06 70.06 Q 140.06 70.06 140.06 80.06 L 140.06 153.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 140.06 158.88 L 136.56 151.88 L 140.06 153.63 L 143.56 151.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-anchor="middle" font-size="11px"><rect fill="rgb(255, 255, 255)" stroke="none" x="156" y="54" width="110" height="14" stroke-width="0"/><text x="210.15" y="57.97">PRECHARGE is done </text></g></g><g><rect x="280" y="40" width="120" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 70px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>CHARGING</div><div>PRECHAGE</div></div></div></div></foreignObject><text x="340" y="74" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">CHARGING...</text></switch></g></g><g><path d="M 140 220 L 140 313.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 140 318.88 L 136.5 311.88 L 140 313.63 L 143.5 311.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-anchor="middle" font-size="11px"><rect fill="rgb(255, 255, 255)" stroke="none" x="151" y="264" width="100" height="14" stroke-width="0"/><text x="200.09" y="274.29">CHARGING is done</text></g></g><g><rect x="80" y="160" width="120" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 190px; margin-left: 81px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">CHARGING</div></div></div></foreignObject><text x="140" y="194" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">CHARGING</text></switch></g></g><g><g fill="rgb(0, 0, 0)" font-family="Helvetica" text-anchor="middle" font-size="11px"><rect fill="rgb(255, 255, 255)" stroke="none" x="153" y="496" width="120" height="14" stroke-width="0"/><text x="212.09" y="505.59">CAN_Signal: 0000 0000 </text></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>