semf
Welcome

With the semf middleware library lots of helpful modules and interfaces stand ready for your embedded projects. Because of its platform independency, the source code can easily be reused and projects can be ported so to say effortlessly.

Features

  • Real C++ object orientation with open class architecture
  • Reusable source code
  • Platform independence
  • Easily testable source code
  • Less debugging
  • Solves the big and small hurdles in everyday developer work

Value proposition

  • Saving of valuable developer time and cost reduction
  • Significant reduction in time to market
  • Fewer complaints and therefore happier customers
  • Happier, more productive developers who enjoy coding more

To start using semf, see the Design Concepts, Get Started and References.

Licensing

semf is available for commercial and non commercial usage under the following licenses:

  1. For commercial usage: querdenker engineering end user license agreement for semf library
  2. For non commercial usage: “Commons Clause” License Condition v1.0 [i.e. Apache 2.0]

Contact

If anything is unclear or you need more information from our software architects or developers, feel free to contact us - we are happy to help you out.

semf Components and Structure

The following structure reflects the folder structure of the semf library. The highlights are directly linked to the class or interface documentation.

Folder Structure

App

Collection of interfaces on application level.

Battery

Communication

Input

Output

Processing

Storage

System

Bootloader

Contains all classes to verify and flash new firmware.

Classes:

  • semf::Bootloader
  • semf::FirmwareUpdater

Communication

Communicating with any hardware outside the microcontroller, with or without a protocol.

Interfaces

Classes

Input

Contains classes for input handling except communication.

Interfaces

Classes

Output

Contains classes for output handling except communication.

Interfaces

Classes

Storage

Everything necessary for storing data in any storage and reading from it.

Classes

  • semf::EepromEmulation
  • semf::FlashVerifier
  • semf::FlashTester
  • semf::I2cEeprom
  • semf::SpiNorFlash
  • semf::Logger, semf::FlashLogger, semf::EccFlashLogger

System

Interfaces

Classes

Utils

Core In the core directory all basic semf components can be found. It contains the signal slot system, buffer implementations and logging.

Classes

Processing

Classes for processing data without using any microcontroller hardware (except core and FPU).

Classes

System

Collection of classes for storing and handling time information and organizing the timing structure.

Classes