
/* dot ./SW_Abstraktion-v00-02eng.txt -Tpng -o./SW_Abstraktion-v00-02eng.png */
/* dot ./SW_Abstraktion-v00-02eng.txt -Tsvg -o./SW_Abstraktion-v00-02eng.svg */
 
digraph G {
/*  ordering=out; */
  rankdir=TB;
  rank=sink;
  
/* Module */
  node [
    shape=box,
    fontsize = 20
  ];
  M_Main  [label="Main"];
  subgraph cluster_SUB_Bibliothek {
    style = dashed;
 
    M_LED_Balken [label="LED-Balken"];
    M_DMX [label ="DMX-Ansteuerung"];
    M_RMS_Bildner [label = "RMS-Bildner"];
    M_Logarithmierer [label = "Logarithmierer"];
    { rank=same; M_RMS_Bildner; M_DMX; M_LED_Balken;}  
    M_Mode [label="Betriebsarten"];
    label="Bibliothek";  
  }

  subgraph cluster_SUB_HAL {
    style = dashed;
  
  
    M_AD_Wandler [label = "AD-Wandler"];
    M_LED_Ports [label="LED-Ports"];
    M_UART [label ="UART"];
    M_Taster_Ports [label ="Taster-Ports"];
    M_Kodierer_Ports [label = "Kodierer-Ports"];
    M_System_Timer [label="Systemzeitgeber"];
    { rank=same; M_AD_Wandler;M_LED_Ports;  M_UART; M_Taster_Ports; M_Kodierer_Ports; M_System_Timer;}
    label="HAL";
/*    rank=same;*/
  }


/* Assoziationen */

  M_Main -> M_LED_Balken;
  M_Main -> M_DMX;
  M_Main -> M_Taster_Ports;
  M_Main -> M_RMS_Bildner;
  M_Main -> M_Kodierer_Ports;

  M_Main -> M_Mode;
  M_LED_Balken -> M_Logarithmierer;
  M_DMX -> M_Logarithmierer;
  M_DMX -> M_Mode;

  M_Main -> M_System_Timer;
  M_LED_Balken -> M_LED_Ports;
  M_DMX -> M_UART;
  M_RMS_Bildner -> M_AD_Wandler;
  M_Mode -> M_UART [style="invis"];

/* geht nicht  cluster_SUB_Bibliothek -> cluster_SUB_HAL; */

}