SerialDataReceivedEventHandler не запускается - PullRequest
0 голосов
/ 11 марта 2020

Я пытался установить sh связь через последовательный порт в C#. Я вижу, что обработчик событий для чтения данных не срабатывает. Исходные строки - это формат, в котором мне нужно отправить данные в регистр (например, 0000 reg получает значение 1180).

Пожалуйста, дайте мне знать, если я что-то здесь упускаю. PS: просто новичок.

class Program
    {
        static SerialPort _serialPort;

        public static void Main()
        {


            string phyad = "17";
            string regad = "0000";
            string value = "1180";

            string readad = phyad + regad + "=" + "/";

            string combo = phyad + regad + value + "=" + "/";

            _serialPort = new SerialPort();


            _serialPort.PortName = "COM4";
            _serialPort.BaudRate = 9600;
            _serialPort.Parity = Parity.None;
            _serialPort.DataBits = 8;
            _serialPort.StopBits = StopBits.One;
            _serialPort.Handshake = Handshake.None;
            _serialPort.Open();
            _serialPort.DtrEnable = true;
            _serialPort.RtsEnable = true;



            byte[] data = Encoding.ASCII.GetBytes(combo);
            _serialPort.Write(data, 0, data.Length);

            _serialPort.DataReceived += new SerialDataReceivedEventHandler(MyDataReceivedHandler);


        }

        private static void MyDataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
        {
            Console.WriteLine(_serialPort.ReadExisting());
        }
    }
...