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; } }
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; } }
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"); }
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; } }
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; } }