public void TestRepMgr() { testName = "TestRepMgr"; SetUpTest(true); // Initialize ports for master and client. ports.Clear(); AvailablePorts portGen = new AvailablePorts(); ports.Insert(0, portGen.Current); portGen.MoveNext(); ports.Insert(1, portGen.Current); clientStartSignal = new AutoResetEvent(false); masterCloseSignal = new AutoResetEvent(false); Thread thread1 = new Thread(new ThreadStart(Master)); Thread thread2 = new Thread(new ThreadStart(Client)); // Start master thread before client thread. thread1.Start(); Thread.Sleep(1000); thread2.Start(); thread2.Join(); thread1.Join(); clientStartSignal.Close(); masterCloseSignal.Close(); }
public virtual bool Create(int portNumber, int baudRate = 19200, int dataBits = 8, Parity parity = Parity.None, StopBits stopBits = StopBits.One) { string portName = "COM" + portNumber; if (!AvailablePorts.Contains(portName)) { return(false); } _port = new SerialPort { PortName = portName, BaudRate = baudRate, DataBits = dataBits, Parity = parity, StopBits = stopBits, ReadTimeout = 1000, WriteTimeout = 1000, Encoding = Encoding.ASCII }; return(true); }
public ComPortParams() { PortId = AvailablePorts.FirstOrDefault(); BaudRate = 57600; DataBits = 8; Parity = AvailableParity.FirstOrDefault(); StopBits = "One"; }
private void OnRefreshingAvailablePorts() { string selectedPort = SelectedPort; AvailablePorts.Clear(); AvailablePorts.AddCollection(_connectionManager.GetSerialPortNames()); SelectedPort = !AvailablePorts.Contains(selectedPort) ? null : selectedPort; }
private void RefreshPorts() { AvailablePorts.Clear(); foreach (var c in _comms.ListCommPorts()) { AvailablePorts.Add(c); } }
private void UpdatePorts() { AvailablePorts.Clear(); foreach (var port in SerialPort.GetPortNames()) { AvailablePorts.Add(port); } }
public MainVm(IComms session) { _comms = session; _comms.LineOfDataReceived += _session_LineOfDataReceived; MonitorVms = new BindingList <IPresentationModel> { new SensorsVm(), new TransmitterChannelsVm(), new FlightControlPidsVm(), new PositionAltitudePidsVm(), new GpsStatusVm(), //new MotorCommandsVm(session), new SerialMonitorVm(), }; foreach (var vm in MonitorVms) { if (vm is ItalksToApm) { vm.sendTextToApm += MainVm_sendTextToApm; } } ConnectCommand = new DelegateCommand( _ => Connect(), _ => _connectionState == SessionStates.Disconnected && AvailablePorts.Contains(SelectedPort)); DisconnectCommand = new DelegateCommand(_ => Disconnect(), _ => IsConnected); RefreshPortListCommand = new DelegateCommand(_ => RefreshPorts()); RestoreDefaultsCommand = new DelegateCommand(_ => RestoreDefaults(), _ => IsConnected); WriteToEepromCommand = new DelegateCommand(_ => WriteToEeprom(), _ => IsConnected); ConnectionState = SessionStates.Disconnected; AvailablePorts = new BindingList <string>(); AvailableBaudRates = new BindingList <int>() { 115200, 57600, 38400, 9600 }; SelectedBaudRate = 115200; RefreshPorts(); // Initially have selected the last discovered com port. // I think this is more likely to be the correct one, as // the built in comports come first, then the usb/serial // converter ports if (AvailablePorts.Count > 0) { SelectedPort = AvailablePorts[AvailablePorts.Count - 1]; } }
protected async Task ReleasePort(int port) { if (Sockets.TryGetValue(port, out ProxySocket socket)) { await Task.Run(socket.Dispose); AvailablePorts.Enqueue(port); } }
public MainViewModel() { AvailablePorts = SerialPort.GetPortNames().OrderBy(x => x).ToList(); SelectedComsPort = AvailablePorts.Last(); BaudRate = "19200"; AvailableDevices = new List <GSIOCDeviceInfo>(); }
public void TestElection() { testName = "TestElection"; SetUpTest(true); // Initialize ports for one master, and three clients. ports.Clear(); AvailablePorts portGen = new AvailablePorts(); ports.Insert(0, portGen.Current); portGen.MoveNext(); ports.Insert(1, portGen.Current); portGen.MoveNext(); ports.Insert(2, portGen.Current); portGen.MoveNext(); ports.Insert(3, portGen.Current); client1StartSignal = new AutoResetEvent(false); client2StartSignal = new AutoResetEvent(false); client1ReadySignal = new AutoResetEvent(false); client2ReadySignal = new AutoResetEvent(false); client3StartSignal = new AutoResetEvent(false); client3ReadySignal = new AutoResetEvent(false); masterLeaveSignal = new AutoResetEvent(false); Thread thread1 = new Thread( new ThreadStart(UnstableMaster)); Thread thread2 = new Thread( new ThreadStart(StableClient1)); Thread thread3 = new Thread( new ThreadStart(StableClient2)); Thread thread4 = new Thread( new ThreadStart(StableClient3)); thread1.Start(); Thread.Sleep(1000); thread2.Start(); thread3.Start(); thread4.Start(); thread4.Join(); thread3.Join(); thread2.Join(); thread1.Join(); client1StartSignal.Close(); client2StartSignal.Close(); client1ReadySignal.Close(); client2ReadySignal.Close(); client3ReadySignal.Close(); client3StartSignal.Close(); masterLeaveSignal.Close(); }
//private WUData _LastReadWUData; //public WUData LastReadWattData //{ // get { return _LastReadWUData; } // set { _LastReadWUData = value; } //} #endregion #region Public Methods /// <summary> Connect to the WattsUp and start recording. Returns true on success, else false </summary> public bool Start(out string err) { err = string.Empty; // LastReadWattData = new WUData(); if (AvailablePorts.Count() > 0) { //Set the default port to the first available open port in the computer if (string.IsNullOrEmpty(this.Port)) { this.Port = AvailablePorts.FirstOrDefault(); } try { //Initialize the serial port this.sp = new SerialPort(this.Port, this.BAUD, System.IO.Ports.Parity.None, this.DATABITS); this.sp.DataReceived += new SerialDataReceivedEventHandler(this.sp_DataReceived); //Open the serial port, set a read timeout on the serial port, //ans then command the WattsUp to return data for the specified internal sampling rate. this.sp.Open(); if (this.sp.IsOpen) { this.sp.ReadTimeout = this.READTIMEOUT; if (this.Write(WUCommands.ExternalModeStartString + this.InternalSamplingRate.ToString() + WUCommands.ExternalModeEndString) == "") { return(false); } return(true); } return(false); } catch (Exception ex) { err = ex.Message; return(false); } } else { err = "No open serial port found!!!"; return(false); } }
/// <summary> Default constructor. </summary> public ELLDevicesViewModel() { MaxSearchLimit = 'F'; MinSearchLimit = '0'; SelectedPort = CommonUserSettings.ReadUserSetting("DevicePort", "Com1"); ShowTxLoggedCmds = CommonUserSettings.ReadUserSetting("ShowTxOutput", true); ShowRxLoggedCmds = CommonUserSettings.ReadUserSetting("ShowRxOutput", true); ValidAddress = _ellDevice.ValidAddress; AvailablePorts = SerialPort.GetPortNames().ToList(); if (!AvailablePorts.Contains(SelectedPort)) { SelectedPort = AvailablePorts.Count > 0 ? AvailablePorts[0] : ""; } IsConnected = false; _commsLogStore = new List <OutputItem>(); CommsLog = new ObservableCollection <OutputItem>(_commsLogStore); BackgroundThreadManager = new BackgroundThreadManager(); _ellDevice.MessageUpdates.OutputUpdate += OutputUpdate; _ellDevice.MessageUpdates.ParameterUpdate += ParameterUpdate; _sequenceViewModel = new ELLSequenceViewModel(this, _ellDevice); UpdateUI(); }
public void TestElection() { testName = "TestElection"; SetUpTest(true); // Initialize ports for one master, and three clients. ports.Clear(); AvailablePorts portGen = new AvailablePorts(); ports.Insert(0, portGen.Current); portGen.MoveNext(); ports.Insert(1, portGen.Current); portGen.MoveNext(); ports.Insert(2, portGen.Current); portGen.MoveNext(); ports.Insert(3, portGen.Current); /* * The *Signals are used as triggers to control the test * work flow. The client1StartSignal would be set once * the master is ready and notify the client1 to start. * The client2StartSignal would be set once the client1 * is ready and notify the client2 to start. The * client3StartSignal is similar. The masterLeaveSignal * would be set once the last client client3 is ready * and notify the master to leave. The * clientsElectionSignal would be set when the master * has already left and new master would be elected. */ client1StartSignal = new AutoResetEvent(false); client2StartSignal = new AutoResetEvent(false); client3StartSignal = new AutoResetEvent(false); clientsElectionSignal = new AutoResetEvent(false); masterLeaveSignal = new AutoResetEvent(false); // Count startup done event. startUpDone = 0; // Whether finish election. electionDone = false; Thread thread1 = new Thread( new ThreadStart(UnstableMaster)); Thread thread2 = new Thread( new ThreadStart(StableClient1)); Thread thread3 = new Thread( new ThreadStart(StableClient2)); Thread thread4 = new Thread( new ThreadStart(StableClient3)); try { thread1.Start(); /* * After start up is done at master, start * client1. Wait for the signal for 50000 ms. */ if (!client1StartSignal.WaitOne(50000)) { throw new TestException(); } thread2.Start(); // Ready to start client2. if (!client2StartSignal.WaitOne(50000)) { throw new TestException(); } thread3.Start(); // Ready to start client3. if (!client3StartSignal.WaitOne(50000)) { throw new TestException(); } thread4.Start(); thread4.Join(); thread3.Join(); thread2.Join(); thread1.Join(); Assert.IsTrue(electionDone); } catch (TestException e) { if (thread1.IsAlive) { thread1.Abort(); } if (thread2.IsAlive) { thread2.Abort(); } if (thread3.IsAlive) { thread3.Abort(); } if (thread4.IsAlive) { thread4.Abort(); } throw e; } finally { client1StartSignal.Close(); client2StartSignal.Close(); client3StartSignal.Close(); clientsElectionSignal.Close(); masterLeaveSignal.Close(); } }
public void TestReplicationView() { testName = "TestReplicationView"; SetUpTest(true); string masterHome = testHome + "\\Master"; Configuration.ClearDir(masterHome); string clientHome1 = testHome + "\\Client1"; Configuration.ClearDir(clientHome1); string clientHome2 = testHome + "\\Client2"; Configuration.ClearDir(clientHome2); ports.Clear(); AvailablePorts portGen = new AvailablePorts(); uint mPort = portGen.Current; portGen.MoveNext(); uint cPort1 = portGen.Current; portGen.MoveNext(); uint cPort2 = portGen.Current; /* Open environment with replication configuration. */ DatabaseEnvironmentConfig cfg = new DatabaseEnvironmentConfig(); cfg.Create = true; cfg.RunRecovery = true; cfg.UseLocking = true; cfg.UseLogging = true; cfg.UseMPool = true; cfg.UseReplication = true; cfg.FreeThreaded = true; cfg.UseTxns = true; cfg.EventNotify = new EventNotifyDelegate(stuffHappened); cfg.RepSystemCfg = new ReplicationConfig(); cfg.RepSystemCfg.RepmgrSitesConfig.Add(new DbSiteConfig()); cfg.RepSystemCfg.RepmgrSitesConfig[0].Host = "127.0.0.1"; cfg.RepSystemCfg.RepmgrSitesConfig[0].Port = mPort; cfg.RepSystemCfg.RepmgrSitesConfig[0].LocalSite = true; cfg.RepSystemCfg.RepmgrSitesConfig[0].GroupCreator = true; cfg.RepSystemCfg.Priority = 100; /* Start up the master site. */ DatabaseEnvironment mEnv = DatabaseEnvironment.Open( masterHome, cfg); mEnv.DeadlockResolution = DeadlockPolicy.DEFAULT; mEnv.RepMgrStartMaster(2); /* Open the environment of the client 1 site. */ cfg.RepSystemCfg.RepmgrSitesConfig[0].Port = cPort1; cfg.RepSystemCfg.RepmgrSitesConfig[0].GroupCreator = false; cfg.RepSystemCfg.Priority = 10; cfg.RepSystemCfg.RepmgrSitesConfig.Add(new DbSiteConfig()); cfg.RepSystemCfg.RepmgrSitesConfig[1].Host = "127.0.0.1"; cfg.RepSystemCfg.RepmgrSitesConfig[1].Port = mPort; cfg.RepSystemCfg.RepmgrSitesConfig[1].Helper = true; /* Set the site as a partial view. */ cfg.RepSystemCfg.ReplicationView = repView; DatabaseEnvironment cEnv1 = DatabaseEnvironment.Open( clientHome1, cfg); /* Open the environment of the client 2 site. */ cfg.RepSystemCfg.RepmgrSitesConfig[0].Port = cPort2; cfg.RepSystemCfg.RepmgrSitesConfig[0].GroupCreator = false; cfg.RepSystemCfg.Priority = 10; /* Set the site as a full view. */ cfg.RepSystemCfg.ReplicationView = null; DatabaseEnvironment cEnv2 = DatabaseEnvironment.Open( clientHome2, cfg); /* * Create two database files db1.db and db2.db * on the master. */ BTreeDatabaseConfig btreeDBConfig = new BTreeDatabaseConfig(); btreeDBConfig.Env = mEnv; btreeDBConfig.Creation = CreatePolicy.ALWAYS; btreeDBConfig.AutoCommit = true; BTreeDatabase db1 = BTreeDatabase.Open("db1.db", btreeDBConfig); BTreeDatabase db2 = BTreeDatabase.Open("db2.db", btreeDBConfig); db1.Close(); db2.Close(); /* Start up the client sites. */ cEnv1.RepMgrStartClient(2, false); cEnv2.RepMgrStartClient(2, false); /* Wait for clients to start up */ int i = 0; while (!cEnv1.ReplicationSystemStats().ClientStartupComplete) { if (i < 20) { Thread.Sleep(1000); i++; } else { throw new TestException(); } } i = 0; while (!cEnv2.ReplicationSystemStats().ClientStartupComplete) { if (i < 20) { Thread.Sleep(1000); i++; } else { throw new TestException(); } } /* * Verify that the file db2.db is replicated to the * client 2 (full view), but not to the client 1 * (partial view), and the file db1.db is * replicated to both sites. */ btreeDBConfig.Env = cEnv1; btreeDBConfig.Creation = CreatePolicy.NEVER; db1 = BTreeDatabase.Open("db1.db", btreeDBConfig); try { db2 = BTreeDatabase.Open("db2.db", btreeDBConfig); throw new TestException(); } catch (DatabaseException e) { Assert.AreEqual(0, String.Compare( "No such file or directory", e.Message)); } db1.Close(); btreeDBConfig.Env = cEnv2; db1 = BTreeDatabase.Open("db1.db", btreeDBConfig); db2 = BTreeDatabase.Open("db2.db", btreeDBConfig); db1.Close(); db2.Close(); /* Get the replication manager statistic. */ RepMgrStats repMgrStats = mEnv.RepMgrSystemStats(); Assert.AreEqual(1, repMgrStats.ParticipantSites); Assert.AreEqual(3, repMgrStats.TotalSites); Assert.AreEqual(2, repMgrStats.ViewSites); /* * Verify the master is not a view locally * or from remote site. */ ReplicationStats repstats = mEnv.ReplicationSystemStats(); Assert.AreEqual(false, repstats.View); RepMgrSite[] rsite = cEnv1.RepMgrRemoteSites; Assert.AreEqual(2, rsite.Length); for (i = 0; i < rsite.Length; i++) { if (rsite[i].Address.Port == mPort) { break; } } Assert.Greater(rsite.Length, i); Assert.AreEqual(false, rsite[i].isView); /* * Verify the clients are views locally * and from remote site. */ rsite = mEnv.RepMgrRemoteSites; Assert.AreEqual(2, rsite.Length); Assert.AreEqual(true, rsite[0].isView); Assert.AreEqual(true, rsite[1].isView); repstats = cEnv1.ReplicationSystemStats(); Assert.AreEqual(true, repstats.View); repstats = cEnv2.ReplicationSystemStats(); Assert.AreEqual(true, repstats.View); cEnv2.Close(); cEnv1.Close(); mEnv.Close(); }
private void loadForm() { clearErrors(); AvailablePorts.Clear(); AvailableStatuses.Clear(); AvailableStatuses.Add("AT GIN"); AvailableStatuses.Add("GINNED"); this.TargetStatus = "AT GIN"; AvailablePorts.Add("NONE"); foreach (var p in System.IO.Ports.SerialPort.GetPortNames().OrderBy(s => s)) { AvailablePorts.Add(p); } using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { var repo = dp.SettingsRepository; var portSetting = repo.FindSingle(x => x.Key == BridgeSettingKeys.SCALE_COM_PORT); if (portSetting != null && !string.IsNullOrWhiteSpace(portSetting.Value)) { PortName = portSetting.Value; } else { if (AvailablePorts.Count > 0) { PortName = AvailablePorts.First(); } else { PortName = ""; } } portSetting = repo.FindSingle(x => x.Key == BridgeSettingKeys.BARCODE_COM_PORT); if (portSetting != null && !string.IsNullOrWhiteSpace(portSetting.Value)) { BarcodePortName = portSetting.Value; } else { if (AvailablePorts.Count > 0) { BarcodePortName = AvailablePorts.First(); } else { BarcodePortName = ""; } } ScreenTitle = repo.GetSettingWithDefault(BridgeSettingKeys.GIN_NAME, ""); BridgeID = repo.GetSettingWithDefault(BridgeSettingKeys.BRIDGE_ID, ""); Latitude = repo.GetSettingWithDefault(BridgeSettingKeys.LATITUDE, ""); Longitude = repo.GetSettingWithDefault(BridgeSettingKeys.LONGITUDE, ""); TargetStatus = repo.GetSettingWithDefault(BridgeSettingKeys.TARGET_STATUS, "AT GIN"); DocumentDbConnection = repo.GetSettingWithDefault(BridgeSettingKeys.DOCUMENT_DB_KEY, ""); DocumentDbEndpoint = repo.GetSettingWithDefault(BridgeSettingKeys.DOCUMENTDB_ENDPOINT, ""); DataSyncInterval = int.Parse(repo.GetSettingWithDefault(BridgeSettingKeys.DATA_SYNC_INTERVAL, "1")); } }
public void TestRepMgrSite() { testName = "TestRepMgrSite"; SetUpTest(true); string masterHome = testHome + "\\Master"; Configuration.ClearDir(masterHome); string clientHome = testHome + "\\Client"; Configuration.ClearDir(clientHome); ports.Clear(); AvailablePorts portGen = new AvailablePorts(); uint mPort = portGen.Current; portGen.MoveNext(); uint cPort = portGen.Current; // Open environment with replication configuration. DatabaseEnvironmentConfig cfg = new DatabaseEnvironmentConfig(); cfg.Create = true; cfg.RunRecovery = true; cfg.UseLocking = true; cfg.UseLogging = true; cfg.UseMPool = true; cfg.UseReplication = true; cfg.FreeThreaded = true; cfg.UseTxns = true; cfg.EventNotify = new EventNotifyDelegate(stuffHappened); cfg.RepSystemCfg = new ReplicationConfig(); cfg.RepSystemCfg.RepmgrSitesConfig.Add(new DbSiteConfig()); cfg.RepSystemCfg.RepmgrSitesConfig[0].Host = "127.0.0.1"; cfg.RepSystemCfg.RepmgrSitesConfig[0].Port = mPort; cfg.RepSystemCfg.RepmgrSitesConfig[0].LocalSite = true; cfg.RepSystemCfg.RepmgrSitesConfig[0].GroupCreator = true; cfg.RepSystemCfg.Priority = 100; DatabaseEnvironment mEnv = DatabaseEnvironment.Open( masterHome, cfg); mEnv.DeadlockResolution = DeadlockPolicy.DEFAULT; mEnv.RepMgrStartMaster(2); cfg.RepSystemCfg.RepmgrSitesConfig[0].Port = cPort; cfg.RepSystemCfg.RepmgrSitesConfig[0].GroupCreator = false; cfg.RepSystemCfg.Priority = 10; cfg.RepSystemCfg.RepmgrSitesConfig.Add(new DbSiteConfig()); cfg.RepSystemCfg.RepmgrSitesConfig[1].Host = "127.0.0.1"; cfg.RepSystemCfg.RepmgrSitesConfig[1].Port = mPort; cfg.RepSystemCfg.RepmgrSitesConfig[1].Helper = true; DatabaseEnvironment cEnv = DatabaseEnvironment.Open( clientHome, cfg); cEnv.RepMgrStartClient(2, false); /* Wait for client to start up */ int i = 0; while (!cEnv.ReplicationSystemStats().ClientStartupComplete) { if (i < 20) { Thread.Sleep(1000); i++; } else { throw new TestException(); } } /* * Verify the client info could be observed by master's * remote site. */ Assert.AreEqual(1, mEnv.RepMgrRemoteSites.Length); RepMgrSite rsite = mEnv.RepMgrRemoteSites[0]; Assert.AreEqual("127.0.0.1", rsite.Address.Host); Assert.AreEqual(cPort, rsite.Address.Port); Assert.AreEqual(true, rsite.isConnected); Assert.AreEqual(false, rsite.isPeer); DbSite site = mEnv.RepMgrSite("127.0.0.1", mPort); Assert.AreEqual("127.0.0.1", site.Address.Host); Assert.AreEqual(mPort, site.Address.Port); Assert.LessOrEqual(0, site.EId); Assert.AreEqual(true, site.GroupCreator); Assert.AreEqual(true, site.LocalSite); Assert.AreEqual(false, site.Helper); Assert.AreEqual(false, site.Legacy); Assert.AreEqual(false, site.Peer); site.Close(); site = mEnv.RepMgrSite("127.0.0.1", cPort); Assert.AreEqual("127.0.0.1", site.Address.Host); Assert.AreEqual(cPort, site.Address.Port); Assert.AreEqual(rsite.EId, site.EId); Assert.AreEqual(false, site.GroupCreator); Assert.AreEqual(false, site.LocalSite); Assert.AreEqual(false, site.Helper); Assert.AreEqual(false, site.Legacy); Assert.AreEqual(false, site.Peer); site.Remove(); cEnv.Close(); mEnv.Close(); /* * Update the repmgr site, and verify it is updated in * unmanaged memory. */ rsite.Address = new ReplicationHostAddress( "192.168.1.1", 1000); rsite.EId = 1024; rsite.isConnected = false; rsite.isPeer = true; Assert.AreEqual("192.168.1.1", rsite.Address.Host); Assert.AreEqual(1000, rsite.Address.Port); Assert.AreEqual(1024, rsite.EId); Assert.AreEqual(false, rsite.isConnected); Assert.AreEqual(true, rsite.isPeer); }
public void Initialize() { Settings settings = TagDataProvider.GetSettings(); if (settings != null) { Antenna1ReceivePower = Convert.ToInt32(settings.Antennas.GetAntenna(1).RxSensitivityInDbm); Antenna1TransmitPower = Convert.ToInt32(settings.Antennas.GetAntenna(1).TxPowerInDbm); Antenna2ReceivePower = Convert.ToInt32(settings.Antennas.GetAntenna(2).RxSensitivityInDbm); Antenna2TransmitPower = Convert.ToInt32(settings.Antennas.GetAntenna(2).TxPowerInDbm); Antenna3ReceivePower = Convert.ToInt32(settings.Antennas.GetAntenna(3).RxSensitivityInDbm); Antenna3TransmitPower = Convert.ToInt32(settings.Antennas.GetAntenna(3).TxPowerInDbm); Antenna4ReceivePower = Convert.ToInt32(settings.Antennas.GetAntenna(4).RxSensitivityInDbm); Antenna4TransmitPower = Convert.ToInt32(settings.Antennas.GetAntenna(4).TxPowerInDbm); } if (Antenna1ReceivePower == 0) { Antenna1ReceivePower = -80; } if (Antenna2ReceivePower == 0) { Antenna2ReceivePower = -80; } if (Antenna3ReceivePower == 0) { Antenna3ReceivePower = -80; } if (Antenna4ReceivePower == 0) { Antenna4ReceivePower = -80; } if (Antenna1TransmitPower == 0) { Antenna1TransmitPower = 30; } if (Antenna2TransmitPower == 0) { Antenna2TransmitPower = 30; } if (Antenna3TransmitPower == 0) { Antenna3TransmitPower = 30; } if (Antenna4TransmitPower == 0) { Antenna4TransmitPower = 30; } foreach (var p in System.IO.Ports.SerialPort.GetPortNames().OrderBy(s => s)) { AvailablePorts.Add(p); } using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { var repo = dp.SettingsRepository; var setting = repo.FindSingle(x => x.Key == TruckClientSettingKeys.RFID_READ_DELAY); if (setting != null && !string.IsNullOrWhiteSpace(setting.Value)) { RFIDReadDelay = int.Parse(setting.Value); } var portSetting = repo.FindSingle(x => x.Key == TruckClientSettingKeys.GPS_COM_PORT); if (portSetting != null && !string.IsNullOrWhiteSpace(portSetting.Value)) { PortName = portSetting.Value; } else { if (AvailablePorts.Count > 0) { PortName = AvailablePorts.First(); } else { PortName = ""; } } } }
public SerialConnection() { Portname = AvailablePorts.FirstOrDefault(); Baudrate = 115200; }
public void TestRepMgrSite() { testName = "TestRepMgrSite"; SetUpTest(true); string masterHome = testHome + "\\Master"; Configuration.ClearDir(masterHome); string clientHome = testHome + "\\Client"; Configuration.ClearDir(clientHome); ports.Clear(); AvailablePorts portGen = new AvailablePorts(); uint mPort = portGen.Current; portGen.MoveNext(); uint cPort = portGen.Current; // Open environment with replication configuration. DatabaseEnvironmentConfig cfg = new DatabaseEnvironmentConfig(); cfg.Create = true; cfg.RunRecovery = true; cfg.UseLocking = true; cfg.UseLogging = true; cfg.UseMPool = true; cfg.UseReplication = true; cfg.FreeThreaded = true; cfg.UseTxns = true; cfg.EventNotify = new EventNotifyDelegate(stuffHappened); cfg.RepSystemCfg = new ReplicationConfig(); cfg.RepSystemCfg.RepMgrLocalSite = new ReplicationHostAddress("127.0.0.1", mPort); cfg.RepSystemCfg.Priority = 100; cfg.RepSystemCfg.NSites = 2; DatabaseEnvironment mEnv = DatabaseEnvironment.Open( masterHome, cfg); mEnv.DeadlockResolution = DeadlockPolicy.DEFAULT; mEnv.RepMgrStartMaster(2); cfg.RepSystemCfg.RepMgrLocalSite = new ReplicationHostAddress("127.0.0.1", cPort); cfg.RepSystemCfg.Priority = 10; cfg.RepSystemCfg.AddRemoteSite( new ReplicationHostAddress("127.0.0.1", mPort), false); DatabaseEnvironment cEnv = DatabaseEnvironment.Open( clientHome, cfg); cEnv.RepMgrStartClient(2, false); /* * Verify the client info could be achived by master's * remote site. */ Assert.AreEqual(1, mEnv.RepMgrRemoteSites.Length); RepMgrSite site = mEnv.RepMgrRemoteSites[0]; Assert.AreEqual("127.0.0.1", site.Address.Host); Assert.AreEqual(cPort, site.Address.Port); Assert.AreEqual(0, site.EId); Assert.AreEqual(true, site.isConnected); Assert.AreEqual(false, site.isPeer); cEnv.Close(); mEnv.Close(); /* * Update the repmgr site, and verify it is updated in * unmanged memory. */ site.Address = new ReplicationHostAddress( "192.168.1.1", 1000); site.EId = 1024; site.isConnected = false; site.isPeer = true; Assert.AreEqual("192.168.1.1", site.Address.Host); Assert.AreEqual(1000, site.Address.Port); Assert.AreEqual(1024, site.EId); Assert.AreEqual(false, site.isConnected); Assert.AreEqual(true, site.isPeer); }
private void loadForm() { try { clearErrors(); if (IsFirstLaunch) { trySaveDbKeysFromInstallDrive(); } AvailablePorts.Clear(); AvailableStatuses.Clear(); AvailableStatuses.Add("AT GIN"); AvailableStatuses.Add("ON FEEDER"); this.TargetStatus = "AT GIN"; AvailablePorts.Add("NONE"); foreach (var p in SerialPort.GetPortNames().OrderBy(s => s)) { AvailablePorts.Add(p); } using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { var repo = dp.SettingsRepository; var portSetting = repo.FindSingle(x => x.Key == BridgeSettingKeys.SCALE_COM_PORT); if (portSetting != null && !string.IsNullOrWhiteSpace(portSetting.Value)) { PortName = portSetting.Value; } else { if (AvailablePorts.Count > 0) { PortName = AvailablePorts.First(); } else { PortName = ""; } } portSetting = repo.FindSingle(x => x.Key == BridgeSettingKeys.BARCODE_COM_PORT); if (portSetting != null && !string.IsNullOrWhiteSpace(portSetting.Value)) { BarcodePortName = portSetting.Value; } else { if (AvailablePorts.Count > 0) { BarcodePortName = AvailablePorts.First(); } else { BarcodePortName = ""; } } ReaderHostname = repo.GetSettingWithDefault(BridgeSettingKeys.READER_HOST_NAME, "169.254.1.1"); _originalHost = ReaderHostname; ScreenTitle = repo.GetSettingWithDefault(BridgeSettingKeys.GIN_NAME, ""); BridgeID = repo.GetSettingWithDefault(BridgeSettingKeys.BRIDGE_ID, ""); Latitude = repo.GetSettingWithDefault(BridgeSettingKeys.LATITUDE, ""); Longitude = repo.GetSettingWithDefault(BridgeSettingKeys.LONGITUDE, ""); TargetStatus = repo.GetSettingWithDefault(BridgeSettingKeys.TARGET_STATUS, "AT GIN"); DocumentDbConnection = repo.GetSettingWithDefault(BridgeSettingKeys.DOCUMENT_DB_KEY, ""); DocumentDbEndpoint = repo.GetSettingWithDefault(BridgeSettingKeys.DOCUMENTDB_ENDPOINT, ""); DataSyncInterval = int.Parse(repo.GetSettingWithDefault(BridgeSettingKeys.DATA_SYNC_INTERVAL, "1")); WeighInTimeout = int.Parse(repo.GetSettingWithDefault(BridgeSettingKeys.WEIGH_IN_TIMEOUT, "30")); StableWeightSeconds = int.Parse(repo.GetSettingWithDefault(BridgeSettingKeys.STABLE_WEIGHT_SECONDS, "10")); WeightAutoSaveTimeout = int.Parse(repo.GetSettingWithDefault(BridgeSettingKeys.WEIGHT_AUTO_SAVE_TIMEOUT, "10")); UnattendedMode = bool.Parse(repo.GetSettingWithDefault(BridgeSettingKeys.UNATTENDED_MODE, "FALSE")); } } catch (Exception exc) { Logging.Logger.Log(exc); } }
private void loadForm() { try { clearErrors(); if (IsFirstLaunch) { trySaveDbKeysFromInstallDrive(); } AvailablePorts.Clear(); AvailablePorts.Add("NONE"); foreach (var p in SerialPort.GetPortNames().OrderBy(s => s)) { AvailablePorts.Add(p); } using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { var repo = dp.SettingsRepository; var portSetting = repo.FindSingle(x => x.Key == BridgeSettingKeys.SCALE_COM_PORT); if (portSetting != null && !string.IsNullOrWhiteSpace(portSetting.Value)) { PortName = portSetting.Value; } else { if (AvailablePorts.Count > 0) { PortName = AvailablePorts.First(); } else { PortName = ""; } } portSetting = repo.FindSingle(x => x.Key == BridgeSettingKeys.BARCODE_COM_PORT); if (portSetting != null && !string.IsNullOrWhiteSpace(portSetting.Value)) { BarcodePortName = portSetting.Value; } else { if (AvailablePorts.Count > 0) { BarcodePortName = AvailablePorts.First(); } else { BarcodePortName = ""; } } DocumentDbConnection = repo.GetSettingWithDefault(BridgeSettingKeys.DOCUMENT_DB_KEY, ""); DocumentDbEndpoint = repo.GetSettingWithDefault(BridgeSettingKeys.DOCUMENTDB_ENDPOINT, ""); TareWeight = repo.GetSettingWithDefault(BridgeSettingKeys.TARE_WEIGHT, ""); StableWeightSeconds = int.Parse(repo.GetSettingWithDefault(BridgeSettingKeys.STABLE_WEIGHT_SECONDS, "5")); } } catch (Exception exc) { Logging.Logger.Log(exc); } }
/// <summary> /// Gets the available ports by applying the supplied filter. /// </summary> /// <param name="filter">A predicate to filter out ports that should not be included. If <c>null</c>, all ports in <see cref="AvailablePorts"/> are returned.</param> /// <returns>The available ports, excluding those that do not pass the given filter.</returns> public static IEnumerable <string> GetAvailablePorts(Predicate <INTV.Core.Model.Device.IConnection> filter) { var availablePorts = filter == null ? AvailablePorts : AvailablePorts.Where(p => filter(Connection.CreatePseudoConnection(p, ConnectionType.Serial))); return(availablePorts); }