снифф последовательный порт - .net - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть этот код Arduino только для тестирования:

int num=0;
void setup() {
    Serial.begin(9600);
}

void loop() {
    Serial.println(num);
    num+=1;
    delay(800);
}

Теперь он печатает целое число и увеличивает его значение на единицу. Когда я открываю Serial Monitor , он печатает как положено каждые 800 мс.

My Arduino подключен к PORT-6

Теперь, если я пытаюсь получить доступ к порту, он говорит, что он используется, я пытаюсь получить доступ к нему из приложения .NET. Как я могу это сделать?

c # код, полученный из internet , немного измененный:

using System;
using System.IO.Ports;
using System.Threading;
namespace ConsoleApp1
{
    class Program
    {
        static SerialPort _serialPort;
        public static void Main()
        {
            _serialPort = new SerialPort();
            _serialPort.PortName = "COM6";//Set your board COM
            _serialPort.BaudRate = 9600;
            _serialPort.Open();
            while (true)
            {
                string a = _serialPort.ReadExisting();
                Console.WriteLine(a);
            }
        }
    }
}

Как я могу прослушать данные из этого сериалапорт? [Образовательная цель]

1 Ответ

0 голосов
/ 11 ноября 2019

Вы не можете открыть последовательный порт дважды.

Если вы хотите увидеть, что происходит через шину (анализировать), вы можете использовать виртуальные порты и переадресацию портов, см. здесь для полного примера.

Ничто не помешает вам заменить любой из инструментов, обсуждаемых в ссылке, вашим собственным кодом (.NET или другим), если они не удовлетворяют вашим потребностямили если у вас достаточно решимости заново изобрести колесо.

...