コード例 #1
0
ファイル: BaseCrc32Tests.cs プロジェクト: mubold/PebbleSharp
        protected void RunGeneratesCorrectChecksumForApp()
        {
            var bundle = new AppBundle();
            bundle.Load(ResourceManager.GetAppBundle(), GetZip());

            Assert.AreEqual(bundle.Manifest.Application.CRC, Crc32.Calculate(bundle.App));
        }
コード例 #2
0
        protected void RunCanLoadInformationFromAppBundle()
        {
            Stream testBundle = ResourceManager.GetAppBundle();
            var bundle = new AppBundle();
            bundle.Load( testBundle, GetZip() );

            var manifest = bundle.Manifest;
            Assert.IsNotNull( manifest );
            Assert.AreEqual( new DateTime( 2013, 4, 13, 18, 3, 16 ), manifest.GeneratedAtDateTime );
            Assert.AreEqual( "frontier", manifest.GeneratedBy );
            Assert.AreEqual( 1, manifest.ManifestVersion );
            Assert.AreEqual( "application", manifest.Type );
            Assert.IsTrue( manifest.Resources.Size > 0 );
            Assert.IsTrue( bundle.HasResources );

            Assert.AreEqual( 1, bundle.AppMetadata.AppMajorVersion );
            Assert.AreEqual( 0, bundle.AppMetadata.AppMinorVersion );
            Assert.AreEqual( "Shades", bundle.AppMetadata.AppName );
            Assert.AreEqual( "1.0", bundle.AppMetadata.AppVersion );
            Assert.AreEqual( "Barometz", bundle.AppMetadata.CompanyName );
            Assert.AreEqual( (uint)1515157755, bundle.AppMetadata.CRC );
            Assert.AreEqual( (uint)1, bundle.AppMetadata.Flags );
            Assert.AreEqual( "PBLAPP", bundle.AppMetadata.Header );
            Assert.AreEqual( (uint)0, bundle.AppMetadata.IconResourceID );
            Assert.AreEqual( (uint)552, bundle.AppMetadata.Offset );
            Assert.AreEqual( (uint)2, bundle.AppMetadata.RelocationListItemCount );
            Assert.AreEqual( (uint)3860, bundle.AppMetadata.RelocationListStart );
            Assert.AreEqual( 3, bundle.AppMetadata.SDKMajorVersion );
            Assert.AreEqual( 1, bundle.AppMetadata.SDKMinorVersion );
            Assert.AreEqual( "3.1", bundle.AppMetadata.SDKVersion );
            Assert.AreEqual( 3860, bundle.AppMetadata.Size );
            Assert.AreEqual( 8, bundle.AppMetadata.StructMajorVersion );
            Assert.AreEqual( 1, bundle.AppMetadata.StructMinorVersion );
            Assert.AreEqual( "8.1", bundle.AppMetadata.StructVersion );
            Assert.AreEqual( (uint)2796, bundle.AppMetadata.SymbolTableAddress );
            Assert.AreEqual( "ae9984f3-0404-409b-8a17-d50478c02d3e", bundle.AppMetadata.UUID.ToString() );
        }
コード例 #3
0
        private async void OnInstallApp()
        {
            var openDialog = new OpenFileDialog
            {
                CheckFileExists = true,
                CheckPathExists = true,
                DefaultExt = "*.pbw",
                Filter = "Pebble Apps|*.pbw|All Files|*",
                RestoreDirectory = true,
                Title = "Pebble App"
            };
            if ( openDialog.ShowDialog() == true )
            {
                var bundle = new AppBundle();
                using (var zip = new Zip())
                {
                    bundle.Load(openDialog.OpenFile(), zip);
                }

                if ( _pebble.IsAlive == false )
                    return;
                await _pebble.InstallAppAsync( bundle );
                await LoadAppsAsync();
            }
        }
コード例 #4
0
ファイル: PebbleViewer.cs プロジェクト: brookpatten/MrGibbs
		public PebbleViewer (ILogger logger, PebblePlugin plugin, PebbleSharp.Core.Pebble pebble, IZip appBundleZip, Action<Action<ISystemController, IRaceController>> queueCommand)
		{
			_queueCommand = queueCommand;
			_plugin = plugin;
			_logger = logger;
			_pebble = pebble;

			_pebble.ConnectAsync ().Wait ();
			_logger.Info ("Connected to pebble " + _pebble.PebbleID);
			
			_transactionId = 255;

			var progress = new Progress<ProgressValue> (pv => _logger.Debug ("Installing app on pebble " + pebble.PebbleID + ", " + pv.ProgressPercentage + "% complete. " + pv.Message));
			var bundle = new AppBundle ();
			bundle.Load (appBundleZip, _pebble.Firmware.HardwarePlatform.GetPlatform ());
			_uuid = bundle.AppMetadata.UUID;
			_pebble.InstallClient.InstallAppAsync (bundle, progress).Wait ();
			_logger.Info ("Installed app on pebble " + pebble.PebbleID);

			_pebble.RegisterCallback<AppMessagePacket> (Receive);

			InitializeViewer ();
		}