Exemple #1
0
        /// <inheritdoc />
        public void AssignAlias(Snapshot snapshot, Memory.MemoryPath targetPath, Memory.MemoryPath sourcePath)
        {
            //Collect alias indexes
            AssignCollector sourceCollector = new AssignCollector(snapshot);

            sourceCollector.ProcessPath(sourcePath);

            //Memory locations where to get data from
            ReadCollector valueCollector = new ReadCollector(snapshot);

            valueCollector.ProcessPath(sourcePath);

            //Get data from locations
            ReadWorker  worker = new ReadWorker(snapshot);
            MemoryEntry value  = worker.ReadValue(valueCollector);

            //Makes deep copy of data to prevent changes after assign alias
            TemporaryIndex            temporaryIndex = snapshot.CreateTemporary();
            MergeWithinSnapshotWorker mergeWorker    = new MergeWithinSnapshotWorker(snapshot);

            mergeWorker.MergeMemoryEntry(temporaryIndex, value);

            //Memory locations to store data into
            AssignCollector targetCollector = new AssignCollector(snapshot);

            targetCollector.AliasesProcessing = AliasesProcessing.BeforeCollecting;
            targetCollector.ProcessPath(targetPath);

            AssignAliasWorker assignWorker = new AssignAliasWorker(snapshot);

            assignWorker.AssignAlias(sourceCollector, targetCollector, temporaryIndex);

            snapshot.ReleaseTemporary(temporaryIndex);
        }
Exemple #2
0
 private void toolStripMenuItem9_Click(object sender, EventArgs e)
 {
     if (ReadWorker.IsBusy)
     {
         return;
     }
     ReadWorker.RunWorkerAsync();
 }
Exemple #3
0
        /// <inheritdoc />
        public MemoryEntry Read(Snapshot snapshot, MemoryPath path)
        {
            ReadCollector collector = new ReadCollector(snapshot);

            collector.ProcessPath(path);

            ReadWorker worker = new ReadWorker(snapshot);

            return(worker.ReadValue(collector));
        }
        private void btnRead_Click(object sender, EventArgs e)
        {
            int address = (int)numericReadStartAddress.Value;
            int length  = (int)numericReadLength.Value;

            AppendConsoleText($"Reading {length} bytes from address 0x{address:X}...\r\n");

            UpdateBackgroundWorkerActive(true);

            ReadWorker readWorker = new ReadWorker(_rtd, address, length, true);

            readWorker.WorkerReportStatus += AppendConsoleText;
            readWorker.ReadWorkerFinished += ReadWorkerFinished;
            readWorker.Start();
        }
Exemple #5
0
        static void Main()
        {
            QueryPerformanceFrequency(ref freq);



            //ReadWorker class initialized
            ReadWorker workerObject = new ReadWorker();
            Thread     workerThread = new Thread(workerObject.DoWork);

            workerThread.Start();


            Application.Run(new MousePointTracker());
        }