private async void OnAddDeviceExecute(object obj) { IDeviceCreator deviceCreator = (obj as IDeviceDefinitionViewModel)?.Model as IDeviceCreator; if (deviceCreator == null) { return; } if (deviceCreator.AvailableConnection == null) { return; } _comConnectionManager.SetComPortConfigurationByName((deviceCreator.AvailableConnection as IModbusRtuConnection).ComPortConfiguration, (deviceCreator.AvailableConnection as IModbusRtuConnection).PortName); var device = deviceCreator.Create(); device.DeviceSignature = device.Name; await _devicesContainerService.ConnectDeviceAsync(device, deviceCreator.AvailableConnection); if (!_devicesContainerService.ConnectableItems.Contains(device)) { _devicesContainerService.AddConnectableItem(device); } //DeviceDefinitionViewModels.Remove(obj as IDeviceDefinitionViewModel); IsDevicesNotFound = false; (obj as IDeviceDefinitionViewModel).IsAddedToProject = true; await Task.Delay(300); _flyoutService.CloseFlyout(); }
public void UpdateDeviceDefinition(string deviceName) { IDeviceCreator creatorFinded = Creators.FirstOrDefault((creator => creator.DeviceName == deviceName)); if (creatorFinded == null) { return; } IDevice device = _deviceGettingFunc(); device = _serializerService.DeserializeFromFile <IDevice>(creatorFinded.DeviceDescriptionFilePath); creatorFinded.ConnectionState = device.ConnectionState.Clone() as IConnectionState; device.Dispose(); }
private void OnOpenDeviceFromFileExecute() { OpenFileDialog ofd = new OpenFileDialog(); ofd.Multiselect = false; ofd.Filter = " JSON файл (*.json)|*.json" + "|Все файлы (*.*)|*.* "; ofd.CheckFileExists = true; if (ofd.ShowDialog() == true) { IDeviceCreator deviceCreator = _container.Resolve <IDeviceCreator>(); deviceCreator.DeviceDescriptionFilePath = ofd.FileName; deviceCreator.DeviceName = ofd.SafeFileName.Replace(".json", ""); IDeviceDefinitionViewModel deviceDefinition = _deviceDefinitionCreator(); deviceDefinition.Model = deviceCreator; SelectedDevice = deviceDefinition; } }
public void LoadDevicesDefinitions(string folderPath = ApplicationGlobalNames.DEFAULT_DEVICES_FOLDER_PATH) { if (!(Directory.Exists(folderPath))) { return; } string[] names = Directory.GetFiles(folderPath).Select((s => Path.GetFileName(s))).ToArray(); Creators = new List <IDeviceCreator>(); foreach (string name in names.Where(name => name.Contains("json"))) { IDeviceCreator deviceCreator = _deviceCreatorGettingFunc(); deviceCreator.DeviceDescriptionFilePath = Path.Combine(folderPath, name); IDevice device = _deviceGettingFunc(); try { device = _serializerService.DeserializeFromFile <IDevice>(deviceCreator.DeviceDescriptionFilePath); deviceCreator.ConnectionState = device.ConnectionState.Clone() as IConnectionState; deviceCreator.DeviceName = Path.GetFileNameWithoutExtension(name); deviceCreator.DeviceMetaInfo = device.DeviceMetaInfo; Creators.Add(deviceCreator); } catch { var message = _localizerService.GetLocalizedString(ApplicationGlobalNames.StatusMessages .DEVICE_READING_ERROR); _logService.LogMessage(message + " " + name); } } }
/// <summary> /// 設定歷史資料裝置建立者介面 /// </summary> /// <param name="deviceCreator">歷史資料裝置建立者介面</param> public static void SetDeviceCreator(IDeviceCreator deviceCreator) { DataAdapter.SetDeviceCreator((deviceCreator == null) ? new HttpPostCreator() : deviceCreator); }
internal static void SetDeviceCreator(IDeviceCreator deviceCreator) { __cDeviceCreator = deviceCreator; }