Teste semf
Kontakt

Ein Embedded Logger ermöglicht das effiziente und sichere Lesen und Speichern von Binärdaten auf einem nichtflüchtigen Speicher. Zusätzlich zu den Daten können zu jedem Eintrag Levelinformationen, wie DEBUG, ERROR oder FATAL, und eine Zeitinformation abgelegt werden. Die Überprüfung der Richtigkeit eines Eintrags auf einem Embedded Logger wird durch die Verwendung einer CRC sichergestellt.

Komponenten

– inklusive individueller Projektintegration –

Datenspeicherung Datenübertragung Embedded Systems

Logik

Logger

Datenprüfung Crc Embedded C++

Datenprüfung

Software Crc

Hardware Crc

Datenspeicherung Nor Nand Flash Embedded C++

Datenspeicherung

NOR-Flash

NAND-Flash

EEPROM

Der Embedded Logger ist so konzipiert, dass er für Sie in wenigen Minuten einsatzbereit ist. Mit dem verwendeten Signal / Slot System ist das Handling einfach und nachvollziehbar umgesetzt.
Wahlweise kann der Logger so konfiguriert werden, dass die ältesten Einträge überschrieben werden, wenn der zugewiesene Speicher voll ist.

Der Embedded Logger von semf hat ein generisches Speicher-Interface, sodass er mit allen üblichen Speichertechnologien kombiniert werden kann. Als Speicher kann sowohl der interne Flash des Mikrocontrollers selbst, ein externer NOR- oder NAND-Flash oder ein EEPROM genutzt werden.

Um sicherzustellen, dass die ausgelesenen Daten auch korrekt sind, kann ein CRC zum Einsatz kommen. Sofern der eingesetzte Mikrocontroller eine Hardware-CRC-Einheit besitzt, kann diese verwendet werden. Alternativ stehen eine 8-, 16- und 32-Bit Software-CRC zur Verfügung. Beides kann ganz einfach mit dem Logger verbunden und damit genutzt werden. Konfigurationen ohne CRC sind ebenfalls möglich.

Beispiel

Im folgenden Beispiel wird der Logger auf Flash-Speicherbasis initialisiert.
Anschließend wird ein Eintrag geschrieben und wieder ausgelesen.

// data buffer for write and read operation
uint8_t data[100];
// RTC holding class
semf::SystemClock systemclock;
// hardware and software CRC supported
semf::Crc8Software crc; 
// class depends on the used hardware
semf::Flash flash;  					

semf::FlashLogger logger(
	flash,
	crc,
	semf::Logger::TimeFormat::DATETIME,  /* Saves DATE and TIME information */
	sizeof(data),  /* Size of data to be handled by one entry */
	true,  /* Overwrite old entries if memory is full */
	6,  /* First flash sector used by logger */
	10);  /* Last flash sector used by logger */

// Logger entry data holding object
semf::Logger::Entry entry

/**
 * 1. connectes the signals with the slots and
 * 2. starts the logger initialisation.
 */
void init()
{
	logger.initialized.connect(&onInitialized);
	logger.entryWritten.connect(&onEntryWritten);
	logger.entryAvailable.connect(&onEntryAvailable);
	
	logger.init();
}

/**
 * Slot for logger is initialized.
 * Prepares the entry object and writes the entry into the storage.
 */
void onInitialized()
{
	entry.setPayload(data);	
	entry.setLevel(semf::Logger::Level::DEBUG_LEVEL);
	entry.setTimeStamp(systemClock.now());
	logger.addEntry(entry);
}

/**
 * Slot for entry has been written.
 * Reads the just written entry information back.
 */
void onEntryWritten()
{
	logger.getEntry(entry, 0);
}

/**
 * Slot for entry has been read.
 */
void onEntryAvailable()
{
	printf("finished\n");
}

Tutorials

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

Preise

Datenlogger & optionale Treiber

Anfragen

Embedded C++ Beratung

Fragen zur Konfiguration?
Wir beraten Sie gerne.

Rückruf anfordern