Skip to main content

Project Description

XCOFDK is an eXtensible, Customizable and Object-oriented Framework Development Kit with the primary purpose of providing:

  • complete, reliable life cycle management,

  • ready-to-use runtime environment for multithreading.

XCOFDK is designed by the concept of high-level abstraction and implemented to enable rapid development of reliable (embedded) applications by providing a software framework composed of building blocks called subsystems. Subsystems are defined and designed by focusing on their associated, high-level functionality and responsibility represented thru their respective API (Application Programming Interface).

Key characteristics of the design of XCOFDK are:

  • completely object-oriented,

  • inspired by the design principle KISS,

  • general-purpose composition in terms of a software framework,

  • applicable for multiple programming languages, e.g. Python, C++, Java,

  • applicable for multiple operating systems, e.g Linux, Windows, macOS,

  • highly configurable, thus customizable and extensible,

  • composed of a collection of well-defined subsystems,

  • provides a runtime environment as its major service for execution of tasks,

  • thus enabling multithreading by a clear, manageable API to start/stop/abort tasks,

  • enabling development of event (or message) driven applications,

  • support for (aliveness) monitoring of tasks,

  • support for transparant communication subsystem(s),

  • support for full life cycle management,

  • support for well-defined, coordinated shutdown sequence,

  • support for tracking, handling and report of detected failures.

Installation

XCOFDK Starter Edition (SE) is available as the free-of-charge version of XCOFDK for Python 3.11, Linux.

Install using pip:

$> python3.11 -m pip install xcofdk-se

Quick Start

Example below illustrates most simple way to start XCOFDK in Python:

# file: defaultmxu.py

from xcofdk import fwapi


def RunQuickStart() -> bool:
    print('Welcome to quick start of XCOFDK.')

    # indicate that main task is finished / stopped by returning 'False'
    return False


def Main() -> int:
    mxu = fwapi.StartXcoFW(fwStartMXU_=RunQuickStart, bAutoStartMXU_=True)
    res = mxu is not None
    if res:
        res = fwapi.StopXcoFW()
    if not fwapi.JoinXcoFW():
        res = False
    return 0 if res else 1


if __name__ == "__main__":
    exit(Main())

When executed the output of the program should like this:

$> python3.11 -m defaultmxu
--------------------------------------------------------------------------------
-----
----- XCOFDK Starter Edition (SE)  -  v1.0
-----
----- NOTE:
----- This version of XCOFDK is subject to pre-build limitations with regard
----- to both configuration and runtime features.
--------------------------------------------------------------------------------
[15:43:06.062 XWNG] No MainXcoUnit instance passed to, will create a default one serving as main xcounit.
[15:43:06.146 KPI] Done initial (resource) loading: 0.273
[15:43:06.147 KPI] Framework is up and running: 0.081
[15:43:06.147 INF] Started framework.
[15:43:06.149 INF] Starting main xcounit defaultMainXU...
Welcome to quick start of XCOFDK.
[15:43:06.154 INF][XTd_501001] Execution of main xcounit defaultMainXU done after successful start.
[15:43:06.155 INF][XTd_501001] Got request to stop framework.
[15:43:06.155 KPI][XTd_501001] Starting coordinated shutdown...
[15:43:06.155 INF][XTd_501001] Got request to join framework.
[15:43:06.156 INF][XTd_501001] Waiting for framework to complete shutdown sequence...
[15:43:06.222 KPI] Finished coordinated shutdown.
[15:43:06.255 KPI] Framework active tracking duration: 0.163
--------------------------------------------------------------------------------
Fatals(0), Errors(0), Warnings(0), Infos(6)
Total processing time: 0.472
--------------------------------------------------------------------------------


--------------------------------------------------------------------------------
----- Resulted LC status : SUCCESS
-----  LcState[0x3500] : LcStopped , TMgrStopped , FwMainStopped , MainXcoUnitStopped
-----
--------------------------------------------------------------------------------
$>

Licensing

Use of XCOFDK Starter Edition (SE) is subject to the terms and conditions of the software. For more information refert to the XCOFDK Starter Edition (SE) Licensing page.

Metadata

Release files for xcofdk-se 1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for xcofdk-se 1.0
File Interpreter ABI Platform
xcofdk_se-1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details

Release files / xcofdk_se-1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl

Download URL xcofdk_se-1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Size 36.7 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7e04e845f6cb596d8cac949ba1207576fd82b5149d9c613a15a510d49a594970
BLAKE2b-256 checksum
How to use checksums
c7678b0026ff04cebdc0782541b8cf66426e67863501729b7c3d7ce331668b61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.0rc1

Release history Release notifications | RSS feed

This release

1.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page