Changeset 423 for topdoc


Ignore:
Timestamp:
Mar 30, 2011 5:53:17 PM (14 years ago)
Author:
jemian
Message:

fixed handling of PV declared with no fields - identified problem spots for other problems encountered while trying to process actual XSD IOCs

Location:
topdoc
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified topdoc/IOCs/12id/12ida1App/Db/test.db

    r375 r423  
    11# test a case where no quotations are used around the FREQ macro below,
    22# from stdApp/Db/scaler32.db
     3
     4grecord(bi,"$(P)$(S)Busy")
    35
    46grecord(scaler,"$(P)$(S)") {
  • TabularUnified topdoc/IOCs/12id/iocBoot/ioc12ida1/aps_st.cmd

    r376 r423  
    6060ioc12ida1VX_registerRecordDeviceDriver(pdbbase)
    6161
     62dbLoadTemplates("test.substitutions")
     63dbLoadRecords("12ida1App/Db/test.db","P=prjTest:,S=s,DTYP=Asyn Scaler,FREQ=50000000,OUT=@asyn(mcaSIS3820/1 0)", "../../IOCs/12id")
     64
    6265dbLoadRecords("$(TOP)/12ida1App/Db/test.db","P=prj:,S=s,DTYP=Asyn Scaler,FREQ=50000000,OUT=@asyn(mcaSIS3820/1 0)")
    63 dbLoadTemplates("test.substitutions")
    6466
    6567# user-assignable ramp/tweak
  • TabularUnified topdoc/IOCs/12id/iocBoot/ioc12ida1/test.substitutions

    r362 r423  
    77{test:3820:  scaler1,  "Asyn Scaler",  "@asyn(mcaSIS3820/1 0)",  50000000}
    88}
     9
     10file "$(MOTOR)/db/motor.db"
     11{
     12pattern
     13{P,             N,      M,              DTYP,                   C,      S,      DESC,                   EGU,            DIR,    VELO,   VBAS,   ACCL,   BDST,   BVEL,   BACC,   MRES,   PREC,   DHLM,   DLLM,   INIT}
     14{30idb:,        1,      m$(N),  "OMS VME58",    0,      0,      "motor $(N)",   degrees,        Pos,    1,              .1,             .2,             0,              1,              .2,             2.5e-4, 5,              100,    -100,   ""}
     15}
  • TabularUnified topdoc/src/TopDoc/CmdReader.py

    r407 r423  
    208208                # strip the enclosing quotes (single or double)
    209209                args.append( utilities.strip_quotes( tkn['tokStr'] ) )
     210        directory = ""
    210211        if len(args) == 1:
    211212            # no macros
     
    216217                k, v = pair.split("=")
    217218                macros[k.strip()] = v.strip()
     219        elif len(args) == 3:
     220            macros = {}
     221            for pair in args[1].split(","):
     222                k, v = pair.split("=")
     223                macros[k.strip()] = v.strip()
     224            directory = args[2]
    218225        else:
    219226            msg = "wrong number of arguments to %s:", tokens[0]['tokStr'], args
    220227            raise Exception, msg
    221228        # need to substitute macros in the file name
    222         dbFile = utilities.replaceMacros(args[0], self.tables['env'].table)
     229        dbFile = os.path.join(directory, utilities.replaceMacros(args[0], self.tables['env'].table))
    223230        if dbFile in self.cache_dbFile:
    224231            db = self.cache_dbFile[dbFile]
  • TabularUnified topdoc/src/TopDoc/EpicsDatabase.py

    r400 r423  
    151151                    'NAME': name     # record name
    152152                }
    153                 tkn = self.tokenLog.nextActionable() # load the next token
    154                 while tkn['tokStr'] != "}":
    155                     if tkn['tokName'] == 'NAME' and tkn['tokStr'] in ('field'):
    156                         tkn = self.tokenLog.nextActionable() # "(" character
    157                         argText = tkn['tokLine'].strip()[len('field'):]
    158                         argText = utilities.strip_outer_pair(argText, '(', ')')
    159                         pos = argText.find(",")
    160                         if pos >= 0 and pos < len(argText):
    161                             field = argText[:pos]
    162                             value = utilities.strip_quotes( argText[pos+1:].strip() )
    163                             fieldDict[field] = value
    164                             tkn = self.advanceToNewLine()
    165                             tkn = self.tokenLog.nextActionable()
     153                # trap case where there are NO field declarations
     154                if not (tkn == None or tkn['tokName'] == 'NAME' and tkn['tokStr'] in ('record', 'grecord')):
     155                    tkn = self.tokenLog.nextActionable() # load the next token
     156                    while tkn['tokStr'] != "}":
     157                        if tkn['tokName'] == 'NAME' and tkn['tokStr'] in ('field'):
     158                            tkn = self.tokenLog.nextActionable() # "(" character
     159                            argText = tkn['tokLine'].strip()[len('field'):]
     160                            argText = utilities.strip_outer_pair(argText, '(', ')')
     161                            pos = argText.find(",")
     162                            if pos >= 0 and pos < len(argText):
     163                                field = argText[:pos]
     164                                value = utilities.strip_quotes( argText[pos+1:].strip() )
     165                                fieldDict[field] = value
     166                                tkn = self.advanceToNewLine()
     167                                tkn = self.tokenLog.nextActionable()
     168                            else:
     169                                Exception, "Could not handle this case: " + tkn['tokLine']
    166170                        else:
    167                             Exception, "Could not handle this case: " + tkn['tokLine']
    168                     else:
    169                         linenum = tkn['start'][0]
    170                         pprint.pprint( fieldDict )
    171                         msg = "(%s,%d) did not find field: %s" % (self.absolute_filename, linenum, str(tkn))
    172                         raise Exception, msg
     171                            linenum = tkn['start'][0]
     172                            pprint.pprint( fieldDict )
     173                            msg = "(%s,%d) did not find field: %s" % (self.absolute_filename, linenum, str(tkn))
     174                            raise Exception, msg
     175                    tkn = self.tokenLog.nextActionable()
    173176                pvDict[name] = fieldDict
    174                 tkn = self.tokenLog.nextActionable()
    175177            else:
    176178                linenum = tkn['start'][0]
  • TabularUnified topdoc/src/TopDoc/EpicsTemplate.py

    r398 r423  
    160160                # this may fail for parameters such as D01 and P212B
    161161                # FIXME: consider making macro recognition more robust
     162                # TODO: this fails for m$(N) where N is another pattern (added to test.substitutions)
    162163                if key != ',':
    163164                    keyList.append( key )
  • TabularUnified topdoc/src/TopDoc/config.xml

    r404 r423  
    1515  xsi:schemaLocation="http://gov.anl.aps.bcda/TopDoc/1.0 config.xsd"
    1616  >
     17
     18  <top project="junk" name="test something provisional">
     19    <rootDir>../../IOCs/12id</rootDir>
     20    <iocs><ioc iocDir="iocBoot/ioc12ida1" cmdFile="st.cmd"/></iocs>
     21    <docsDir>documentation</docsDir>
     22  </top>
     23
     24  <top name="APS/XSD 30idb (synApps_5_2_1)" project="30idb">
     25    <rootDir>/net/s30dserv/xorApps/epics/synApps_5_2_1/ioc/30idb</rootDir>
     26    <iocs>
     27      <ioc iocDir="iocBoot/ioc30idb" cmdFile="st.cmd"/>
     28    </iocs>
     29    <docsDir>documentation</docsDir>
     30  </top>
    1731
    1832  <top project="DESY_SoftIOC" name="DESY SoftIOC (OpcIoc) on como">
  • TabularUnified topdoc/src/TopDoc/topdoc.xsl

    r380 r423  
    150150      <xsl:choose>
    151151        <xsl:when test="count(dictionary/item[@key='value']/dictionary/item)>0">
    152           <table border="2">
     152          <table border="2" width="100%">
    153153            <thead>
    154154              <tr><th>PV name</th><th>record type</th></tr>
  • TabularUnified topdoc/src/discover/config.xml

    r407 r423  
    11<?xml version="1.0" encoding="UTF-8"?>
    22<?xml-stylesheet type="text/xsl" href="config.xsl"?>
    3 <TopDoc-config version="1.0" written="2011-03-22 11:15:35.996330">
    4   <top name="26idc1" project="APS/XSD 26idc1 (synApps_5_2)">
    5     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_2/ioc/26idc1</rootDir>
    6     <iocs>
    7       <ioc iocDir="iocBoot/ioc26idc" cmdFile="st.cmd"/>
    8     </iocs>
    9     <docsDir>documentation</docsDir>
    10   </top>
    11   <top name="11bmbRSC" project="APS/XSD 11bmbRSC (synApps_5_2_1)">
    12     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_2_1/ioc/11bmbRSC</rootDir>
    13     <iocs>
    14       <ioc iocDir="iocBoot/ioc11bmbRSC" cmdFile="st.cmd"/>
    15     </iocs>
    16     <docsDir>documentation</docsDir>
    17   </top>
    18   <top name="12idsclr" project="APS/XSD 12idsclr (synApps_5_2_1)">
    19     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_2_1/ioc/12idsclr</rootDir>
    20     <iocs>
    21       <ioc iocDir="iocBoot/ioc12idsclr" cmdFile="st.cmd"/>
    22     </iocs>
    23     <docsDir>documentation</docsDir>
    24   </top>
    25   <top name="15iddUSX" project="APS/XSD 15iddUSX (synApps_5_2_1)">
    26     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_2_1/ioc/15iddUSX</rootDir>
    27     <iocs>
    28       <ioc iocDir="iocBoot/ioc15iddUSX" cmdFile="st.cmd"/>
    29     </iocs>
    30     <docsDir>documentation</docsDir>
    31   </top>
    32   <top name="26idaBDA" project="APS/XSD 26idaBDA (synApps_5_2_1)">
    33     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_2_1/ioc/26idaBDA</rootDir>
    34     <iocs>
    35       <ioc iocDir="iocBoot/ioc26idaBDA" cmdFile="st.cmd"/>
    36     </iocs>
    37     <docsDir>documentation</docsDir>
    38   </top>
    39   <top name="26idaWBS" project="APS/XSD 26idaWBS (synApps_5_2_1)">
    40     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_2_1/ioc/26idaWBS</rootDir>
    41     <iocs>
    42       <ioc iocDir="iocBoot/ioc26idaWBS" cmdFile="st.cmd"/>
    43     </iocs>
    44     <docsDir>documentation</docsDir>
    45   </top>
    46   <top name="26idamir" project="APS/XSD 26idamir (synApps_5_2_1)">
    47     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_2_1/ioc/26idamir</rootDir>
    48     <iocs>
    49       <ioc iocDir="iocBoot/ioc26idamir" cmdFile="st.cmd"/>
    50     </iocs>
    51     <docsDir>documentation</docsDir>
    52   </top>
    53   <top name="26idbCHP" project="APS/XSD 26idbCHP (synApps_5_2_1)">
    54     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_2_1/ioc/26idbCHP</rootDir>
    55     <iocs>
    56       <ioc iocDir="iocBoot/ioc26idbCHP" cmdFile="st.cmd"/>
    57     </iocs>
    58     <docsDir>documentation</docsDir>
    59   </top>
    60   <top name="26idbDCM" project="APS/XSD 26idbDCM (synApps_5_2_1)">
    61     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_2_1/ioc/26idbDCM</rootDir>
    62     <iocs>
    63       <ioc iocDir="iocBoot/ioc26idbDCM" cmdFile="st.cmd"/>
    64     </iocs>
    65     <docsDir>documentation</docsDir>
    66   </top>
    67   <top name="26idbDMM" project="APS/XSD 26idbDMM (synApps_5_2_1)">
    68     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_2_1/ioc/26idbDMM</rootDir>
    69     <iocs>
    70       <ioc iocDir="iocBoot/ioc26idbDMM" cmdFile="st.cmd"/>
    71     </iocs>
    72     <docsDir>documentation</docsDir>
    73   </top>
    74   <top name="26idbPBS" project="APS/XSD 26idbPBS (synApps_5_2_1)">
    75     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_2_1/ioc/26idbPBS</rootDir>
    76     <iocs>
    77       <ioc iocDir="iocBoot/ioc26idbPBS" cmdFile="st.cmd"/>
    78     </iocs>
    79     <docsDir>documentation</docsDir>
    80   </top>
    81   <top name="26idbpol" project="APS/XSD 26idbpol (synApps_5_2_1)">
    82     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_2_1/ioc/26idbpol</rootDir>
    83     <iocs>
    84       <ioc iocDir="iocBoot/ioc26idbpol" cmdFile="st.cmd"/>
    85     </iocs>
    86     <docsDir>documentation</docsDir>
    87   </top>
    88   <top name="26idc1" project="APS/XSD 26idc1 (synApps_5_2_1)">
    89     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_2_1/ioc/26idc1</rootDir>
    90     <iocs>
    91       <ioc iocDir="iocBoot/ioc26idc1" cmdFile="st.cmd"/>
    92     </iocs>
    93     <docsDir>documentation</docsDir>
    94   </top>
    95   <top name="26idcDET" project="APS/XSD 26idcDET (synApps_5_2_1)">
    96     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_2_1/ioc/26idcDET</rootDir>
    97     <iocs>
    98       <ioc iocDir="iocBoot/ioc26idcDET" cmdFile="st.cmd"/>
    99     </iocs>
    100     <docsDir>documentation</docsDir>
    101   </top>
    102   <top name="26idcDGS" project="APS/XSD 26idcDGS (synApps_5_2_1)">
    103     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_2_1/ioc/26idcDGS</rootDir>
    104     <iocs>
    105       <ioc iocDir="iocBoot/ioc26idcDGS" cmdFile="st.cmd"/>
    106     </iocs>
    107     <docsDir>documentation</docsDir>
    108   </top>
    109   <top name="26idcNES" project="APS/XSD 26idcNES (synApps_5_2_1)">
    110     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_2_1/ioc/26idcNES</rootDir>
    111     <iocs>
    112       <ioc iocDir="iocBoot/ioc26idcNES" cmdFile="st.cmd"/>
    113     </iocs>
    114     <docsDir>documentation</docsDir>
    115   </top>
    116   <top name="26idcnpi" project="APS/XSD 26idcnpi (synApps_5_3)">
    117     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_3/ioc/26idcnpi</rootDir>
    118     <iocs>
    119       <ioc iocDir="iocBoot/ioc26idcnpi" cmdFile="st.cmd"/>
    120     </iocs>
    121     <docsDir>documentation</docsDir>
    122   </top>
    123   <top name="26idctsra" project="APS/XSD 26idctsra (synApps_5_3)">
    124     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_3/ioc/26idctsra</rootDir>
    125     <iocs>
    126       <ioc iocDir="iocBoot/ioc26idctsra" cmdFile="st.cmd"/>
    127     </iocs>
    128     <docsDir>documentation</docsDir>
    129   </top>
    130   <top name="26idctsrb" project="APS/XSD 26idctsrb (synApps_5_3)">
    131     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_3/ioc/26idctsrb</rootDir>
    132     <iocs>
    133       <ioc iocDir="iocBoot/ioc26idctsrb" cmdFile="st.cmd"/>
    134     </iocs>
    135     <docsDir>documentation</docsDir>
    136   </top>
    137   <top name="26idctsrc" project="APS/XSD 26idctsrc (synApps_5_3)">
    138     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_3/ioc/26idctsrc</rootDir>
    139     <iocs>
    140       <ioc iocDir="iocBoot/ioc26idctsrc" cmdFile="st.cmd"/>
    141     </iocs>
    142     <docsDir>documentation</docsDir>
    143   </top>
    144   <top name="26idpvc" project="APS/XSD 26idpvc (synApps_5_3)">
    145     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_3/ioc/26idpvc</rootDir>
    146     <iocs>
    147       <ioc iocDir="iocBoot/ioc26idpvc" cmdFile="st.cmd"/>
    148     </iocs>
    149     <docsDir>documentation</docsDir>
    150   </top>
    151   <top name="26idsclr1" project="APS/XSD 26idsclr1 (synApps_5_3)">
    152     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_3/ioc/26idsclr1</rootDir>
    153     <iocs>
    154       <ioc iocDir="iocBoot/ioc26idsclr1" cmdFile="st.cmd"/>
    155     </iocs>
    156     <docsDir>documentation</docsDir>
    157   </top>
    158   <top name="delaygen" project="APS/XSD delaygen (synApps_5_3)">
    159     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_3/ioc/delaygen</rootDir>
    160     <iocs>
    161       <ioc iocDir="iocBoot/iocdelaygen" cmdFile="st.cmd"/>
    162     </iocs>
    163     <docsDir>documentation</docsDir>
    164   </top>
    165   <top name="dg645" project="APS/XSD dg645 (synApps_5_3)">
    166     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_3/ioc/dg645</rootDir>
    167     <iocs>
    168       <ioc iocDir="iocBoot/iocdg645" cmdFile="st.cmd"/>
    169     </iocs>
    170     <docsDir>documentation</docsDir>
    171   </top>
    172   <top name="dmk11" project="APS/XSD dmk11 (synApps_5_3)">
    173     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_3/ioc/dmk11</rootDir>
    174     <iocs>
    175       <ioc iocDir="iocBoot/iocdmk11" cmdFile="st.cmd"/>
    176     </iocs>
    177     <docsDir>documentation</docsDir>
    178   </top>
    179   <top name="xia1" project="APS/XSD xia1 (synApps_5_3)">
    180     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_3/ioc/xia1</rootDir>
    181     <iocs>
    182       <ioc iocDir="iocBoot/iocxia1" cmdFile="st.cmd"/>
    183     </iocs>
    184     <docsDir>documentation</docsDir>
    185   </top>
    186   <top name="15iddLAX" project="APS/XSD 15iddLAX (synApps_5_4)">
    187     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_4/ioc/15iddLAX</rootDir>
    188     <iocs>
    189       <ioc iocDir="iocBoot/ioc15iddLAX" cmdFile="st.cmd"/>
    190     </iocs>
    191     <docsDir>documentation</docsDir>
    192   </top>
    193   <top name="12bm" project="APS/XSD 12bm (synApps_5_4_2)">
    194     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_4_2/ioc/12bm</rootDir>
    195     <iocs>
    196       <ioc iocDir="iocBoot/ioc12bma" cmdFile="st.cmd"/>
    197       <ioc iocDir="iocBoot/ioc12bmb" cmdFile="st.cmd"/>
    198     </iocs>
    199     <docsDir>documentation</docsDir>
    200   </top>
    201   <top name="12id" project="APS/XSD 12id (synApps_5_4_2)">
    202     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_4_2/ioc/12id</rootDir>
    203     <iocs>
    204       <ioc iocDir="iocBoot/ioc12ida1" cmdFile="st.cmd"/>
    205       <ioc iocDir="iocBoot/ioc12ida2" cmdFile="st.cmd"/>
    206       <ioc iocDir="iocBoot/ioc12idb" cmdFile="st.cmd"/>
    207       <ioc iocDir="iocBoot/ioc12idc" cmdFile="st.cmd"/>
    208       <ioc iocDir="iocBoot/ioc12idd" cmdFile="st.cmd"/>
    209     </iocs>
    210     <docsDir>documentation</docsDir>
    211   </top>
    212   <top name="11bm" project="APS/XSD 11bm (synApps_5_5)">
    213     <rootDir>/net/s12dserv/xorApps/epics/synApps_5_5/ioc/11bm</rootDir>
    214     <iocs>
    215       <ioc iocDir="iocBoot/ioc11bma" cmdFile="st.cmd"/>
    216       <ioc iocDir="iocBoot/ioc11bmb" cmdFile="st.cmd"/>
    217     </iocs>
    218     <docsDir>documentation</docsDir>
    219   </top>
    220   <top name="1bm" project="APS/XSD 1bm (synApps_5_2_1)">
     3<TopDoc-config version="1.0" written="2011-03-30 17:05:03.687027">
     4  <top name="APS/XSD 1bm (synApps_5_2_1)" project="1bm">
    2215    <rootDir>/net/s1dserv/xorApps/epics/synApps_5_2_1/ioc/1bm</rootDir>
    2226    <iocs>
    223       <ioc iocDir="iocBoot/ioc1bma" cmdFile="st.cmd"/>
    2247      <ioc iocDir="iocBoot/ioc1bmb" cmdFile="st.cmd"/>
    2258      <ioc iocDir="iocBoot/ioc1bmc" cmdFile="st.cmd"/>
     
    22710    <docsDir>documentation</docsDir>
    22811  </top>
    229   <top name="1id" project="APS/XSD 1id (synApps_5_2_1)">
     12  <top name="APS/XSD 1id (synApps_5_2_1)" project="1id">
    23013    <rootDir>/net/s1dserv/xorApps/epics/synApps_5_2_1/ioc/1id</rootDir>
    23114    <iocs>
     
    23821    <docsDir>documentation</docsDir>
    23922  </top>
    240   <top name="3id" project="APS/XSD 3id (synApps_5_2_1)">
    241     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_2_1/ioc/3id</rootDir>
     23  <top name="APS/XSD 2bma (synApps_5_4)" project="2bma">
     24    <rootDir>/net/s2dserv/xorApps/epics/synApps_5_4/ioc/2bma</rootDir>
     25    <iocs>
     26      <ioc iocDir="iocBoot/ioc2bma" cmdFile="st.cmd"/>
     27    </iocs>
     28    <docsDir>documentation</docsDir>
     29  </top>
     30  <top name="APS/XSD 2bmb (synApps_5_5)" project="2bmb">
     31    <rootDir>/net/s2dserv/xorApps/epics/synApps_5_5/ioc/2bmb</rootDir>
     32    <iocs>
     33      <ioc iocDir="iocBoot/ioc2bmb" cmdFile="st.cmd"/>
     34    </iocs>
     35    <docsDir>documentation</docsDir>
     36  </top>
     37  <top name="APS/XSD 2ida (synApps_5_4)" project="2ida">
     38    <rootDir>/net/s2dserv/xorApps/epics/synApps_5_4/ioc/2ida</rootDir>
     39    <iocs>
     40      <ioc iocDir="iocBoot/ioc2ida" cmdFile="st.cmd"/>
     41    </iocs>
     42    <docsDir>documentation</docsDir>
     43  </top>
     44  <top name="APS/XSD 2idb0 (synApps_5_4)" project="2idb0">
     45    <rootDir>/net/s2dserv/xorApps/epics/synApps_5_4/ioc/2idb0</rootDir>
     46    <iocs>
     47      <ioc iocDir="iocBoot/ioc2idb0" cmdFile="st.cmd"/>
     48    </iocs>
     49    <docsDir>documentation</docsDir>
     50  </top>
     51  <top name="APS/XSD 2idb1 (synApps_5_4)" project="2idb1">
     52    <rootDir>/net/s2dserv/xorApps/epics/synApps_5_4/ioc/2idb1</rootDir>
     53    <iocs>
     54      <ioc iocDir="iocBoot/ioc2idb1" cmdFile="st.cmd"/>
     55    </iocs>
     56    <docsDir>documentation</docsDir>
     57  </top>
     58  <top name="APS/XSD 2idb2 (synApps_5_5)" project="2idb2">
     59    <rootDir>/net/s2dserv/xorApps/epics/synApps_5_5/ioc/2idb2</rootDir>
     60    <iocs>
     61      <ioc iocDir="iocBoot/ioc2idb2" cmdFile="st.cmd"/>
     62    </iocs>
     63    <docsDir>documentation</docsDir>
     64  </top>
     65  <top name="APS/XSD 2idd (synApps_5_4)" project="2idd">
     66    <rootDir>/net/s2dserv/xorApps/epics/synApps_5_4/ioc/2idd</rootDir>
     67    <iocs>
     68      <ioc iocDir="iocBoot/ioc2idd" cmdFile="st.cmd"/>
     69    </iocs>
     70    <docsDir>documentation</docsDir>
     71  </top>
     72  <top name="APS/XSD 2iddf (synApps_5_4_2)" project="2iddf">
     73    <rootDir>/net/s2dserv/xorApps/epics/synApps_5_4_2/ioc/2iddf</rootDir>
     74    <iocs>
     75      <ioc iocDir="iocBoot/ioc2iddf" cmdFile="st.cmd"/>
     76    </iocs>
     77    <docsDir>documentation</docsDir>
     78  </top>
     79  <top name="APS/XSD 2ide (synApps_5_4)" project="2ide">
     80    <rootDir>/net/s2dserv/xorApps/epics/synApps_5_4/ioc/2ide</rootDir>
     81    <iocs>
     82      <ioc iocDir="iocBoot/ioc2ide" cmdFile="st.cmd"/>
     83    </iocs>
     84    <docsDir>documentation</docsDir>
     85  </top>
     86  <top name="APS/XSD 2tst (synApps_5_4)" project="2tst">
     87    <rootDir>/net/s2dserv/xorApps/epics/synApps_5_4/ioc/2tst</rootDir>
     88    <iocs>
     89      <ioc iocDir="iocBoot/i" cmdFile="st.cmd"/>
     90      <ioc iocDir="iocBoot/iocvxWorks" cmdFile="st.cmd"/>
     91    </iocs>
     92    <docsDir>documentation</docsDir>
     93  </top>
     94  <top name="APS/XSD 2xfm (synApps_5_4)" project="2xfm">
     95    <rootDir>/net/s2dserv/xorApps/epics/synApps_5_4/ioc/2xfm</rootDir>
     96    <iocs>
     97      <ioc iocDir="iocBoot/ioc2xfm" cmdFile="st.cmd"/>
     98    </iocs>
     99    <docsDir>documentation</docsDir>
     100  </top>
     101  <top name="APS/XSD 3id (synApps_5_2_1)" project="3id">
     102    <rootDir>/net/s3dserv/xorApps/epics/synApps_5_2_1/ioc/3id</rootDir>
    242103    <iocs>
    243104      <ioc iocDir="iocBoot/ioc3ida" cmdFile="st.cmd"/>
     
    248109    <docsDir>documentation</docsDir>
    249110  </top>
    250   <top name="3idl" project="APS/XSD 3idl (synApps_5_2_1)">
    251     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_2_1/ioc/3idl</rootDir>
     111  <top name="APS/XSD 3idl (synApps_5_2_1)" project="3idl">
     112    <rootDir>/net/s3dserv/xorApps/epics/synApps_5_2_1/ioc/3idl</rootDir>
    252113    <iocs>
    253114      <ioc iocDir="iocBoot/ioc3idl" cmdFile="st.cmd"/>
     
    255116    <docsDir>documentation</docsDir>
    256117  </top>
    257   <top name="3tst" project="APS/XSD 3tst (synApps_5_2_1)">
    258     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_2_1/ioc/3tst</rootDir>
     118  <top name="APS/XSD 3tst (synApps_5_2_1)" project="3tst">
     119    <rootDir>/net/s3dserv/xorApps/epics/synApps_5_2_1/ioc/3tst</rootDir>
    259120    <iocs>
    260121      <ioc iocDir="iocBoot/ioc3tst" cmdFile="st.cmd"/>
     
    262123    <docsDir>documentation</docsDir>
    263124  </top>
    264   <top name="4id" project="APS/XSD 4id (synApps_5_2_1)">
    265     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_2_1/ioc/4id</rootDir>
     125  <top name="APS/XSD 4id (synApps_5_2_1)" project="4id">
     126    <rootDir>/net/s4dserv/xorApps/epics/synApps_5_2_1/ioc/4id</rootDir>
    266127    <iocs>
    267128      <ioc iocDir="iocBoot/ioc4id" cmdFile="st.cmd"/>
     
    282143    <docsDir>documentation</docsDir>
    283144  </top>
    284   <top name="s3dv1" project="APS/XSD s3dv1 (synApps_5_3)">
    285     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_3/ioc/s3dv1</rootDir>
    286     <iocs>
    287       <ioc iocDir="iocBoot/iocs3dv1" cmdFile="st.cmd"/>
    288     </iocs>
    289     <docsDir>documentation</docsDir>
    290   </top>
    291   <top name="2bma" project="APS/XSD 2bma (synApps_5_4)">
    292     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_4/ioc/2bma</rootDir>
    293     <iocs>
    294       <ioc iocDir="iocBoot/ioc2bma" cmdFile="st.cmd"/>
    295     </iocs>
    296     <docsDir>documentation</docsDir>
    297   </top>
    298   <top name="2ida" project="APS/XSD 2ida (synApps_5_4)">
    299     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_4/ioc/2ida</rootDir>
    300     <iocs>
    301       <ioc iocDir="iocBoot/ioc2ida" cmdFile="st.cmd"/>
    302     </iocs>
    303     <docsDir>documentation</docsDir>
    304   </top>
    305   <top name="2idb0" project="APS/XSD 2idb0 (synApps_5_4)">
    306     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_4/ioc/2idb0</rootDir>
    307     <iocs>
    308       <ioc iocDir="iocBoot/ioc2idb0" cmdFile="st.cmd"/>
    309     </iocs>
    310     <docsDir>documentation</docsDir>
    311   </top>
    312   <top name="2idb1" project="APS/XSD 2idb1 (synApps_5_4)">
    313     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_4/ioc/2idb1</rootDir>
    314     <iocs>
    315       <ioc iocDir="iocBoot/ioc2idb1" cmdFile="st.cmd"/>
    316     </iocs>
    317     <docsDir>documentation</docsDir>
    318   </top>
    319   <top name="2idd" project="APS/XSD 2idd (synApps_5_4)">
    320     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_4/ioc/2idd</rootDir>
    321     <iocs>
    322       <ioc iocDir="iocBoot/ioc2idd" cmdFile="st.cmd"/>
    323     </iocs>
    324     <docsDir>documentation</docsDir>
    325   </top>
    326   <top name="2ide" project="APS/XSD 2ide (synApps_5_4)">
    327     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_4/ioc/2ide</rootDir>
    328     <iocs>
    329       <ioc iocDir="iocBoot/ioc2ide" cmdFile="st.cmd"/>
    330     </iocs>
    331     <docsDir>documentation</docsDir>
    332   </top>
    333   <top name="2tst" project="APS/XSD 2tst (synApps_5_4)">
    334     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_4/ioc/2tst</rootDir>
    335     <iocs>
    336       <ioc iocDir="iocBoot/i" cmdFile="st.cmd"/>
    337       <ioc iocDir="iocBoot/iocvxWorks" cmdFile="st.cmd"/>
    338     </iocs>
    339     <docsDir>documentation</docsDir>
    340   </top>
    341   <top name="2xfm" project="APS/XSD 2xfm (synApps_5_4)">
    342     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_4/ioc/2xfm</rootDir>
    343     <iocs>
    344       <ioc iocDir="iocBoot/ioc2xfm" cmdFile="st.cmd"/>
    345     </iocs>
    346     <docsDir>documentation</docsDir>
    347   </top>
    348   <top name="2iddf" project="APS/XSD 2iddf (synApps_5_4_2)">
    349     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_4_2/ioc/2iddf</rootDir>
    350     <iocs>
    351       <ioc iocDir="iocBoot/ioc2iddf" cmdFile="st.cmd"/>
    352     </iocs>
    353     <docsDir>documentation</docsDir>
    354   </top>
    355   <top name="bcda4" project="APS/XSD bcda4 (synApps_5_4_2)">
    356     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_4_2/ioc/bcda4</rootDir>
    357     <iocs>
    358       <ioc iocDir="iocBoot/iocbcda4" cmdFile="st.cmd"/>
    359     </iocs>
    360     <docsDir>documentation</docsDir>
    361   </top>
    362   <top name="2bmb" project="APS/XSD 2bmb (synApps_5_5)">
    363     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_5/ioc/2bmb</rootDir>
    364     <iocs>
    365       <ioc iocDir="iocBoot/ioc2bmb" cmdFile="st.cmd"/>
    366     </iocs>
    367     <docsDir>documentation</docsDir>
    368   </top>
    369   <top name="2idb2" project="APS/XSD 2idb2 (synApps_5_5)">
    370     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_5/ioc/2idb2</rootDir>
    371     <iocs>
    372       <ioc iocDir="iocBoot/ioc2idb2" cmdFile="st.cmd"/>
    373     </iocs>
    374     <docsDir>documentation</docsDir>
    375   </top>
    376   <top name="jps" project="APS/XSD jps (synApps_5_5)">
    377     <rootDir>/net/s1dserv/xorApps/epics/synApps_5_5/ioc/jps</rootDir>
    378     <iocs>
    379       <ioc iocDir="iocBoot/iocSolaris" cmdFile="st.cmd"/>
    380     </iocs>
    381     <docsDir>documentation</docsDir>
    382   </top>
    383   <top name="30Cmono" project="APS/XSD 30Cmono (synApps_5_2_1)">
    384     <rootDir>/net/s30dserv/xorApps/epics/synApps_5_2_1/ioc/30Cmono</rootDir>
    385     <iocs>
    386       <ioc iocDir="iocBoot/ioc30Cmono" cmdFile="st.cmd"/>
    387     </iocs>
    388     <docsDir>documentation</docsDir>
    389   </top>
    390   <top name="30dbm" project="APS/XSD 30dbm (synApps_5_2_1)">
    391     <rootDir>/net/s30dserv/xorApps/epics/synApps_5_2_1/ioc/30dbm</rootDir>
    392     <iocs>
    393       <ioc iocDir="iocBoot/ioc30dbm" cmdFile="st.cmd"/>
    394     </iocs>
    395     <docsDir>documentation</docsDir>
    396   </top>
    397   <top name="30ida" project="APS/XSD 30ida (synApps_5_2_1)">
    398     <rootDir>/net/s30dserv/xorApps/epics/synApps_5_2_1/ioc/30ida</rootDir>
    399     <iocs>
    400       <ioc iocDir="iocBoot/ioc30ida" cmdFile="st.cmd"/>
    401     </iocs>
    402     <docsDir>documentation</docsDir>
    403   </top>
    404   <top name="30idb" project="APS/XSD 30idb (synApps_5_2_1)">
    405     <rootDir>/net/s30dserv/xorApps/epics/synApps_5_2_1/ioc/30idb</rootDir>
    406     <iocs>
    407       <ioc iocDir="iocBoot/ioc30idb" cmdFile="st.cmd"/>
    408     </iocs>
    409     <docsDir>documentation</docsDir>
    410   </top>
    411   <top name="30idc" project="APS/XSD 30idc (synApps_5_2_1)">
    412     <rootDir>/net/s30dserv/xorApps/epics/synApps_5_2_1/ioc/30idc</rootDir>
    413     <iocs>
    414       <ioc iocDir="iocBoot/ioc30idc" cmdFile="st.cmd"/>
    415     </iocs>
    416     <docsDir>documentation</docsDir>
    417   </top>
    418   <top name="30idd" project="APS/XSD 30idd (synApps_5_2_1)">
    419     <rootDir>/net/s30dserv/xorApps/epics/synApps_5_2_1/ioc/30idd</rootDir>
    420     <iocs>
    421       <ioc iocDir="iocBoot/ioc30idd" cmdFile="st.cmd"/>
    422     </iocs>
    423     <docsDir>documentation</docsDir>
    424   </top>
    425   <top name="32id" project="APS/XSD 32id (synApps_5_2_1)">
    426     <rootDir>/net/s30dserv/xorApps/epics/synApps_5_2_1/ioc/32id</rootDir>
    427     <iocs>
    428       <ioc iocDir="iocBoot/ioc32ida" cmdFile="st.cmd"/>
    429       <ioc iocDir="iocBoot/ioc32idb" cmdFile="st.cmd"/>
    430     </iocs>
    431     <docsDir>documentation</docsDir>
    432   </top>
    433   <top name="32idaKMT" project="APS/XSD 32idaKMT (synApps_5_2_1)">
    434     <rootDir>/net/s30dserv/xorApps/epics/synApps_5_2_1/ioc/32idaKMT</rootDir>
    435     <iocs>
    436       <ioc iocDir="iocBoot/ioc32idaKMT" cmdFile="st.cmd"/>
    437     </iocs>
    438     <docsDir>documentation</docsDir>
    439   </top>
    440   <top name="32idbMIR" project="APS/XSD 32idbMIR (synApps_5_2_1)">
    441     <rootDir>/net/s30dserv/xorApps/epics/synApps_5_2_1/ioc/32idbMIR</rootDir>
    442     <iocs>
    443       <ioc iocDir="iocBoot/ioc32idbMIR" cmdFile="st.cmd"/>
    444     </iocs>
    445     <docsDir>documentation</docsDir>
    446   </top>
    447   <top name="32idtst" project="APS/XSD 32idtst (synApps_5_3)">
    448     <rootDir>/net/s30dserv/xorApps/epics/synApps_5_3/ioc/32idtst</rootDir>
    449     <iocs>
    450       <ioc iocDir="iocBoot/ioc32idtst" cmdFile="st.cmd"/>
    451     </iocs>
    452     <docsDir>documentation</docsDir>
    453   </top>
    454   <top name="33idtim1" project="APS/XSD 33idtim1 (synApps_5_3)">
    455     <rootDir>/net/s30dserv/xorApps/epics/synApps_5_3/ioc/33idtim1</rootDir>
    456     <iocs>
    457       <ioc iocDir="iocBoot/ioc33idtim1" cmdFile="st.cmd"/>
    458     </iocs>
    459     <docsDir>documentation</docsDir>
    460   </top>
    461   <top name="32idc01" project="APS/XSD 32idc01 (synApps_5_4)">
    462     <rootDir>/net/s30dserv/xorApps/epics/synApps_5_4/ioc/32idc01</rootDir>
    463     <iocs>
    464       <ioc iocDir="iocBoot/ioc32idc01" cmdFile="st.cmd"/>
    465     </iocs>
    466     <docsDir>documentation</docsDir>
    467   </top>
    468   <top name="32idc02" project="APS/XSD 32idc02 (synApps_5_4)">
    469     <rootDir>/net/s30dserv/xorApps/epics/synApps_5_4/ioc/32idc02</rootDir>
    470     <iocs>
    471       <ioc iocDir="iocBoot/ioc32idc02" cmdFile="st.cmd"/>
    472     </iocs>
    473     <docsDir>documentation</docsDir>
    474   </top>
    475   <top name="33id" project="APS/XSD 33id (synApps_5_4)">
    476     <rootDir>/net/s30dserv/xorApps/epics/synApps_5_4/ioc/33id</rootDir>
    477     <iocs>
    478       <ioc iocDir="iocBoot/ioc33iddLAS" cmdFile="st.cmd"/>
    479     </iocs>
    480     <docsDir>documentation</docsDir>
    481   </top>
    482   <top name="uniPLC" project="APS/XSD uniPLC (synApps_5_4)">
    483     <rootDir>/net/s30dserv/xorApps/epics/synApps_5_4/ioc/uniPLC</rootDir>
    484     <iocs>
    485       <ioc iocDir="iocBoot/ioc33bmPLC" cmdFile="st.cmd"/>
    486       <ioc iocDir="iocBoot/ioc33idPLC" cmdFile="st.cmd"/>
    487       <ioc iocDir="iocBoot/ioc34idPLC" cmdFile="st.cmd"/>
    488     </iocs>
    489     <docsDir>documentation</docsDir>
    490   </top>
    491   <top name="30idbMCS" project="APS/XSD 30idbMCS (synApps_5_5)">
    492     <rootDir>/net/s30dserv/xorApps/epics/synApps_5_5/ioc/30idbMCS</rootDir>
    493     <iocs>
    494       <ioc iocDir="iocBoot/iocLinux" cmdFile="st.cmd"/>
    495     </iocs>
    496     <docsDir>documentation</docsDir>
    497   </top>
    498   <top name="6id" project="APS/XSD 6id (synApps_5_2_1)">
    499     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_2_1/ioc/6id</rootDir>
     145  <top name="APS/XSD 6bmcs (synApps_5_3)" project="6bmcs">
     146    <rootDir>/net/s6dserv/xorApps/epics/synApps_5_3/ioc/6bmcs</rootDir>
     147    <iocs>
     148      <ioc iocDir="iocBoot/ioc6bmcs" cmdFile="st.linux.cmd"/>
     149    </iocs>
     150    <docsDir>documentation</docsDir>
     151  </top>
     152  <top name="APS/XSD 6id (synApps_5_2_1)" project="6id">
     153    <rootDir>/net/s6dserv/xorApps/epics/synApps_5_2_1/ioc/6id</rootDir>
    500154    <iocs>
    501155      <ioc iocDir="iocBoot/ioc6ida1" cmdFile="st.cmd"/>
     
    508162    <docsDir>documentation</docsDir>
    509163  </top>
    510   <top name="8id" project="APS/XSD 8id (synApps_5_2_1)">
    511     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_2_1/ioc/8id</rootDir>
    512     <iocs>
    513       <ioc iocDir="iocBoot/ioc8idlab" cmdFile="st.cmd"/>
    514     </iocs>
    515     <docsDir>documentation</docsDir>
    516   </top>
    517   <top name="8idhex" project="APS/XSD 8idhex (synApps_5_2_1)">
    518     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_2_1/ioc/8idhex</rootDir>
    519     <iocs>
    520       <ioc iocDir="iocBoot/ioc8idhex" cmdFile="st.cmd"/>
    521     </iocs>
    522     <docsDir>documentation</docsDir>
    523   </top>
    524   <top name="8idimono" project="APS/XSD 8idimono (synApps_5_2_1)">
    525     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_2_1/ioc/8idimono</rootDir>
    526     <iocs>
    527       <ioc iocDir="iocBoot/ioc8idimono" cmdFile="st.cmd"/>
    528     </iocs>
    529     <docsDir>documentation</docsDir>
    530   </top>
    531   <top name="8idmca" project="APS/XSD 8idmca (synApps_5_2_1)">
    532     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_2_1/ioc/8idmca</rootDir>
    533     <iocs>
    534       <ioc iocDir="iocBoot/ioc8idmca" cmdFile="st.cmd"/>
    535     </iocs>
    536     <docsDir>documentation</docsDir>
    537   </top>
    538   <top name="8idzp" project="APS/XSD 8idzp (synApps_5_2_1)">
    539     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_2_1/ioc/8idzp</rootDir>
    540     <iocs>
    541       <ioc iocDir="iocBoot/ioc8idzp" cmdFile="st.cmd"/>
    542     </iocs>
    543     <docsDir>documentation</docsDir>
    544   </top>
    545   <top name="9id" project="APS/XSD 9id (synApps_5_2_1)">
    546     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_2_1/ioc/9id</rootDir>
    547     <iocs>
    548       <ioc iocDir="iocBoot/ioc9ida" cmdFile="st.cmd"/>
    549       <ioc iocDir="iocBoot/ioc9idb" cmdFile="st.cmd"/>
    550       <ioc iocDir="iocBoot/ioc9idc" cmdFile="st.cmd"/>
    551     </iocs>
    552     <docsDir>documentation</docsDir>
    553   </top>
    554   <top name="6bmcs" project="APS/XSD 6bmcs (synApps_5_3)">
    555     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_3/ioc/6bmcs</rootDir>
    556     <iocs>
    557       <ioc iocDir="iocBoot/ioc6bmcs" cmdFile="st.cmd"/>
    558     </iocs>
    559     <docsDir>documentation</docsDir>
    560   </top>
    561   <top name="9bm" project="APS/XSD 9bm (synApps_5_3)">
    562     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_3/ioc/9bm</rootDir>
    563     <iocs>
    564       <ioc iocDir="iocBoot/ioc9bma" cmdFile="st.cmd"/>
    565       <ioc iocDir="iocBoot/ioc9bmb" cmdFile="st.cmd"/>
    566     </iocs>
    567     <docsDir>documentation</docsDir>
    568   </top>
    569   <top name="s7bmpps1" project="APS/XSD s7bmpps1 (synApps_5_3)">
    570     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_3/ioc/s7bmpps1</rootDir>
    571     <iocs>
    572       <ioc iocDir="iocBoot/iocs7bmpps1" cmdFile="st.cmd"/>
    573     </iocs>
    574     <docsDir>documentation</docsDir>
    575   </top>
    576   <top name="s7idamodg" project="APS/XSD s7idamodg (synApps_5_3)">
    577     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_3/ioc/s7idamodg</rootDir>
    578     <iocs>
    579       <ioc iocDir="iocBoot/iocs7idamodg" cmdFile="st.cmd"/>
    580     </iocs>
    581     <docsDir>documentation</docsDir>
    582   </top>
    583   <top name="s7idamotm1.orig" project="APS/XSD s7idamotm1.orig (synApps_5_3)">
    584     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_3/ioc/s7idamotm1.orig</rootDir>
    585     <iocs>
    586       <ioc iocDir="iocBoot/iocs7idamotm1" cmdFile="st.cmd"/>
    587     </iocs>
    588     <docsDir>documentation</docsDir>
    589   </top>
    590   <top name="s7idbs1" project="APS/XSD s7idbs1 (synApps_5_3)">
    591     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_3/ioc/s7idbs1</rootDir>
    592     <iocs>
    593       <ioc iocDir="iocBoot/iocs7idbs1" cmdFile="st.cmd"/>
    594     </iocs>
    595     <docsDir>documentation</docsDir>
    596   </top>
    597   <top name="8bm" project="APS/XSD 8bm (synApps_5_4)">
     164  <top name="APS/XSD 7bma1 (synApps_5_4_2)" project="7bma1">
     165    <rootDir>/net/s7dserv/xorApps/epics/synApps_5_4_2/ioc/7bma1</rootDir>
     166    <iocs>
     167      <ioc iocDir="iocBoot/ioc7bma1" cmdFile="st.cmd"/>
     168    </iocs>
     169    <docsDir>documentation</docsDir>
     170  </top>
     171  <top name="APS/XSD 7bmb1 (synApps_5_4_2)" project="7bmb1">
     172    <rootDir>/net/s7dserv/xorApps/epics/synApps_5_4_2/ioc/7bmb1</rootDir>
     173    <iocs>
     174      <ioc iocDir="iocBoot/ioc7bmb1" cmdFile="st.cmd"/>
     175    </iocs>
     176    <docsDir>documentation</docsDir>
     177  </top>
     178  <top name="APS/XSD 7eps (synApps_5_4_2)" project="7eps">
     179    <rootDir>/net/s7dserv/xorApps/epics/synApps_5_4_2/ioc/7eps</rootDir>
     180    <iocs>
     181      <ioc iocDir="iocBoot/ioc7eps" cmdFile="st.cmd"/>
     182    </iocs>
     183    <docsDir>documentation</docsDir>
     184  </top>
     185  <top name="APS/XSD 7ida (synApps_5_4_2)" project="7ida">
     186    <rootDir>/net/s7dserv/xorApps/epics/synApps_5_4_2/ioc/7ida</rootDir>
     187    <iocs>
     188      <ioc iocDir="iocBoot/ioc7ida" cmdFile="st.cmd"/>
     189    </iocs>
     190    <docsDir>documentation</docsDir>
     191  </top>
     192  <top name="APS/XSD 7idb (synApps_5_4_2)" project="7idb">
     193    <rootDir>/net/s7dserv/xorApps/epics/synApps_5_4_2/ioc/7idb</rootDir>
     194    <iocs>
     195      <ioc iocDir="iocBoot/ioc7idb" cmdFile="st.cmd"/>
     196    </iocs>
     197    <docsDir>documentation</docsDir>
     198  </top>
     199  <top name="APS/XSD 7idc (synApps_5_4_2)" project="7idc">
     200    <rootDir>/net/s7dserv/xorApps/epics/synApps_5_4_2/ioc/7idc</rootDir>
     201    <iocs>
     202      <ioc iocDir="iocBoot/ioc7idc" cmdFile="st.cmd"/>
     203    </iocs>
     204    <docsDir>documentation</docsDir>
     205  </top>
     206  <top name="APS/XSD 7idd (synApps_5_4_2)" project="7idd">
     207    <rootDir>/net/s7dserv/xorApps/epics/synApps_5_4_2/ioc/7idd</rootDir>
     208    <iocs>
     209      <ioc iocDir="iocBoot/ioc7idd" cmdFile="st.cmd"/>
     210    </iocs>
     211    <docsDir>documentation</docsDir>
     212  </top>
     213  <top name="APS/XSD 7ide (synApps_5_4_2)" project="7ide">
     214    <rootDir>/net/s7dserv/xorApps/epics/synApps_5_4_2/ioc/7ide</rootDir>
     215    <iocs>
     216      <ioc iocDir="iocBoot/ioc7ide" cmdFile="st.cmd"/>
     217    </iocs>
     218    <docsDir>documentation</docsDir>
     219  </top>
     220  <top name="APS/XSD 7laser1 (synApps_5_4_2)" project="7laser1">
     221    <rootDir>/net/s7dserv/xorApps/epics/synApps_5_4_2/ioc/7laser1</rootDir>
     222    <iocs>
     223      <ioc iocDir="iocBoot/ioc7laser1" cmdFile="st.cmd"/>
     224    </iocs>
     225    <docsDir>documentation</docsDir>
     226  </top>
     227  <top name="APS/XSD 7test (synApps_5_4_2)" project="7test">
     228    <rootDir>/net/s7dserv/xorApps/epics/synApps_5_4_2/ioc/7test</rootDir>
     229    <iocs>
     230      <ioc iocDir="iocBoot/ioc7test" cmdFile="st.cmd"/>
     231    </iocs>
     232    <docsDir>documentation</docsDir>
     233  </top>
     234  <top name="APS/XSD 8bm (synApps_5_4)" project="8bm">
    598235    <rootDir>/net/s8dserv/xorApps/epics/synApps_5_4/ioc/8bm</rootDir>
    599236    <iocs>
     
    603240    <docsDir>documentation</docsDir>
    604241  </top>
    605   <top name="7bma1" project="APS/XSD 7bma1 (synApps_5_4_2)">
    606     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_4_2/ioc/7bma1</rootDir>
    607     <iocs>
    608       <ioc iocDir="iocBoot/ioc7bma1" cmdFile="st.cmd"/>
    609     </iocs>
    610     <docsDir>documentation</docsDir>
    611   </top>
    612   <top name="7bmb1" project="APS/XSD 7bmb1 (synApps_5_4_2)">
    613     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_4_2/ioc/7bmb1</rootDir>
    614     <iocs>
    615       <ioc iocDir="iocBoot/ioc7bmb1" cmdFile="st.cmd"/>
    616     </iocs>
    617     <docsDir>documentation</docsDir>
    618   </top>
    619   <top name="7eps" project="APS/XSD 7eps (synApps_5_4_2)">
    620     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_4_2/ioc/7eps</rootDir>
    621     <iocs>
    622       <ioc iocDir="iocBoot/ioc7eps" cmdFile="st.cmd"/>
    623     </iocs>
    624     <docsDir>documentation</docsDir>
    625   </top>
    626   <top name="7ida" project="APS/XSD 7ida (synApps_5_4_2)">
    627     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_4_2/ioc/7ida</rootDir>
    628     <iocs>
    629       <ioc iocDir="iocBoot/ioc7ida" cmdFile="st.cmd"/>
    630     </iocs>
    631     <docsDir>documentation</docsDir>
    632   </top>
    633   <top name="7idb" project="APS/XSD 7idb (synApps_5_4_2)">
    634     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_4_2/ioc/7idb</rootDir>
    635     <iocs>
    636       <ioc iocDir="iocBoot/ioc7idb" cmdFile="st.cmd"/>
    637     </iocs>
    638     <docsDir>documentation</docsDir>
    639   </top>
    640   <top name="7idc" project="APS/XSD 7idc (synApps_5_4_2)">
    641     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_4_2/ioc/7idc</rootDir>
    642     <iocs>
    643       <ioc iocDir="iocBoot/ioc7idc" cmdFile="st.cmd"/>
    644     </iocs>
    645     <docsDir>documentation</docsDir>
    646   </top>
    647   <top name="7idd" project="APS/XSD 7idd (synApps_5_4_2)">
    648     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_4_2/ioc/7idd</rootDir>
    649     <iocs>
    650       <ioc iocDir="iocBoot/ioc7idd" cmdFile="st.cmd"/>
    651     </iocs>
    652     <docsDir>documentation</docsDir>
    653   </top>
    654   <top name="7ide" project="APS/XSD 7ide (synApps_5_4_2)">
    655     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_4_2/ioc/7ide</rootDir>
    656     <iocs>
    657       <ioc iocDir="iocBoot/ioc7ide" cmdFile="st.cmd"/>
    658     </iocs>
    659     <docsDir>documentation</docsDir>
    660   </top>
    661   <top name="7laser1" project="APS/XSD 7laser1 (synApps_5_4_2)">
    662     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_4_2/ioc/7laser1</rootDir>
    663     <iocs>
    664       <ioc iocDir="iocBoot/ioc7laser1" cmdFile="st.cmd"/>
    665     </iocs>
    666     <docsDir>documentation</docsDir>
    667   </top>
    668   <top name="7test" project="APS/XSD 7test (synApps_5_4_2)">
    669     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_4_2/ioc/7test</rootDir>
    670     <iocs>
    671       <ioc iocDir="iocBoot/ioc7test" cmdFile="st.cmd"/>
    672     </iocs>
    673     <docsDir>documentation</docsDir>
    674   </top>
    675   <top name="8id" project="APS/XSD 8id (synApps_5_4_2)">
     242  <top name="APS/XSD 8id (synApps_5_4_2)" project="8id">
    676243    <rootDir>/net/s8dserv/xorApps/epics/synApps_5_4_2/ioc/8id</rootDir>
    677244    <iocs>
     
    683250    <docsDir>documentation</docsDir>
    684251  </top>
    685   <top name="jps" project="APS/XSD jps (synApps_5_4_2)">
     252  <top name="APS/XSD 8id (synApps_5_5)" project="8id">
     253    <rootDir>/net/s8dserv/xorApps/epics/synApps_5_5/ioc/8id</rootDir>
     254    <iocs>
     255      <ioc iocDir="iocBoot/ioc8ide" cmdFile="st.cmd"/>
     256    </iocs>
     257    <docsDir>documentation</docsDir>
     258  </top>
     259  <top name="APS/XSD 8id (synApps_5_2_1)" project="8id">
     260    <rootDir>/net/s8dserv/xorApps/epics/synApps_5_2_1/ioc/8id</rootDir>
     261    <iocs>
     262      <ioc iocDir="iocBoot/ioc8idlab" cmdFile="st.cmd"/>
     263    </iocs>
     264    <docsDir>documentation</docsDir>
     265  </top>
     266  <top name="APS/XSD 8idAD (synApps_5_5)" project="8idAD">
     267    <rootDir>/net/s8dserv/xorApps/epics/synApps_5_5/ioc/8idAD</rootDir>
     268    <iocs>
     269      <ioc iocDir="iocBoot/ioc8idS1" cmdFile="st.cmd"/>
     270    </iocs>
     271    <docsDir>documentation</docsDir>
     272  </top>
     273  <top name="APS/XSD 8idhex (synApps_5_2_1)" project="8idhex">
     274    <rootDir>/net/s8dserv/xorApps/epics/synApps_5_2_1/ioc/8idhex</rootDir>
     275    <iocs>
     276      <ioc iocDir="iocBoot/ioc8idhex" cmdFile="st.cmd"/>
     277    </iocs>
     278    <docsDir>documentation</docsDir>
     279  </top>
     280  <top name="APS/XSD 8idimono (synApps_5_2_1)" project="8idimono">
     281    <rootDir>/net/s8dserv/xorApps/epics/synApps_5_2_1/ioc/8idimono</rootDir>
     282    <iocs>
     283      <ioc iocDir="iocBoot/ioc8idimono" cmdFile="st.cmd"/>
     284    </iocs>
     285    <docsDir>documentation</docsDir>
     286  </top>
     287  <top name="APS/XSD 8idmca (synApps_5_2_1)" project="8idmca">
     288    <rootDir>/net/s8dserv/xorApps/epics/synApps_5_2_1/ioc/8idmca</rootDir>
     289    <iocs>
     290      <ioc iocDir="iocBoot/ioc8idmca" cmdFile="st.cmd"/>
     291    </iocs>
     292    <docsDir>documentation</docsDir>
     293  </top>
     294  <top name="APS/XSD 8idzp (synApps_5_2_1)" project="8idzp">
     295    <rootDir>/net/s8dserv/xorApps/epics/synApps_5_2_1/ioc/8idzp</rootDir>
     296    <iocs>
     297      <ioc iocDir="iocBoot/ioc8idzp" cmdFile="st.cmd"/>
     298    </iocs>
     299    <docsDir>documentation</docsDir>
     300  </top>
     301  <top name="APS/XSD 9bm (synApps_5_3)" project="9bm">
     302    <rootDir>/net/s9dserv/xorApps/epics/synApps_5_3/ioc/9bm</rootDir>
     303    <iocs>
     304      <ioc iocDir="iocBoot/ioc9bma" cmdFile="st.cmd"/>
     305      <ioc iocDir="iocBoot/ioc9bmb" cmdFile="st.cmd"/>
     306    </iocs>
     307    <docsDir>documentation</docsDir>
     308  </top>
     309  <top name="APS/XSD 9id (synApps_5_2_1)" project="9id">
     310    <rootDir>/net/s9dserv/xorApps/epics/synApps_5_2_1/ioc/9id</rootDir>
     311    <iocs>
     312      <ioc iocDir="iocBoot/ioc9ida" cmdFile="st.cmd"/>
     313      <ioc iocDir="iocBoot/ioc9idb" cmdFile="st.cmd"/>
     314      <ioc iocDir="iocBoot/ioc9idc" cmdFile="st.cmd"/>
     315    </iocs>
     316    <docsDir>documentation</docsDir>
     317  </top>
     318  <top name="APS/XSD 11bm (synApps_5_5)" project="11bm">
     319    <rootDir>/net/s11bmdserv/xorApps/epics/synApps_5_5/ioc/11bm</rootDir>
     320    <iocs>
     321      <ioc iocDir="iocBoot/ioc11bma" cmdFile="st.cmd"/>
     322      <ioc iocDir="iocBoot/ioc11bmb" cmdFile="st.cmd"/>
     323    </iocs>
     324    <docsDir>documentation</docsDir>
     325  </top>
     326  <top name="APS/XSD 11bmbRSC (synApps_5_2_1)" project="11bmbRSC">
     327    <rootDir>/net/s11bmdserv/xorApps/epics/synApps_5_2_1/ioc/11bmbRSC</rootDir>
     328    <iocs>
     329      <ioc iocDir="iocBoot/ioc11bmbRSC" cmdFile="st.cmd"/>
     330    </iocs>
     331    <docsDir>documentation</docsDir>
     332  </top>
     333  <top name="APS/XSD 12bm (synApps_5_4_2)" project="12bm">
     334    <rootDir>/net/s12dserv/xorApps/epics/synApps_5_4_2/ioc/12bm</rootDir>
     335    <iocs>
     336      <ioc iocDir="iocBoot/ioc12bma" cmdFile="st.cmd"/>
     337      <ioc iocDir="iocBoot/ioc12bmb" cmdFile="st.cmd"/>
     338    </iocs>
     339    <docsDir>documentation</docsDir>
     340  </top>
     341  <top name="APS/XSD 12id (synApps_5_4_2)" project="12id">
     342    <rootDir>/net/s12dserv/xorApps/epics/synApps_5_4_2/ioc/12id</rootDir>
     343    <iocs>
     344      <ioc iocDir="iocBoot/ioc12ida1" cmdFile="st.cmd"/>
     345      <ioc iocDir="iocBoot/ioc12ida2" cmdFile="st.cmd"/>
     346      <ioc iocDir="iocBoot/ioc12idb" cmdFile="st.cmd"/>
     347      <ioc iocDir="iocBoot/ioc12idc" cmdFile="st.cmd"/>
     348      <ioc iocDir="iocBoot/ioc12idd" cmdFile="st.cmd"/>
     349    </iocs>
     350    <docsDir>documentation</docsDir>
     351  </top>
     352  <top name="APS/XSD 12idsclr (synApps_5_2_1)" project="12idsclr">
     353    <rootDir>/net/s15dserv/xorApps/epics/synApps_5_2_1/ioc/12idsclr</rootDir>
     354    <iocs>
     355      <ioc iocDir="iocBoot/ioc12idsclr" cmdFile="st.cmd"/>
     356    </iocs>
     357    <docsDir>documentation</docsDir>
     358  </top>
     359  <top name="APS/XSD 30Cmono (synApps_5_2_1)" project="30Cmono">
     360    <rootDir>/net/s30dserv/xorApps/epics/synApps_5_2_1/ioc/30Cmono</rootDir>
     361    <iocs>
     362      <ioc iocDir="iocBoot/ioc30Cmono" cmdFile="st.cmd"/>
     363    </iocs>
     364    <docsDir>documentation</docsDir>
     365  </top>
     366  <top name="APS/XSD 30dbm (synApps_5_2_1)" project="30dbm">
     367    <rootDir>/net/s30dserv/xorApps/epics/synApps_5_2_1/ioc/30dbm</rootDir>
     368    <iocs>
     369      <ioc iocDir="iocBoot/ioc30dbm" cmdFile="st.cmd"/>
     370    </iocs>
     371    <docsDir>documentation</docsDir>
     372  </top>
     373  <top name="APS/XSD 30ida (synApps_5_2_1)" project="30ida">
     374    <rootDir>/net/s30dserv/xorApps/epics/synApps_5_2_1/ioc/30ida</rootDir>
     375    <iocs>
     376      <ioc iocDir="iocBoot/ioc30ida" cmdFile="st.cmd"/>
     377    </iocs>
     378    <docsDir>documentation</docsDir>
     379  </top>
     380  <top name="APS/XSD 30idb (synApps_5_2_1)" project="30idb">
     381    <rootDir>/net/s30dserv/xorApps/epics/synApps_5_2_1/ioc/30idb</rootDir>
     382    <iocs>
     383      <ioc iocDir="iocBoot/ioc30idb" cmdFile="st.cmd"/>
     384    </iocs>
     385    <docsDir>documentation</docsDir>
     386  </top>
     387  <top name="APS/XSD 30idbMCS (synApps_5_5)" project="30idbMCS">
     388    <rootDir>/net/s30dserv/xorApps/epics/synApps_5_5/ioc/30idbMCS</rootDir>
     389    <iocs>
     390      <ioc iocDir="iocBoot/iocLinux" cmdFile="st.cmd"/>
     391    </iocs>
     392    <docsDir>documentation</docsDir>
     393  </top>
     394  <top name="APS/XSD 30idc (synApps_5_2_1)" project="30idc">
     395    <rootDir>/net/s30dserv/xorApps/epics/synApps_5_2_1/ioc/30idc</rootDir>
     396    <iocs>
     397      <ioc iocDir="iocBoot/ioc30idc" cmdFile="st.cmd"/>
     398    </iocs>
     399    <docsDir>documentation</docsDir>
     400  </top>
     401  <top name="APS/XSD 30idd (synApps_5_2_1)" project="30idd">
     402    <rootDir>/net/s30dserv/xorApps/epics/synApps_5_2_1/ioc/30idd</rootDir>
     403    <iocs>
     404      <ioc iocDir="iocBoot/ioc30idd" cmdFile="st.cmd"/>
     405    </iocs>
     406    <docsDir>documentation</docsDir>
     407  </top>
     408  <top name="APS/XSD 32id (synApps_5_2_1)" project="32id">
     409    <rootDir>/net/s32dserv/xorApps/epics/synApps_5_2_1/ioc/32id</rootDir>
     410    <iocs>
     411      <ioc iocDir="iocBoot/ioc32ida" cmdFile="st.cmd"/>
     412      <ioc iocDir="iocBoot/ioc32idb" cmdFile="st.cmd"/>
     413    </iocs>
     414    <docsDir>documentation</docsDir>
     415  </top>
     416  <top name="APS/XSD 32idaKMT (synApps_5_2_1)" project="32idaKMT">
     417    <rootDir>/net/s32dserv/xorApps/epics/synApps_5_2_1/ioc/32idaKMT</rootDir>
     418    <iocs>
     419      <ioc iocDir="iocBoot/ioc32idaKMT" cmdFile="st.cmd"/>
     420    </iocs>
     421    <docsDir>documentation</docsDir>
     422  </top>
     423  <top name="APS/XSD 32idbMIR (synApps_5_2_1)" project="32idbMIR">
     424    <rootDir>/net/s32dserv/xorApps/epics/synApps_5_2_1/ioc/32idbMIR</rootDir>
     425    <iocs>
     426      <ioc iocDir="iocBoot/ioc32idbMIR" cmdFile="st.cmd"/>
     427    </iocs>
     428    <docsDir>documentation</docsDir>
     429  </top>
     430  <top name="APS/XSD 32idc01 (synApps_5_4)" project="32idc01">
     431    <rootDir>/net/s32dserv/xorApps/epics/synApps_5_4/ioc/32idc01</rootDir>
     432    <iocs>
     433      <ioc iocDir="iocBoot/ioc32idc01" cmdFile="st.cmd"/>
     434    </iocs>
     435    <docsDir>documentation</docsDir>
     436  </top>
     437  <top name="APS/XSD 32idc02 (synApps_5_4)" project="32idc02">
     438    <rootDir>/net/s32dserv/xorApps/epics/synApps_5_4/ioc/32idc02</rootDir>
     439    <iocs>
     440      <ioc iocDir="iocBoot/ioc32idc02" cmdFile="st.cmd"/>
     441    </iocs>
     442    <docsDir>documentation</docsDir>
     443  </top>
     444  <top name="APS/XSD 32idtst (synApps_5_3)" project="32idtst">
     445    <rootDir>/net/s32dserv/xorApps/epics/synApps_5_3/ioc/32idtst</rootDir>
     446    <iocs>
     447      <ioc iocDir="iocBoot/ioc32idtst" cmdFile="st.cmd"/>
     448    </iocs>
     449    <docsDir>documentation</docsDir>
     450  </top>
     451  <top name="APS/XSD 33id (synApps_5_4)" project="33id">
     452    <rootDir>/net/s33dserv/xorApps/epics/synApps_5_4/ioc/33id</rootDir>
     453    <iocs>
     454      <ioc iocDir="iocBoot/ioc33iddLAS" cmdFile="st.cmd"/>
     455    </iocs>
     456    <docsDir>documentation</docsDir>
     457  </top>
     458  <top name="APS/XSD 33idtim1 (synApps_5_3)" project="33idtim1">
     459    <rootDir>/net/s33dserv/xorApps/epics/synApps_5_3/ioc/33idtim1</rootDir>
     460    <iocs>
     461      <ioc iocDir="iocBoot/ioc33idtim1" cmdFile="st.cmd"/>
     462    </iocs>
     463    <docsDir>documentation</docsDir>
     464  </top>
     465  <top name="APS/XSD bcda4 (synApps_5_4_2)" project="bcda4">
     466    <rootDir>/net/s1dserv/xorApps/epics/synApps_5_4_2/ioc/bcda4</rootDir>
     467    <iocs>
     468      <ioc iocDir="iocBoot/iocbcda4" cmdFile="st.cmd"/>
     469    </iocs>
     470    <docsDir>documentation</docsDir>
     471  </top>
     472  <top name="APS/XSD delaygen (synApps_5_3)" project="delaygen">
     473    <rootDir>/net/s12dserv/xorApps/epics/synApps_5_3/ioc/delaygen</rootDir>
     474    <iocs>
     475      <ioc iocDir="iocBoot/iocdelaygen" cmdFile="st.cmd"/>
     476    </iocs>
     477    <docsDir>documentation</docsDir>
     478  </top>
     479  <top name="APS/XSD dg645 (synApps_5_3)" project="dg645">
     480    <rootDir>/net/s12dserv/xorApps/epics/synApps_5_3/ioc/dg645</rootDir>
     481    <iocs>
     482      <ioc iocDir="iocBoot/iocdg645" cmdFile="st.cmd"/>
     483    </iocs>
     484    <docsDir>documentation</docsDir>
     485  </top>
     486  <top name="APS/XSD dmk11 (synApps_5_3)" project="dmk11">
     487    <rootDir>/net/s12dserv/xorApps/epics/synApps_5_3/ioc/dmk11</rootDir>
     488    <iocs>
     489      <ioc iocDir="iocBoot/iocdmk11" cmdFile="st.cmd"/>
     490    </iocs>
     491    <docsDir>documentation</docsDir>
     492  </top>
     493  <top name="APS/XSD jps (synApps_5_4_2)" project="jps">
    686494    <rootDir>/net/s8dserv/xorApps/epics/synApps_5_4_2/ioc/jps</rootDir>
    687495    <iocs>
     
    690498    <docsDir>documentation</docsDir>
    691499  </top>
    692   <top name="8id" project="APS/XSD 8id (synApps_5_5)">
    693     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_5/ioc/8id</rootDir>
    694     <iocs>
    695       <ioc iocDir="iocBoot/ioc8ide" cmdFile="st.cmd"/>
    696     </iocs>
    697     <docsDir>documentation</docsDir>
    698   </top>
    699   <top name="8idAD" project="APS/XSD 8idAD (synApps_5_5)">
    700     <rootDir>/net/s8dserv/xorApps/epics/synApps_5_5/ioc/8idAD</rootDir>
    701     <iocs>
    702       <ioc iocDir="iocBoot/ioc8idS1" cmdFile="st.cmd"/>
     500  <top name="APS/XSD jps (synApps_5_5)" project="jps">
     501    <rootDir>/net/s1dserv/xorApps/epics/synApps_5_5/ioc/jps</rootDir>
     502    <iocs>
     503      <ioc iocDir="iocBoot/iocSolaris" cmdFile="st.cmd"/>
     504    </iocs>
     505    <docsDir>documentation</docsDir>
     506  </top>
     507  <top name="APS/XSD s3dv1 (synApps_5_3)" project="s3dv1">
     508    <rootDir>/net/s1dserv/xorApps/epics/synApps_5_3/ioc/s3dv1</rootDir>
     509    <iocs>
     510      <ioc iocDir="iocBoot/iocs3dv1" cmdFile="st.cmd"/>
     511    </iocs>
     512    <docsDir>documentation</docsDir>
     513  </top>
     514  <top name="APS/XSD s7bmpps1 (synApps_5_3)" project="s7bmpps1">
     515    <rootDir>/net/s8dserv/xorApps/epics/synApps_5_3/ioc/s7bmpps1</rootDir>
     516    <iocs>
     517      <ioc iocDir="iocBoot/iocs7bmpps1" cmdFile="st.cmd"/>
     518    </iocs>
     519    <docsDir>documentation</docsDir>
     520  </top>
     521  <top name="APS/XSD s7idamodg (synApps_5_3)" project="s7idamodg">
     522    <rootDir>/net/s8dserv/xorApps/epics/synApps_5_3/ioc/s7idamodg</rootDir>
     523    <iocs>
     524      <ioc iocDir="iocBoot/iocs7idamodg" cmdFile="st.cmd"/>
     525    </iocs>
     526    <docsDir>documentation</docsDir>
     527  </top>
     528  <top name="APS/XSD s7idamotm1.orig (synApps_5_3)" project="s7idamotm1.orig">
     529    <rootDir>/net/s8dserv/xorApps/epics/synApps_5_3/ioc/s7idamotm1.orig</rootDir>
     530    <iocs>
     531      <ioc iocDir="iocBoot/iocs7idamotm1" cmdFile="st.cmd"/>
     532    </iocs>
     533    <docsDir>documentation</docsDir>
     534  </top>
     535  <top name="APS/XSD s7idbs1 (synApps_5_3)" project="s7idbs1">
     536    <rootDir>/net/s8dserv/xorApps/epics/synApps_5_3/ioc/s7idbs1</rootDir>
     537    <iocs>
     538      <ioc iocDir="iocBoot/iocs7idbs1" cmdFile="st.cmd"/>
     539    </iocs>
     540    <docsDir>documentation</docsDir>
     541  </top>
     542  <top name="APS/XSD uniPLC (synApps_5_4)" project="uniPLC">
     543    <rootDir>/net/s30dserv/xorApps/epics/synApps_5_4/ioc/uniPLC</rootDir>
     544    <iocs>
     545      <ioc iocDir="iocBoot/ioc33bmPLC" cmdFile="st.cmd"/>
     546      <ioc iocDir="iocBoot/ioc33idPLC" cmdFile="st.cmd"/>
     547      <ioc iocDir="iocBoot/ioc34idPLC" cmdFile="st.cmd"/>
     548    </iocs>
     549    <docsDir>documentation</docsDir>
     550  </top>
     551  <top name="APS/XSD xia1 (synApps_5_3)" project="xia1">
     552    <rootDir>/net/s12dserv/xorApps/epics/synApps_5_3/ioc/xia1</rootDir>
     553    <iocs>
     554      <ioc iocDir="iocBoot/iocxia1" cmdFile="st.cmd"/>
    703555    </iocs>
    704556    <docsDir>documentation</docsDir>
  • TabularUnified topdoc/src/discover/config_builder.py

    r407 r423  
    1919
    2020
     21
     22eof_in_multiline = '''
     231bm    ioc1bma    1    5_2_1
     24'''
     25
     26
    2127# TOP    IOC    NN    VERSION
    2228buf = '''
    23 11bm    ioc11bma    12    5_5
    24 11bm    ioc11bmb    12    5_5
    25 11bmbRSC    ioc11bmbRSC    12    5_2_1
    26 12bm    ioc12bma    12    5_4_2
    27 12bm    ioc12bmb    12    5_4_2
    28 12id    ioc12ida1    12    5_4_2
    29 12id    ioc12ida2    12    5_4_2
    30 12id    ioc12idb    12    5_4_2
    31 12id    ioc12idc    12    5_4_2
    32 12id    ioc12idd    12    5_4_2
    33 12idsclr    ioc12idsclr    12    5_2_1
     291bm    ioc1bmb    1    5_2_1
     301bm    ioc1bmc    1    5_2_1
     311id     ioc1id    1    5_2_1
     321id     ioc1ida    1    5_2_1
     331id     ioc1idb    1    5_2_1
     341id     ioc1idc    1    5_2_1
     351id     ioc1mini1    1    5_2_1
     362bma    ioc2bma    2    5_4
     372bmb    ioc2bmb    2    5_5
     382ida    ioc2ida    2    5_4
     392idb0    ioc2idb0    2    5_4
     402idb1    ioc2idb1    2    5_4
     412idb2    ioc2idb2    2    5_5
     422idd     ioc2idd    2    5_4
     432iddf    ioc2iddf    2    5_4_2
     442ide    ioc2ide    2    5_4
     452tst    i    2    5_4
     462tst    iocvxWorks    2    5_4
     472xfm    ioc2xfm    2    5_4
     483id     ioc3ida    3    5_2_1
     493id     ioc3idb    3    5_2_1
     503id     ioc3idc    3    5_2_1
     513id    ioc3idd    3    5_2_1
     523idl     ioc3idl    3    5_2_1
     533tst    ioc3tst    3    5_2_1
     544id    ioc4id    4    5_2_1
     554id    ioc4ida    4    5_2_1
     564id    ioc4idb    4    5_2_1
     574id    ioc4idc1    4    5_2_1
     584id    ioc4idc2    4    5_2_1
     594id    ioc4idc2_try    4    5_2_1
     604id    ioc4idd    4    5_2_1
     614id    ioc4iddx    4    5_2_1
     624id    ioc4ideps    4    5_2_1
     634id    ioc4idSolaris    4    5_2_1
     644id    ioc4mag    4    5_2_1
     654id    ioc4tst    4    5_2_1
     664id    ioc4xps    4    5_2_1
     674id    ioc4xps1    4    5_2_1
     686bmcs    ioc6bmcs    6    5_3   st.linux.cmd
     696id    ioc6ida1    6    5_2_1
     706id    ioc6idb1    6    5_2_1
     716id    ioc6idb2    6    5_2_1
     726id    ioc6idc1    6    5_2_1
     736id    ioc6idd    6    5_2_1
     746id    ioc6mag    6    5_2_1
     757bma1    ioc7bma1    7    5_4_2
     767bmb1    ioc7bmb1    7    5_4_2
     777eps     ioc7eps    7    5_4_2
     787ida    ioc7ida    7    5_4_2
     797idb    ioc7idb    7    5_4_2
     807idc    ioc7idc    7    5_4_2
     817idd    ioc7idd    7    5_4_2
     827ide    ioc7ide    7    5_4_2
     837laser1    ioc7laser1    7    5_4_2
     847test    ioc7test    7    5_4_2
     858bm    ioc8bma    8    5_4
     868bm    ioc8bmb    8    5_4
     878id    ioc8ida    8    5_4_2
     888id    ioc8idd    8    5_4_2
     898id    ioc8ide    8    5_5
     908id    ioc8idg    8    5_4_2
     918id    ioc8idi    8    5_4_2
     928id    ioc8idlab    8    5_2_1
     938idAD    ioc8idS1    8    5_5
     948idhex    ioc8idhex    8    5_2_1
     958idimono    ioc8idimono    8    5_2_1
     968idmca    ioc8idmca    8    5_2_1
     978idzp    ioc8idzp    8    5_2_1
     989bm    ioc9bma    9    5_3
     999bm    ioc9bmb    9    5_3
     1009id    ioc9ida    9    5_2_1
     1019id    ioc9idb    9    5_2_1
     1029id    ioc9idc    9    5_2_1
     10311bm    ioc11bma    11bm    5_5
     10411bm    ioc11bmb    11bm    5_5
     10511bmbRSC    ioc11bmbRSC    11bm    5_2_1
     10612bm    ioc12bma    12    5_4_2
     10712bm    ioc12bmb    12    5_4_2
     10812id    ioc12ida1    12    5_4_2
     10912id    ioc12ida2    12    5_4_2
     11012id    ioc12idb    12    5_4_2
     11112id    ioc12idc    12    5_4_2
     11212id    ioc12idd    12    5_4_2
     11312idsclr    ioc12idsclr    15    5_2_1
     11430Cmono    ioc30Cmono    30     5_2_1
     11530dbm    ioc30dbm    30    5_2_1
     11630ida    ioc30ida    30    5_2_1
     11730idb    ioc30idb    30    5_2_1
     11830idbMCS    iocLinux    30    5_5
     11930idc    ioc30idc    30    5_2_1
     12030idd    ioc30idd    30    5_2_1
     12132id    ioc32ida    32    5_2_1
     12232id    ioc32idb    32    5_2_1
     12332idaKMT    ioc32idaKMT    32    5_2_1
     12432idbMIR    ioc32idbMIR    32    5_2_1
     12532idc01    ioc32idc01    32    5_4
     12632idc02    ioc32idc02    32    5_4
     12732idtst    ioc32idtst    32    5_3
     12833id    ioc33iddLAS    33    5_4
     12933idtim1    ioc33idtim1    33    5_3
     130bcda4    iocbcda4    1    5_4_2
     131delaygen    iocdelaygen    12    5_3
     132dg645    iocdg645    12    5_3
     133dmk11    iocdmk11    12    5_3
     134jps    iocjps    8    5_4_2
     135jps    iocSolaris    1    5_5
     136s3dv1    iocs3dv1    1    5_3
     137s7bmpps1    iocs7bmpps1    8    5_3
     138s7idamodg    iocs7idamodg    8    5_3
     139s7idamotm1.orig    iocs7idamotm1    8    5_3
     140s7idbs1    iocs7idbs1    8    5_3
     141uniPLC    ioc33bmPLC    30    5_4
     142uniPLC    ioc33idPLC    30    5_4
     143uniPLC    ioc34idPLC    30    5_4
     144xia1    iocxia1    12    5_3
     145'''
     146
     147cannot_reach_dserv = '''
    3414815iddLAX    ioc15iddLAX    12    5_4
    3514915iddUSX    ioc15iddUSX    12    5_2_1
    36 1bm    ioc1bma    1    5_2_1
    37 1bm    ioc1bmb    1    5_2_1
    38 1bm    ioc1bmc    1    5_2_1
    39 1id    ioc1id    1    5_2_1
    40 1id    ioc1ida    1    5_2_1
    41 1id    ioc1idb    1    5_2_1
    42 1id    ioc1idc    1    5_2_1
    43 1id    ioc1mini1    1    5_2_1
    4415026idaBDA    ioc26idaBDA    12    5_2_1
    4515126idamir    ioc26idamir    12    5_2_1
     
    6116726idpvc    ioc26idpvc    12    5_3
    6216826idsclr1    ioc26idsclr1    12    5_3
    63 2bma    ioc2bma    1    5_4
    64 2bmb    ioc2bmb    1    5_5
    65 2ida    ioc2ida    1    5_4
    66 2idb0    ioc2idb0    1    5_4
    67 2idb1    ioc2idb1    1    5_4
    68 2idb2    ioc2idb2    1    5_5
    69 2idd    ioc2idd    1    5_4
    70 2iddf    ioc2iddf    1    5_4_2
    71 2ide    ioc2ide    1    5_4
    72 2tst    i    1    5_4
    73 2tst    iocvxWorks    1    5_4
    74 2xfm    ioc2xfm    1    5_4
    75 30Cmono    ioc30Cmono    30    5_2_1
    76 30dbm    ioc30dbm    30    5_2_1
    77 30ida    ioc30ida    30    5_2_1
    78 30idb    ioc30idb    30    5_2_1
    79 30idbMCS    iocLinux    30    5_5
    80 30idc    ioc30idc    30    5_2_1
    81 30idd    ioc30idd    30    5_2_1
    82 32id    ioc32ida    30    5_2_1
    83 32id    ioc32idb    30    5_2_1
    84 32idaKMT    ioc32idaKMT    30    5_2_1
    85 32idbMIR    ioc32idbMIR    30    5_2_1
    86 32idc01    ioc32idc01    30    5_4
    87 32idc02    ioc32idc02    30    5_4
    88 32idtst    ioc32idtst    30    5_3
    89 33id    ioc33iddLAS    30    5_4
    90 33idtim1    ioc33idtim1    30    5_3
    91 3id    ioc3ida    1    5_2_1
    92 3id    ioc3idb    1    5_2_1
    93 3id    ioc3idc    1    5_2_1
    94 3id    ioc3idd    1    5_2_1
    95 3idl    ioc3idl    1    5_2_1
    96 3tst    ioc3tst    1    5_2_1
    97 4id    ioc4id    1    5_2_1
    98 4id    ioc4ida    1    5_2_1
    99 4id    ioc4idb    1    5_2_1
    100 4id    ioc4idc1    1    5_2_1
    101 4id    ioc4idc2    1    5_2_1
    102 4id    ioc4idc2_try    1    5_2_1
    103 4id    ioc4idd    1    5_2_1
    104 4id    ioc4iddx    1    5_2_1
    105 4id    ioc4ideps    1    5_2_1
    106 4id    ioc4idSolaris    1    5_2_1
    107 4id    ioc4mag    1    5_2_1
    108 4id    ioc4tst    1    5_2_1
    109 4id    ioc4xps    1    5_2_1
    110 4id    ioc4xps1    1    5_2_1
    111 6bmcs    ioc6bmcs    8    5_3
    112 6id    ioc6ida1    8    5_2_1
    113 6id    ioc6idb1    8    5_2_1
    114 6id    ioc6idb2    8    5_2_1
    115 6id    ioc6idc1    8    5_2_1
    116 6id    ioc6idd    8    5_2_1
    117 6id    ioc6mag    8    5_2_1
    118 7bma1    ioc7bma1    8    5_4_2
    119 7bmb1    ioc7bmb1    8    5_4_2
    120 7eps    ioc7eps    8    5_4_2
    121 7ida    ioc7ida    8    5_4_2
    122 7idb    ioc7idb    8    5_4_2
    123 7idc    ioc7idc    8    5_4_2
    124 7idd    ioc7idd    8    5_4_2
    125 7ide    ioc7ide    8    5_4_2
    126 7laser1    ioc7laser1    8    5_4_2
    127 7test    ioc7test    8    5_4_2
    128 8bm    ioc8bma    8    5_4
    129 8bm    ioc8bmb    8    5_4
    130 8id    ioc8ida    8    5_4_2
    131 8id    ioc8idd    8    5_4_2
    132 8id    ioc8ide    8    5_5
    133 8id    ioc8idg    8    5_4_2
    134 8id    ioc8idi    8    5_4_2
    135 8id    ioc8idlab    8    5_2_1
    136 8idAD    ioc8idS1    8    5_5
    137 8idhex    ioc8idhex    8    5_2_1
    138 8idimono    ioc8idimono    8    5_2_1
    139 8idmca    ioc8idmca    8    5_2_1
    140 8idzp    ioc8idzp    8    5_2_1
    141 9bm    ioc9bma    8    5_3
    142 9bm    ioc9bmb    8    5_3
    143 9id    ioc9ida    8    5_2_1
    144 9id    ioc9idb    8    5_2_1
    145 9id    ioc9idc    8    5_2_1
    146 bcda4    iocbcda4    1    5_4_2
    147 delaygen    iocdelaygen    12    5_3
    148 dg645    iocdg645    12    5_3
    149 dmk11    iocdmk11    12    5_3
    150 jps    iocjps    8    5_4_2
    151 jps    iocSolaris    1    5_5
    152 s3dv1    iocs3dv1    1    5_3
    153 s7bmpps1    iocs7bmpps1    8    5_3
    154 s7idamodg    iocs7idamodg    8    5_3
    155 s7idamotm1.orig    iocs7idamotm1    8    5_3
    156 s7idbs1    iocs7idbs1    8    5_3
    157 uniPLC    ioc33bmPLC    30    5_4
    158 uniPLC    ioc33idPLC    30    5_4
    159 uniPLC    ioc34idPLC    30    5_4
    160 xia1    iocxia1    12    5_3
    161 '''
    162 
     169'''
    163170
    164171def gather_top_identifiers(buf):
     
    166173    write the autosaves to a disk file
    167174    @param buf: initial text block of top level directories from vespucci
    168     @return: configuration dictionary
     175    @return: tuple of (configuration dictionary, rootDirList)
    169176    '''
    170177    rootDirTemplate = "/net/s%sdserv/xorApps/epics/synApps_%s/ioc/%s"
    171178    titleFormat = "APS/XSD %s (synApps_%s)"
    172179    config = {}
     180    root_list = []
    173181    for line in buf.strip().split("\n"):
    174         top, ioc, dserv, version = line.split()
     182        if line.strip()[0] == "#": continue
     183        unpacked = line.split()
     184        top, ioc, dserv, version = unpacked[0:4]
     185        if len(unpacked) == 5:
     186            cmdFile = unpacked[4]
     187        else:
     188            cmdFile = "st.cmd"
    175189        rootDir = rootDirTemplate % (dserv, version, top)
    176190        iocDir = "iocBoot/%s" % ioc
    177         cmdFile = "st.cmd"
    178191        docsDir = "documentation"
    179         dict = {'iocDir': iocDir, 'cmdFile': cmdFile}
    180192        if rootDir not in config:
     193            root_list.append( rootDir )
    181194            config[rootDir] = {}
    182195            config[rootDir]['iocs'] = []
    183             config[rootDir]['name'] = top
    184             config[rootDir]['project'] = titleFormat % (top, version)
     196            config[rootDir]['project'] = top
     197            config[rootDir]['name'] = titleFormat % (top, version)
    185198            config[rootDir]['docsDir'] = docsDir
     199        dict = {'iocDir': iocDir, 'cmdFile': cmdFile}
    186200        config[rootDir]['iocs'].append( dict )
    187     return config
     201    return config, root_list
    188202
    189203
     
    215229
    216230
    217 def writeAs_config_xml(config):
     231def writeAs_config_xml(config, ordered_list):
    218232    '''
    219233    write the configuration to an XML file for use by TopDoc
    220234    @param config: configuration dictionary from gather_top_identifiers()
     235    @param ordered_list: ordered list of top-level directories
    221236    '''
    222237    rootTag = "TopDoc-config"
     
    226241    writer.root.set("version", "1.0")
    227242    writer.root.set("written", str(datetime.datetime.now()))
    228     for rootDir in sorted(config):
     243    for rootDir in ordered_list:
    229244        topNode = writer.addStructuredNode(writer.root, "top")
    230245        for item in ('name', 'project'):
     
    242257
    243258if __name__ == '__main__':
    244     config = gather_top_identifiers(buf)
    245     writeAs_config_xml(config)
     259    config, ordered_list = gather_top_identifiers(buf)
     260    writeAs_config_xml(config, ordered_list)
Note: See TracChangeset for help on using the changeset viewer.