public void Start()
 {
     try
     {
         ModbusSimulatorHandler.StartModbusSimulator();
         functionExecutor.StartExecutorThread();
         StartDataAcquisition();
         StartHosts();
     }
     catch (Exception e)
     {
         Logger.LogError("Exception in Start()", e);
         Console.WriteLine(e.Message);
     }
 }
        public void Dispose()
        {
            ModbusSimulatorHandler.StopModbusSimulaotrs();
            CloseHosts();

            if (acquisition != null)
            {
                acquisition.StopAcquisitionThread();
            }

            if (functionExecutor != null)
            {
                functionExecutor.StopExecutorThread();
            }

            GC.SuppressFinalize(this);
        }