Я пытаюсь записать команду в BeagleBone через последовательный порт, а затем прочитать этот вывод, но по некоторым причинам он, похоже, не работает. Вот мой код:
SerialPort port = new SerialPort("COM1", 115200, Parity.None, 8, StopBits.One);
port.ReadTimeout = 500;
port.WriteTimeout = 500;
port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
port.Open();
port.WriteLine("debian\r\n"); //default login username
port.WriteLine("temppwd\r\n");//default login password
void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string message = port.ReadExisting();
System.Diagnostics.Debug.WriteLine(message);
}
Например, port.WriteLine("debian\r\n")
, кажется, работает правильно, но сразу после этого port.WriteLine("temppwd\r\n")
, кажется, не работает. Я ожидаю увидеть debian@beaglebone:~$:
распечатанным в консоли отладки, но после port.WriteLine("debian\r\n")
все, что распечатано, является пустым пространством. Это потому, что мне нужно дождаться выполнения первой команды перед второй? Насколько я знаю, я думал, что SerialDataReceivedEventHandler
позаботился об этом. Спасибо, любая помощь будет принята с благодарностью.
РЕДАКТИРОВАТЬ : Просто чтобы уточнить, я могу установить sh соединение с SB C, потому что в консоли отладки по умолчанию текст при входе в систему распечатывается.