Beispiel #1
0
        public static V8Obj ByteArrayToV8ob(byte[] src)
        {
            // public char[] sig; // сигнатура SIG_OBJ
            // public UInt32 len; // длина файла
            // public _version version;
            // public UInt32[] blocks; // 1018

            //V8ob Res = new V8ob();
            V8Obj Res = new V8Obj();

            Res.Sig = Encoding.UTF8.GetChars(src, 0, 8);
            Res.Len = BitConverter.ToUInt32(src, 8);
            //Res.Version.Version_1 = BitConverter.ToUInt32(src, 12);

            _Version VV = new _Version(0, 0, 0);

            VV.Version_1 = BitConverter.ToUInt32(src, 12);
            VV.Version_2 = BitConverter.ToUInt32(src, 16);
            VV.Version_3 = BitConverter.ToUInt32(src, 20);


            Res.Version = VV;
            //Res.Version.Version_1 = 1;
            //Res.Version.Version_2 = BitConverter.ToUInt32(src, 16);
            //Res.Version.Version_3 = BitConverter.ToUInt32(src, 20);
            Res.Blocks = new UInt32[1018];
            Array.Clear(Res.Blocks, 0, Res.Blocks.Length);
            Array.Copy(src, 24, Res.Blocks, 0, src.Length - 24);

            return(Res);
        }
Beispiel #2
0
        public static V838ObjData ByteArrayTov838ob(byte[] src)
        {
            // public char[] sig;       // сигнатура 0x1C 0xFD (1C File Data?)  sig[2];
            // public Int16 fatlevel;   // уровень таблицы размещения (0x0000 - в таблице blocks номера страниц с данными, 0x0001 - в таблице blocks номера страниц с таблицами размещения второго уровня, в которых уже, в свою очередь, находятся номера страниц с данными)
            // public _version version;
            // public UInt64 len;       // длина файла
            // public UInt32[] blocks;  // Реальная длина массива зависит от размера страницы и равна pagesize/4-6 (от это 1018 для 4К до 16378 для 64К)  blocks[1];

            V838ObjData Res = new V838ObjData();

            //Res.sig = Encoding.UTF8.GetChars(src, 0, 2);

            Res.Sig = new byte[2];
            Array.Copy(src, 0, Res.Sig, 0, 2);

            Res.Fatlevel = BitConverter.ToInt16(src, 2);

            _Version VV = new _Version(0, 0, 0);


            VV.Version_1 = BitConverter.ToUInt32(src, 4);
            VV.Version_2 = BitConverter.ToUInt32(src, 8);
            VV.Version_3 = BitConverter.ToUInt32(src, 12);

            Res.Version = VV;

            Res.Len = BitConverter.ToUInt64(src, 16);
            //Res.blocks = new UInt32[16378];
            Res.Blocks = new UInt32[1];
            Array.Clear(Res.Blocks, 0, Res.Blocks.Length);
            //Array.Copy(src, 24, Res.blocks, 0, src.Length - 20);
            Array.Copy(src, 24, Res.Blocks, 0, 1);

            return(Res);
        }
        /// <summary>
        /// Найти миграции.
        /// </summary>
        /// <param name="scriptsPrefix">префикс скриптов миграции.</param>
        /// <returns>Список миграций.</returns>
        private List <_Version> FindMigrations(string scriptsPrefix)
        {
            Dictionary <string, string> scripts    = FindScripts(scriptsPrefix);
            List <_Version>             migrations = new List <_Version>();

            foreach (var scriptName in scripts.Keys)
            {
                var    scriptBody      = scripts[scriptName];
                string scriptHash      = CreateMD5(scriptBody);
                var    versionFromName = GetVersionFromScriptName(scriptName);
                var    versionFromBody = GetVersionFromScriptBody(scriptBody);
                if ((versionFromName ?? versionFromBody) == null)
                {
                    logger.LogError($"Не задана версия базы данных для скрипта {scriptName}. Задается либо в названии файла типа 1_0_453_Migration name.sql, " +
                                    $"либо комментарием внутри скрипта типа --version = 1.0.453.");
                }

                _Version mig = new _Version()
                {
                    Id          = 0,
                    Name        = versionNumberComparer.SerializeVersionNumber(versionFromName ?? versionFromBody, '.'),
                    ScriptBody  = scriptBody,
                    ScriptHash  = scriptHash,
                    Description = scriptName,
                    AppliedOn   = DateTime.Now
                };
                migrations.Add(mig);
            }
            return(migrations);
        }
