private void Inject([Inject(Id = "VehicleButton")] Button button, [Inject(Id = "NumberLabel")] TextMeshProUGUI numberLabel, [Inject(Id = "AvmLabel")] TextMeshProUGUI avmLabel, [Inject(Id = "StatusLabel")] TextMeshProUGUI statusLabel, [Inject(Id = "TurnLabel")] TextMeshProUGUI turnLabel, [Inject(Id = "TypeLabel")] TextMeshProUGUI typeLabel, [Inject(Id = "AvmImage")] Image avmImage, [Inject(Id = "TypeImage")] Image typeImage, VehicleSettings settings, VehicleGPSSettings gpsSettings, SignalBus signalBus) { _button = button; _numberLabel = numberLabel; _avmLabel = avmLabel; _statusLabel = statusLabel; _turnLabel = turnLabel; _typeLabel = typeLabel; _avmImage = avmImage; _typeImage = typeImage; _settings = settings; _gpsSettings = gpsSettings; _signalBus = signalBus; }
private void AccessToResources() { mGearParam = Resources.Load(ConstString.Path.GEAR_PARAM) as GearParam; mRayConfig = Resources.Load(ConstString.Path.RAY_CONFIG) as RayConfig; mWheelParams = Resources.Load(ConstString.Path.WHEEL_PARAM) as WheelParams; mVehicleSettings = Resources.Load(ConstString.Path.VEHICLE_SETTINGS) as VehicleSettings; }
/// <summary> /// Function is called when you click to start the application /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ConnectPort_Click(object sender, RoutedEventArgs e) { InitializePort();//Handle the port connection string selectedVehicleString = VehicleTypeSelectBox.SelectedItem.ToString(); bool retrieveHeight = (bool)EnableHeightCheckBox.IsChecked; bool retrieveSpeed = (bool)EnableSpeedCheckBox.IsChecked; bool useTestData = (bool)EnableTestDataCheckBox.IsChecked; bool parseSuccess = Enum.TryParse(selectedVehicleString, out ArduinoActions.VehicleType vehicleType); if (parseSuccess) { //todo: vehicleSettings VehicleSettings vehicleSettings = new VehicleSettings(); if (RetrieveAllValuesCheckBox.IsChecked == true) { vehicleSettings.RetrieveHeight = true; vehicleSettings.RetrieveSpeed = true; vehicleSettings.VehicleType = vehicleType; } else { vehicleSettings.RetrieveHeight = retrieveHeight; vehicleSettings.RetrieveSpeed = retrieveSpeed; vehicleSettings.VehicleType = vehicleType; } vehicleSettings.UseTestData = useTestData; handleFetching(vehicleSettings); } else { MessageBox.Show("No valid type of vehicle is selected"); } }
private void handleFetching(VehicleSettings vehicleSettings) { if (!_connection.Connected) { MessageBox.Show("Make sure you are connected to a port"); return; } try { arduinoActions.StartActions(_connection, vehicleSettings); } catch (ObjectDisposedException exception) { MessageBox.Show(exception.Message); } catch (IOException exception) { MessageBox.Show(exception.Message); } catch (ArgumentNullException exception) { MessageBox.Show(exception.Message); } catch (ProtocolException) { MessageBox.Show("Probleem aan de arduino kant: ProtocolException"); } }
/// <summary> /// Withdraws the specified player. /// </summary> /// <param name="player">The player.</param> /// <param name="vehicleSettings">The vehicle settings.</param> /// <returns></returns> private bool Withdraw(BasePlayer player, VehicleSettings vehicleSettings) { bool result = false; var item = ItemManager.FindItemDefinition(_itemsNeededToBuyVehicles); if (Economics != null && _useEconomics) { result = Economics.Call <bool>("Withdraw", player.userID, Convert.ToDouble(vehicleSettings.price)); } else if (ServerRewards != null && _useServerRewards) { result = ServerRewards.Call <bool>("TakePoints", player.userID, Convert.ToDouble(vehicleSettings.price)); } else if (item != null && player.inventory.GetAmount(item.itemid) >= vehicleSettings.price) { player.inventory.Take(null, item.itemid, vehicleSettings.price); result = true; } if (result) { SendReply(player, string.Format(Msg("vehiclePurchased", player.UserIDString), vehicleSettings.name)); return(true); } else { SendReply(player, Msg("noMoney", player.UserIDString)); return(false); } }
/// <summary> /// Removes the vehicle. /// </summary> /// <param name="licencedPlayer">The licenced player.</param> /// <param name="vehicleSettings">The vehicle settings.</param> private void RemoveVehicle(LicencedPlayer licencedPlayer, VehicleSettings vehicleSettings) { var player = licencedPlayer.Player; var vehicle = licencedPlayer.GetVehicle(vehicleSettings.prefab); if (player != null && vehicle == null) { SendReply(player, string.Format(Msg("vehicleNotYetPurchased", player.UserIDString), vehicleSettings.name)); } else { var vehicleId = vehicle.Id; _vehiclesCache.Remove(vehicle.Id); BaseNetworkable.serverEntities.Find(vehicle.Id)?.Kill(); vehicle.Id = 0; licencedPlayer.SetVehicle(vehicle); if (player != null && vehicleId != 0) { SendReply(player, string.Format(Msg("vehicleRecalled", player.UserIDString), vehicleSettings.name)); } else if (player != null && vehicleId == 0) { SendReply(player, string.Format(Msg("vehicleNotOut", player.UserIDString), vehicleSettings.name)); } } }
private void ProcessData(IConnector connection, string url, VehicleSettings vehicleSettings) { if (string.IsNullOrEmpty(url)) { throw new ArgumentException("API url is not filled in"); } Vehicle vehicle; if (vehicleSettings.VehicleType == VehicleType.Plane) { vehicle = new Plane(); } else //if() { //TODO: if there are other vehicletypes, add those vehicle = new Plane(); } while (_keepFetching) { Vehicle vehicleData; if (vehicleSettings.UseTestData) { vehicleData = FetchTestData(); Console.WriteLine(vehicleData.Speed); } else { vehicleData = FetchData(url, vehicle); } if (vehicleData != null) { try { Plane plane = vehicleData as Plane; if (vehicleSettings.RetrieveSpeed) { connection.Write("speed", Convert.ToString(plane.Speed)); } if (vehicleSettings.RetrieveHeight) { connection.Write("height", Convert.ToString(plane.FlyingHeight)); } } catch (TimeoutException e) { Console.WriteLine("No response from the arduino: " + e.Message); } } Thread.Sleep(500); } Console.WriteLine("Stopped fetching"); }
/// <summary> /// Generates a background task via a thread to fetch the data /// </summary> /// <param name="connection"></param> private void GenerateThread(IConnector connection, VehicleSettings vehicleSettings) { _goFetchData = new Thread( unused => ProcessData(connection, "http://127.0.0.1:8111/state", vehicleSettings) ); _goFetchData.Start(); }
/// <summary> /// Start a new thread and start fetching /// </summary> /// <param name="connection"></param> /// <param name="vehicleType"></param> public void StartActions(IConnector connection, VehicleSettings vehicleSettings) { if (connection == null) { throw new ArgumentNullException("connection"); } _keepFetching = true; GenerateThread(connection, vehicleSettings); }
public void TestStartActionsEmptyParameters() { ArduinoActions arduinoActions = new ArduinoActions(); VehicleSettings vehicleSettings = new VehicleSettings(); vehicleSettings.RetrieveHeight = true; vehicleSettings.RetrieveSpeed = true; vehicleSettings.VehicleType = ArduinoActions.VehicleType.LandVehicle; vehicleSettings.UseTestData = true; arduinoActions.StartActions(null, vehicleSettings); }
public void SaveSettings() { var car = vehicle.GetComponent <VehicleInfo>().vehicleShortName; var savedSettings = new VehicleSettings(this); var serializer = new XmlSerializer(typeof(VehicleSettings)); using (var filestream = new FileStream(Application.streamingAssetsPath + "/SavedPresets/" + car + ".xml", FileMode.Create)) { var writer = new System.Xml.XmlTextWriter(filestream, System.Text.Encoding.Unicode); serializer.Serialize(writer, savedSettings); } }
void SaveCar(bool wet) { var car = AppController.Instance.currentSessionSettings.selectedCarShortname; var settings = GetComponent <DriveAdminUISettings>(); var configurator = settings.configurator; var savedSettings = new VehicleSettings(configurator); var serializer = new XmlSerializer(typeof(VehicleSettings)); using (var filestream = new FileStream(Application.streamingAssetsPath + "/SavedPresets/" + car + (wet ? "_WET.xml" : ".xml"), FileMode.Create)) { var writer = new System.Xml.XmlTextWriter(filestream, System.Text.Encoding.Unicode); serializer.Serialize(writer, savedSettings); } }
private void Inject( [Inject(Id = "TitleLabel")] TextMeshProUGUI titleLabel, [Inject(Id = "TypeImage")] Image typeImage, [Inject(Id = "CloseButton")] Button closeButton, VehicleSettings settings, SignalBus signalBus) { _titleLabel = titleLabel; _typeImage = typeImage; _settings = settings; _closeButton = closeButton; _closeButton.onClick.AddListener(() => SendCloseSignal()); _signalBus = signalBus; }