Musiker ?

CD-Player -> Notebook -> Michpult -> 2 x 1,5 KW

Alles Klar !?

Code:
bool CRNProtokoll::SetByteData(BYTE* Buffer,BYTE Len)
{
	// Daten in den Stream schreiben und Maskieren
	// Framen
	BYTE x=0;
	BYTE bLenAdd = 1; 
	m_bLowLevel[0] = CTL_C_STX;
	for(x=0;x<Len;x++)
	{
		if((Buffer[x] & CTL_M_MASK) == CTL_C_BASE)
		{
			m_bLowLevel[x+bLenAdd] = CTL_C_PFX;
			bLenAdd++;
			m_bLowLevel[x+bLenAdd] = Buffer[x] | CTL_M_ADON;
		}
		else
		{
			m_bLowLevel[x+bLenAdd] = Buffer[x];
		}
		m_bTxBcc ^= Buffer[x];
		
		if((x+bLenAdd+2) >= 1024)
		{
			//Mehr Buffer haben wir nicht
			return false;
		}

		if(x == 127)
		{
			// Neuen Frame an fangen
			// Das müssen wir noch prüfen
			m_bLowLevel[x+bLenAdd] = m_bTxBcc;
			m_bLowLevel[x+bLenAdd+1] = CTL_C_ETX;
			m_bLowLevel[x+bLenAdd+2] = CTL_C_STX;
			bLenAdd = bLenAdd+2;
			m_bTxBcc = 0;
			m_bFrameCount ++;
		}
	}
	m_bLowLevel[x+bLenAdd] = m_bTxBcc;
	m_bLowLevel[x+bLenAdd+1] = CTL_C_ETX;
	m_bLength = Len+2+bLenAdd;

	return true;
}
Und so sieht der aufruf dann aus

Code:
void CMain::SendBuffer(BYTE *buffer,int len)
{
	// Daten zu sammenbauen und schicken

	CRNProtokoll* pBuffer = new CRNProtokoll;

	pBuffer->SetByteData(buffer,len);

	// Wie lange ist das was wir senden müssen ?
	len = pBuffer->GetLevel0(NULL);

	BYTE* SendBuffer = new BYTE[len];
	
	// Holen der daten ?
	pBuffer->GetLevel0(SendBuffer);

	CString csTrace;
	csTrace.Format("Schreibe Daten %s",BinToTrace(SendBuffer,len));
	TraceIt(csTrace);

	m_clV24.WriteOut(SendBuffer,len);

	delete SendBuffer;
	delete pBuffer;
}

Gruß