Beispiel #4
0
 private void Start()
 {
     tutorialAlertCanvas = GameObject.Find("TutorialAlertCanvas");
     tutorialAlertCanvas.GetComponent <CanvasGroup>().alpha = 0f;
     tutorialAlertCanvas.SetActive(false);
     playedTutorial = PlayerPrefs.HasKey(tutorialKey);
     version        = GameObject.Find("_VERSION").GetComponent <_Version>();
 }
Beispiel #5
0
        public Ets2Telemetry(Ets2SdkData raw, Ets2SdkUnmanaged rawUnmanaged)
        {
            Time = raw.time;
            Paused = (raw.paused > 0);

            TruckId = rawUnmanaged.TruckModel;
            Truck = Encoding.UTF8.GetString(raw.truckModel).Replace('\0', ' ').Trim();
            Manufacturer = Encoding.UTF8.GetString(raw.truckMake).Replace('\0', ' ').Trim();
            ManufacturerId= Encoding.UTF8.GetString(raw.truckMakeId).Replace('\0', ' ').Trim();

            Version = new _Version();
            Controls = new _Controls();
            Physics = new _Physics();
            Drivetrain = new _Drivetrain();
            Job = new _Job();
            Axilliary = new _Axilliary();
            Damage = new _Damage();
            Lights = new _Lights();

            // Version
            Version.Ets2Major = raw.ets2_version_major;
            Version.Ets2Minor = raw.ets2_version_minor;
            Version.SdkPlugin = raw.ets2_telemetry_plugin_revision;
            
            // Controls
            Controls.GameBrake = raw.gameBrake;
            Controls.GameClutch = raw.gameClutch;
            Controls.GameSteer = raw.gameSteer;
            Controls.GameThrottle = raw.gameThrottle;

            Controls.UserBrake = raw.userBrake;
            Controls.UserClutch = raw.userClutch;
            Controls.UserSteer = raw.userSteer;
            Controls.UserThrottle = raw.userThrottle;

            // Physics
            Physics.AccelerationX = raw.accelerationX;
            Physics.AccelerationY = raw.accelerationY;
            Physics.AccelerationZ = raw.accelerationZ;

            Physics.CoordinateX = raw.coordinateX;
            Physics.CoordinateY = raw.coordinateY;
            Physics.CoordinateZ = raw.coordinateZ;

            Physics.RotationX = raw.rotationX;
            Physics.RotationY = raw.rotationY;
            Physics.RotationZ = raw.rotationZ;

            Physics.Speed = raw.speed;
            Physics.SpeedKmh = raw.speed*3.6f;
            Physics.SpeedMph = Physics.SpeedKmh/1.6f;

            // Drivetrain
            Drivetrain.Adblue = raw.adblue;
            Drivetrain.AdblueConsumption = raw.adblueConsumption;
            Drivetrain.AirPressure = raw.airPressure;
            Drivetrain.BrakeTemperature = raw.brakeTemperature;
            Drivetrain.CruiseControl = raw.GetBool(Ets2SdkBoolean.CruiseControl);
            Drivetrain.CruiseControlSpeed = raw.cruiseControlSpeed;
            Drivetrain.CruiseControlSpeedKmh = raw.cruiseControlSpeed * 3.6f;
            Drivetrain.CruiseControlSpeedMph = Drivetrain.CruiseControlSpeedKmh/ 1.6f;
            Drivetrain.ElectricEnabled = raw.GetBool(Ets2SdkBoolean.ElectricEnabled);
            Drivetrain.EngineEnabled = raw.GetBool(Ets2SdkBoolean.EngineEnabled);
            Drivetrain.EngineRpm = raw.engineRpm;
            Drivetrain.EngineRpmMax = raw.engineRpmMax;

            Drivetrain.Speed = raw.speed;
            Drivetrain.SpeedKmh = raw.speed * 3.6f;
            Drivetrain.SpeedMph = Physics.SpeedKmh / 1.6f;

            Drivetrain.Fuel = raw.fuel;
            Drivetrain.FuelAvgConsumption = raw.fuelAvgConsumption;
            Drivetrain.FuelMax = raw.fuelCapacity;
            Drivetrain.FuelRate = raw.fuelRate;
            Drivetrain.FuelWarning = raw.fuelWarning; 

            Drivetrain.Gear = raw.gear;
            Drivetrain.GearRange = raw.gearRangeActive;
            Drivetrain.GearRanges = raw.gearRanges;
            Drivetrain.GearsForward = raw.gears;
            Drivetrain.GearsReverse = raw.gearsReverse;

            Drivetrain.MotorBrake = raw.GetBool(Ets2SdkBoolean.MotorBrake);
            Drivetrain.OilPressure = raw.oilPressure;
            Drivetrain.OilTemperature = raw.oilTemperature;
            Drivetrain.ParkingBrake = raw.GetBool(Ets2SdkBoolean.ParkBrake);
            Drivetrain.Retarder = raw.retarderBrake;
            Drivetrain.ShifterSlot = raw.shifterSlot;
            Drivetrain.ShifterToggle = raw.shifterToggle;
            Drivetrain.TruckOdometer = raw.truckOdometer;
            Drivetrain.WaterTemperature = raw.waterTemperature;

            // Job info:
            Job.CityDestination = Encoding.UTF8.GetString(raw.jobCityDestination).Replace('\0',' ').Trim();
            Job.CitySource = Encoding.UTF8.GetString(raw.jobCitySource).Replace('\0', ' ').Trim();
            Job.CompanyDestination = Encoding.UTF8.GetString(raw.jobCompanyDestination).Replace('\0', ' ').Trim();
            Job.CompanySource = Encoding.UTF8.GetString(raw.jobCompanySource).Replace('\0', ' ').Trim();
            Job.Deadline = raw.jobDeadline;
            Job.Income = raw.jobIncome;
            Job.Mass = raw.trailerMass;
            Job.TrailerAttached = raw.GetBool(Ets2SdkBoolean.TrailerAttached);//TODO
            Job.TrailerId = Encoding.UTF8.GetString(raw.trailerId).Replace('\0', ' ').Trim();
            Job.TrailerName = Encoding.UTF8.GetString(raw.trailerName).Replace('\0', ' ').Trim();
            Job.Cargo = rawUnmanaged.TrailerModel.Replace('\0', ' ').Trim();

            // Axilliary flags
            Axilliary.AdblueWarning = raw.GetBool(Ets2SdkBoolean.AdblueWarning);
            Axilliary.AirPressureEmergency = raw.GetBool(Ets2SdkBoolean.AirPressureEmergency);
            Axilliary.AirPressureWarning = raw.GetBool(Ets2SdkBoolean.AirPressureWarning);
            Axilliary.BatteryVoltageWarning = raw.GetBool(Ets2SdkBoolean.BatteryVoltageWarning);
            Axilliary.OilPressureWarning = raw.GetBool(Ets2SdkBoolean.OilPressureWarning);
            Axilliary.WaterTemperatureWarning = raw.GetBool(Ets2SdkBoolean.WaterTemperatureWarning);
            Axilliary.Wipers = raw.GetBool(Ets2SdkBoolean.Wipers);

            // Damage
            Damage.WearCabin = raw.wearCabin;
            Damage.WearChassis = raw.wearChassis;
            Damage.WearEnigne = raw.wearEngine;
            Damage.WearTrailer = raw.wearTrailer;
            Damage.WearTransmission = raw.wearTransmission;
            Damage.WearWheels = raw.wearWheels;

            // Lights
            Lights.Beacon = raw.GetBool(Ets2SdkBoolean.LightsBeacon);
            Lights.BlinkerLeftActive = raw.GetBool(Ets2SdkBoolean.BlinkerLeftActive);// TODO
            Lights.BlinkerLeftOn = raw.GetBool(Ets2SdkBoolean.BlinkerLeftOn);// TODO
            Lights.BlinkerRightActive = raw.GetBool(Ets2SdkBoolean.BlinkerRightActive);// TODO
            Lights.BlinkerRightOn = raw.GetBool(Ets2SdkBoolean.BlinkerRightOn);// TODO
            Lights.BrakeLight = raw.GetBool(Ets2SdkBoolean.LightsBrake);// TODO
            Lights.FrontAux = raw.GetBool(Ets2SdkBoolean.LightsAuxFront);// TODO
            Lights.HighBeams = raw.GetBool(Ets2SdkBoolean.LightsBeamHigh);// TODO
            Lights.LightsDashboard = raw.lightsDashboard;
            Lights.LowBeams = raw.GetBool(Ets2SdkBoolean.LightsBeamLow);// TODO
            Lights.ParkingLights = raw.GetBool(Ets2SdkBoolean.LightsParking);// TODO
            Lights.ReverseLight = raw.GetBool(Ets2SdkBoolean.LightsReverse);// TODO
            Lights.RoofAux = raw.GetBool(Ets2SdkBoolean.LightsAuxRoof);// TODO
        }
