示例#1
0
        /// <summary>
        ///
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <remarks>
        /// </remarks>
        private async void SetDeviceConfigButton_Click(object sender, RoutedEventArgs e)
        {
            // disable button
            (sender as Button).IsEnabled = false;

            await Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
            {
                try
                {
                    // Create cancellation token source
                    CancellationTokenSource cts = new CancellationTokenSource();

                    var device = (DataContext as MainViewModel).AvailableDevices[DeviceGrid.SelectedIndex];

                    // get device info
                    var deviceConfig = device.DebugEngine.GetDeviceConfiguration(cts.Token);

                    // change device configuration using the global configuration class
                    //deviceConfig.NetworkConfiguraton.MacAddress = new byte[] { 0, 0x80, 0xe1, 0x01, 0x35, 0x56 };
                    //deviceConfig.NetworkConfiguraton.StartupAddressMode = DeviceConfiguration.AddressMode.DHCP;

                    // update new network configuration
                    DeviceConfiguration.NetworkConfigurationProperties newDeviceNetworkConfiguration = new DeviceConfiguration.NetworkConfigurationProperties
                    {
                        MacAddress = new byte[] { 0, 0x80, 0xe1, 0x01, 0x35, 0x56 },
                        InterfaceType = nanoFramework.Tools.Debugger.NetworkInterfaceType.Ethernet,
                        StartupAddressMode = AddressMode.DHCP,

                        IPv4DNSAddress1 = IPAddress.Parse("192.168.1.254"),
                    };

                    // write device configuration to device
                    var returnValue = device.DebugEngine.UpdateDeviceConfiguration(newDeviceNetworkConfiguration, 0);

                    // add new wireless 802.11 configuration
                    DeviceConfiguration.Wireless80211ConfigurationProperties newWireless80211Configuration = new DeviceConfiguration.Wireless80211ConfigurationProperties()
                    {
                        Id = 44,
                        Ssid = "Nice_Ssid",
                        Password = "******",
                    };

                    // write wireless configuration to device
                    returnValue = device.DebugEngine.UpdateDeviceConfiguration(newWireless80211Configuration, 0);

                    Debug.WriteLine("");
                    Debug.WriteLine("");
                    Debug.WriteLine($"device config update result: {returnValue}");
                    Debug.WriteLine("");
                    Debug.WriteLine("");
                }
                catch (Exception ex)
                {
                }
            }));

            // enable button
            (sender as Button).IsEnabled = true;
        }
        public static string ToStringForOutput(this DeviceConfiguration.Wireless80211ConfigurationProperties wireless80211Configuration)
        {
            StringBuilder output = new StringBuilder();

            if (wireless80211Configuration.IsUnknown)
            {
                return("Wireless configuration is invalid");
            }
            else
            {
                output.AppendLine("802.11 configuration");
                output.AppendLine("++++++++++++++++++++++++++++++++++++");
                output.AppendLine($"authentication: {wireless80211Configuration.Authentication.ToString()}");
                output.AppendLine($"encryption: {wireless80211Configuration.Encryption.ToString()}");
                output.AppendLine($"radio: {wireless80211Configuration.Radio.ToString()}");
                output.AppendLine($"ssid: {wireless80211Configuration.Ssid}");
                output.AppendLine($"pwd: {wireless80211Configuration.Password}");
                output.AppendLine($"options: 0x{wireless80211Configuration.Options}");
                output.AppendLine("");

                return(output.ToString());
            }
        }
