Example #1
0
boolean newBoardAvailable()
{
    if((nBoards < MAX_N_BOARDS) && (nSenActs < MAX_N_SENACT)&&nFreeCH)
    {
        radio.stopListening();
        radio.setChannel( APPLICATION_CH );
        radio.startListening();

        if(readPackage(newBoardPacked, 32))
        {
            if(writePackage(newBoardPacked, 32))return true;
            else
            {
                Serial.println("\nError: writng back board");
                return false;
            }
        }
        else
        {
            //Serial.println("\nError: no New Board");
            return false;
        }
    }
    else
    {
        Serial.println("Error: no more buffer/channel space");
        return false;
    }
}
Example #2
0
boolean returnBoardToNetwork(Board *theBoard, int index)
{
    byte k=0xf0;
    if(writePackage(&k, 1))
    {
        k=1;
        if(readPackageAck(package,1,&k,1))
        {
            if(writePackage(&(Boards[index].channel),1))
            {
                if(readPackageAck(package,1,&k,1))
                {
                    //Send connected command
                    k=0xff;
                    delay(10);
                    if(writePackage(&k, 1))
                    {
                        //Serial.println("Board reconnected!");
                        return true;
                    }
                    else   return false;
                }
                else return false;
            }
            else
            {   return false;
            }
        }
        else
        {   return false;
        }
    }
    else
    {   return false;
    }
}
Example #3
0
void PowerpointGenerator::execute() {
  std::shared_ptr<SearchClient> searchClient = SearchClientFactory::createSearchClient(configuration.searchEngine);
  searchClient->executeSearch(configuration.topic);
  auto resultLinks = searchClient->getResultLinks();

  std::vector<std::string> resultHtmlContent;

  HttpClient client;
  for (auto url : resultLinks) {
    client = HttpClient(url);
    resultHtmlContent.push_back(client.getHtmlOrEmptyString());
  }
  // TO BE REMOVED
  //resultHtmlContent = std::vector<std::string>(resultHtmlContent.begin(), resultHtmlContent.begin() + 2);

  HTMLFilter filter;
  std::vector<std::string> resultHtmlContent_filtered;
  for (std::string content : resultHtmlContent) {
    resultHtmlContent_filtered.push_back(filter.execute(content));
  }
 
  ISpreadRankStrategy iSRStrategy(0.7, 100, configuration.topic, resultHtmlContent_filtered);
  std::vector<Sentence> summarySentences = iSRStrategy.execute();

  auto package = PowerpointPackageBuilder().buildFromTemplate("templates/template1.pptx");
  SlidePartBuilder builder;
  auto titleSlide = builder.buildTitleSlide(configuration.topic, "");
  package->addSlide(titleSlide, 0);
  int summarySize(5);
  std::vector<Sentence> subSummary;
  if (summarySentences.size() >= summarySize) {
    subSummary = std::vector<Sentence>(summarySentences.begin(), summarySentences.begin() + summarySize);
  } else {
    subSummary = std::vector<Sentence>(summarySentences.begin(), summarySentences.end());
  }
  std::vector<std::string> subSummaryStrings;
  for (Sentence sentence : subSummary) subSummaryStrings.push_back(sentence.content);
  auto listSlide = builder.buildBulletListSlide(configuration.topic, subSummaryStrings);
  package->addSlide(listSlide, 1);
  package->writePackage(configuration.outputFolder + "/" + configuration.topic + ".pptx");
}
Example #4
0
boolean readSensorB(SenAct * theSenAct)
{
    //Serial.print((char*)theSenAct->name);
    //Serial.print(": ");
    if(writePackage(&(theSenAct->nSA),1))
    {
        if(readPackage(theSenAct->lastReading, theSenAct->nData))
        {
            Serial.print("\n");
            switch(theSenAct->type)
            {
            case BOOL:
                //Serial.println(*((boolean*)theSenAct->lastReading));
                Serial.print(theSenAct->name);
                Serial.print('\t');
                Serial.println(*((boolean*)theSenAct->lastReading));
                break;
            case U_CHAR:
                //Serial.println(*((unsigned char*)theSenAct->lastReading));
                break;
            case S_CHAR:
                //Serial.println(*((signed char*)theSenAct->lastReading));
                break;
            case U_INT16:
                //Serial.println(*((unsigned int*)theSenAct->lastReading));
                break;
            case S_INT16:
                //Serial.println(*((signed int*)theSenAct->lastReading));
                break;
            case UL_INT32:
                //Serial.println(*((unsigned long int*)theSenAct->lastReading));
                break;
            case SL_INT32:
                //Serial.println(*((signed long int*)theSenAct->lastReading));
                break;
            case FLOAT:
                Serial.print(theSenAct->name);
                Serial.print('\t');
                Serial.println(*((float*)theSenAct->lastReading));
                break;
            case DOUBLE:
                //Serial.println(*((double*)theSenAct->lastReading));
                break;
            case CHAR_ARRAY:
                //Serial.println((char*)theSenAct->lastReading);
                break;
            }
            return true;
        }
        else
        {
            Serial.println("Fail read sensor");
            return false;
        }
    }
    else
    {
        Serial.println("Fail write to read sensor");
        return false;
    }
}
Example #5
0
boolean newBoardDefine()
{
    byte k;
    int index;
    if(alreadyRegistared(&Boards[nBoards],&index))
        return returnBoardToNetwork(&Boards[nBoards],index);

    unsigned char tempNsenAct = nSenActs;

    for(int i =0; i< Boards[nBoards].nSenAct; i++)
    {
        k=i;
        if(writePackage(&k, 1))
        {
            unsigned char tempNsenAct = nSenActs;
            if(readPackage(package,32))
            {
                unpackSenAct( &SenActs[nSenActs],package);
                //Serial.println((char*)SenActs[nSenActs].name);
                nSenActs++;
            }
            else
            {
                nSenActs = tempNsenAct;
                Serial.println("\nError in reading Senact pack");
                return false;
            }
        }
        else
        {
            nSenActs = tempNsenAct;
            Serial.println("\nError in write k");
            return false;
        }
    }
    //Send change channel command
    k=0xf0;
    if(writePackage(&k, 1))
    {
        k=1;
        if(readPackageAck(package,1,&k,1))
        {
            if(writePackage(&freeCH[nextFreeCH],1))
            {
                if(readPackageAck(package,1,&k,1))
                {
                    Boards[nBoards].channel = freeCH[nextFreeCH];
                    //Serial.println("\nfree Chanell: ");
                    //Serial.print(freeCH[nextFreeCH],DEC);

                    nFreeCH=nFreeCH-4;
                    nextFreeCH=nextFreeCH+4;
                }
                else
                {
                    nSenActs = tempNsenAct;
                    Serial.println("\nError in read ch ACK");
                    return false;
                }
            }
            else
            {
                nSenActs = tempNsenAct;
                Serial.println("\nError in write ch");
                return false;
            }
        }
        else
        {
            nSenActs = tempNsenAct;
            Serial.println("\nError in read ch comm ACK");
            return false;
        }
    }
    else
    {
        nSenActs = tempNsenAct;
        Serial.println("\nError in write ch comm");
        return false;
    }


    //Send connected command
    k=0xff;
    delay(10);
    if(writePackage(&k, 1))
    {
        nBoards++;
        return true;
    }
    else
    {
        nSenActs = tempNsenAct;
        Serial.println("\nError in write conn");
        return false;
    }
}