我使用GPS數據和NMEA句子。即使我只想看到並保存在我的richtextbox中以「$ GNGGA」和「$ GNTVG」開頭的句子,還有其他句子(行)開始於不同的代碼($ GNGLL ,$ GLGSV,$ GPGSV等)。我應該怎麼做才能讓「$ GNGGA」和「$ GNTVG」句子到Richtextbox?如何從Richtextbox中刪除不相關的句子?
這是我的代碼;
string[] gParca;
string gKG, gDB, gUydular, gYukseklik, gEnlem, gBoylam, gYataySapma, gKilitlenme, gVelocity, gSaat;
private void GPSVelocity(string NMEA2)
{
gParca = NMEA2.Split(new char[] { ',' });
switch(gParca[0])
{
case "$GNVTG":
gVelocity = gParca[7];
break;
}
private void GPSDataBilgisi(string NMEA)
{
gParca=NMEA.Split(new char[] { ',' });
switch (gParca[0])
{
//Global Positioning System Fix data
case "$GNGGA":
gParca[2] = gParca[2].Replace('.', ',');
gParca[4] = gParca[4].Replace('.', ',');
}
}
private void serialPortGPS_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
GPSDataBilgisi(serialPortGPS.ReadLine());
GPSVelocity(serialPortGPS.ReadLine());
}
private void GPSVel(string NMEA2)
{
if(checkBoxSave.Checked)
{
richTextBoxGPSData.AppendText(NMEA2);
}
}
private void GPSData(string NMEA)
{
if(checkBoxSave.Checked)
{
richTextBoxGPSData.AppendText(NMEA);
}
}
對於我的答案,我可以假設'serialPortGPS'像''ReadLine()''函數那樣具有'TextReader'對象嗎?我期望數據來自事件參數,但您的代碼似乎認爲,否則... – Flater
是的,您可以將serialPortGPS假定爲TextReader。 – Quanthema