module          max_number_in_system
------          --------------------
async_line           12


    system_attribute    values
    ----------------    ------
    condition           offline, online

    user_attribute      values
    --------------      ------

    location            NULL, \
                        r0, r1, r2, r3, r4, r5, \
                        r6, r7, r8, r9, r10, r11

    type                0185, 0222
    req_condition       offline, online
    fault_acknowledged  no, yes

    description         "serial comms. line (async000-async007)", \
                        "serial comms. line (async008-async015)", \
                        "serial comms. line (async016-async023)", \
                        "serial comms. line (async024-async031)", \
                        "serial comms. line (async032-async039)", \
                        "serial comms. line (async040-async047)", \
                        "serial comms. line (async048-async055)", \
                        "serial comms. line (async056-async063)", \
                        "serial comms. line (async064-async071)", \
                        "serial comms. line (async072-async079)", \
                        "serial comms. line (async080-async087)", \
                        "serial comms. line (async088-async095)"
    alias		string


    constituent         values
    -----------         ------

    first_controller    null 0, \
                        async 0,  async 1, \
                        async 2,  async 3, \
                        async 4,  async 5, \
                        async 6,  async 7, \
                        async 8,  async 9, \
                        async 10, async 11
    second_controller   null 0, \
                        async 0,  async 1, \
                        async 2,  async 3, \
                        async 4,  async 5, \
                        async 6,  async 7, \
                        async 8,  async 9, \
                        async 10, async 11



    state                   function
    -----                   --------
    not_here		if( location == NULL )
    inaccessible	if(						       \
			      !(   first_controller->state == online	       \
			        || first_controller->state == broken	       \
			        || first_controller->state == should_be_off    \
			       )					       \
			   && !(   second_controller->state == online	       \
			        || second_controller->state == broken	       \
			        || second_controller->state == should_be_off   \
			       )					       \
			  )
    accessible_via_first   if(    condition == offline			       \
			      &&  (   first_controller->state == online	       \
			           || first_controller->state == broken	       \
			           || first_controller->state == should_be_off \
			          )					       \
			      && !(   second_controller->state == online       \
			           || second_controller->state == broken       \
			           || second_controller->state == should_be_off\
			          )					       \
			     )
    accessible_via_second  if(    condition == offline			       \
			      && !(   first_controller->state == online	       \
			           || first_controller->state == broken	       \
			           || first_controller->state == should_be_off \
			          )					       \
			      &&  (   second_controller->state == online       \
			           || second_controller->state == broken       \
			           || second_controller->state == should_be_off\
			          )					       \
			     )
    accessible_via_both    if(    condition == offline			       \
			      &&  (   first_controller->state == online	       \
			           || first_controller->state == broken	       \
			           || first_controller->state == should_be_off \
			          )					       \
			      &&  (   second_controller->state == online       \
			           || second_controller->state == broken       \
			           || second_controller->state == should_be_off\
			          )					       \
			     )
    online_via_first       if(						       \
			          (   first_controller->state == online	       \
			           || first_controller->state == broken	       \
			           || first_controller->state == should_be_off \
			          )					       \
			      && !(   second_controller->state == online       \
			           || second_controller->state == broken       \
			           || second_controller->state == should_be_off\
			          )					       \
			     )
    online_via_second      if(						       \
			         !(   first_controller->state == online	       \
			           || first_controller->state == broken	       \
			           || first_controller->state == should_be_off \
			          )					       \
			      &&  (   second_controller->state == online       \
			           || second_controller->state == broken       \
			           || second_controller->state == should_be_off\
			          )					       \
			     )
    online_via_both        if(						       \
			          (   first_controller->state == online	       \
			           || first_controller->state == broken	       \
			           || first_controller->state == should_be_off \
			          )					       \
			      &&  (   second_controller->state == online       \
			           || second_controller->state == broken       \
			           || second_controller->state == should_be_off\
			          )					       \
			     )

    transition      response
    ----------      --------
    inaccessible -> accessible_via_first \
      /etc/cms/bin/asynctl line $number $location $first_controller ;

    inaccessible -> accessible_via_second \
      /etc/cms/bin/asynctl line $number $location $second_controller ;

    inaccessible -> accessible_via_both \
      /etc/cms/bin/asynctl line $number $location \
              $first_controller $second_controller ;

    inaccessible -> online_via_first \
      /etc/cms/bin/asynctl line $number $location $first_controller ; \
      /etc/cms/bin/sysconfig -m $name -n $number -a fault_acknowledged -v no ;

    inaccessible -> online_via_second \
      /etc/cms/bin/asynctl line $number $location $second_controller ; \
      /etc/cms/bin/sysconfig -m $name -n $number -a fault_acknowledged -v no ;

    inaccessible -> online_via_both \
      /etc/cms/bin/asynctl line $number $location \
              $first_controller $second_controller ; \
      /etc/cms/bin/sysconfig -m $name -n $number -a fault_acknowledged -v no ;

    accessible_via_first -> accessible_via_both \
      /etc/cms/bin/asynctl line $number $location \
              $first_controller $second_controller ;

    accessible_via_second -> accessible_via_both \
      /etc/cms/bin/asynctl line $number $location \
              $first_controller $second_controller ;

    online_via_first -> online_via_both \
      /etc/cms/bin/asynctl line $number $location \
              $first_controller $second_controller ;

    online_via_second -> online_via_both \
      /etc/cms/bin/asynctl line $number $location \
              $first_controller $second_controller ;

    accessible_via_both -> accessible_via_first \
      /etc/cms/bin/asynctl line $number $location $first_controller ;

    accessible_via_both -> accessible_via_second \
      /etc/cms/bin/asynctl line $number $location $second_controller ;

    online_via_both -> online_via_first \
      /etc/cms/bin/asynctl line $number $location $first_controller ;

    online_via_both -> online_via_second \
      /etc/cms/bin/asynctl line $number $location $second_controller ;

    accessible_via_first -> online_via_first \
      /etc/cms/bin/sysconfig -m $name -n $number -a fault_acknowledged -v no ;

    accessible_via_second -> online_via_second \
      /etc/cms/bin/sysconfig -m $name -n $number -a fault_acknowledged -v no ;

    accessible_via_both -> online_via_both \
      /etc/cms/bin/sysconfig -m $name -n $number -a fault_acknowledged -v no ;

    online_via_first -> inaccessible \
      echo "$name $number condition offline <R1040003>controlling module bad" > /dev/FTlog:cms ;

    online_via_second -> inaccessible \
      echo "$name $number condition offline <R1040003>controlling module bad" > /dev/FTlog:cms ;

