public static void Save(string fileName, HexFileCollectionInfo hexFileCollectionInfo) { var dataContractSerializer = new DataContractSerializer(typeof(HexFileCollectionInfo)); using (var fileStream = new FileStream(fileName, FileMode.Create)) { dataContractSerializer.WriteObject(fileStream, hexFileCollectionInfo); } }
public OperationResult<bool> GKUpdateFirmwareFSCS(HexFileCollectionInfo hxcFileInfo, List<XDevice> devices) { if (IsGKAsAService) { var deviceUIDs = new List<Guid>(); foreach (var device in devices) { deviceUIDs.Add(device.UID); } var result = SafeOperationCall(() => FiresecService.GKUpdateFirmwareFSCS(hxcFileInfo, FiresecManager.CurrentUser.Name, deviceUIDs), "GKUpdateFirmwareFSCS"); return result; } else { return GKProcessorManager.GKUpdateFirmwareFSCS(hxcFileInfo, FiresecManager.CurrentUser.Name, devices); } }
public void UpdateFSCS(HexFileCollectionInfo hxcFileInfo, List<XDevice> devices, string userName) { foreach (var device in devices) { var fileInfo = hxcFileInfo.HexFileInfos.FirstOrDefault(x => x.DriverType == device.DriverType); if (fileInfo == null) { Error = "Не найден файл прошивки для устройства типа " + device.DriverType; return; } var bytes = StringsToBytes(fileInfo.Lines); Update(device, bytes, userName); GKProcessorManager.StopProgress(ProgressCallback); if (Error != null) ErrorList.Add(Error); Error = null; } }
void Initialize(HexFileCollectionInfo hexFileCollectionInfo) { Name = hexFileCollectionInfo.Name; MinorVersion = hexFileCollectionInfo.MinorVersion; MajorVersion = hexFileCollectionInfo.MajorVersion; AvailableDriverTypes = new ObservableCollection<XDriverType>() { XDriverType.GK, XDriverType.KAU, XDriverType.RSR2_KAU }; HexFileViewModels = new ObservableRangeCollection<HexFileViewModel>(); foreach (var hexFileInfo in hexFileCollectionInfo.HexFileInfos) { AvailableDriverTypes.Remove(AvailableDriverTypes.FirstOrDefault(x => x == hexFileInfo.DriverType)); HexFileViewModels.Add(new HexFileViewModel(hexFileInfo)); } SelectedHexFile = HexFileViewModels.FirstOrDefault(); SelectedDriverType = AvailableDriverTypes.FirstOrDefault(); }
public static OperationResult<bool> GKUpdateFirmwareFSCS(HexFileCollectionInfo hxcFileInfo, string userName, List<XDevice> devices) { Stop(); var firmwareUpdateHelper = new FirmwareUpdateHelper(); firmwareUpdateHelper.UpdateFSCS(hxcFileInfo, devices, userName); Start(); if (firmwareUpdateHelper.ErrorList.Count > 0) return new OperationResult<bool>(firmwareUpdateHelper.ErrorList.Aggregate((a, b) => a + "\n" + b)) { Result = false }; return new OperationResult<bool> { Result = true }; }
void OnSaveFile() { var saveDialog = new SaveFileDialog() { Filter = "Пакет обновления (*.FSCS)|*.FSCS", DefaultExt = "Пакет обновления (*.FSCS)|*.FSCS" }; if (saveDialog.ShowDialog().Value) { if (File.Exists(saveDialog.FileName)) File.Delete(saveDialog.FileName); var hexFileCollectionInfo = new HexFileCollectionInfo() { Name = Name, MinorVersion = MinorVersion, MajorVersion = MajorVersion }; foreach (var hexFileViewModel in HexFileViewModels) { hexFileCollectionInfo.HexFileInfos.Add(hexFileViewModel.HexFileInfo); } HXCFileInfoHelper.Save(saveDialog.FileName, hexFileCollectionInfo); } }
public OperationResult<bool> GKUpdateFirmwareFSCS(HexFileCollectionInfo hxcFileInfo, string userName, List<Guid> deviceUIDs) { var devices = new List<XDevice>(); foreach (var deviceUID in deviceUIDs) { var device = XManager.Devices.FirstOrDefault(x => x.UID == deviceUID); if (device == null) { return new OperationResult<bool>("Не найдено устройство в конфигурации"); } devices.Add(device); } return GKProcessorManager.GKUpdateFirmwareFSCS(hxcFileInfo, userName, devices); }