예제 #1
0
        void DataLink_OnDataReceive(object sender, Base.DataLinkEventArg e)
        {
            lock (_syncObj)
            {
                System.Diagnostics.Debug.WriteLine(string.Format("State = {0}, Rcv: {1}", this.State, e.Data.Replace(System.Environment.NewLine, string.Empty)));

                if (_state == eModemState.ONLINE_DATA_STATE)
                {
                    _sb.Append(e.Data);
                    var s = _sb.ToString();
                    if (s.EndsWith(TokenNoCarrier))
                    {
                        MatchedNoCarrier();
                        this.State = eModemState.COMMAND_STATE;
                    }
                    else
                    {
                        ParseReceiveData(e);
                    }
                }
                else
                {
                    for (int i = 0; i < e.Data.Length; i++)
                    {
                        ParseChar(e.Data[i]);
                    }
                }
            }
        }
예제 #2
0
 protected virtual void ParseReceiveData(Base.DataLinkEventArg e)
 {
     this.Modem.RaiseDataReceivedEvent(e.Data);
 }