Beispiel #6
0
 public int Compare(_Version x, _Version y)
 {
     return(CompareMigrationNumbers(x?.Name, y?.Name));
 }
        public Ets2Telemetry(Ets2SdkData raw, Ets2SdkUnmanaged rawUnmanaged)
        {
            Time = raw.time;
            Paused = (raw.paused > 0);

            TruckId = rawUnmanaged.TruckModel;
            Truck = Encoding.UTF8.GetString(raw.truckModel).Replace('\0', ' ').Trim();
            Manufacturer = Encoding.UTF8.GetString(raw.truckMake).Replace('\0', ' ').Trim();
            ManufacturerId= Encoding.UTF8.GetString(raw.truckMakeId).Replace('\0', ' ').Trim();

            Version = new _Version();
            Controls = new _Controls();
            Physics = new _Physics();
            Drivetrain = new _Drivetrain();
            Job = new _Job();
            Axilliary = new _Axilliary();
            Damage = new _Damage();
            Lights = new _Lights();

            // Version
            Version.Ets2Major = raw.ets2_version_major;
            Version.Ets2Minor = raw.ets2_version_minor;
            Version.SdkPlugin = raw.ets2_telemetry_plugin_revision;

            // Controls
            Controls.GameBrake = raw.gameBrake;
            Controls.GameClutch = raw.gameClutch;
            Controls.GameSteer = raw.gameSteer;
            Controls.GameThrottle = raw.gameThrottle;

            Controls.UserBrake = raw.userBrake;
            Controls.UserClutch = raw.userClutch;
            Controls.UserSteer = raw.userSteer;
            Controls.UserThrottle = raw.userThrottle;

            // Physics
            Physics.AccelerationX = raw.accelerationX;
            Physics.AccelerationY = raw.accelerationY;
            Physics.AccelerationZ = raw.accelerationZ;

            Physics.CoordinateX = raw.coordinateX;
            Physics.CoordinateY = raw.coordinateY;
            Physics.CoordinateZ = raw.coordinateZ;

            Physics.RotationX = raw.rotationX;
            Physics.RotationY = raw.rotationY;
            Physics.RotationZ = raw.rotationZ;

            Physics.Speed = raw.speed;
            Physics.SpeedKmh = raw.speed*3.6f;
            Physics.SpeedMph = Physics.SpeedKmh/1.6f;

            // Drivetrain
            Drivetrain.Adblue = raw.adblue;
            Drivetrain.AdblueConsumption = raw.adblueConsumption;
            Drivetrain.AirPressure = raw.airPressure;
            Drivetrain.BrakeTemperature = raw.brakeTemperature;
            Drivetrain.CruiseControl = raw.GetBool(Ets2SdkBoolean.CruiseControl);
            Drivetrain.CruiseControlSpeed = raw.cruiseControlSpeed;
            Drivetrain.CruiseControlSpeedKmh = raw.cruiseControlSpeed * 3.6f;
            Drivetrain.CruiseControlSpeedMph = Drivetrain.CruiseControlSpeedKmh/ 1.6f;
            Drivetrain.ElectricEnabled = raw.GetBool(Ets2SdkBoolean.ElectricEnabled);
            Drivetrain.EngineEnabled = raw.GetBool(Ets2SdkBoolean.EngineEnabled);
            Drivetrain.EngineRpm = raw.engineRpm;
            Drivetrain.EngineRpmMax = raw.engineRpmMax;

            Drivetrain.Speed = raw.speed;
            Drivetrain.SpeedKmh = raw.speed * 3.6f;
            Drivetrain.SpeedMph = Physics.SpeedKmh / 1.6f;

            Drivetrain.Fuel = raw.fuel;
            Drivetrain.FuelRange = raw.fuelRange;
            Drivetrain.FuelAvgConsumption = raw.fuelAvgConsumption;
            Drivetrain.FuelMax = raw.fuelCapacity;
            Drivetrain.FuelRate = raw.fuelRate;
            Drivetrain.FuelWarningLight = raw.fuelWarning == 0 ? false : true;

            Drivetrain.Gear = raw.gear;
            Drivetrain.GearRange = raw.gearRangeActive;
            Drivetrain.GearRanges = raw.gearRanges;
            Drivetrain.GearsForward = raw.gears;
            Drivetrain.GearsReverse = raw.gearsReverse;

            // Note all gears
            var gearFw = raw.gearRatioForward;
            var gearRw = raw.gearRatioReverse;

            Array.Resize<float>(ref gearFw, Drivetrain.GearsForward);
            Array.Resize<float>(ref gearRw, Drivetrain.GearsReverse);

            Drivetrain.GearRatiosForward = gearFw;
            Drivetrain.GearRatiosReverse = gearRw;
            Drivetrain.GearRatioDifferential = raw.gearRatioDifferential;

            Drivetrain.GearDashboard =raw.gearDashboard;

            Drivetrain.MotorBrake = raw.GetBool(Ets2SdkBoolean.MotorBrake);
            Drivetrain.OilPressure = raw.oilPressure;
            Drivetrain.OilTemperature = raw.oilTemperature;
            Drivetrain.ParkingBrake = raw.GetBool(Ets2SdkBoolean.ParkBrake);
            Drivetrain.Retarder = raw.retarderBrake;
            Drivetrain.ShifterSlot = raw.shifterSlot;
            Drivetrain.ShifterToggle = raw.shifterToggle;
            Drivetrain.TruckOdometer = raw.truckOdometer;
            Drivetrain.WaterTemperature = raw.waterTemperature;

            // Job info:
            Job.CityDestination = Encoding.UTF8.GetString(raw.jobCityDestination).Replace('\0',' ').Trim();
            Job.CitySource = Encoding.UTF8.GetString(raw.jobCitySource).Replace('\0', ' ').Trim();
            Job.CompanyDestination = Encoding.UTF8.GetString(raw.jobCompanyDestination).Replace('\0', ' ').Trim();
            Job.CompanySource = Encoding.UTF8.GetString(raw.jobCompanySource).Replace('\0', ' ').Trim();
            Job.Deadline = raw.jobDeadline;
            Job.Income = raw.jobIncome;
            Job.Mass = raw.trailerMass;
            Job.TrailerAttached = raw.GetBool(Ets2SdkBoolean.TrailerAttached);//TODO
            Job.TrailerId = Encoding.UTF8.GetString(raw.trailerId).Replace('\0', ' ').Trim();
            Job.TrailerName = Encoding.UTF8.GetString(raw.trailerName).Replace('\0', ' ').Trim();
            Job.Cargo = Job.TrailerName; // trailerModel is actually deprecated

            Job.NavigationDistanceLeft = raw.routeDistance;
            Job.NavigationTimeLeft = raw.routeTime;
            Job.SpeedLimit = raw.speedLimit;

            Job.OnJob = raw.onJob != 0;
            Job.JobFinished = raw.jobFinished != 0;

            // Axilliary flags
            Axilliary.AdblueWarning = raw.GetBool(Ets2SdkBoolean.AdblueWarning);
            Axilliary.AirPressureEmergency = raw.GetBool(Ets2SdkBoolean.AirPressureEmergency);
            Axilliary.AirPressureWarning = raw.GetBool(Ets2SdkBoolean.AirPressureWarning);
            Axilliary.BatteryVoltageWarning = raw.GetBool(Ets2SdkBoolean.BatteryVoltageWarning);
            Axilliary.OilPressureWarning = raw.GetBool(Ets2SdkBoolean.OilPressureWarning);
            Axilliary.WaterTemperatureWarning = raw.GetBool(Ets2SdkBoolean.WaterTemperatureWarning);
            Axilliary.Wipers = raw.GetBool(Ets2SdkBoolean.Wipers);

            // Damage
            Damage.WearCabin = raw.wearCabin;
            Damage.WearChassis = raw.wearChassis;
            Damage.WearEnigne = raw.wearEngine;
            Damage.WearTrailer = raw.wearTrailer;
            Damage.WearTransmission = raw.wearTransmission;
            Damage.WearWheels = raw.wearWheels;

            // Lights
            Lights.Beacon = raw.GetBool(Ets2SdkBoolean.LightsBeacon);
            Lights.BlinkerLeftActive = raw.GetBool(Ets2SdkBoolean.BlinkerLeftActive);// TODO
            Lights.BlinkerLeftOn = raw.GetBool(Ets2SdkBoolean.BlinkerLeftOn);// TODO
            Lights.BlinkerRightActive = raw.GetBool(Ets2SdkBoolean.BlinkerRightActive);// TODO
            Lights.BlinkerRightOn = raw.GetBool(Ets2SdkBoolean.BlinkerRightOn);// TODO
            Lights.BrakeLight = raw.GetBool(Ets2SdkBoolean.LightsBrake);// TODO
            Lights.FrontAux = raw.GetBool(Ets2SdkBoolean.LightsAuxFront);// TODO
            Lights.HighBeams = raw.GetBool(Ets2SdkBoolean.LightsBeamHigh);// TODO
            Lights.LightsDashboard = raw.lightsDashboard;
            Lights.LowBeams = raw.GetBool(Ets2SdkBoolean.LightsBeamLow);// TODO
            Lights.ParkingLights = raw.GetBool(Ets2SdkBoolean.LightsParking);// TODO
            Lights.ReverseLight = raw.GetBool(Ets2SdkBoolean.LightsReverse);// TODO
            Lights.RoofAux = raw.GetBool(Ets2SdkBoolean.LightsAuxRoof);// TODO
        }
Beispiel #8
0
 void register(string name, string author, string version, string id)
 {
     Version = new _Version(name, author, version, id);
     //engine.EmbedHostObject("version", Version);
 }