Changeset 295

Show
Ignore:
Timestamp:
06/29/09 11:24:24 (15 years ago)
Author:
wrodgers
Message:

Fixed minor errors/compressed XML read operation

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • vtcross/trunk/src/service_management_layer/ServiceManagementLayer.cpp

    r294 r295  
    704704    SendMessage(miss[activeMission].services[sourceID].socketFD, miss[activeMission].services[sourceID].name.c_str()); 
    705705 
    706    //If the service takes a paramater, feed that paramater in 
    707    if(!miss[activeMission].services[sourceID].paramater.empty()){ 
     706   //If the service takes a parameter, feed that parameter in 
     707   if(!miss[activeMission].services[sourceID].parameter.empty()){ 
    708708        //printf("sending parameter!\n"); 
    709709        SendMessage(miss[activeMission].services[sourceID].socketFD, "1"); 
    710710        SendMessage(miss[activeMission].services[sourceID].socketFD, "parameter"); 
    711         SendMessage(miss[activeMission].services[sourceID].socketFD, miss[activeMission].services[sourceID].paramater.c_str()); 
     711        SendMessage(miss[activeMission].services[sourceID].socketFD, miss[activeMission].services[sourceID].parameter.c_str()); 
    712712    } 
    713713 
    714714 
    715715    //Load and transmit the input data 
    716     while(i < 5 && !miss[activeMission].services[sourceID].input[i].empty()){ 
     716    while(i < 10 && !miss[activeMission].services[sourceID].input[i].empty()){ 
    717717        strcpy(_data_DB->command, "select "); 
    718718        strcat(_data_DB->command, _data_DB->tablename); 
     
    747747     
    748748    //Receive and store the output data 
    749     while(j < 5 && !miss[activeMission].services[sourceID].output[j].empty()){ 
     749    while(j < 10 && !miss[activeMission].services[sourceID].output[j].empty()){ 
    750750        int rc; 
    751751        memset(buffer, 0, 256); 
     
    815815 * 
    816816 * DESCRIPTION: This function works by first sending the inputs from the shell to the appropriate components 
    817  * The first service should begin immeadiately, as should any others who have all of their input paramaters 
     817 * The first service should begin immeadiately, as should any others who have all of their input parameters 
    818818 * When they complete, the output path is found and the data is transfered as it becomes available 
    819  * Presumably at this point the second function has all of it's paramaters, so it begins to compute, and the cycle repeats 
     819 * Presumably at this point the second function has all of it's parameters, so it begins to compute, and the cycle repeats 
    820820 *   
    821821 *  
     
    832832ServiceManagementLayer::PerformActiveMission() 
    833833{ 
     834    printf("start PAM\n"); 
    834835    uint16_t i = 0; 
    835836    std::string data_param, data_obsv, data; 
     
    896897 
    897898    //Receive any other defined inputs 
    898     while(i < 5 && !miss[activeMission].input[i].empty()){ 
     899    while(i < 10 && !miss[activeMission].input[i].empty()){ 
    899900            //New data being added to DB 
    900901        //printf("inserting data from shell\n"); 
     
    11501151                                                } 
    11511152                                            } 
    1152                                             //printf("L2:--- %s  %s---\n", miss[activeMission].services[j].output[t].c_str(), token); 
     1153                                            //printf("L2:---%s||%s---\n", miss[activeMission].services[j].output[t].c_str(), token); 
    11531154                                            //TODO change to strstr 
    11541155                                            bool doit = false; 
     
    11821183                                                data.clear(); 
    11831184                                            } 
    1184                                             else if (strstr(miss[activeMission].services[k].output[t].c_str(), token)) 
     1185                                            else if (strstr(miss[activeMission].services[j].output[t].c_str(), token)) 
    11851186                                                doit=true; 
    11861187                                            if(doit){ 
     
    11981199                                        }else if(miss[activeMission].services[j].name.compare("dowhile")==0){ 
    11991200                                            numstatements[0]=0; 
    1200                                             printf("L2 while detected\n"); 
     1201                                            //printf("L2 while detected\n"); 
    12011202                                            while(true){ 
    12021203                                                uint16_t l; 
    12031204                                                    for(l = j+1; l <= j+miss[activeMission].services[j].num_conds; l++){  
    12041205                                                        TransactData(l); 
    1205                                                         printf("l=%d\n", l); 
     1206                                                        //printf("l=%d\n", l); 
    12061207                                                    } 
    12071208                                                    data.clear(); 
     
    12591260                                } 
    12601261                            } 
    1261                             else 
     1262                            else{ 
    12621263                                //printf("L1: if not taken\n"); 
     1264                            } 
    12631265                                numstatements[1] +=miss[activeMission].services[k].num_conds+1; 
    12641266                                k+=miss[activeMission].services[k].num_conds; 
     
    14021404    data.clear(); 
    14031405    //get the ouptuts 
    1404     while(i < 5 && !miss[activeMission].output[i].empty()){ 
     1406    while(i < 10 && !miss[activeMission].output[i].empty()){ 
    14051407        //printf("sending output data to shell\n"); 
    14061408        strcpy(_data_DB->command, "select "); 
     
    15031505 * 
    15041506 * DESCRIPTION: IMPORTANT - See formatting instructions for correct parsing of data 
    1505  * Can currently handle 5 inputs and 5 outputs per service, but easily expandable 
     1507 * Can currently handle 10 inputs and 10 outputs per service, but easily expandable 
    15061508 * Also, can handle two layer of nested conditional statements, but could 
    15071509 * be expanded to meet additional needs. 
     
    15461548            pChild1  = pChild1->NextSiblingElement())  
    15471549        { 
     1550            //printf("here1\n"); 
    15481551            int32_t conditional_0 = service_num; 
    15491552            for(pChild2 = pChild1->FirstChildElement(); \ 
     
    15651568                            else 
    15661569                                mList[mission_num].services[service_num].name = pChild4->Value(); 
    1567                                  
    1568                             if(pChild4->Attribute("input1")) 
    1569                                 mList[mission_num].services[service_num].input[0] = pChild4->Attribute("input1"); 
    1570                             if(pChild4->Attribute("input2")) 
    1571                                 mList[mission_num].services[service_num].input[1] = pChild4->Attribute("input2"); 
    1572                             if(pChild4->Attribute("input3")) 
    1573                                 mList[mission_num].services[service_num].input[2] = pChild4->Attribute("input3"); 
    1574                             if(pChild4->Attribute("input4")) 
    1575                                 mList[mission_num].services[service_num].input[3] = pChild4->Attribute("input4"); 
    1576                             if(pChild4->Attribute("input5")) 
    1577                                 mList[mission_num].services[service_num].input[4] = pChild4->Attribute("input5"); 
    1578                             if(pChild4->Attribute("output1")) 
    1579                                 mList[mission_num].services[service_num].output[0] = pChild4->Attribute("output1"); 
    1580                             if(pChild4->Attribute("output2")) 
    1581                                 mList[mission_num].services[service_num].output[1] = pChild4->Attribute("output2"); 
    1582                             if(pChild4->Attribute("output3")) 
    1583                                 mList[mission_num].services[service_num].output[2] = pChild4->Attribute("output3"); 
    1584                             if(pChild4->Attribute("output4")) 
    1585                                 mList[mission_num].services[service_num].output[3] = pChild4->Attribute("output4"); 
    1586                             if(pChild4->Attribute("output5")) 
    1587                                 mList[mission_num].services[service_num].output[4] = pChild4->Attribute("output5"); 
     1570                            for(int i = 1; i <= 10; i++) { 
     1571                                char buffer[9]="input"; 
     1572                                sprintf(buffer, "%s%d", buffer, i);  
     1573                                //printf("buffer=%s\n", buffer); 
     1574                                if(pChild4->Attribute(buffer)) 
     1575                                    mList[mission_num].services[service_num].input[i-1] = pChild4->Attribute(buffer); 
     1576                                char buffer2[9]="output"; 
     1577                                sprintf(buffer2, "%s%d", buffer2, i);  
     1578                                if(pChild4->Attribute(buffer2)) 
     1579                                    mList[mission_num].services[service_num].output[i-1] = pChild4->Attribute(buffer2); 
     1580                                //printf("i1=%s\n", mList[mission_num].services[conditional_0].input[i].c_str()); 
     1581                            } 
    15881582                            if(pChild4->Attribute("parameter")) 
    1589                                 mList[mission_num].services[service_num].paramater = pChild4->Attribute("parameter"); 
     1583                                mList[mission_num].services[service_num].parameter = pChild4->Attribute("parameter"); 
    15901584                            cond_array[2]++; 
    15911585                        } 
     
    15961590                            mList[mission_num].services[service_num].name = pChild3->Attribute("name"); 
    15971591                        } 
    1598                             if(pChild3->Attribute("input1")) 
    1599                                 mList[mission_num].services[conditional_2].input[0] = pChild3->Attribute("input1"); 
    1600                             if(pChild3->Attribute("input2")) 
    1601                                 mList[mission_num].services[conditional_2].input[1] = pChild3->Attribute("input2"); 
    1602                             if(pChild3->Attribute("input3")) 
    1603                                 mList[mission_num].services[conditional_2].input[2] = pChild3->Attribute("input3"); 
    1604                             if(pChild3->Attribute("input4")) 
    1605                                 mList[mission_num].services[conditional_2].input[3] = pChild3->Attribute("input4"); 
    1606                             if(pChild3->Attribute("input5")) 
    1607                                 mList[mission_num].services[conditional_2].input[4] = pChild3->Attribute("input5"); 
    1608                             if(pChild3->Attribute("output1")) 
    1609                                 mList[mission_num].services[conditional_2].output[0] = pChild3->Attribute("output1"); 
    1610                             if(pChild3->Attribute("output2")) 
    1611                                 mList[mission_num].services[conditional_2].output[1] = pChild3->Attribute("output2"); 
    1612                             if(pChild3->Attribute("output3")) 
    1613                                 mList[mission_num].services[conditional_2].output[2] = pChild3->Attribute("output3"); 
    1614                             if(pChild3->Attribute("output4")) 
    1615                                 mList[mission_num].services[conditional_2].output[3] = pChild3->Attribute("output4"); 
    1616                             if(pChild3->Attribute("output5")) 
    1617                                 mList[mission_num].services[conditional_2].output[4] = pChild3->Attribute("output5"); 
     1592                        for(int i = 1; i <= 10; i++) { 
     1593                            char buffer[9]="input"; 
     1594                            sprintf(buffer, "%s%d", buffer, i);  
     1595                            if(pChild3->Attribute(buffer)) 
     1596                                mList[mission_num].services[conditional_2].input[i-1] = pChild3->Attribute(buffer); 
     1597                            char buffer2[9]="output"; 
     1598                            sprintf(buffer2, "%s%d", buffer2, i);  
     1599                            if(pChild3->Attribute(buffer2)) 
     1600                                mList[mission_num].services[conditional_2].output[i-1] = pChild3->Attribute(buffer2); 
     1601                        } 
    16181602                            if(pChild3->Attribute("parameter")) 
    1619                                 mList[mission_num].services[conditional_2].paramater = pChild3->Attribute("parameter"); 
     1603                                mList[mission_num].services[conditional_2].parameter = pChild3->Attribute("parameter"); 
    16201604                        mList[mission_num].services[conditional_2].num_conds = cond_array[2]; 
    16211605                        cond_array[1]+=cond_array[2]+1; 
    1622                         //printf("cond_array[2]%d\n", cond_array[2]); 
    16231606                        cond_array[2] = 0; 
    16241607 
     
    16311614                    mList[mission_num].services[service_num].name = pChild2->Attribute("name"); 
    16321615                } 
    1633                 if(pChild2->Attribute("input1")) 
    1634                     mList[mission_num].services[conditional_1].input[0] = pChild2->Attribute("input1"); 
    1635                 if(pChild2->Attribute("input2")) 
    1636                     mList[mission_num].services[conditional_1].input[1] = pChild2->Attribute("input2"); 
    1637                     if(pChild2->Attribute("input3")) 
    1638                         mList[mission_num].services[conditional_1].input[2] = pChild2->Attribute("input3"); 
    1639                     if(pChild2->Attribute("input4")) 
    1640                         mList[mission_num].services[conditional_1].input[3] = pChild2->Attribute("input4"); 
    1641                     if(pChild2->Attribute("input5")) 
    1642                         mList[mission_num].services[conditional_1].input[4] = pChild2->Attribute("input5"); 
    1643                     if(pChild2->Attribute("output1")) 
    1644                         mList[mission_num].services[conditional_1].output[0] = pChild2->Attribute("output1"); 
    1645                     if(pChild2->Attribute("output2")) 
    1646                         mList[mission_num].services[conditional_1].output[1] = pChild2->Attribute("output2"); 
    1647                     if(pChild2->Attribute("output3")) 
    1648                         mList[mission_num].services[conditional_1].output[2] = pChild2->Attribute("output3"); 
    1649                     if(pChild2->Attribute("output4")) 
    1650                         mList[mission_num].services[conditional_1].output[3] = pChild2->Attribute("output4"); 
    1651                     if(pChild2->Attribute("output5")) 
    1652                         mList[mission_num].services[conditional_1].output[4] = pChild2->Attribute("output5"); 
     1616                for(int i = 1; i <= 10; i++) { 
     1617                    char buffer[9]="input"; 
     1618                    sprintf(buffer, "%s%d", buffer, i);  
     1619                    if(pChild2->Attribute(buffer)) 
     1620                        mList[mission_num].services[conditional_1].input[i-1] = pChild2->Attribute(buffer); 
     1621                    char buffer2[9]="output"; 
     1622                    sprintf(buffer2, "%s%d", buffer2, i);  
     1623                    if(pChild2->Attribute(buffer2)) 
     1624                        mList[mission_num].services[conditional_1].output[i-1] = pChild2->Attribute(buffer2); 
     1625                } 
    16531626                    if(pChild2->Attribute("parameter")) 
    1654                         mList[mission_num].services[conditional_1].paramater = pChild2->Attribute("parameter"); 
     1627                        mList[mission_num].services[conditional_1].parameter = pChild2->Attribute("parameter"); 
    16551628 
    16561629                mList[mission_num].services[conditional_1].num_conds = cond_array[1]; 
    16571630                cond_array[0]+=cond_array[1]+1; 
    1658                 //printf("cond_array[1]%d\n", cond_array[1]); 
    16591631                cond_array[1] = 0; 
    16601632            } 
     
    16661638                mList[mission_num].services[conditional_0].name = pChild1->Attribute("name"); 
    16671639            } 
    1668                 //printf("name=%s\n", mList[mission_num].services[conditional_0].name.c_str()); 
    1669                 if(pChild1->Attribute("input1")) 
    1670                     mList[mission_num].services[conditional_0].input[0] = pChild1->Attribute("input1"); 
    1671                 if(pChild1->Attribute("input2")) 
    1672                     mList[mission_num].services[conditional_0].input[1] = pChild1->Attribute("input2"); 
    1673                 if(pChild1->Attribute("input3")) 
    1674                     mList[mission_num].services[conditional_0].input[2] = pChild1->Attribute("input3"); 
    1675                 if(pChild1->Attribute("input4")) 
    1676                     mList[mission_num].services[conditional_0].input[3] = pChild1->Attribute("input4"); 
    1677                 if(pChild1->Attribute("input5")) 
    1678                     mList[mission_num].services[conditional_0].input[4] = pChild1->Attribute("input5"); 
    1679                 if(pChild1->Attribute("output1")) 
    1680                     mList[mission_num].services[conditional_0].output[0] = pChild1->Attribute("output1"); 
    1681                 if(pChild1->Attribute("output2")) 
    1682                     mList[mission_num].services[conditional_0].output[1] = pChild1->Attribute("output2"); 
    1683                 if(pChild1->Attribute("output3")) 
    1684                     mList[mission_num].services[conditional_0].output[2] = pChild1->Attribute("output3"); 
    1685                 if(pChild1->Attribute("output4")) 
    1686                     mList[mission_num].services[conditional_0].output[3] = pChild1->Attribute("output4"); 
    1687                 if(pChild1->Attribute("output5")) 
    1688                     mList[mission_num].services[conditional_0].output[4] = pChild1->Attribute("output5"); 
     1640                for(int i = 1; i <= 10; i++) { 
     1641                    char buffer[9]="input"; 
     1642                    sprintf(buffer, "%s%d", buffer, i);  
     1643                    if(pChild1->Attribute(buffer)) 
     1644                        mList[mission_num].services[conditional_0].input[i-1] = pChild1->Attribute(buffer); 
     1645                    char buffer2[9]="output"; 
     1646                    sprintf(buffer2, "%s%d", buffer2, i);  
     1647                    if(pChild1->Attribute(buffer2)) 
     1648                        mList[mission_num].services[conditional_0].output[i-1] = pChild1->Attribute(buffer2); 
     1649                } 
     1650                   // printf("i1=%s\n", mList[mission_num].services[conditional_0].input[0].c_str()); 
    16891651                if(pChild1->Attribute("parameter")) 
    1690                     mList[mission_num].services[conditional_0].paramater = pChild1->Attribute("parameter"); 
     1652                    mList[mission_num].services[conditional_0].parameter = pChild1->Attribute("parameter"); 
    16911653            mList[mission_num].services[conditional_0].num_conds = cond_array[0]; 
    16921654            cond_array[0] = 0; 
     
    16941656        } 
    16951657        //for(int i = 0; i < service_num; i++) 
    1696         // printf("ttt%s\n",mList[mission_num].services[i].name.c_str()); 
     1658         //printf("ttt%s\n",mList[mission_num].services[i].input[0].c_str()); 
    16971659         
    16981660        mList[mission_num].numServices = service_num; 
    16991661        mList[mission_num].name = pChild0->Attribute("name"); 
    1700         mList[mission_num].missionID = atoi(pChild0->Attribute("id")); 
    1701         if(pChild0->Attribute("input1")) 
    1702             mList[mission_num].input[0] = pChild0->Attribute("input1"); 
    1703         if(pChild0->Attribute("input2")) 
    1704             mList[mission_num].input[1] = pChild0->Attribute("input2"); 
    1705         if(pChild0->Attribute("input3")) 
    1706             mList[mission_num].input[2] = pChild0->Attribute("input3"); 
    1707         if(pChild0->Attribute("input4")) 
    1708             mList[mission_num].input[3] = pChild0->Attribute("input4"); 
    1709         if(pChild0->Attribute("input5")) 
    1710             mList[mission_num].input[4] = pChild0->Attribute("input4"); 
    1711         if(pChild0->Attribute("output1")) 
    1712             mList[mission_num].output[0] = pChild0->Attribute("output1"); 
    1713         if(pChild0->Attribute("output2")) 
    1714             mList[mission_num].output[1] = pChild0->Attribute("output2"); 
    1715         if(pChild0->Attribute("output3")) 
    1716             mList[mission_num].output[2] = pChild0->Attribute("output3"); 
    1717         if(pChild0->Attribute("output4")) 
    1718             mList[mission_num].output[3] = pChild0->Attribute("output4"); 
    1719         if(pChild0->Attribute("output5")) 
    1720             mList[mission_num].output[4] = pChild0->Attribute("output5"); 
     1662        mList[mission_num].missionID = atoi(pChild0->Attribute("id")); 
     1663        for(int i = 1; i <= 10; i++) { 
     1664            char buffer[9]="input"; 
     1665            sprintf(buffer, "%s%d", buffer, i);  
     1666            if(pChild0->Attribute(buffer)) 
     1667                mList[mission_num].input[i-1] = pChild0->Attribute(buffer); 
     1668            char buffer2[9]="output"; 
     1669            sprintf(buffer2, "%s%d", buffer2, i);  
     1670            if(pChild0->Attribute(buffer2)) 
     1671                mList[mission_num].output[i-1] = pChild0->Attribute(buffer2); 
     1672        } 
    17211673        //printf("mis, input1=%s, output1=%s\n", mList[mission_num].input[0].c_str(), mList[mission_num].output[0].c_str()); 
    17221674        //printf("NUMSERVICES = %d\n", mList[mission_num].numServices); 
    17231675        mission_num++; 
    1724     } 
     1676        //printf("here\n"); 
     1677    } 
     1678    //LOG("ServiceManagementLayer:: Done Loading Configuration"); 
    17251679} 
    17261680