public BasePropertyViewModel(XDriverProperty driverProperty, SKDDevice device) { DriverProperty = driverProperty; IsAUParameter = driverProperty.IsAUParameter; Device = device; if (!Device.Properties.Any(x => x.Name == driverProperty.Name)) { Save(driverProperty.Default, false); } if (Device.DeviceProperties == null) { Device.DeviceProperties = new List<XProperty>(); } var deviceProperty = Device.DeviceProperties.FirstOrDefault(x => x.Name == driverProperty.Name); if (deviceProperty != null) { DeviceAUParameterValue = deviceProperty.Value.ToString(); } else DeviceAUParameterValue = "Неизвестно"; UpdateDeviceParameterMissmatchType(); }
public static bool SynchroniseTime(SKDDevice device) { var bytes = new List<byte>(); bytes.Add(2); var result = SendBytes(device, bytes); return !result.HasError; }
public static string GetInfo(SKDDevice device) { var bytes = new List<byte>(); bytes.Add(1); var result = SendBytes(device, bytes); if (result.HasError) return result.Error; return "Версия " + result.Bytes[0].ToString(); }
public BoolPropertyViewModel(XDriverProperty driverProperty, SKDDevice device) : base(driverProperty, device) { var property = device.Properties.FirstOrDefault(x => x.Name == driverProperty.Name); if (property != null) _isChecked = property.Value > 0; else _isChecked = (driverProperty.Default == (ushort)1) ? true : false; }
void AddChild(SKDDevice parentDevice) { foreach (var device in parentDevice.Children) { device.Parent = parentDevice; Devices.Add(device); AddChild(device); } }
public ShortPropertyViewModel(XDriverProperty driverProperty, SKDDevice device) : base(driverProperty, device) { var property = device.Properties.FirstOrDefault(x => x.Name == driverProperty.Name); if (property != null) _text = property.Value; else _text = driverProperty.Default; }
public SKDDeviceViewModel(SKDDevice device) { CardCommand = new RelayCommand(OnCard); SKDDevice = device; var portProperty = device.Properties.FirstOrDefault(x => x.Name == "Port"); if (portProperty != null) { var portNo = portProperty.Value; SKDImitatorProcessor = new SKDImitatorProcessor(portNo); SKDImitatorProcessor.Start(); } }
protected override bool Save() { var device = new SKDDevice() { Address = Address, Driver = SelectedDriver, DriverUID = SelectedDriver.UID }; SKDManager.Devices.Add(device); AddedDevice = new DeviceViewModel(device); ParentDeviceViewModel.Device.Children.Add(device); ParentDeviceViewModel.AddChild(AddedDevice); ParentDeviceViewModel.Update(); XManager.DeviceConfiguration.Update(); return true; }
public EnumPropertyViewModel(XDriverProperty driverProperty, SKDDevice device) : base(driverProperty, device) { var property = device.Properties.FirstOrDefault(x => x.Name == driverProperty.Name); if (property != null) { var driverPropertyParameter = driverProperty.Parameters.FirstOrDefault(x => x.Value == property.Value); if (driverPropertyParameter != null) { _selectedParameter = driverPropertyParameter; } } else { var enumdriverProperty = driverProperty.Parameters.FirstOrDefault(x => x.Value == driverProperty.Default); if (enumdriverProperty != null) _selectedParameter = enumdriverProperty; } }
static SendResult SendBytes(SKDDevice device, List<byte> bytes, bool hasAnswer = true, bool sleepInsteadOfRecieve = false, int receiveTimeout = 2000) { var stringIPAddress = device.Address; int port = 0; var portProperty = device.Properties.FirstOrDefault(x => x.Name == "Port"); if (portProperty != null) { port = portProperty.Value; } else { return new SendResult("Не задан порт"); } IPAddress ipAddress; var result = IPAddress.TryParse(stringIPAddress, out ipAddress); if (!result) { return new SendResult("Неверный формат IP адреса"); } var endPoint = new IPEndPoint(ipAddress, port); var udpClient = new UdpClient(); udpClient.Client.ReceiveTimeout = receiveTimeout; udpClient.Client.SendTimeout = 1000; try { var bytesSent = udpClient.Send(bytes.ToArray(), bytes.Count, endPoint); if (bytesSent != bytes.Count) { return new SendResult("Не все данные удалось отправить"); } } catch { OnConnectionLost(); udpClient.Close(); return new SendResult("Ошибка открытия сокета"); } if (hasAnswer == false) { udpClient.Close(); return new SendResult(new List<byte>()); } var recievedBytes = new List<byte>(); try { if (sleepInsteadOfRecieve) { Thread.Sleep(10000); return new SendResult(new List<byte>()); } recievedBytes = udpClient.Receive(ref endPoint).ToList(); } catch (SocketException) { OnConnectionLost(); udpClient.Close(); return new SendResult("От устройства не получен ответ в заданный таймаут"); } udpClient.Close(); return new SendResult(recievedBytes.Skip(1).ToList()); }
public StringPropertyViewModel(XDriverProperty driverProperty, SKDDevice device) : base(driverProperty, device) { var property = device.Properties.FirstOrDefault(x => x.Name == driverProperty.Name); _text = property != null ? property.StringValue : driverProperty.StringDefault; }
public PropertiesViewModel(SKDDevice device) { Device = device; Update(); device.AUParametersChanged += On_AUParametersChanged; }