async void BackgoundListen(ThreadPoolTimer timer)
        {
            try
            {
                using (var response = await client.GetAsync("image/800"))
                {
                    string data = await response.Content.ReadAsStringAsync();

                    var shelfImage = JsonConvert.DeserializeObject <ModelResponse>(data);

                    byte[] img        = Convert.FromBase64String(shelfImage.img);
                    var    recogRects =
                        shelfImage.bboxes
                        .Select(bb => new AbsoluteBoundingRect
                    {
                        Y = bb[0],
                        X = bb[1],
                        W = bb[3] - bb[1],
                        H = bb[2] - bb[0]
                    }).ToList();

                    // firing from non-UI thread
                    GapDetectionEvent?.Invoke(img, recogRects);
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine($"{e.Message}");
            }
        }
示例#2
0
        private void FireGapDetectionAndCleanup(byte[] image, List <AbsoluteBoundingRect> recogRects)
        {
            // Cleanup!
            allRecognitions = default(ILookup <string, RecognitionMessage>);
            allUploads.Clear();

            // and finally fire!
            GapDetectionEvent?.Invoke(image, recogRects);
        }