我有随机从串口读取代码,我想在特定位置获取特定数据,但是端口连续逐行发送数据,就像那样
H91F O69F S124F D-1F H94F O70F S119F D-2F H95F O69F S119F D0F H90F O70F S122F D2F H91F O69F S123F D3F H93F O69F S122F D5F H94F O71F S122F D2F H92F O69F S120F D1F H92F O69F S121F D1F H91F O69F S122F D1F H91F O70F S120F D-2F H95F O73F S121F D-4F H90F O69F S124F D-2F H94F O72F S123F D-3F H90F O70F S119F D-5F H94F O72F S122F D-6F H95F O69F S122F D-9F H90F O69F S123F D-11F
H从到最后一行一行发送F
H91F O69F S124F D-1F然后另一行H94F O70F S119F D-2F
我需要获取每个字母之间的数字,例如 between HandF和 between Oand F,数字
SerialPort serialPort = new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One);
serialPort.Open();
string datasize = serialPort.ReadTo("D");
string firstdata = "";
firstdata = serialPort.ReadExisting();
string data = "";
int firsth = 0;
int firstd = 0;
int lastf = 0;
firsth = firstdata.IndexOf("H");
firstd = firstdata.IndexOf("D" , startIndex: firsth);
lastf = firstdata.IndexOf("F" , startIndex: firstd);
data = firstdata.Substring(firsth, lastf + 1);
// MessageBox.Show(data);
int h = data.IndexOf("H");
int firstF = data.IndexOf("F" , startIndex: h);
string hdata = data.Substring(h + 1, firstF - h - 1);
// string hstring = Regex.Match(hdata, @"\d+").Value;
PulseBox.Text = hdata;
int o = data.IndexOf("O");
int secondF = data.IndexOf("F", startIndex: o);
string odata = data.Substring(o + 1, secondF - o - 1);
// string ostring = Regex.Match(odata, @"\d+").Value;
OxyBox.Text = odata;
int s = data.IndexOf("S");
int thirdF = data.IndexOf("F" , startIndex: s);
string sdata = data.Substring(s + 1, thirdF - s - 1);
// string sstring = Regex.Match(sdata, @"\d+").Value;
SystolicPressure.Text = sdata;
int d = data.IndexOf("D");
int fourthF = data.IndexOf("F", startIndex: d);
string ddata = data.Substring(d + 1, fourthF - d - 1);
// string dstring = Regex.Match(data, @"\d+").Value;
DiastolicPressure.Text = ddata;