Skip to main content

XCOFDK Starter Edition (SE) is a runtime environment to provide multithreading and life cycle management to programs.

Project description

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.

Project details


Release history Release notifications | RSS feed

This version

1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xcofdk_se-1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (36.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file xcofdk_se-1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for xcofdk_se-1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7e04e845f6cb596d8cac949ba1207576fd82b5149d9c613a15a510d49a594970
MD5 478f4b416e9b7a295e0a7421339058b6
BLAKE2b-256 c7678b0026ff04cebdc0782541b8cf66426e67863501729b7c3d7ce331668b61

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page