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.
Links
Documentation: https://www.xcofdk.de/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
- Download URL: xcofdk_se-1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 36.7 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0rc1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e04e845f6cb596d8cac949ba1207576fd82b5149d9c613a15a510d49a594970
|
|
| MD5 |
478f4b416e9b7a295e0a7421339058b6
|
|
| BLAKE2b-256 |
c7678b0026ff04cebdc0782541b8cf66426e67863501729b7c3d7ce331668b61
|