示例#3
0
        /// <summary>
        ///
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <remarks>
        /// </remarks>
        private void SetDeviceConfigButton_Click(object sender, RoutedEventArgs e)
        {
            // disable button
            (sender as Button).IsEnabled = false;

            try
            {
                // Create cancellation token source
                CancellationTokenSource cts = new CancellationTokenSource();

                var device = (DataContext as MainViewModel).AvailableDevices[DeviceGrid.SelectedIndex];

                //DeviceConfiguration deviceConfig;

                //// get device info, if needed
                //if (device.DebugEngine.ConfigBlockRequiresErase)
                //{
                //    deviceConfig = device.DebugEngine.GetDeviceConfiguration(cts.Token);
                //}

                //// update new network configuration
                //DeviceConfiguration.NetworkConfigurationProperties newDeviceNetworkConfiguration = new DeviceConfiguration.NetworkConfigurationProperties
                //{
                //    MacAddress = new byte[] { 0, 0x80, 0xe1, 0x01, 0x35, 0x56 },
                //    InterfaceType = NetworkInterfaceType.Ethernet,
                //    StartupAddressMode = AddressMode.DHCP,

                //    IPv4DNSAddress1 = IPAddress.Parse("192.168.1.254"),
                //};

                //// write device configuration to device
                //var returnValue = device.DebugEngine.UpdateDeviceConfiguration(newDeviceNetworkConfiguration, 0);

                // add new wireless 802.11 configuration
                DeviceConfiguration.Wireless80211ConfigurationProperties newWireless80211Configuration = new DeviceConfiguration.Wireless80211ConfigurationProperties()
                {
                    Id             = 0,
                    Ssid           = "Nice_Ssid",
                    Password       = "******",
                    Authentication = AuthenticationType.WPA2,
                    Encryption     = EncryptionType.WPA2,
                    Options        = Wireless80211_ConfigurationOptions.AutoConnect
                };

                // write wireless configuration to device
                var returnValue = device.DebugEngine.UpdateDeviceConfiguration(newWireless80211Configuration, 0);

                // build a CA certificate bundle
                DeviceConfiguration.X509CaRootBundleProperties newX509CertificateBundle = new DeviceConfiguration.X509CaRootBundleProperties();

                //// add CA root certificates

                ///////////////////////////////////////////////////////////
                //// BECAUSE WE ARE PARSING FROM A BASE64 encoded format //
                //// NEED TO ADD A TERMINATOR TO THE STRING              //
                ///////////////////////////////////////////////////////////

                ////string caRootBundle = baltimoreCACertificate + letsEncryptCACertificate + "\0";

                ////byte[] certificateRaw = Encoding.UTF8.GetBytes(caRootBundle);

                //using (FileStream binFile = new FileStream(@"C:\Users\JoséSimões\Downloads\DigiCertGlobalRootCA.crt", FileMode.Open))
                //{
                //    newX509CertificateBundle.Certificate = new byte[binFile.Length];
                //    binFile.Read(newX509CertificateBundle.Certificate, 0, (int)binFile.Length);
                //    newX509CertificateBundle.CertificateSize = (uint)binFile.Length;
                //}

                //newX509CertificateBundle.Certificate = certificateRaw;

                // write CA certificate to device
                //var returnValue = device.DebugEngine.UpdateDeviceConfiguration(newX509CertificateBundle, 0);


                //// build a device certificate
                //DeviceConfiguration.X509DeviceCertificatesProperties newX509DeviceCertificate = new DeviceConfiguration.X509DeviceCertificatesProperties();

                //using (FileStream binFile = new FileStream(@"C:\Users\JoséSimões\Downloads\OilLevelCert.pfx", FileMode.Open))
                //{
                //    newX509DeviceCertificate.Certificate = new byte[binFile.Length];
                //    binFile.Read(newX509DeviceCertificate.Certificate, 0, (int)binFile.Length);
                //    newX509DeviceCertificate.CertificateSize = (uint)binFile.Length;
                //}

                //// write certificate to device
                //var returnValue = device.DebugEngine.UpdateDeviceConfiguration(newX509DeviceCertificate, 0);



                Debug.WriteLine("");
                Debug.WriteLine("");
                Debug.WriteLine($"device config update result: {returnValue}");
                Debug.WriteLine("");
                Debug.WriteLine("");
            }
            catch (Exception ex)
            {
            }

            // enable button
            (sender as Button).IsEnabled = true;
        }