Ejemplo n.º 1
0
        private API.ALPRScanResult CreateLicExpiredResult(Vehicle veh)
        {
            API.ALPRScanResult r = new API.ALPRScanResult(veh, EAlertType.Owner_License_Expired);
            string             mRegisteredOwner = "";

            r.Persona         = CreatePersona(veh, ELicenseState.Expired, false, out mRegisteredOwner, true);
            r.RegisteredOwner = mRegisteredOwner;

            return(r);
        }
Ejemplo n.º 2
0
        private API.ALPRScanResult CreateWantedResult(Vehicle veh)
        {
            API.ALPRScanResult r = new API.ALPRScanResult(veh, EAlertType.Owner_Wanted);
            string             mRegisteredOwner = "";

            r.Persona         = CreatePersona(veh, ELicenseState.Valid, true, out mRegisteredOwner);
            r.RegisteredOwner = mRegisteredOwner;

            return(r);
        }
Ejemplo n.º 3
0
        private API.ALPRScanResult CreateStolenVehResult(Vehicle veh)
        {
            API.ALPRScanResult r = new API.ALPRScanResult(veh, EAlertType.Stolen_Vehicle);
            string             mRegisteredOwner = "";

            r.Persona         = CreatePersona(veh, ELicenseState.Suspended, true, out mRegisteredOwner, false, false);
            r.RegisteredOwner = mRegisteredOwner;

            veh.IsStolen = true;

            return(r);
        }
Ejemplo n.º 4
0
        private API.ALPRScanResult CreateInsExpiredResult(Vehicle veh)
        {
            API.ALPRScanResult r = new API.ALPRScanResult(veh, EAlertType.Insurance_Expired);
            string             mRegisteredOwner = "";

            r.Persona         = CreatePersona(veh, ELicenseState.Valid, false, out mRegisteredOwner);
            r.RegisteredOwner = mRegisteredOwner;

            if (Funcs.IsTrafficPolicerRunning())
            {
                TrafficPolicer.SetVehicleRegistrationStatus(veh, EVehicleStatus.Valid);
                TrafficPolicer.SetVehicleInsuranceStatus(veh, EVehicleStatus.Expired);
            }

            return(r);
        }
Ejemplo n.º 5
0
        private API.ALPRScanResult CreateRegNotValidResult(Vehicle veh)
        {
            API.ALPRScanResult r = new API.ALPRScanResult(veh, EAlertType.Unregistered_Vehicle);
            string             mRegisteredOwner = "";

            r.Persona         = CreatePersona(veh, ELicenseState.Valid, false, out mRegisteredOwner);
            r.RegisteredOwner = "UNREGISTERED";

            Functions.SetVehicleOwnerName(veh, "UNREGISTERED");

            if (Funcs.IsTrafficPolicerRunning())
            {
                TrafficPolicer.SetVehicleRegistrationStatus(veh, EVehicleStatus.None);
                TrafficPolicer.SetVehicleInsuranceStatus(veh, EVehicleStatus.None);
            }

            return(r);
        }
Ejemplo n.º 6
0
        private API.ALPRScanResult CreateScanResult(Vehicle veh, EAlertType alert, ECamera cam)
        {
            API.ALPRScanResult r = null;

            switch (alert)
            {
            case EAlertType.Stolen_Vehicle:
                r = CreateStolenVehResult(veh);
                break;

            case EAlertType.Owner_Wanted:
                r = CreateWantedResult(veh);
                break;

            case EAlertType.Owner_License_Suspended:
                r = CreateLicSuspendedResult(veh);
                break;

            case EAlertType.Owner_License_Expired:
                r = CreateLicExpiredResult(veh);
                break;

            case EAlertType.Registration_Expired:
                r = CreateRegExpiredResult(veh);
                break;

            case EAlertType.Unregistered_Vehicle:
                r = CreateRegNotValidResult(veh);
                break;

            case EAlertType.No_Insurance:
                r = CreateInsNotValidResult(veh);
                break;

            case EAlertType.Insurance_Expired:
                r = CreateInsExpiredResult(veh);
                break;
            }

            API.Functions.RaiseALPRFlagGenerated(veh, new ALPREventArgs(r, cam));
            return(r);
        }
