Exemplo n.º 1
0
        private void pesquisaModemPortasComm()
        {
            try
            {
                bool bResultado = true;
                m_clsSerialStream = new clsSerialStream();
                m_clsSerialStream.eCallSetaWaitHandle += new clsSerialStream.delCallSetaWaitHandle(setaHandle);
                m_clsSerialStream.Open(m_strPortaCOMModem + m_nPortaCOMModem.ToString());

                // Configura porta
                m_clsSerialStream.SetPortSettings(9600);

                // Seta timeout, leitura termina após 20ms de silêncio após uma resposta
                m_clsSerialStream.SetTimeouts(0, 0, 20, 0, 20);

                // Cria o StreamWriter para enviar os comandos
                m_SysIOStreamWriter = new StreamWriter(m_clsSerialStream, System.Text.Encoding.ASCII);

                m_SysIOStreamReader = new StreamReader(m_clsSerialStream, System.Text.Encoding.ASCII);

                enviaMensagem("AT" + System.Environment.NewLine);
                lock (m_strResposta)
                {
                    while ((m_strResposta != null) && (m_strResposta.Trim() == ""))
                    {
                        m_strResposta = m_SysIOStreamReader.ReadLine();
                    }
                    if ((m_strResposta == null) || (m_strResposta.Trim().ToUpper() != "OK"))
                    {
                        m_nPortaCOMModem++;
                        bResultado = false;
                    }
                    m_strResposta = "";
                }
                System.Threading.Monitor.Exit(m_strResposta);
                if ((bResultado == false) && (m_nPortaCOMModem < 5))
                {
                    pesquisaModemPortasComm();
                }
            }
            catch (Exception err)
            {
                Object erro = err;
                m_cls_ter_tratamentoErro.trataErro(ref erro);
            }
        }
Exemplo n.º 2
0
        private void criaComunicacao()
        {
            try
            {
                if (m_clsSerialStream == null)
                {
                    m_clsSerialStream = new clsSerialStream();
                    m_clsSerialStream.eCallSetaWaitHandle += new clsSerialStream.delCallSetaWaitHandle(setaHandle);
                    m_clsSerialStream.Open(m_strPortaCOMModem + m_nPortaCOMModem.ToString());
                }

                // Configura porta
                m_clsSerialStream.SetPortSettings(9600);

                // Seta timeout, leitura termina após 20ms de silêncio após uma resposta
                m_clsSerialStream.SetTimeouts(20, 0, 0, 0, 0);

                if (m_SysIOStreamWriter == null)
                {
                    // Cria o StreamWriter para enviar os comandos
                    m_SysIOStreamWriter = new StreamWriter(m_clsSerialStream, System.Text.Encoding.ASCII);
                }

                if (m_SysIOStreamReader == null)
                {
                    m_SysIOStreamReader = new StreamReader(m_clsSerialStream, System.Text.Encoding.ASCII);
                }
                // Cria a Thread para ler as respostas
//				m_ThreadLeitorResposta = new Thread(new ThreadStart(ThreadLeResposta));
//				m_ThreadLeitorResposta.Name = "Thread de Leitura";
//				m_ThreadLeitorResposta.Start();
            }
            catch (Exception err)
            {
                Object erro = err;
                m_cls_ter_tratamentoErro.trataErro(ref erro);
            }
        }