<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="703px" preserveAspectRatio="none" style="width:1939px;height:703px;background:#F0F0F0;" version="1.1" viewBox="0 0 1939 703" width="1939px" zoomAndPan="magnify"><defs><filter height="300%" id="f2yk0xcx5csi4" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><ellipse cx="574" cy="18" fill="#000000" filter="url(#f2yk0xcx5csi4)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f2yk0xcx5csi4)" height="50" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="98" x="525" y="89"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="525" x2="623" y1="115.2969" y2="115.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="78" x="535" y="106.9951">InitialCheck</text><rect fill="#FEFECE" filter="url(#f2yk0xcx5csi4)" height="50" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="186" x="661" y="216"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="661" x2="847" y1="242.2969" y2="242.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="166" x="671" y="233.9951">LevelCriticalNotCharging</text><rect fill="#FEFECE" filter="url(#f2yk0xcx5csi4)" height="50" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="90" x="374" y="642"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="374" x2="464" y1="668.2969" y2="668.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="70" x="384" y="659.9951">Shutdown</text><rect fill="#FEFECE" filter="url(#f2yk0xcx5csi4)" height="50" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="162" x="599" y="358"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="599" x2="761" y1="384.2969" y2="384.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="142" x="609" y="375.9951">LevelCriticalCharging</text><rect fill="#FEFECE" filter="url(#f2yk0xcx5csi4)" height="50" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="103" x="1124.5" y="500"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1124.5" x2="1227.5" y1="526.2969" y2="526.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="83" x="1134.5" y="517.9951">LevelNormal</text><!--MD5=[d4999903ff2dd24919f2b1538b17fdaa]
link *start to InitialCheck--><path d="M574,28.01 C574,40.7 574,64.41 574,83.57 " fill="none" id="*start->InitialCheck" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="574,88.84,578,79.84,574,83.84,570,79.84,574,88.84" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[92dce6cefb7a02d934e3cfca3b958627]
link InitialCheck to LevelCriticalNotCharging--><path d="M608.71,139.1 C639.21,160.28 683.55,191.08 715.21,213.07 " fill="none" id="InitialCheck->LevelCriticalNotCharging" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="719.4,215.97,714.2695,207.563,715.2865,213.1277,709.7218,214.1446,719.4,215.97" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="360" x="675" y="182.0669">initialLevelCheck [isCriticalNotCharging && !isShutdown]</text><!--MD5=[48d29b19653630c4b14787fb9e51dcbb]
link InitialCheck to Shutdown--><path d="M524.59,115.41 C386.4,117.86 6,134.23 6,240 C6,240 6,240 6,526 C6,601.74 258.26,644.6 368.48,659.72 " fill="none" id="InitialCheck->Shutdown" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="373.62,660.42,365.2383,655.2482,368.6652,659.7489,364.1646,663.1758,373.62,660.42" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="355" x="7" y="387.5669">initialLevelCheck [isCriticalNotCharging && isShutdown]</text><!--MD5=[7cf26f7c5c06732917a715b46f14b13e]
link InitialCheck to LevelCriticalCharging--><path d="M524.83,130.94 C486.76,146.19 436.64,173.27 413,216 C402.24,235.45 406.72,244.68 413,266 C422.27,297.46 426.23,309.06 453,328 C493.92,356.95 548.31,370.53 593.59,376.83 " fill="none" id="InitialCheck->LevelCriticalCharging" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="598.79,377.53,590.4083,372.3582,593.8352,376.8589,589.3346,380.2858,598.79,377.53" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="229" x="414" y="245.5669">initialLevelCheck [isCriticalCharging]</text><!--MD5=[c538625450f55e3fab0d1c9574b1c463]
link InitialCheck to LevelNormal--><path d="M623.27,116.72 C831.9,125.13 1638.64,169.62 1785,358 C1798.63,375.55 1799.17,390.88 1785,408 C1715.05,492.53 1370.26,515.99 1232.76,522.04 " fill="none" id="InitialCheck->LevelNormal" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1227.56,522.27,1236.723,525.881,1232.5554,522.0559,1236.3805,517.8883,1227.56,522.27" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="1751" y="316.5669">initialLevelCheck [isNormal]</text><!--MD5=[29a0cbaa3e7031085e7c32fba5460bf1]
link LevelNormal to LevelCriticalNotCharging--><path d="M1227.57,508.95 C1305.4,483.56 1438.68,428.08 1388,358 C1326.5,272.96 1014.71,250.26 852.45,244.2 " fill="none" id="LevelNormal->LevelCriticalNotCharging" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="847.22,244.01,856.0649,248.3422,852.2165,244.1961,856.3627,240.3478,847.22,244.01" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="376" x="1400" y="380.0669">criticalLevelCheck [isCriticalNotCharging && !isShutdown] /</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="276" x="1452" y="395.1997">(setCriticalNotCharging, sendStateChange)</text><!--MD5=[f5c482fa1c56c0203ea304ee6ca6a7f3]
link LevelCriticalNotCharging to LevelNormal--><path d="M847.17,244.63 C944.66,249.21 1089.37,261.74 1132,296 C1173.44,329.3 1141.87,365.64 1174,408 C1187.65,425.99 1204.78,417.86 1215,438 C1224.57,456.87 1214.58,478.57 1202.32,495.45 " fill="none" id="LevelCriticalNotCharging->LevelNormal" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1199.16,499.64,1207.7791,494.8745,1202.176,495.652,1201.3984,490.0489,1199.16,499.64" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="192" x="1181" y="380.0669">criticalLevelCheck [isNormal] /</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="200" x="1179" y="395.1997">(setNormal, sendStateChange)</text><!--MD5=[f0fd995ca85f74627a924678c0d1d6ba]
link LevelNormal to Shutdown--><path d="M1124.27,535.57 C985.52,561.23 606.4,631.34 469.31,656.7 " fill="none" id="LevelNormal->Shutdown" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="464.14,657.65,473.7198,659.9363,469.0557,656.7355,472.2565,652.0713,464.14,657.65" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="371" x="866" y="593.0669">criticalLevelCheck [isCriticalNotCharging && isShutdown] /</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="216" x="945.5" y="608.1997">(setShutdown, sendStateChange)</text><!--MD5=[5660824d2304c2c05fa5f23238c324d7]
link LevelNormal to LevelCriticalCharging--><path d="M1124.34,514.57 C1067.91,503.74 981.6,485.47 952,470 C933.03,460.08 935.03,447.81 916,438 C869.5,414.04 812.43,400.61 766.06,393.14 " fill="none" id="LevelNormal->LevelCriticalCharging" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="761.03,392.35,769.3055,397.69,765.9702,393.121,770.5392,389.7857,761.03,392.35" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="245" x="959" y="451.0669">criticalLevelCheck [isCriticalCharging] /</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="253" x="957" y="466.1997">(setCriticalCharging, sendStateChange)</text><!--MD5=[38f0fa53fd35c1a33d34344416b0d935]
link LevelCriticalCharging to LevelNormal--><path d="M679.14,408.32 C679.87,428.07 684.39,455.02 702,470 C758.76,518.29 962.1,490.36 1036,500 C1063.51,503.59 1093.88,508.66 1119.28,513.21 " fill="none" id="LevelCriticalCharging->LevelNormal" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1124.29,514.12,1116.1422,508.5871,1119.3693,513.2331,1114.7232,516.4602,1124.29,514.12" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="192" x="709" y="451.0669">criticalLevelCheck [isNormal] /</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="200" x="707" y="466.1997">(setNormal, sendStateChange)</text><!--MD5=[bb16dae49642355397c65a9ba7bb3e8f]
link LevelCriticalNotCharging to LevelCriticalCharging--><path d="M660.78,258.35 C579.52,272.83 474.12,292.22 471,296 C431.62,343.61 519.76,365.19 593.45,374.74 " fill="none" id="LevelCriticalNotCharging->LevelCriticalCharging" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="598.73,375.41,590.3047,370.3096,593.7697,374.781,589.2983,378.2461,598.73,375.41" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="245" x="478" y="309.0669">criticalLevelCheck [isCriticalCharging] /</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="253" x="476" y="324.1997">(setCriticalCharging, sendStateChange)</text><!--MD5=[b4c2a83ad0cf32e6fb8562f37b395c46]
link LevelCriticalCharging to LevelCriticalNotCharging--><path d="M709.95,357.86 C718.87,349.29 727.88,339.01 734,328 C743.64,310.63 748.65,288.81 751.24,271.49 " fill="none" id="LevelCriticalCharging->LevelCriticalNotCharging" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="751.97,266.27,746.7475,274.6202,751.2689,271.2206,754.6685,275.742,751.97,266.27" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="376" x="747" y="309.0669">criticalLevelCheck [isCriticalNotCharging && !isShutdown] /</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="276" x="799" y="324.1997">(setCriticalNotCharging, sendStateChange)</text><!--MD5=[743e923f215b3613f3f57ec27ffb5d84]
link LevelCriticalNotCharging to Shutdown--><path d="M660.96,264.22 C657.94,264.84 654.95,265.43 652,266 C564.17,282.92 529.52,249.69 453,296 C400.22,327.94 423.68,375.9 371,408 C297.62,452.72 235.85,372.69 180,438 C108.23,521.92 279.64,608.59 369.01,646.39 " fill="none" id="LevelCriticalNotCharging->Shutdown" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="373.73,648.37,366.9875,641.1909,369.1218,646.4297,363.8831,648.564,373.73,648.37" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="439" x="181" y="458.5669">criticalLevelCheck [isShutdown] / (sendShutdown, sendStateChange)</text><!--MD5=[1f88bde0fbb3174b34231d4b5c203335]
link LevelCriticalCharging to Shutdown--><path d="M668.06,408.17 C658.65,426.09 644.56,450.66 629,470 C574.98,537.13 498.22,602.93 454.02,638.61 " fill="none" id="LevelCriticalCharging->Shutdown" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="450.11,641.76,459.6332,639.2485,454.0102,638.6313,454.6273,633.0082,450.11,641.76" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="371" x="601" y="522.0669">criticalLevelCheck [isCriticalNotCharging && isShutdown] /</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="216" x="680.5" y="537.1997">(setShutdown, sendStateChange)</text><!--MD5=[44b6d4465e454c30f94266c88164c86a]
@startuml
skinparam BackgroundColor F0F0F0
[*] - -> InitialCheck
InitialCheck - -> LevelCriticalNotCharging : initialLevelCheck [isCriticalNotCharging && !isShutdown]
InitialCheck - -> Shutdown : initialLevelCheck [isCriticalNotCharging && isShutdown]
InitialCheck - -> LevelCriticalCharging : initialLevelCheck [isCriticalCharging]
InitialCheck - -> LevelNormal : initialLevelCheck [isNormal]
LevelNormal - -> LevelCriticalNotCharging : criticalLevelCheck [isCriticalNotCharging && !isShutdown] /\n (setCriticalNotCharging, sendStateChange)
LevelNormal - -> Shutdown : criticalLevelCheck [isCriticalNotCharging && isShutdown] /\n (setShutdown, sendStateChange)
LevelNormal - -> LevelCriticalCharging : criticalLevelCheck [isCriticalCharging] /\n (setCriticalCharging, sendStateChange)
LevelCriticalNotCharging - -> LevelNormal : criticalLevelCheck [isNormal] /\n (setNormal, sendStateChange)
LevelCriticalNotCharging - -> LevelCriticalCharging : criticalLevelCheck [isCriticalCharging] /\n (setCriticalCharging, sendStateChange)
LevelCriticalNotCharging - -> Shutdown : criticalLevelCheck [isShutdown] / (sendShutdown, sendStateChange)
LevelCriticalCharging - -> LevelCriticalNotCharging : criticalLevelCheck [isCriticalNotCharging && !isShutdown] /\n (setCriticalNotCharging, sendStateChange)
LevelCriticalCharging - -> LevelNormal : criticalLevelCheck [isNormal] /\n (setNormal, sendStateChange)
LevelCriticalCharging - -> Shutdown : criticalLevelCheck [isCriticalNotCharging && isShutdown] / \n(setShutdown, sendStateChange)
@enduml
PlantUML version 1.2020.02(Sun Mar 01 05:22:07 EST 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.12+7-post-Debian-2
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>