Exemple #1
0
        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);
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        protected void RunGeneratesCorrectChecksumForFirmware()
        {
            var bundle = new FirmwareBundle();

            bundle.Load(ResourceManager.GetFirmwareBundle(), GetZip());

            Assert.AreEqual(bundle.Manifest.Firmware.CRC, Crc32.Calculate(bundle.Firmware));
        }
Exemple #4
0
        public void GeneratesCorrectChecksumForFirmware()
        {
            var bundle = new FirmwareBundle();

            bundle.Load(ResourceManager.GetFirmwareBundle(), new ZipImplementation());

            Assert.AreEqual(bundle.Manifest.Firmware.CRC, Crc32.Calculate(bundle.Firmware));
        }
Exemple #5
0
        protected void RunGeneratesCorrectChecksumForFirmware()
        {
            var bundle = new FirmwareBundle();

            bundle.Load(GetZip(), SoftwarePlatform.UNKNOWN);

            Assert.AreEqual(bundle.Manifest.Firmware.CRC, Crc32.Calculate(bundle.Firmware));
        }
Exemple #6
0
        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);
        }