std::vector<std::vector<std::string> > & getDescription() { if (_desc.size() == 0) { _desc.push_back(std::vector<std::string>()); _desc.push_back(std::vector<std::string>()); std::stringstream ss; _desc[0].push_back("Player Type:"); _desc[0].push_back("Time Limit:"); _desc[0].push_back("C Value:"); _desc[0].push_back("Max Traversals:"); _desc[0].push_back("Max Children:"); _desc[0].push_back("Move Ordering:"); _desc[0].push_back("Player To Move:"); _desc[0].push_back("Opponent Model:"); _desc[0].push_back("Move Selection:"); ss << "Rave"; _desc[1].push_back(ss.str()); ss.str(std::string()); ss << timeLimit() << "ms"; _desc[1].push_back(ss.str()); ss.str(std::string()); ss << cValue(); _desc[1].push_back(ss.str()); ss.str(std::string()); ss << maxTraversals(); _desc[1].push_back(ss.str()); ss.str(std::string()); ss << maxChildren(); _desc[1].push_back(ss.str()); ss.str(std::string()); ss << MoveOrderMethod::getName(moveOrderingMethod()); _desc[1].push_back(ss.str()); ss.str(std::string()); ss << PlayerToMove::getName(playerToMoveMethod()); _desc[1].push_back(ss.str()); ss.str(std::string()); ss << PlayerModels::getName(playerModel((maxPlayer()+1)%2)); _desc[1].push_back(ss.str()); ss.str(std::string()); ss << UCTMoveSelect::getName(rootMoveSelectionMethod()); _desc[1].push_back(ss.str()); ss.str(std::string()); } return _desc; }
bool Field::Load(std::ifstream& f, int shift){ S_LOG("Load"); auto current = std::ios_base::cur; if (f.good()){ f.seekg(shift, current); log(logxx::debug) << "Current position: 0x" << std::hex << f.tellg() << std::dec << logxx::endl; uint32_t fieldLength(0); char optionalField[2]; f.read(optionalField, 2); check_error(optionalField); if ( std::strncmp(optionalField, "PN", 2) == 0 || std::strncmp(optionalField, "LO", 2) == 0 || std::strncmp(optionalField, "DA", 2) == 0 ){ uint16_t shortFieldLength(0); fread(shortFieldLength); fieldLength = shortFieldLength; } else{ f.seekg(-2, std::ios_base::cur); fread(fieldLength); } static const decltype(fieldLength) maxLength = 100; if (fieldLength == 0){ log(logxx::warning) << "Field length is zero, nothing to read!" << logxx::endl; return false; } else if (fieldLength > maxLength){ log(logxx::warning) << "Too large field: " << fieldLength << "; maximum allowed is: " << maxLength << logxx::endl; return false; } std::unique_ptr<char[]> cValue(new char[fieldLength]); f.read(cValue.get(), fieldLength); check_error(cValue); try { value.assign(cValue.get(), fieldLength); ProcessValue(); return true; } catch (const std::exception& e){ log(logxx::warning) << "Cought an exception: " << e.what() << logxx::endl; value.assign('%', fieldLength); return true; } } else { log(logxx::error) << "Can't read file" << logxx::endl; return false; } }
static void usart_tcpsend_thread(void *arg) { u8 t; u8 len; err_t err; (void)arg; while(1) { /* if(USART_RX_STA&0x80)// { if (newconn) { void *RxPtr; len=USART_RX_STA&0x3f;// RxPtr=USART_RX_BUF; //for(t=0;t<len;t++) //{ //USART3->DR=USART_RX_BUF[t]; netconn_write(newconn, RxPtr, len, NETCONN_COPY); while((USART3->SR&0X40)==0);// //} USART_RX_STA=0; } } */ if(USART_RX_STA&0x80)// { if (newconn) { void *RxPtr; float distance; float radar_30inch; float X; float short_distance; char str_buffer[10]; //float long_distance=cValue(12,13); RxPtr=RxBuffer; radar_30inch=cValue(34,35); X=cValue(9,10); short_distance=cValue(14,15); distance=30+(126.75-30)/(short_distance-radar_30inch)*(X-radar_30inch); sprintf(str_buffer,"%f",distance); //printf("\n%f\n",distance); //netconn_write(newconn, RxPtr, NbrOfDataToRead, NETCONN_COPY); netconn_write(newconn, str_buffer, 10, NETCONN_COPY); while((USART3->SR&0X40)==0);// //} USART_RX_STA=0; USART_ITConfig(USART3, USART_IT_RXNE, ENABLE); RxCounter=0; } } } }