private int SendConfigC2000Ethernet(C2000Ethernet device) { if (device.AddressRS232 == null) { return((int)resultCode.addressFieldNotValid); } string deviceModel = _serialSender.GetDeviceModel(_comPort, _rsAddress); if (deviceModel.Length == 0) { return((int)resultCode.deviceNotRespond); } if (!device.Model.Contains(deviceModel)) { return((int)resultCode.deviceTypeMismatch); } if (_serialSender.SetC2000EthernetConfig(_comPort, _rsAddress, device)) { return((int)resultCode.ok); } return((int)resultCode.undefinedError); }
public bool SetC2000EthernetConfig(string ComPortName, byte deviceAddress, C2000Ethernet device) { bool result = false; if (!_serialPort.IsOpen) { _serialPort.PortName = ComPortName; receiveBuffer = null; _serialPort.Open(); // make DataReceived event handler _serialPort.DataReceived += sp_DataReceived; result = SendPromoter(); result = SendGatewayAndUDP(device.DefaultGateway); result = SendPromoter2(); result = SendOtherDevicesIP(device.RemoteIpList, device.AddressIP); result = SendPromoter3(); result = SendNetmaskAndOtherDevicesUDP(device.Netmask, device.RemoteUDPList, device.UDPSender, device.UDPRemote); _serialPort.Close(); } return(result); }
public C2000EthernetDeviceViewModel(C2000Ethernet device, CabinetViewModel cabinetParent, IEventAggregator ea) : base(cabinetParent, false) { _device = device; _ea = ea; }
private void DownloadLoop() { if (DeviceCounter < DevicesForProgramming.Count) { var device = DevicesForProgramming[DeviceCounter]; string devSerial = ""; if (device is Device device1) { devSerial = device1.Serial; if (devSerial == null)//исключаем приборы уже имеющие серийник (они уже были сконфигурированны) { _dispatcher.BeginInvoke(new Action(() => { CurrentDeviceModel = device1.Model; })); if (DevicesForProgramming[DeviceCounter].GetType() == typeof(RS485device)) { if (_serialTasks.SendConfig(DevicesForProgramming[DeviceCounter], CurrentRS485Port, DefaultRS485Address) == 1) { device1.Serial = SerialTextBox; _dataRepositoryService.SaveSerialNumber(device1.Id, device1.Serial); SerialTextBox = "";// Очищаем строку ввода серийника для ввода следующего DeviceCounter++; } else { MessageBox.Show("Устройство с адресом 127 не отвечает!"); } } else if (DevicesForProgramming[DeviceCounter].GetType() == typeof(C2000Ethernet)) { C2000Ethernet c2000Ethernet = (C2000Ethernet)DevicesForProgramming[DeviceCounter]; c2000Ethernet.Netmask = IPMask; c2000Ethernet.RemoteIpList = GetRemoteDefaultFirstIpList(); if (_serialTasks.SendConfig(c2000Ethernet, CurrentRS232Port, DefaultRS485Address) == 1) { device1.Serial = SerialTextBox; _dataRepositoryService.SaveSerialNumber(device1.Id, device1.Serial); SerialTextBox = "";// Очищаем строку ввода серийника для ввода следующего DeviceCounter++; } else { MessageBox.Show("Устройство с адресом 127 не отвечает!"); } } // Обновляем всю коллекцию в UI целиком _dispatcher.BeginInvoke(new Action(() => { CollectionViewSource.GetDefaultView(DevicesForProgramming).Refresh(); })); if (DeviceCounter >= DevicesForProgramming.Count) { DeviceCounter = 0; MessageBox.Show("Alles!"); } } else //Переходим к следующему прибру из списка { DeviceCounter++; } } } }