private void PortOnDataReceived(object sender, SerialDataReceivedEventArgs e) { var cnt = _port.BytesToRead; var bytes = new byte[cnt]; _port.Read(bytes, 0, cnt); var response = Encoding.ASCII.GetString(bytes); // send if anyone is listening DataReceived?.Invoke(null, new DataReceivedEventArgs(response)); if (_downloadingImage) { // caught after SI is sent _port.DataReceived -= PortOnDataReceived; RequestImage(); } Console.WriteLine(response); var pattern = @"T(?<routing>[a-zA-Z0-9]*)T(?<account>[a-zA-Z0-9]*)A(?<checknumber>[a-zA-Z0-9]*)S?"; if (Regex.IsMatch(response, pattern)) { var m = Regex.Match(response, pattern); _check = new ScannedCheck { CheckNumber = m.Groups["checknumber"].Value, AccountNumber = m.Groups["account"].Value, RoutingNumber = m.Groups["routing"].Value }; _file = new List <byte>(); // received an image _downloadingImage = true; // save image SendRequest("SI"); } }
public CheckScannedEventArgs(ScannedCheck check) { Check = check; }