miércoles, 24 de septiembre de 2014

Escribir en un puerto serial RS232 mediante Dynamics Ax 2012

Hace poco necesite escribir en un puerto serial para enviar información a un dispositivo que a su vez enviaba información a dispositivos inalambricos. Así que aquí esta el método para enviar lo que necesiten por RS232 o mejor conocido como puerto serial.

public void sendSerial(int _numeroLocalizador)
{
    str linea1, linea2, linea3, completo;
    boolean banderaPuerto;
    System.IO.Ports.SerialPort puerto;
    ;
    try
    {
        linea1 = int2str(_numeroLocalizador) + num2char(13) + "Movimiento de Unidad *Empresa1*" + num2char(13 );
        linea2 = num2char(127 ) + num2char( 127) + num2char (127);
        linea3 = num2char(127 ) + num2char( 127) + num2char (127);

        puerto = new System.IO.Ports.SerialPort();
        banderaPuerto = puerto.get_IsOpen();
        puerto.set_PortName( "COM1");
        puerto.set_BaudRate( 9600);
        puerto.set_Parity(System.IO.Ports.Parity::None);
        puerto.set_DataBits( 8);
        puerto.set_StopBits(System.IO.Ports.StopBits::One);
        puerto.Open();
        puerto.set_ReceivedBytesThreshold( 1);

        banderaPuerto = puerto.get_IsOpen();
        if(banderaPuerto)
        {
            puerto.Write(linea1);
            puerto.Write(linea2);
            puerto.Write(linea3);

            puerto.Dispose();
            puerto.Close();
            banderaPuerto = puerto.get_IsOpen();
            info( strFmt("Alerta enviada a localizador: %1" , _numeroLocalizador));
        }
    }
    catch (Exception::CLRError)
    {
        puerto.Dispose();
        puerto.Close();
        info(CLRInterop::getLastException());
    }
}



Por último, te invito a que te unas a la página de facebook recién creada para estar al día con las actualizaciones del blog y que podamos tener más comunicación. La meta? es hacer la comunidad de habla hispana mas grande sobre Dynamics Ax en cuestiones de desarrollo.



1 comentario:

  1. Excelente blog me ayuda mucho, no logro hacerlo a la inversa es decir leer un valor de rs232 me podrías asesorar por favor, mil gracias.

    ResponderBorrar