/// <summary>
 /// Get a firmware image with provided image_id.
 /// </summary>
 /// <param name="imageId">Id</param>
 /// <returns><see cref="FirmwareImage"/></returns>
 /// <exception cref="CloudApiException">CloudApiException</exception>
 /// <example>
 /// <code>
 /// try
 /// {
 ///     var image = updateApI.GetFirmwareImage("015baf5f4f04000000000001001003d5");
 ///     return image;
 /// }
 /// catch (CloudApiException)
 /// {
 ///     throw;
 /// }
 /// </code>
 /// </example>
 public FirmwareImage GetFirmwareImage(string imageId)
 {
     try
     {
         return(FirmwareImage.Map(Api.FirmwareImageRetrieve(imageId)));
     }
     catch (update_service.Client.ApiException e)
     {
         return(HandleNotFound <FirmwareImage, update_service.Client.ApiException>(e));
     }
 }
Ejemplo n.º 2
0
        public IDriver GetDriverForImage(FirmwareImage image)
        {
            IDriver result = null;

            if (image != null)
            {
                var tokens      = AddInStore.FindAddIns(typeof(IDriver), _addInRoot);
                var driverToken = tokens.FirstOrDefault(x => x.Name == image.DriverName);
                if (driverToken != null)
                {
                    result = driverToken.Activate <IDriver>(AddInSecurityLevel.FullTrust);
                    // use AddInController.GetAddInController(result) to manage/unload/etc
                }
            }
            return(result);
        }
 /// <summary>
 /// Creates the firmware image.
 /// </summary>
 /// <returns>The firmware image.</returns>
 /// <param name="dataFile">Path to the data file</param>
 /// <param name="name">Name of the <see cref="FirmwareImage"/></param>
 /// <param name="description">Description of the <see cref="FirmwareImage"/></param>
 /// <exception cref="CloudApiException">CloudApiException</exception>
 /// <example>
 /// <code>
 /// try
 /// {
 ///     var image = updateApI.AddFirmwareImage("FirmwareImage file path", "name of image", "image description");
 ///     return image;
 /// }
 /// catch (CloudApiException)
 /// {
 ///     throw;
 /// }
 /// </code>
 /// </example>
 public FirmwareImage AddFirmwareImage(string dataFile, string name, string description = null)
 {
     try
     {
         using (var fs = File.OpenRead(dataFile))
         {
             var result = FirmwareImage.Map(Api.FirmwareImageCreate(fs, name, description));
             return(result);
         }
     }
     catch (FileNotFoundException e)
     {
         throw new CloudApiException(404, e.Message);
     }
     catch (update_service.Client.ApiException e)
     {
         throw new CloudApiException(e.ErrorCode, e.Message, e.ErrorContent);
     }
 }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            var MicrosoftSpot431LibraryId = Guid.Parse("e98b4d8f-6f47-4663-bbae-bbe6fc8a019f");
            var ghiSdkLibraryId           = Guid.Parse("9dea3dc3-6e24-45c4-9d1f-79cc35020e34");
            var brainPad431LibraryId      = Guid.Parse("26571886-8ec7-4d55-9d43-c418545f2169");

            var dict = new FirmwareDictionary();

            //
            // Firmware Images
            //
            var brainPadImage = new FirmwareImage()
            {
                Id                     = Guid.Parse("b335f011-7604-4984-9418-33c9ce00d3ae"),
                Name                   = "BrainPad",
                AppName                = "BrainPadFirmataApp",
                AppVersion             = new Version(1, 0, 0, 0),
                Description            = "This firmware unlocks all of the features of the GHI Electronics BrainPad",
                TargetFrameworkVersion = new Version(4, 3, 1, 0),
                ConfigurationExtension = null,
                ImageCreatedBy         = "Pervasive Digital LLC",
                ImageSupportUrl        = "mailto:[email protected]",
            };

            dict.Images.Add(brainPadImage);

            //
            // Assemblies
            //
            var assm = new FirmwareAssembly()
            {
                Id                     = Guid.Parse("99d20fa1-895e-49b6-9a4f-45e4e08ff106"),
                Filename               = "Microsoft.SPOT.Graphics.pe",
                IsLittleEndian         = true,
                LibraryId              = MicrosoftSpot431LibraryId,
                TargetFrameworkVersion = new Version(4, 3, 1, 0),
            };

            dict.Assemblies.Add(assm);
            brainPadImage.RequiredAssemblies.Add(assm.Id);

            assm = new FirmwareAssembly()
            {
                Id                     = Guid.Parse("a39662ef-143e-4cb4-9f75-22f0ea1b404b"),
                Filename               = "Microsoft.SPOT.Hardware.USB.pe",
                IsLittleEndian         = true,
                LibraryId              = MicrosoftSpot431LibraryId,
                TargetFrameworkVersion = new Version(4, 3, 1, 0),
            };
            dict.Assemblies.Add(assm);
            brainPadImage.RequiredAssemblies.Add(assm.Id);

            assm = new FirmwareAssembly()
            {
                Id                     = Guid.Parse("302fe463-f90c-4a03-9554-e8af4903f516"),
                Filename               = "GHI.Hardware.pe",
                IsLittleEndian         = true,
                LibraryId              = ghiSdkLibraryId,
                TargetFrameworkVersion = new Version(4, 3, 1, 0),
            };
            dict.Assemblies.Add(assm);
            brainPadImage.RequiredAssemblies.Add(assm.Id);

            assm = new FirmwareAssembly()
            {
                Id                     = Guid.Parse("62239dee-07d4-4447-997f-fa3808e250bd"),
                Filename               = "FirmataRuntime.pe",
                IsLittleEndian         = true,
                LibraryId              = brainPad431LibraryId,
                TargetFrameworkVersion = new Version(4, 3, 1, 0),
            };
            dict.Assemblies.Add(assm);
            brainPadImage.RequiredAssemblies.Add(assm.Id);

            assm = new FirmwareAssembly()
            {
                Id                     = Guid.Parse("5b61839a-bc8b-4328-800b-e3372a7262e2"),
                Filename               = "BrainPadFirmataApp.pe",
                IsLittleEndian         = true,
                LibraryId              = brainPad431LibraryId,
                TargetFrameworkVersion = new Version(4, 3, 1, 0),
            };
            dict.Assemblies.Add(assm);
            brainPadImage.RequiredAssemblies.Add(assm.Id);

            //
            // Boards
            //

            var board = new FirmwareHost()
            {
                Id                = Guid.Parse("6a9bdb56-8005-428d-9f29-8c425d9614b0"),
                Name              = "BrainPad",
                ProductImageName  = "BrainPad.jpg",
                Manufacturer      = "GHI Electronics",
                Description       = "Hardware for STEM education",
                UsbName           = "G30_G30",
                BuildInfoContains = "GHI Electronics",
                OEM               = 0xff,
                SKU               = 0xffff,
            };

            board.CompatibleImages.Add(brainPadImage.Id);
            dict.Boards.Add(board);

            var content = JsonConvert.SerializeObject(dict, Formatting.Indented);

            File.WriteAllText("dict.json", content);
        }