Я ранее читал данные NMEA с GPS через последовательный порт с использованием C#. Теперь я делаю что-то подобное, но вместо GPS из сериала. Я пытаюсь прочитать заявление KISS от TNC. Я использую этот обработчик событий.Чтение двоичных данных из последовательного порта
comport.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
Адрес port_DataReceived.
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string data = comport.ReadExisting();
sBuffer = data;
try
{
this.Invoke(new EventHandler(delegate { ProcessBuffer(sBuffer); }));
}
catch { }
}
Проблема, с которой я сталкиваюсь, заключается в том, что метод вызывается несколько раз за утверждение. Поэтому метод ProcessBuffer вызывается только с частичным статусом. Как я могу прочитать все заявление?
Эта статья является фантастическим, но я борюсь с тем, когда применить кодировку он пишет о. Я попытался это сделать при определении последовательного порта следующим образом: private SerialPort comport = new SerialPort(); comport.Encoding.GetEncoding ("Windows-1252"); Добавление его там дает мне неправильную ошибку токена. Рядом с моим заявлением. comport.Encoding.GetEncoding ("Windows-1252"); Строковые данные = comport.ReadExisting(); Это дает мне ошибку: не может быть доступ с ссылкой на экземпляр. Я не знаю, где это использовать. Не могли бы вы мне помочь? – rross
в VB Dim зр Как Новый IO.Ports.SerialPort Private Sub Button1_Click (ByVal отправителем As System.Object, ByVal е Как System.EventArgs) Ханделс Button1.Click 'другие настройки последовательного порта ' перед открытым зр. Encoding = System.Text.Encoding.GetEncoding ("windows-1252") End Sub – dbasnett