genivi-audio-manager@lists.genivi.org

development list for the AudioManager

View all threads

GenIVI AM (plugins) - new version 8.0 - pull request #16 merged - redesigned Generic Controller Plugin

MK
Martin Koch
Wed, Mar 18, 2020 8:12 AM

Hello all,

I just merged below described pull request #16 to the master branch and created a new version tag 8.0 on the repository https://github.com/GENIVI/AudioManagerPlugins.

Next step is planned to upload a suite of module test cases for the generic controller plugin.

Hope this will not cause any conflicts & Best regards

Martin Koch
Sr. Software Developer

ESE Engineering und Software-Entwicklung GmbH
Am Alten Bahnhof 16
D - 38122 Braunschweig

tel: +49 (0)531 23 880-30
fax: +49 (0)531 23 880-33
Geschäftsführer: Klaus Janz, Clemens Seifert, Lars Schnieder
Handelsregister Braunschweig HRB 5288


Von: genivi-audio-manager [genivi-audio-manager-bounces@lists.genivi.org]" im Auftrag von "Martin Koch [Martin.Koch@ese.de]
Gesendet: Freitag, 13. März 2020 15:57
An: genivi-audio-manager@lists.genivi.org
Betreff: [audio-manager] friendly reminder - GenIVI AM (plugins) - new pull request #16 - redesigned Generic Controller Plugin

Hello all,

regarding mentioned pull request #16 (see below) for the reworked Generic Controller Plugin, I still plan the merge for Wednesday, March 18th. So, if any of you doesn't fully agree with this, please give me a short note on your objections.

Also I have to announce that from April onward (possibly earlier due to COVIT-19 protection) I can no longer access emails received by account mkoch@de.adit-jv.com. Thus I changed my profile to the stable account martin.koch@ese.de.

Martin Koch
Sr. Software Developer

ESE Engineering und Software-Entwicklung GmbH
Am Alten Bahnhof 16
D - 38122 Braunschweig

tel: +49 (0)531 23 880-30
fax: +49 (0)531 23 880-33
Geschäftsführer: Klaus Janz, Clemens Seifert, Lars Schnieder
Handelsregister Braunschweig HRB 5288

-----Original Message-----
From: genivi-audio-manager genivi-audio-manager-bounces@lists.genivi.org On Behalf Of Koch, Martin (ESE GmbH; ADITG/ESM)
Sent: Freitag, 6. März 2020 16:48
To: GenIVI AudioManager Mailing list (genivi-audio-manager@lists.genivi.org) genivi-audio-manager@lists.genivi.org
Subject: [audio-manager] GenIVI AM (plugins) - new pull request #16 - redesigned Generic Controller Plugin

Hello all,

I have created a pull request regarding below announced new version of generic controller plugin. It can be found at https://github.com/GENIVI/AudioManagerPlugins/pull/16 - Introduce redesigned version of Generic Controller Plugin.

In short, changes can be classified as:

  • support for recent interface extensions

  • enhanced policy evaluation capabilities

  • new format of topology and behavior configuration

  • reworked code structure

  • enhanced documentation

If you agree, this will be merged  around Wednesday, March 18th. along with a major version increase to 8.0.0.

Best regards & Enjoy your weekend

Martin Koch

Advanced Driver Information Technology GmbH Engineering Software Multimedia (ESM) Robert-Bosch-Str. 200

31139 Hildesheim

Germany

Tel. +49 5121 49 6954

Fax +49 5121 49 6999

mkoch@de.adit-jv.commailto:mkoch@de.adit-jv.com

www.adit-jv.comhttp://www.adit-jv.com

ADIT is a joint venture company of Robert Bosch GmbH/Robert Bosch Car Multimedia GmbH and DENSO Corporation

Sitz: Hildesheim, Registergericht: Amtsgericht Hildesheim HRB 3438

Geschaeftsfuehrung: Wilhelm Grabow, Ken Yaguchi

Data protection information: We use your contact information and e-mail communication to process your inquiry and for internal and possibly tax documentation purposes. Your information will only be passed on to third parties if this is necessary to carry out your request or if we are legally obliged to do so.

-----Original Message-----

