Beispiel #1
0
        public static IList <double> Difference(this IList <double> data, IMemoryManagement mm = null)
        {
            var count = data.Count;
            var res   = mm?.GetArray <double>(count) ?? new double[count];

            for (var i = 1; i < count; i++)
            {
                res[i] = data[i] - data[i - 1];
            }
            return(res);
        }
Beispiel #2
0
        // public static IList<double> Decompress(this ISecurity sec, IReadOnlyList<double> data, IMemoryManagement mm = null,
        //                                         IReadOnlyList<double> increment = null)
        // {
        //     return Decompress(sec.P)
        // }

        public static IList <double> Decompress <T>(IReadOnlyList <T> originalBars, Interval curInterval,
                                                    IReadOnlyList <double> data, IReadOnlyList <double> increment,
                                                    Interval dataInterval, IReadOnlyList <T> compressedBars = null,
                                                    IMemoryManagement mm = null)
            where T : class, IBaseBar
        {
            if (originalBars == null)
            {
                throw new ArgumentNullException(nameof(originalBars));
            }

            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            var count = originalBars.Count;

            if (compressedBars == null)
            {
                compressedBars = BarUtils.CompressTo(originalBars, dataInterval, curInterval);
            }

            var newBars           = mm?.GetArray <double>(count) ?? new double[count];
            var dataIntervalShift = dataInterval.Shift;
            var shift             = (dataIntervalShift - curInterval.Shift).Ticks;
            var step  = curInterval.Shift.Ticks;
            var steps = dataIntervalShift.Ticks / step;

            var k     = -1;
            var ticks = 0L;

            for (var i = 0; i < originalBars.Count; i++)
            {
                var bar = originalBars[i];
                var t   = bar.Ticks;
                while (t >= ticks + shift && k < data.Count - 1)
                {
                    var index = Math.Min(++k + 1, compressedBars.Count - 1);
                    ticks = compressedBars[index].Ticks;
                }

                var curStep = (ticks - t - shift) / step + 1;
                var ci      = Math.Max(k, 0);
                newBars[i] = data[ci] - increment[ci] * ((double)curStep / steps + 2);
            }

            return(newBars);
        }
 public bool Update_Tick()
 {
     PCSX2Check();
     if (pcsx2Running)
     {
         if (m == null)
         {
             if (System.Environment.OSVersion.Platform == PlatformID.Unix ||
                 System.Environment.OSVersion.Platform == PlatformID.MacOSX)
             {
                 m = new LinuxMemoryManagement(Process.GetProcessesByName(PCSX2PROCESSNAME)[0]);
             }
             else
             {
                 m = new WindowsMemoryManagement(Process.GetProcessesByName(PCSX2PROCESSNAME)[0]);
             }
         }
         SetGameOffset();
     }
     return(pcsx2Running && loggedIn);
 }
Beispiel #4
0
        private void tmr_Attach_Tick(object sender, EventArgs e)
        {
            PCSX2Check_Tick();
            if (pcsx2Running)
            {
                if (System.Environment.OSVersion.Platform == PlatformID.Unix ||
                    System.Environment.OSVersion.Platform == PlatformID.MacOSX)
                {
                    m = new LinuxMemoryManagement(Process.GetProcessesByName(PCSX2PROCESSNAME)[0]);
                }
                else
                {
                    m = new WindowsMemoryManagement(Process.GetProcessesByName(PCSX2PROCESSNAME)[0]);
                }


                SetGameOffset();
                SetComboBoxesFromData();
                tmr_Attach.Enabled  = false;
                tmr_readMem.Enabled = true;
            }
        }