Mit List.Add(temp) meinte ich das was ich auch vorher im Text beschrieben hab, nämlich dass du dir eine Liste definierst ( List<byte> MeineList = new List<byte>()) und der dann das jeweilige Byte hinzufügst.
Code:
//Globale Variable
bool PaketStart = false;
List<byte> meineListe = new List<byte>();
//Event
byte temp = 0;
while(temp != -1) //So lange die Variable temp ungleich -1 ist, also so lange Daten vorhanden sind mache:
{
temp = (byte)serialPort1.ReadByte(); //Lese ein byte
if(PaketStart) //Sind wir bereits in einem Datenpaket drin ?
{
if(temp == Endbedingung) //Ist das byte die Endbedingung ?
{
//Rufe eine Prozedur auf die die Daten in der Liste verarbeitet (Nur eine Kopie der Datenübergeben und die ursprüngliche liste leeren), das Datenverarbeiten macht man aus Timinggründen wohl am besten aus einem anderen Thread
}
else
{
meineListe.Add(temp); //Ansonsten füge das byte der Liste hinzu
}
}
if(temp == StartBedingung) //Wir sind in keinem Datenpaket drin, ist das gerade gelesene Byte die Startbedingung ?
{
PaketStart = true; //Ja also setzten wie die Variable PaketStart auf true so dass wir bei dem nächsten Schleifendurchlauf in if-Bedingung weiter oben springen
}
}
Lesezeichen