Added PurgePLC() method to PLCObject, to be invoked when PLC Status is broken. It clears PLC shared object an extra files and force status to Empty. Added correponding Repair button to toolbar, visible only when PLC status is broken.
<?xml version="1.0"?>
<!-- generated by wxGlade 0.8.3 on Mon Aug 13 17:04:28 2018 -->
<application encoding="UTF-8" for_version="3.0" header_extension=".h" indent_amount="4" indent_symbol="space" is_template="0" language="python" option="0" overwrite="0" path="..py.py" source_extension=".cpp" top_window="wxglade_hmi" use_gettext="1" use_new_namespace="1">
<object class="Class_wxglade_hmi" name="wxglade_hmi" base="EditFrame">
<title>frame_1</title>
<style>wxDEFAULT_FRAME_STYLE|wxMAXIMIZE</style>
<object class="wxFlexGridSizer" name="grid_sizer_1" base="EditFlexGridSizer">
<rows>1</rows>
<cols>4</cols>
<vgap>0</vgap>
<hgap>0</hgap>
<growable_rows>0</growable_rows>
<growable_cols>0</growable_cols>
<object class="sizeritem">
<option>1</option>
<border>0</border>
<flag>wxALIGN_CENTER</flag>
<object class="ThreeDee" name="window_1" base="CustomWidget">
<size>400,400</size>
<arguments>
<argument>$parent</argument>
<argument>$id</argument>
</arguments>
</object>
</object>
<object class="sizeritem">
<option>1</option>
<border>0</border>
<flag>wxEXPAND</flag>
<object class="wxFlexGridSizer" name="sizer_1" base="EditFlexGridSizer">
<rows>2</rows>
<cols>1</cols>
<vgap>0</vgap>
<hgap>0</hgap>
<growable_rows>0</growable_rows>
<object class="sizeritem">
<option>1</option>
<border>0</border>
<flag>wxEXPAND</flag>
<object class="wxBoxSizer" name="sizer_2" base="EditBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
</object>
</object>
<object class="sizeritem">
<option>1</option>
<border>0</border>
<flag>wxEXPAND</flag>
<object class="wxGridSizer" name="sizer_3" base="EditGridSizer">
<rows>6</rows>
<cols>2</cols>
<vgap>0</vgap>
<hgap>0</hgap>
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
<object class="sizerslot" />
</object>
</object>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<border>0</border>
<object class="wxToggleButton" name="DrawTestBt" base="EditToggleButton">
<events>
<handler event="EVT_TOGGLEBUTTON">SetPLCTestBtnGlobalVar</handler>
</events>
<label>Please Draw!</label>
</object>
</object>
<object class="sizeritem">
<option>0</option>
<border>0</border>
<object class="wxToggleButton" name="DrawTestBt2" base="EditToggleButton">
<events>
<handler event="EVT_TOGGLEBUTTON">SetPLCTestBtn2GlobalVar</handler>
</events>
<label>Please Draw copy!</label>
</object>
</object>
</object>
</object>
</application>