public void Connect()
        {
            _comPortInUse = false;
            _phoneInitialized = false;
            _checkForMessages = true;
            _wantConnection = true;
            _silentModeSupport = false;
            _originalSilentValue = SilentModeType.Unknown;
            _messageTimer = 0;

            WriteTxDbg(String.Format("Connecting to phone ({0})...", _portName));
            comPort = new SerialPort(_portName);
            comPort.BaudRate = 19200;
            comPort.NewLine = "\r\n";
            comPort.ReadTimeout = 8000;
            comPort.WriteBufferSize = 8192;
            comPort.DataReceived += new SerialDataReceivedEventHandler(processNewData);
            if (!comPort.IsOpen) comPort.Open();

            phoneTimer = new System.Timers.Timer(700);
            phoneTimer.Elapsed += new System.Timers.ElapsedEventHandler(transmitterEvent);
            phoneTimer.Start();
        }
 public SilentModeChangeEventArgs(SilentModeType silentMode)
 {
     _silentMode = silentMode;
 }
 private void processAtBuffer()
 {
     _comPortInUse = false;
     while ((atBuffer.Count > 0) && (!atBuffer[0].EndsWith("\r")))
     {
         Console.WriteLine(string.Format("Dropping line noise: {0}", atBuffer[0]));
         atBuffer.RemoveAt(0);
     }
     GenericPacket packet = GenericPacket.FromData(atBuffer);
     WritePacketDbg(packet.DebugText);
     switch (packet.GetType().Name)
     {
         case "ModelPacket":
             break;
         case "IdentPacket":
             break;
         case "NumberPacket":
             break;
         case "PrefMessageStorePacket":
             break;
         case "SilentPacket":
             _silentModeSupport = packet.Supported;
             if ((_originalSilentValue == SilentModeType.Unknown) && packet.Type == PacketType.Read)
                 _originalSilentValue = ((packet as SilentPacket).SilentMode ? SilentModeType.On : SilentModeType.Off);
             break;
         case "SignalPacket":
             break;
         case "BatteryPacket":
             break;
         case "OperatorPacket":
             break;
         case "MessageReadPacket":
         case "MessageListPacket":
             processShortMessages((packet as SMContainingPacket).Messages);
             break;
         case "MessageDeletePacket":
             break;
         default:
             processUnknownPacket(packet);
             break;
     }
     atBuffer.Clear();
 }