Teste semf
Kontakt

Das StreamProtocol stellt die Korrektheit von Daten bei der Übertragung zwischen unterschiedlichen Systemen sicher, wie zum Beispiel zwischen PC und Mikrocontroller. Es erkennt den Begin von neuen Nachrichten, prüft die Länge und wandelt mittels DataStream alle Daten automatisch zwischen BigEndian und LittleEndian Systemen um. Die Daten werden bei Bedarf mittels einer CRC geprüft.

Komponenten

– inklusive individueller Projektintegration –

Big Endinan Littele Endian korrekte Datenübertragung

Logik

StreamProtocol

DataStream

Datenprüfung Crc Embedded C++

Datenprüfung

Software Crc

Hardware Crc

Datenübertragung Embedded C++

Datenübertragung

UART, CAN

USB VCP & Host

Ethernet

Mit dem StreamProtocol können sie unbeschwert Daten von einem auf ein anderes System übertagen. Das Protokoll wandelt die Daten intern so um, dass sie plattformunabhängig gesendet, empfangen und geprüft werden. Durch die Verwendung von eindeutigen Start- und Ende-Bedingungen, erkennt das Protokoll selbstständig Verbindungsabbrüche und Neustarts und informiert jeweils die Applikation darüber.

Das Hardwareinterface ist so gestaltet, dass es mit allen Kommuikationsschnittstellen, wie UART, USB, Ethernet oder CAN, funktioniert.

Beispiel

Im folgenden Beispiel wird das StreamProtocol in Kombination mit einer UART-Schnittstelle initialisiert.
Anschließend werden Daten gesendet.

// Communication hardware, e.g. UART
semf::Uart uart;
// Buffer for storing received data in.
uint8_t readData[1024];
// Endian setting, used for the data on the UART bus
semf::DataStream::Endian endianSetting = semf::DataStream::Endian::ENDIAN_LITTLE;
// hardware and software CRC supported
semf::Crc32Software crc;

semf::StreamProtocol streamProtocol(
	uart,  /* Communicating through UART */
	readData,  /* Buffering received data in */
	sizeof(readData),  /* Size of receive buffer */
	endianSetting,  /* BIG or LITTE endian setting possible */
	crc);  /* User specific CRC can be used */

// Create data for writing
uint8_t writeData[128];
for (size_t i=0; i < sizeof(writeData); i++
{
	writeData[i] = i;
}

// Slot for entering after data has been written
void onDataWritten()
{
	// do something
}
streamProtocol.dataWritten.connect(&onDataWritten);

// Now write the data
streamProtocol.write(writeData, sizeof(writeData));

Tutorials

Erfahren Sie mehr über die einzelnen Komponenten in unseren Tutorials. Alle Tutorials finden Sie auf der Seite Dokumentation.

Preise

StreamProtocol, DataStream & optionale Treiber

Anfragen

Embedded C++ Beratung

Fragen zur Konfiguration?
Wir beraten Sie gerne.

Rückruf anfordern