C # последовательная интерпретация данных - PullRequest
0 голосов
/ 20 сентября 2019

Как преобразовать данные, полученные из последовательного порта

У меня есть машина для измерения с металлической полосой, из которой я импортирую данные в приложение C #, используя порт RS232.Ситуация выглядит так:

на машине нет документации, поэтому, поиграв с кучей комбинаций скоростей передачи, стоповых битов и четности, мне удалось импортировать правильное значение с машины, нозначение извлекается так: 11+myvalue или 11-myvalue, где знак (+ или -) правильный, мое значение верное, за исключением того, что оно должно быть float.

    mySerialPort.BaudRate = 9600;
    mySerialPort.Parity = Parity.None;
    mySerialPort.StopBits = StopBits.One;
    mySerialPort.DataBits = 7;
    mySerialPort.Handshake = Handshake.None;
    mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
    mySerialPort.Open();
    MessageBox.Show("Connection was successfully established.");
}


private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
    SerialPort sp = (SerialPort)sender;

    indata = sp.ReadExisting();
    this.Invoke(new EventHandler(displaydata_event));
}

Пример правильных значений: должно быть: +5.23 или -12.52, но я получаю: 11+523 или 11-1252

Как мне избавиться от этого "11" и получить правильныезначение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...