protected void RunCanLoadInformationFromFirmwareBundle() { Stream testBundle = ResourceManager.GetFirmwareBundle(); var bundle = new FirmwareBundle(); var zip = GetZip(); zip.Open(testBundle); bundle.Load(zip, SoftwarePlatform.APLITE); Assert.IsNotNull(bundle.Firmware); Assert.IsNotNull(bundle.Manifest); Assert.IsNotNull(bundle.Manifest.Firmware); Assert.AreEqual("tintin_fw.bin", bundle.Manifest.Firmware.Filename); Assert.AreEqual(new DateTime(2014, 5, 6, 6, 32, 23), bundle.Manifest.Firmware.TimestampDT); Assert.AreEqual(2824806042, bundle.Manifest.Firmware.CRC); Assert.AreEqual("v1_5", bundle.Manifest.Firmware.HardwareRevision); Assert.AreEqual("normal", bundle.Manifest.Firmware.Type); Assert.AreEqual(434731, bundle.Manifest.Firmware.Size); Assert.IsTrue(bundle.HasResources); Assert.IsNotNull(bundle.Resources); }
private async void OnUpdateFirmware() { var openDialog = new OpenFileDialog { CheckFileExists = true, CheckPathExists = true, DefaultExt = "*.pbz", Filter = "Pebble Firmware|*.pbz|All Files|*", RestoreDirectory = true, Title = "Pebble Firmware" }; if (openDialog.ShowDialog() == true) { var bundle = new FirmwareBundle(); using (var zip = new Zip()) { bundle.Load(openDialog.OpenFile(), zip); } if (_pebble.IsAlive == false) { return; } await _pebble.InstallFirmwareAsync(bundle); } }
protected void RunGeneratesCorrectChecksumForFirmware() { var bundle = new FirmwareBundle(); bundle.Load(ResourceManager.GetFirmwareBundle(), GetZip()); Assert.AreEqual(bundle.Manifest.Firmware.CRC, Crc32.Calculate(bundle.Firmware)); }
public void GeneratesCorrectChecksumForFirmware() { var bundle = new FirmwareBundle(); bundle.Load(ResourceManager.GetFirmwareBundle(), new ZipImplementation()); Assert.AreEqual(bundle.Manifest.Firmware.CRC, Crc32.Calculate(bundle.Firmware)); }
protected void RunGeneratesCorrectChecksumForFirmware() { var bundle = new FirmwareBundle(); bundle.Load(GetZip(), SoftwarePlatform.UNKNOWN); Assert.AreEqual(bundle.Manifest.Firmware.CRC, Crc32.Calculate(bundle.Firmware)); }
public async Task <bool> InstallFirmwareAsync(FirmwareBundle bundle, IProgress <ProgressValue> progress = null) { if (bundle == null) { throw new ArgumentNullException("bundle"); } if (progress != null) { progress.Report(new ProgressValue("Starting firmware install", 1)); } if ((await SendSystemMessageAsync(SystemMessage.FirmwareStart)).Success == false) { return(false); } if (bundle.HasResources) { if (progress != null) { progress.Report(new ProgressValue("Transfering firmware resources", 25)); } if (await PutBytes(bundle.Resources, 0, TransferType.SysResources) == false) { return(false); } } if (progress != null) { progress.Report(new ProgressValue("Transfering firmware", 50)); } if (await PutBytes(bundle.Firmware, 0, TransferType.Firmware) == false) { return(false); } if (progress != null) { progress.Report(new ProgressValue("Completing firmware install", 75)); } bool success = (await SendSystemMessageAsync(SystemMessage.FirmwareComplete)).Success; if (progress != null) { progress.Report(new ProgressValue("Done installing firmware", 100)); } return(success); }
public void CanLoadInformationFromFirmwareBundle() { Stream testBundle = ResourceManager.GetFirmwareBundle(); var bundle = new FirmwareBundle(); bundle.Load(testBundle, new ZipImplementation()); Assert.IsNotNull(bundle.Firmware); Assert.IsNotNull(bundle.Manifest); Assert.IsNotNull(bundle.Manifest.Firmware); Assert.AreEqual("tintin_fw.bin", bundle.Manifest.Firmware.Filename); Assert.AreEqual(new DateTime(2014, 5, 6, 6, 32, 23), bundle.Manifest.Firmware.TimestampDT); Assert.AreEqual(2824806042, bundle.Manifest.Firmware.CRC); Assert.AreEqual("v1_5", bundle.Manifest.Firmware.HardwareRevision); Assert.AreEqual("normal", bundle.Manifest.Firmware.Type); Assert.AreEqual(434731, bundle.Manifest.Firmware.Size); Assert.IsTrue(bundle.HasResources); Assert.IsNotNull(bundle.Resources); }