internal static DeviceFirmware GetTargetDeviceFirmware() { var firmwareLocation = GetTargetFirmwareLocation(); if (firmwareLocation == null) { return(null); } return(DeviceFirmware.FromFile(firmwareLocation, DeviceFirmwarePageSize)); }
public void DeviceFirmwareObjectTest() { DeviceFirmware sample = new DeviceFirmware(); sample.version = "1.0.0"; sample.name = "test"; sample.url = "http://url.com"; sample.uri = "http://url.com"; sample.verifier = "1q2w4e"; sample.state = 0; sample.updateStatus = 0; sample.updatedDateTime = "time"; Assert.AreEqual(sample.version, "1.0.0"); Assert.AreEqual(sample.name, "test"); Assert.AreEqual(sample.url, "http://url.com"); Assert.AreEqual(sample.uri, "http://url.com"); Assert.AreEqual(sample.verifier, "1q2w4e"); Assert.AreEqual(sample.state, 0); Assert.AreEqual(sample.updateStatus, 0); Assert.AreEqual(sample.updatedDateTime, "time"); }
private void UpdateFirmwareInfo(DeviceFirmware firmware) { firmwareLabel.Text = firmware.FirmwareVersion; }
protected void OnConnectButtonClicked(object sender, System.EventArgs e) { SpawnThread(delegate() { if (USBRadiobutton.Active) { brick = new MonoBrick.NXT.Brick <MonoBrick.NXT.Sensor, MonoBrick.NXT.Sensor, MonoBrick.NXT.Sensor, MonoBrick.NXT.Sensor>(new USB <MonoBrick.NXT.Command, MonoBrick.NXT.Reply>()); } if (bluetoothRadiobutton.Active) { brick = new MonoBrick.NXT.Brick <MonoBrick.NXT.Sensor, Sensor, Sensor, Sensor>(new Bluetooth <MonoBrick.NXT.Command, MonoBrick.NXT.Reply>(comportCombobox.ActiveText)); } if (networkRadiobutton.Active) { if (waitForConnectioncheckbutton.Active) { brick = new MonoBrick.NXT.Brick <Sensor, Sensor, Sensor, Sensor>(new TunnelConnection <MonoBrick.NXT.Command, MonoBrick.NXT.Reply>(ushort.Parse(portSpinbutton.Text))); Label networkLabel = new Label(); //label.HeightRequest = 160; networkLabel.WidthRequest = 300; string[] addresses = NetworkHelper.GetLocalIPAddress(); for (int i = 0; i < addresses.Length; i++) { networkLabel.Text = networkLabel.Text + "Local IP address: " + addresses[i].PadRight(80) + "\n"; } networkLabel.Text = networkLabel.Text + "External IP Address: "; Dialog networkDialog = new Dialog("Wait for connection", this, Gtk.DialogFlags.DestroyWithParent); networkDialog.TypeHint = WindowTypeHint.Splashscreen; networkDialog.BorderWidth = 4; networkDialog.Modal = true; networkDialog.VBox.Add(networkLabel); //dialog.VBox.Add (progressBar); networkDialog.HasSeparator = false; networkDialog.AddButton("Cancel", ResponseType.Close); networkDialog.Response += delegate(object obj, ResponseArgs args){ brick.Connection.Close(); }; Gtk.Application.Invoke(delegate { networkDialog.ShowAll(); }); networkLabel.Text = networkLabel.Text + Utilities.NetworkHelper.GetExternalIP(); //MonoBrick.ConnectionDelegate onNetworkConnection = delegate(){}; //brick.Connection.Connected += onNetworkConnection; try{ brick.Connection.Open(); //This will block and wait for a network connection } catch (Exception exception) { //brick.Connection.Connected -= onNetworkConnection; Gtk.Application.Invoke(delegate { networkDialog.Destroy(); }); throw(exception); } //brick.Connection.Connected -= onNetworkConnection; Gtk.Application.Invoke(delegate { networkDialog.Destroy(); }); } else { brick = new MonoBrick.NXT.Brick <Sensor, Sensor, Sensor, Sensor>(new TunnelConnection <Command, Reply>(ipEntry.Text, ushort.Parse(portSpinbutton.Text))); } } System.Timers.Timer timer = new System.Timers.Timer(100); ProgressBar progress = new ProgressBar(); //progress.Fraction = 0.0; progress.Orientation = ProgressBarOrientation.LeftToRight; timer.Elapsed += (obj1, obj2) => { progress.Pulse(); }; Label connectLabel = new Label("Opening connection..."); //label.HeightRequest = 160; connectLabel.WidthRequest = 200; Dialog connectDialog = new Dialog("Connecting to the NXT", this, Gtk.DialogFlags.DestroyWithParent); connectDialog.TypeHint = WindowTypeHint.Splashscreen; connectDialog.Modal = true; connectDialog.VBox.Add(connectLabel); connectDialog.HasSeparator = false; connectDialog.VBox.Add(progress); Gtk.Application.Invoke(delegate { connectDialog.ShowAll(); timer.Start(); }); if (!brick.Connection.IsConnected) { try{ brick.Connection.Open(); } catch (Exception ex) { Gtk.Application.Invoke(delegate { connectDialog.Destroy(); timer.Stop(); }); throw ex; } } brick.Connection.CommandSend += OnCommandSend; brick.Connection.ReplyReceived += OnReplyRecieved; //brick.ConnectionOpened += OnConnected; brick.Connection.Disconnected += Disconnected; try{ Gtk.Application.Invoke(delegate { connectLabel.Text = "Retrieving brick information..."; }); DeviceInfo info = brick.GetDeviceInfo(); DeviceFirmware firmware = brick.GetDeviceFirmware(); ushort batteryLevel = brick.GetBatteryLevel(); SetSensor[] setSensor = new SetSensor[] { delegate(Sensor sensor){ brick.Sensor1 = sensor; brick.Sensor1.Initialize(); }, delegate(Sensor sensor){ brick.Sensor2 = sensor; brick.Sensor2.Initialize(); }, delegate(Sensor sensor){ brick.Sensor3 = sensor; brick.Sensor3.Initialize(); }, delegate(Sensor sensor){ brick.Sensor4 = sensor; brick.Sensor4.Initialize(); }, }; ComboBox[] comboArray = new ComboBox[] { sensor1Combobox, sensor2Combobox, sensor3Combobox, sensor4Combobox }; //Check if sensors should be initialized with something other than none for (int i = 0; i < 4; i++) { Console.WriteLine(i); Gtk.Application.Invoke(delegate { connectLabel.Text = "Setting up sensor " + (i + 1); }); if (comboArray[i].Active != 0) { try{ setSensor[i]((Sensor)comboArray[i].GetActiveValue()); } catch (MonoBrickException nxtEx) { if (nxtEx is MonoBrickException) { comboArray[i].Active = 0; //unable to set the sensor value set the comboBox to none setSensor[i](new Sensor(SensorType.NoSensor, SensorMode.Raw)); } else { throw nxtEx; } } } } Gtk.Application.Invoke(delegate { UpdateDeviceInfo(info); UpdateFirmwareInfo(firmware); UpdateBatteryInfo(batteryLevel); }); Connected(); DisableAllTunnelInput(); if (isConnectedViaNetwork()) { Gtk.Application.Invoke(delegate { connectLabel.Text = "Checking tunnel settings..."; }); if (brickType == BrickType.NXT) { var reply = brick.Connection.SendAndReceive(new Command(CommandType.TunnelCommand, CommandByte.GetTunnelCommands, true)); if (!reply.HasError) { for (int i = 0; i < reply.Data.Length - 3; i++) { switch (reply.Data[i + 3]) { case (byte)CommandByte.GetTunnelRTSPSettings: EnableVideoStreamInput(); break; case (byte)CommandByte.GetTunnelGPSPosition: EnableGPSInput(); break; case (byte)CommandByte.TunnelSpeak: EnableSpeakInput(); break; } } } else { //The tunnel does not support any commands } } } } catch (MonoBrickException ex) { Gtk.Application.Invoke(delegate { connectDialog.Destroy(); timer.Stop(); }); brick.Connection.Close(); throw ex; } Gtk.Application.Invoke(delegate { connectDialog.Destroy(); timer.Stop(); }); }); }
private void UpdateFirmwareInfo(DeviceFirmware firmware){ firmwareLabel.Text = firmware.FirmwareVersion; }
public void Load(FirmwareWrapper firmwareWrapper) { DeviceFW = firmwareWrapper[ParentDevice.FirmwareDeviceName]; }