# task_IP_diagnostic.dot
#
# N.B.  Although dot(1) doesn't care (much) about white space,
#       bin/idf_d2d DOES.  So, check before editing...
#
# Written by Rich Morin <rdm@slac.stanford.edu>

digraph G {
  label="\nEvent metrics from Slaves to Master\nDiagnostic Mode (Composite)\n"
  margin="0.1"
  node[ fontname="Arial", fontsize="10" ];
  rankdir="LR";
  ranksep="0.2";

  { rank=same;
    IPM           [ style="solid,filled",
		    shape="ellipse",       label="IP\nMaster",
                   URL="#",
                   tooltip="Instrument Physics Master task"             ];

    IPM_command   [ style="solid",
		    shape="box",           label="Command",
                   URL="#",
                   tooltip="received Command packets"                   ];

    IPM_metric    [ style="solid,filled",
		    shape="box",           label="Event\nmetric",
                   URL="#",
                   tooltip="Event metric messages from Slave tasks"     ];

    SC            [ style="solid",
		    shape="doubleoctagon", label="Spacecraft",
                   URL="#",
                   tooltip="Spacecraft"                                 ];
  }

  { rank=same;
    IPS           [ style="bold,filled",
		    shape="ellipse",       label="IP\nSlaves",
                   URL="#",
                   tooltip="Instrument Physics Slave tasks"             ];

    IPS_event     [ style="solid",
		    shape="box",           label="Event",
                   URL="#",
                   tooltip="Event data set"                             ];

    LI            [ style="solid",
		    shape="doubleoctagon", label="LAT\nInstrument",
                   URL="#",
                   tooltip="LAT Instrument"                             ];
  }

  { rank=same;
    SSR           [ style="solid",
		    shape="doubleoctagon", label="Solid State\nRecorder",
                   URL="#",
                   tooltip="Solid State Recorder"                       ];

    SSR_data      [ style="solid",
		    shape="box",           label="Assorted\ndata",
                   URL="#",
                   tooltip="Assorted data packets"                      ];
  }

  { rank=same;
    IPS_command   [ style="solid",
		    shape="box",           label="Command",
                   URL="#",
                   tooltip="forwarded Command packets"                  ];

    LI_command    [ style="solid",
		    shape="box",           label="Command",
                   URL="#",
                   tooltip="forwarded Command packets"                  ];
  }

    SSR_summary   [ style="solid",
		    shape="box",           label="Summary",
                   URL="#",
                   tooltip="Summary data packets"                       ];

  IPM           -> IPS_command	[ style="solid" ];
  IPM           -> SSR_summary	[ style="solid" ];
  IPM_command   -> IPM		[ style="solid" ];
  IPM_metric    -> IPM		[ style="solid" ];
  IPS           -> IPM_metric	[ style="solid" ];
  IPS           -> LI_command	[ style="solid" ];
  IPS           -> SSR_data	[ style="solid" ];
  IPS_command   -> IPS		[ style="solid" ];
  IPS_event     -> IPS		[ style="solid" ];
  LI            -> IPS_event	[ style="solid" ];
  LI_command    -> LI       	[ style="solid" ];
  SC            -> IPM_command	[ style="solid" ];
  SSR_data      -> SSR          [ style="solid" ];
  SSR_summary   -> SSR		[ style="solid" ];
}
