none
Sem comunicação com Porta Serial RRS feed

  • Pergunta

  • Tudo bom?!

    Estou desenvolvendo um software para receber a informação de uma balança, após o operador pedir para imprimir(clicando no botão da balança para enviar da balança para o computador) que está na porta conectado na porta COM2. Mas não estou conseguindo. 

    Abaixo o evento DataReceived. É verificado em qual TextBox está o foco, e ele adicionará o valor da pesagem nesse TextBox.

    private void serialP_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
                if (txtP1.Focused)
                {
                    string indata = serialP.ReadExisting();
                    txtP1.Text = indata;
                    txtP2.BackColor = Color.LightGreen;
                    txtP2.Focus();
                }
                else if (txtP2.Focused)
                {
                    string indata = serialP.ReadExisting();
                    txtP2.Text = indata;
                    MessageBox.Show("Pesagem foi realizada com sucesos.");
                }
            }

    Abaixo está a linha de código que abre a conexão com a porta serial.

    string[] versaoRSplit = Variaveis.configuracao_bal.Split(';');
    
                    //Porta: COM1; Velocidade: 9600; DataBit: 8
                    string porta = versaoRSplit[0].Trim();
                    string porta_conf = porta.Replace("Porta: ", "");
                    string veloc = versaoRSplit[1].Trim();
                    string veloc_conf = veloc.Replace("Velocidade: ", "");
                    string databit = versaoRSplit[2].Trim();
                    string databit_conf = databit.Replace("DataBit: ", "");
                    try
                    {
                        serialP.Close();
                    }
                    catch
                    {
    
                    }
    
                    try
                    {
                        int velocidade = Convert.ToInt32(veloc_conf);
                        int databit_int = Convert.ToInt32(databit_conf);
                        serialP = new SerialPort(porta_conf, velocidade, Parity.None, databit_int, StopBits.One);
                        serialP.Handshake = Handshake.None;
                        serialP.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
                        serialP.ReadTimeout = 500;
                        serialP.WriteTimeout = 500;
                        serialP.Open();
    
                        txtP1.BackColor = Color.LightGreen;
                        txtP1.Focus();
                        txtP2.BackColor = Color.LightCoral;
                    }
                    catch (Exception m)
                    {
                        MessageBox.Show("Houve um erro ao testar as configurações informadas." + Environment.NewLine + "Detalhe: " + m.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

    Alguém pode me ajudar. Meu projeto não parou por essa questão.

    segunda-feira, 18 de março de 2019 18:47

Todas as Respostas

  • Boa tarde. Tudo bem?

    Obrigado por usar o fórum MSDN.

    Conseguiu algum avanço nesse caso? Se ainda não, o que precisa?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 21 de março de 2019 21:55
    Moderador