Beispiel #1
0
    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;
    }
Beispiel #2
0
 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;
 }
Beispiel #3
0
        /// <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");
            }
        }
Beispiel #4
0
        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);
        }
Beispiel #11
0
    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);
        }
    }
Beispiel #13
0
    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;
    }