private void connectScaleReader(IUnitOfWork dp)
        {
            //try connect to serial port
            var scalePort           = dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.SCALE_COM_PORT, "");
            var stableWeightSeconds = int.Parse(dp.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.STABLE_WEIGHT_SECONDS, "5"));

            if (!string.IsNullOrEmpty(scalePort))
            {
                if (_scaleReader == null)
                {
                    _scaleReader = new ScalePortReader(scalePort);
                    _scaleReader.Start();
                    _scaleReader.SetStableWeightSeconds(stableWeightSeconds);
                }
                else if (!_scaleReader.IsOpen)
                {
                    _scaleReader.Start();
                }
            }

            if (_scaleReader != null && _scaleReader.IsOpen && _lastScaleMessage == null)
            {
                ScaleStatus = "CONNECTED";
            }
            else if (_scaleReader == null || !_scaleReader.IsOpen)
            {
                ScaleStatus = "DISCONNECTED";
            }
        }
        protected virtual void HandleSettingsSavedMessage(SettingsSavedMessage msg)
        {
            GinName = msg.GinName;
            if (_scaleReader != null)
            {
                _scaleReader.Stop();
                _scaleReader.Dispose();
                _scaleReader = null;
            }

            if (_barCodeReader != null)
            {
                _barCodeReader.Stop();
                _barCodeReader.Dispose();
                _barCodeReader = null;
            }
        }