ATSCCore uses the CoreService and MWService for connecting the platform layer and Web application layer.
Here below is the folder architecture of ATSC 3.0 stack,
ATSC3.0 Stack Core module C++ classes :
DtvKit_ATSC30Stack/src/atsc/core
ATSC3.0 Stack mw module C++ classes :
DtvKit_ATSC30Stack/src/atsc/mw
ATSC3.0 Stack Platform interface module C++ class :
DtvKit_ATSC30Stack/src/atsc/plf
ATSC3.0 Stack generic header files :
DtvKit_ATSC30Stack/src/atsc/common
ATSC3.0 Stack sample application :
DtvKit_ATSC30Stack/src/atsc/app
Documentation :
DtvKit_ATSC30Stack/doc contains ATSC3.0 stack related documents and release notes
Coreservice [/DtvKit_ATSC30Stack_M3/src/atsc/core/src/service]
Core part is used to connect the interface flow from user level to ATSC 3.0 stack layer via Middleware.
Reference files : atsc_core.h,atsc_core_service.h
Classes available : CAtscCore, CCoreService
Important Interfaces are defined below from Core:
Middleware [DtvKit_ATSC30Stack_M3/src/atsc/mw/src/service]
Middleware part is used to connect the interface flow from user level to platform layer or core layer.
Reference files : atsc_mw.h,atsc_mw_service.h
Classes available : CAtscMw , CMwService
Interfaces for tune,scan the channels as frontend level.
API's in MW which is called from Web application based on user provided functionalities and provided the required information from ATSC to User application:
Call flow as below for connecting stack and core/hal layers:
To start/init the web application layer, application will call the CAtscMw::Start() API which created the CAtscMw::ThreadServer() for handling the incoming and managing the servcer socket connection. And to tune the channel CAtscMw::TuneToChannel() based on user selected Channel Number,PlpId.
In addition, be sure that Application register the below callback for getting the frontend status and information such as Channel Number,Plp Id, Frequency,Demod Type as ATSC1.0 or ATSC3.0,Region ID, Tuner Lock/Unlock, Bandwidth, Scanning Inprogress or not.