Ejemplo n.º 7
0
        private bool RunVehiclePlates(Vehicle veh, ECamera cam)
        {
            if (veh.Exists() && !IsVehicleBlacklisted(veh))
            {
                if (!mRecentlyScanned.ContainsKey(veh))
                {
                    mRecentlyScanned.Add(veh, Game.GameTime);

                    if (Config.PlayScanSound)
                    {
                        Audio.PlaySound(Audio.ESounds.PinButton);
                        //GameFiber.Sleep(500);
                    }

                    if (Globals.ScanResults.Keys.Contains(veh))
                    {
                        TimeSpan ts = DateTime.Now - Globals.ScanResults[veh].LastDisplayed;
                        if (ts.TotalSeconds < Config.VehicleRescanBuffer)
                        {
                            return(false);
                        }

                        EAlertType mPrevAlert = Globals.ScanResults[veh].AlertType;

                        if (mPrevAlert != EAlertType.Null)
                        {
                            DisplayAlert(veh, cam, Globals.ScanResults[veh]);
                            return(true);
                        }
                        else
                        {
                            if (Globals.ScanResults[veh].IsCustomFlag == true && Globals.ScanResults[veh].Result != "")
                            {
                                DisplayAlert(veh, cam, Globals.ScanResults[veh]);
                                return(true);
                            }
                        }

                        return(false);
                    }
                    else
                    {
                        int mAlertFactor = mRand.Next(0, 100);

                        if (mAlertFactor < Config.ProbabilityOfAlerts)
                        {
                            EAlertType mGeneratedFlag = GenerateFlag(veh);

                            if (mGeneratedFlag != EAlertType.Null)
                            {
                                API.ALPRScanResult r = CreateScanResult(veh, mGeneratedFlag, cam);
                                DisplayAlert(veh, cam, r);
                                return(true);
                            }
                            else
                            {
                                if (!Globals.ScanResults.ContainsKey(veh))
                                {
                                    API.ALPRScanResult r = new API.ALPRScanResult(veh, EAlertType.Null);
                                    Globals.ScanResults.Add(veh, r);
                                    return(false);
                                }
                            }
                        }
                        else
                        {
                            if (!Globals.ScanResults.ContainsKey(veh))
                            {
                                API.ALPRScanResult r = new API.ALPRScanResult(veh, EAlertType.Null);
                                Globals.ScanResults.Add(veh, r);
                                return(false);
                            }
                        }

                        return(false);
                    }
                }
            }

            return(false);
        }
Ejemplo n.º 8
0
        private void DisplayAlert(Vehicle veh, ECamera cam, API.ALPRScanResult r)
        {
            if (veh.Exists())
            {
                if (r.AlertType == EAlertType.Null)
                {
                    return;
                }

                r.LastDisplayed = DateTime.Now;

                if (!Globals.ScanResults.ContainsKey(veh))
                {
                    Globals.ScanResults.Add(veh, r);
                }
                else
                {
                    Globals.ScanResults[veh].LastDisplayed = DateTime.Now;
                }

                if (r.Persona != null)
                {
                    if (veh.HasDriver && veh.Driver.Exists())
                    {
                        Logger.LogTrivialDebug(String.Format("DisplayAlert() -- Setting Persona for driver (lic: {0}), (name: {1})", veh.LicensePlate, r.Persona.FullName));
                        Functions.SetPersonaForPed(veh.Driver, r.Persona);
                    }
                }

                if (r.RegisteredOwner != "")
                {
                    Functions.SetVehicleOwnerName(veh, r.RegisteredOwner);
                }

                string subtitle = "";

                switch (r.AlertType)
                {
                case EAlertType.Stolen_Vehicle:
                    subtitle = "~r~Stolen Vehicle";
                    break;

                case EAlertType.Owner_Wanted:
                    subtitle = "~r~Outstanding Warrant";
                    break;

                case EAlertType.Owner_License_Suspended:
                    subtitle = "~r~License Suspended";
                    break;

                case EAlertType.Owner_License_Expired:
                    subtitle = "~y~License Expired";
                    break;

                case EAlertType.Registration_Expired:
                    subtitle = "~y~Registration Expired";
                    break;

                case EAlertType.Unregistered_Vehicle:
                    subtitle = "~r~Unregistered Vehicle";
                    break;

                case EAlertType.No_Insurance:
                    subtitle = "~r~No Insurance";
                    break;

                case EAlertType.Insurance_Expired:
                    subtitle = "~y~Insurance Expired";
                    break;
                }

                if (r.IsCustomFlag)
                {
                    subtitle = r.Result;
                }

                string mColorName = "";
                try
                {
                    VehicleColor mColor = Stealth.Common.Natives.Vehicles.GetVehicleColors(veh);
                    mColorName = mColor.PrimaryColorName;
                }
                catch
                {
                    mColorName = "";
                }

                if (mColorName != "")
                {
                    mColorName = mColorName + " ";
                }

                string mTitle    = String.Format("ALPR+ [{0}]", GetCameraName(cam));
                string mVehModel = String.Format("{0}{1}", veh.Model.Name.Substring(0, 1).ToUpper(), veh.Model.Name.Substring(1).ToLower());
                string mText     = String.Format("Plate: ~b~{0} ~n~~w~{1}{2}", veh.LicensePlate, mColorName, mVehModel);

                Funcs.DisplayNotification(mTitle, subtitle, mText);

                if (Config.PlayAlertSound)
                {
                    Audio.PlaySound(Audio.ESounds.TimerStop);
                }

                API.Functions.RaiseALPRResultDisplayed(veh, new ALPREventArgs(r, cam));
            }
        }