예제 #1
0
        /// <summary>
        /// Create a new firmware command string using the specified parameters
        /// </summary>
        /// <param name="settings">Firmware settings</param>
        public FirmwareCommand(FirmwareSettings settings)
        {
            this.Settings = settings;

            this.commandString = this.CreateCommandString(settings);
            return;
        }
예제 #2
0
        /// <summary>
        /// Parse a base-64 string into a firmware command object
        /// </summary>
        /// <param name="text">Text to parse</param>
        /// <returns>Firmware command</returns>
        public static FirmwareCommand Parse(string text)
        {
            // get bytes from base-64 string
            byte[] bytes = Convert.FromBase64String(text);
            // create struct pointer
            FirmwareSettings settings = bytes;
            // create firmware command base on settings struct
            FirmwareCommand command = new FirmwareCommand(settings);

            return(command);
        }
예제 #3
0
        /// <summary>
        /// Retrieve settings from Arduino device asynchronously
        /// </summary>
        public void RetrieveSettings()
        {
            //
            this.SendCommand(FirmwareCommand.ExportSettings);
            //
            string text = this.serialPort.ReadExisting().Trim();

            if (string.IsNullOrWhiteSpace(text))
            {
                throw new IOException("Failed to retrieve settings response from Arduino device");
            }
            //
            FirmwareCommand command = FirmwareCommand.Parse(text);

            this.Settings = command.Settings;
            return;
        }
예제 #4
0
 private string CreateCommandString(FirmwareSettings settings)
 {
     // return base-64 string
     return(Convert.ToBase64String(settings));
 }