private void RemoveGarbage()
{
//scan for preambles
for (int i = 0; i < (m_local_offset - 1); i++)
{
if (m_local_buffer[i] == MSTP.MSTP_PREAMBLE1 && m_local_buffer[i + 1] == MSTP.MSTP_PREAMBLE2)
{
if (i > 0)
{
//move back
Array.Copy(m_local_buffer, i, m_local_buffer, 0, m_local_offset - i);
m_local_offset -= i;
Trace.WriteLine("Garbage", null);
}
return;
}
}
//one preamble?
if (m_local_offset > 0 && m_local_buffer[m_local_offset - 1] == MSTP.MSTP_PREAMBLE1)
{
m_local_buffer[0] = MSTP.MSTP_PREAMBLE1;
m_local_offset = 1;
Trace.WriteLine("Garbage", null);
return;
}
//no preamble?
if (m_local_offset > 0)
{
m_local_offset = 0;
Trace.WriteLine("Garbage", null);
}
}