Я новичок в мире C # и последовательной связи. Прочитав несколько уроков, я сумел наладить общение. Я задал другой похожий вопрос здесь , но я не думаю, что задал правильный вопрос. Я следовал совету, приведенному в последнем вопросе, и немного изменил свой код, чтобы теперь отправлять с моего микроконтроллера последовательное сообщение, которое выглядит следующим образом:
SxxxxxxxxxxxxxxxxxxxxxxxxE
Символы X означают различные цифры, знаки плюс и минус и запятые. Строка, которую я отправляю, всегда будет одинаковой длины и всегда будет начинаться с буквы S и заканчиваться буквой E (если это плохо, я могу изменить ее). Проблема, с которой я сталкиваюсь, заключается в том, что, когда я пытаюсь прочитать последовательную строку, я получаю только части сообщения за раз, так что-то вроде этого:
Sxxxxxxx
xxxxx
xxxxESxxx
Я посылаю эту информацию непрерывно с микроконтроллера, но хочу получать к ней доступ только в определенное время, поэтому, другими словами, я пытаюсь написать функцию, которая получает все части сообщения, возвращает ее обратно в gether и затем возвращает это из моей функции. Проблема в том, что я понятия не имею, как это сделать в данный момент.
Любая помощь будет принята с благодарностью!
Это код, с которым я играюсь:
SerialPort serialHC = new SerialPort(); // serial connection dealing with Hand Controller
public string receiveCommandHC()
{
string messageHC = "";
if (serialHC.IsOpen)
{
//serialHC.DiscardInBuffer();
//messageHC = serialHC.ReadLine();
messageHC = serialHC.ReadTo("*");
//tempMsgHC = serialHC.ReadTo("*");
//i = tempMsgHC.IndexOf("S");
//tempMsgHC.Remove(0,i);
//messageHC = tempMsgHC;
//serialHC.Read(bufferHC = new byte[serialHC.BytesToRead], 0, serialHC.BytesToRead);
}
return messageHC;
Раньше конец сообщения был "*"
Только что попробовал следовать примеру здесь вот что я получаю из этого.
![Serial Message Received](https://i.stack.imgur.com/pna7e.png)
Это то, что я отправляю (используя Putty для проверки)
![enter image description here](https://i.stack.imgur.com/M5HzX.jpg)