private void Update() { Capture?.Dispose(); Capture = BitmapFactory.CreateScreenCapture(CaptureX, CaptureY, CaptureWidth, CaptureHeight, CaptureGrayScale, CaptureScale); using (var page = TesseractEngine.Process(Capture, PageSegMode.SingleChar | PageSegMode.SingleLine)) { decimal value; if (decimal.TryParse(page.GetText(), NumberStyles.Number, CultureInfo.InvariantCulture, out value)) { Value = value; LogBuilder.AppendLine(string.Format("[{0}] : {1}", DateTime.Now.ToString(), value)); SpeechMessage = new Prompt(string.Format("{0}\n{1}", Title, value)); Recognized?.Invoke(this, value, Capture); } else { LogBuilder.AppendLine(string.Format("[{0}] : {1}", DateTime.Now.ToString(), Resources.Unrecognized)); SpeechMessage = new Prompt(string.Format("{0}\n{1}", Title, Resources.Unrecognized)); Unrecognized?.Invoke(this, Capture); } if (NotifyEnabled) { SpeechSynthesizer.SpeakAsync(SpeechMessage); } } }
internal void RaiseUnrecognized(IModbusChannel channel, IReadOnlyList <byte> errorMessage) => Unrecognized?.Invoke(this, new UnrecognizedEventArgs(channel, errorMessage));