From: genivi-audio-manager <genivi-audio-manager-bounces@lists.genivi.orgmailto:genivi-audio-manager-bounces@lists.genivi.org> On Behalf Of Koch, Martin (ESE GmbH; ADITG/ESM)

Sent: Montag, 10. Februar 2020 14:48

To: GenIVI AudioManager Mailing list (genivi-audio-manager@lists.genivi.orgmailto:genivi-audio-manager@lists.genivi.org) <genivi-audio-manager@lists.genivi.orgmailto:genivi-audio-manager@lists.genivi.org>

Subject: [audio-manager] GenIVI Am - Generic Controller Plugin - new version announcement

Hello all,

regarding the generic controller plugin, we at ADIT have largely enhanced it to suite our customer requirements. The version maintained by ADIT and used in our customers projects is close to ~350 commits ahead of the latest common ancestor tagged '7.3' with some changes from 2016.

According to its original design, the generic controller plugin still can be characterized through below conceptual guidelines:

Topology:

  •      Elements like sources, sinks and gateway are hosted in routing-side domains
    
  •      Converters are not supported
    
  •      Sources and sinks are (mandatorily) grouped through assignment to a class element
    
  •      Allowed streaming routes are specified for mentioned class elements
    
  •      Expected system topology with domains as well as static sources, sinks and gateways shall be pre-configured in configuration-XML file
    
  •      Dynamic sources, sinks and / or gateways can be allowed. Such dynamic elements are to be registered at runtime from routing side.
    

Events:

  •      User requests from command side, as well as registration requests and change notifications from routing side are abstracted as incoming events and immediately converted to trigger objects
    
  •      A trigger object memorizes the details of an event.
    
  •      Trigger objects are queued and processed sequentially, one at a time.
    
  •      While processing a trigger, appropriate action object(s) are created and configured according to business logic
    

Action Handling:

  •      Action objects are queued and executed sequentially, one at a time
    
  •      Action objects can have embedded child actions
    
  •      Action objects, while executing, usually launch commands to the routing side and/or notifications to the command side
    
  •      Action execution may be suspended while waiting for completion of an asynchronous operation on routing side. On reception of the response it is resumed automatically.
    
  •      Missing responses (acceptable duration is configurable) cause rolling back the current action
    
  •      Error responses from routing side causes the current action to roll back
    

Project-specific policies:

  •      Project-specific business logic is represented as policy rules and given in XML format
    
  •      Action(s) to be executed are selected and configured per event details
    
  •      Event details are determined from trigger type and trigger parameters
    
  •      Action behavior can be fine-tuned through action parameters
    
  •      A family of functions and macros is available to evaluate policy conditions and action parameters
    

Our changes mainly relate to structural simplifications, policy evaluation capabilities and documentation updates.

With respect to above aspects the current version is a robust, stable and flexibly configurable component which serves the needs of several different project topologies.

Probably the most important drawback of our changes is the format change for the topology and behavior specification XML. Although the information content has evolved only slightly, the new format makes extensive use of XML attributes instead of child elements and thus allows for significantly shorter coding. The parser was updated in one shot without any backward compatibility. So upgrading to the new version requires to re-write customer configurations.

Due to the huge amount of differences between the current OSS version and the recent version hosted on ADIT servers I consider it far too expensive in effort to create a pull request for each commit or even each modification set. Therefore I propose updating the whole component in a single replacement commit.

Thus I would like to check with you

  •      if anyone needs continuous support for the old XML format because he/she tends to update, but has configurations installed with the current OSS format
    
  •      if we need to setup some kind of stabilization branch to retain the current OSS version (tag '7.6', VERSION 7.4.0 as of CMakeLists.txt)
    
  •      how we should deal with the version identifier (this should be at least a major version increase)
    

Your comments are welcome & Best regards

Martin Koch

Advanced Driver Information Technology GmbH Engineering Software Multimedia (ESM) Robert-Bosch-Str. 200

31139 Hildesheim

Germany


genivi-audio-manager mailing list

genivi-audio-manager@lists.genivi.orgmailto:genivi-audio-manager@lists.genivi.org

http://lists.genivi.org/mailman/listinfo/genivi-audio-manager_lists.genivi.org


genivi-audio-manager mailing list

genivi-audio-manager@lists.genivi.orgmailto:genivi-audio-manager@lists.genivi.org

