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;
    }
Пример #2
0
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;
	}
}
Пример #3
0
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;
			}

		}

	}
}