@@ -91,6 +91,8 @@ class Gui(BoxLayout):
9191 data_model_input_registers = ObjectProperty ()
9292 data_model_holding_registers = ObjectProperty ()
9393
94+ reset_sim_btn = ObjectProperty ()
95+
9496 # Helpers
9597 # slaves = ["%s" %i for i in xrange(1, 248)]
9698 _data_map = {"tcp" : {}, "rtu" : {}}
@@ -492,7 +494,7 @@ def _update_data_models(self, active, tab, count, value):
492494 current_tab , k , v )
493495 else :
494496 msg = ("OutOfModbusBlockError: address %s"
495- " is out of btmuxlock size %s" % (len (item_strings ),
497+ " is out of block size %s" % (len (item_strings ),
496498 self .block_size ))
497499 self .show_error (msg )
498500 break
@@ -585,8 +587,10 @@ def change_datamodel_settings(self, key, value):
585587 def start_stop_simulation (self , btn ):
586588 if btn .state == "down" :
587589 self .simulating = True
590+ self .reset_sim_btn .disabled = True
588591 else :
589592 self .simulating = False
593+ self .reset_sim_btn .disabled = False
590594 if self .restart_simu :
591595 self .restart_simu = False
592596 self ._simulate ()
@@ -678,6 +682,13 @@ def load_conf(self):
678682 with open (SLAVES_FILE , 'r' ) as f :
679683 data = load (f )
680684
685+ if 'active_server' not in data or 'port' not in data \
686+ or 'slaves_list' not in data or 'slaves_memory' not in data or \
687+ 'save_state' not in data :
688+ self .show_error ("LoadError: Failed to Load Config Error "
689+ "\n Save Your Config File it will be overwritten" )
690+ return
691+
681692 if not data ['save_state' ]:
682693 return
683694
@@ -950,6 +961,8 @@ def on_pause(self):
950961 def on_stop (self ):
951962 # will write to the default App config file modbussimu.ini
952963 self .config .write ()
964+ if self .gui .server_running :
965+ self .gui ._stop_server ()
953966 self .gui .save_conf ()
954967 if self .gui .server_running :
955968 if self .gui .simulating :
0 commit comments