http://lists.genivi.org/mailman/listinfo/genivi-audio-manager_lists.genivi.org


genivi-audio-manager mailing list
genivi-audio-manager@lists.genivi.org
http://lists.genivi.org/mailman/listinfo/genivi-audio-manager_lists.genivi.org

Hello all, I just merged below described pull request #16 to the master branch and created a new version tag 8.0 on the repository https://github.com/GENIVI/AudioManagerPlugins. Next step is planned to upload a suite of module test cases for the generic controller plugin. Hope this will not cause any conflicts & Best regards Martin Koch Sr. Software Developer ESE Engineering und Software-Entwicklung GmbH Am Alten Bahnhof 16 D - 38122 Braunschweig tel: +49 (0)531 23 880-30 fax: +49 (0)531 23 880-33 Geschäftsführer: Klaus Janz, Clemens Seifert, Lars Schnieder Handelsregister Braunschweig HRB 5288 ________________________________________ Von: genivi-audio-manager [genivi-audio-manager-bounces@lists.genivi.org]&quot; im Auftrag von &quot;Martin Koch [Martin.Koch@ese.de] Gesendet: Freitag, 13. März 2020 15:57 An: genivi-audio-manager@lists.genivi.org Betreff: [audio-manager] friendly reminder - GenIVI AM (plugins) - new pull request #16 - redesigned Generic Controller Plugin Hello all, regarding mentioned pull request #16 (see below) for the reworked Generic Controller Plugin, I still plan the merge for Wednesday, March 18th. So, if any of you doesn't fully agree with this, please give me a short note on your objections. Also I have to announce that from April onward (possibly earlier due to COVIT-19 protection) I can no longer access emails received by account mkoch@de.adit-jv.com. Thus I changed my profile to the stable account martin.koch@ese.de. Martin Koch Sr. Software Developer ESE Engineering und Software-Entwicklung GmbH Am Alten Bahnhof 16 D - 38122 Braunschweig tel: +49 (0)531 23 880-30 fax: +49 (0)531 23 880-33 Geschäftsführer: Klaus Janz, Clemens Seifert, Lars Schnieder Handelsregister Braunschweig HRB 5288 -----Original Message----- From: genivi-audio-manager <genivi-audio-manager-bounces@lists.genivi.org> On Behalf Of Koch, Martin (ESE GmbH; ADITG/ESM) Sent: Freitag, 6. März 2020 16:48 To: GenIVI AudioManager Mailing list (genivi-audio-manager@lists.genivi.org) <genivi-audio-manager@lists.genivi.org> Subject: [audio-manager] GenIVI AM (plugins) - new pull request #16 - redesigned Generic Controller Plugin Hello all, I have created a pull request regarding below announced new version of generic controller plugin. It can be found at https://github.com/GENIVI/AudioManagerPlugins/pull/16 - Introduce redesigned version of Generic Controller Plugin. In short, changes can be classified as: - support for recent interface extensions - enhanced policy evaluation capabilities - new format of topology and behavior configuration - reworked code structure - enhanced documentation If you agree, this will be merged around Wednesday, March 18th. along with a major version increase to 8.0.0. Best regards & Enjoy your weekend Martin Koch Advanced Driver Information Technology GmbH Engineering Software Multimedia (ESM) Robert-Bosch-Str. 200 31139 Hildesheim Germany Tel. +49 5121 49 6954 Fax +49 5121 49 6999 mkoch@de.adit-jv.com<mailto:mkoch@de.adit-jv.com> www.adit-jv.com<http://www.adit-jv.com> ADIT is a joint venture company of Robert Bosch GmbH/Robert Bosch Car Multimedia GmbH and DENSO Corporation Sitz: Hildesheim, Registergericht: Amtsgericht Hildesheim HRB 3438 Geschaeftsfuehrung: Wilhelm Grabow, Ken Yaguchi Data protection information: We use your contact information and e-mail communication to process your inquiry and for internal and possibly tax documentation purposes. Your information will only be passed on to third parties if this is necessary to carry out your request or if we are legally obliged to do so. -----Original Message----- From: genivi-audio-manager <genivi-audio-manager-bounces@lists.genivi.org<mailto:genivi-audio-manager-bounces@lists.genivi.org>> On Behalf Of Koch, Martin (ESE GmbH; ADITG/ESM) Sent: Montag, 10. Februar 2020 14:48 To: GenIVI AudioManager Mailing list (genivi-audio-manager@lists.genivi.org<mailto:genivi-audio-manager@lists.genivi.org>) <genivi-audio-manager@lists.genivi.org<mailto:genivi-audio-manager@lists.genivi.org>> Subject: [audio-manager] GenIVI Am - Generic Controller Plugin - new version announcement Hello all, regarding the generic controller plugin, we at ADIT have largely enhanced it to suite our customer requirements. The version maintained by ADIT and used in our customers projects is close to ~350 commits ahead of the latest common ancestor tagged '7.3' with some changes from 2016. According to its original design, the generic controller plugin still can be characterized through below conceptual guidelines: Topology: - Elements like sources, sinks and gateway are hosted in routing-side domains - Converters are not supported - Sources and sinks are (mandatorily) grouped through assignment to a class element - Allowed streaming routes are specified for mentioned class elements - Expected system topology with domains as well as static sources, sinks and gateways shall be pre-configured in configuration-XML file - Dynamic sources, sinks and / or gateways can be allowed. Such dynamic elements are to be registered at runtime from routing side. Events: - User requests from command side, as well as registration requests and change notifications from routing side are abstracted as incoming events and immediately converted to trigger objects - A trigger object memorizes the details of an event. - Trigger objects are queued and processed sequentially, one at a time. - While processing a trigger, appropriate action object(s) are created and configured according to business logic Action Handling: - Action objects are queued and executed sequentially, one at a time - Action objects can have embedded child actions - Action objects, while executing, usually launch commands to the routing side and/or notifications to the command side - Action execution may be suspended while waiting for completion of an asynchronous operation on routing side. On reception of the response it is resumed automatically. - Missing responses (acceptable duration is configurable) cause rolling back the current action - Error responses from routing side causes the current action to roll back Project-specific policies: - Project-specific business logic is represented as policy rules and given in XML format - Action(s) to be executed are selected and configured per event details - Event details are determined from trigger type and trigger parameters - Action behavior can be fine-tuned through action parameters - A family of functions and macros is available to evaluate policy conditions and action parameters Our changes mainly relate to structural simplifications, policy evaluation capabilities and documentation updates. With respect to above aspects the current version is a robust, stable and flexibly configurable component which serves the needs of several different project topologies. Probably the most important drawback of our changes is the format change for the topology and behavior specification XML. Although the information content has evolved only slightly, the new format makes extensive use of XML attributes instead of child elements and thus allows for significantly shorter coding. The parser was updated in one shot without any backward compatibility. So upgrading to the new version requires to re-write customer configurations. Due to the huge amount of differences between the current OSS version and the recent version hosted on ADIT servers I consider it far too expensive in effort to create a pull request for each commit or even each modification set. Therefore I propose updating the whole component in a single replacement commit. Thus I would like to check with you - if anyone needs continuous support for the old XML format because he/she tends to update, but has configurations installed with the current OSS format - if we need to setup some kind of stabilization branch to retain the current OSS version (tag '7.6', VERSION 7.4.0 as of CMakeLists.txt) - how we should deal with the version identifier (this should be at least a major version increase) Your comments are welcome & Best regards Martin Koch Advanced Driver Information Technology GmbH Engineering Software Multimedia (ESM) Robert-Bosch-Str. 200 31139 Hildesheim Germany _______________________________________________ genivi-audio-manager mailing list genivi-audio-manager@lists.genivi.org<mailto:genivi-audio-manager@lists.genivi.org> http://lists.genivi.org/mailman/listinfo/genivi-audio-manager_lists.genivi.org _______________________________________________ genivi-audio-manager mailing list genivi-audio-manager@lists.genivi.org<mailto:genivi-audio-manager@lists.genivi.org> http://lists.genivi.org/mailman/listinfo/genivi-audio-manager_lists.genivi.org _______________________________________________ genivi-audio-manager mailing list genivi-audio-manager@lists.genivi.org http://lists.genivi.org/mailman/listinfo/genivi-audio-manager_lists.genivi.org