public override async Task <bool> DoWork(WorkItem triggeredWorkItem) { if (_cacheMode == CacheMode.Capture) { lock (_cache) { Logger.Info("Check if screenshot should be cached"); long ticksNow = DateTime.Now.Ticks; TrimCache(ticksNow); if (_ticksLastItemCached < (ticksNow - TICKS_TO_WAIT)) { _ticksLastItemCached = ticksNow; ImageCacheItem cacheItem = new ImageCacheItem(); cacheItem.TickTimeTaken = ticksNow; Bitmap i = RenderImage.BitmapFromBmpByteArray((byte[])triggeredWorkItem.WorkItemContext); cacheItem.ImageTaken = i; cacheItem.RegionWithMotion = Program.MotionDetectionWorker.GetMovingRegion(i); //string text = OcrHelperWindows.GetFullTextFromImage(i).GetAwaiter().GetResult(); //cacheItem.TextEmbeddingOfScreen = Embeddings.GetEmbeddingFromText(text).GetAwaiter().GetResult(); _cache.Add(cacheItem); } } } return(true); }
public override async Task <bool> DoWork(WorkItem triggeredWorkItem) { Logger.Info("Generate the snapshot matrix"); Bitmap i = RenderImage.BitmapFromBmpByteArray((byte[])triggeredWorkItem.WorkItemContext); _thisSnapshot = new SensorSnapshot(SENSOR_HORIZONTAL, SENSOR_VERTICAL); _thisSnapshot.TakeSnapshot(i); if (_lastSnapshot != null) { _delta.Update(_lastSnapshot, _thisSnapshot); } //Do stuff _lastSnapshot = _thisSnapshot; _thisSnapshot = null; return(true); }