示例#1
0
        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);
                }
            }
        }
示例#2
0
 internal void RaiseUnrecognized(IModbusChannel channel, IReadOnlyList <byte> errorMessage)
 => Unrecognized?.Invoke(this, new UnrecognizedEventArgs(channel, errorMessage));