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;
			}
		}
Beispiel #4
0
		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 };
		}
Beispiel #6
0
		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);
		}