Package: xcofdk-se
Project DescriptionXCOFDKis an eXtensible,Customizable andObject-orientedFrameworkDevelopmentKit with the primary
purpose of providing:complete, reliablelife cycle management,ready-to-use runtime environment formultithreading.XCOFDK is designed by the concept ofhigh-level abstractionand implemented to enable rapid development of reliable (embedded) applications
by providing a software framework composed ofbuilding blocks calledsubsystems. 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.InstallationXCOFDK Starter Edition (SE)is available as thefree-of-chargeversion ofXCOFDKforPython 3.11, Linux.NoteBy installing you agree to the terms and conditions of use of the software (see sectionLicensingbelow).Install usingpip:$>python3.11-mpipinstallxcofdk-seQuick StartExample below illustrates most simple way to startXCOFDKin 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-mdefaultmxu------------------------------------------------------------------------------------------XCOFDKStarterEdition(SE)-v1.0----------NOTE:-----ThisversionofXCOFDKissubjecttopre-buildlimitationswithregard-----tobothconfigurationandruntimefeatures.--------------------------------------------------------------------------------[15:43:06.062XWNG]NoMainXcoUnitinstancepassedto,willcreateadefaultoneservingasmainxcounit.[15:43:06.146KPI]Doneinitial(resource)loading:0.273[15:43:06.147KPI]Frameworkisupandrunning:0.081[15:43:06.147INF]Startedframework.[15:43:06.149INF]StartingmainxcounitdefaultMainXU...WelcometoquickstartofXCOFDK.[15:43:06.154INF][XTd_501001]ExecutionofmainxcounitdefaultMainXUdoneaftersuccessfulstart.[15:43:06.155INF][XTd_501001]Gotrequesttostopframework.[15:43:06.155KPI][XTd_501001]Startingcoordinatedshutdown...[15:43:06.155INF][XTd_501001]Gotrequesttojoinframework.[15:43:06.156INF][XTd_501001]Waitingforframeworktocompleteshutdownsequence...[15:43:06.222KPI]Finishedcoordinatedshutdown.[15:43:06.255KPI]Frameworkactivetrackingduration:0.163--------------------------------------------------------------------------------Fatals(0),Errors(0),Warnings(0),Infos(6)Totalprocessingtime:0.472---------------------------------------------------------------------------------------------------------------------------------------------------------------------ResultedLCstatus:SUCCESS-----LcState[0x3500]:LcStopped,TMgrStopped,FwMainStopped,MainXcoUnitStopped-------------------------------------------------------------------------------------$>LicensingUse ofXCOFDK Starter Edition (SE)is subject to
the terms and conditions of the software. For more information refert to theXCOFDK Starter Edition (SE) Licensing page.LinksDocumentation:https://www.xcofdk.de/