CCryptoOptions::CCryptoOptions(
		const CString& modeString,
		const CString& pass) :
	m_pass(pass),
	m_mode(parseMode(modeString))
{
}
bool QGeoRouteXmlParser::parseRoute(QGeoRoute *route)
{
    Q_ASSERT(m_reader->isStartElement() && m_reader->name() == "Route");
    maneuvers.clear();
    segments.clear();

    m_reader->readNext();
    bool succeeded = true;
    while (!(m_reader->tokenType() == QXmlStreamReader::EndElement && m_reader->name() == "Route")) {
        if (m_reader->tokenType() == QXmlStreamReader::StartElement && succeeded) {
            if (m_reader->name() == "RouteId") {
                route->setRouteId(m_reader->readElementText());
            }
            //else if (m_reader->name() == "Waypoint") {
            //    succeeded = parseWaypoint(route);
            //}
            else if (m_reader->name() == "Mode") {
                succeeded = parseMode(route);
            } else if (m_reader->name() == "Shape") {
                QString elementName = m_reader->name().toString();
                QList<QGeoCoordinate> path;
                succeeded = parseGeoPoints(m_reader->readElementText(), &path, elementName);
                if (succeeded)
                    route->setPath(path);
            } else if (m_reader->name() == "BoundingBox") {
                QGeoBoundingBox bounds;
                succeeded = parseBoundingBox(bounds);
                if (succeeded)
                    route->setBounds(bounds);
            } else if (m_reader->name() == "Leg") {
                succeeded = parseLeg();
            } else if (m_reader->name() == "Summary") {
                succeeded = parseSummary(route);
            } else {
                m_reader->skipCurrentElement();
            }
        }
        m_reader->readNext();
    }
    if (succeeded)
        succeeded = postProcessRoute(route);

    return succeeded;
}
void
CCryptoOptions::setMode(CString modeString)
{
	m_modeString = modeString;
	m_mode = parseMode(modeString);
}
Example #4
0
//////////////////////////////
// Parse an IRC command (private)
void IRCClient::parseCommand(const IRCClient::IRCCommand &cmd)
{
	
	/*printf("IRC: sender '%s' cmd '%s'", cmd.sender.c_str(), cmd.cmd.c_str() );
	for( size_t i=0; i<cmd.params.size(); i++ )
		printf(" param %i '%s'", i, cmd.params[i].c_str());
	printf("\n");*/
	

	// Process depending on the command

	bool fail = false;
	int num_command = from_string<int>(cmd.cmd, fail);

	// String commands
	if (fail)  {
		if (cmd.cmd == "PING")
			parsePing(cmd);

		else if (cmd.cmd == "MODE")
			parseMode(cmd);

		else if (cmd.cmd == "PRIVMSG")
			parsePrivmsg(cmd);

		else if (cmd.cmd == "KICK")
			parseKicked(cmd);

		else if (cmd.cmd == "PART" || cmd.cmd == "QUIT")
			parseDropped(cmd);

		else if (cmd.cmd == "JOIN")
			parseJoin(cmd);

		else if (cmd.cmd == "NICK")
			parseNick(cmd);

		else if (cmd.cmd == "NOTICE")
			parseNotice(cmd);

		else if (cmd.cmd == "ERROR")
			parseError(cmd);

		else
			warnings("IRC: unknown command " + cmd.cmd + "\n");

	// Numeric commands
	} else {
		switch (num_command)  {

		// Nick in use
		case LIBIRC_RFC_ERR_NICKNAMEINUSE:
			parseNickInUse(cmd);
			break;

		// List of names
		case LIBIRC_RFC_RPL_NAMREPLY:
			parseNameReply(cmd);
			break;

		// End of name list
		case LIBIRC_RFC_RPL_ENDOFNAMES:
			parseEndOfNames(cmd);
			break;
			
			
		case LIBIRC_RFC_RPL_AWAY:
			parseAway(cmd);
			break;

		case LIBIRC_RFC_RPL_WHOISUSER:
			parseWhois(cmd);
			break;

		case LIBIRC_RFC_RPL_ENDOFWHOIS:
			parseEndOfWhois(cmd);
			break;
			
		case LIBIRC_RFC_RPL_TOPIC:
			parseTopic(cmd);
			break;

		// Message of the day
		case LIBIRC_RFC_RPL_MOTDSTART:
		case LIBIRC_RFC_RPL_MOTD:
		case LIBIRC_RFC_RPL_ENDOFMOTD:
			// Message of the day (ignored currently)
			break;

		// Messages sent upon a successful join
		case LIBIRC_RFC_RPL_WELCOME:
		case LIBIRC_RFC_RPL_YOURHOST:
		case LIBIRC_RFC_RPL_CREATED:
		case LIBIRC_RFC_RPL_MYINFO:
			// Quite useless stuff...
			break;

		default: {}
			// Just ignore, there are many "pro" commands that we don't need
		}
	}
}
Example #5
0
void loop() // run over and over
{
   
  message = readSerial();
  int length = message.length();
  if(length > 0){
    Serial.println("CMD>\"" + message + "\"");   
   
//    AF_GAIN

    if(message == "AF_GAIN"){
      memcpy(cmd_bytes, AF_GAIN,7);
    }
   
    if(message == "SET_MODE_LSB"){
      memcpy(cmd_bytes, SET_MODE_LSB,7);
    }   

    if(message == "SET_MODE_USB"){
      memcpy(cmd_bytes, SET_MODE_USB,7);
    }   

    if(message == "SET_MODE_AM"){
      memcpy(cmd_bytes, SET_MODE_AM,7);
    }

    if(message == "SET_MODE_RTTY"){
      memcpy(cmd_bytes, SET_MODE_RTTY,7);
    }
   
    if(message == "SET_MODE_RTTY_REV"){
      memcpy(cmd_bytes, SET_MODE_RTTY_REV,7);
    }
   
    if(message == "SET_MODE_CW"){
      memcpy(cmd_bytes, SET_MODE_CW,7);
    }
   
    if(message == "SET_MODE_CW_REV"){
      memcpy(cmd_bytes, SET_MODE_CW_REV,7);
    }
   
    if(message == "NR_LEVEL"){
      memcpy(cmd_bytes, NR_LEVEL,7);
    }
  
     
    if(message.substring(0,8) == "AF_GAIN "){
      byte one = 0x00; // First Byte
      byte two = 0x00; // Second Byte
      level_convert(message.substring(8,13),one,two);
      byte AF_GAIN_SET[] = {0xFE,0xFE,0x5E,0x0E,0x14,0x01,one,two,0xFD};
      memcpy(cmd_bytes, AF_GAIN_SET, sizeof(AF_GAIN_SET));
    }

    if(message == "RF_GAIN"){
      byte RF_GAIN[] = {0xFE,0xFE,0x5E,0x0E,0x14,0x02,0xFD};
      memcpy(cmd_bytes, RF_GAIN, sizeof(RF_GAIN));
    }
   
    if(message.substring(0,8) == "RF_GAIN "){
      byte one = 0x00; // First Byte
      byte two = 0x00; // Second Byte
      level_convert(message.substring(8,13),one,two);
      byte RF_GAIN_SET[] = {0xFE,0xFE,0x5E,0x0E,0x14,0x02,one,two,0xFD};
      memcpy(cmd_bytes, RF_GAIN_SET, sizeof(RF_GAIN_SET));
    }
   
    if(message.substring(0,9) == "RF_POWER "){
      byte one = 0x00; // First Byte
      byte two = 0x00; // Second Byte
      level_convert(message.substring(9,13),one,two);     
      byte RF_POWER_SET[] = {0xFE,0xFE,0x5E,0x0E,0x14,0x0A,one,two,0xFD};
      memcpy(cmd_bytes, RF_POWER_SET, sizeof(RF_POWER_SET));
    }
   
    if(message.substring(0,9) == "MIC_GAIN "){
      byte one = 0x00; // First Byte
      byte two = 0x00; // Second Byte
      level_convert(message.substring(9,13),one,two);           
      byte MIC_GAIN_SET[] = {0xFE,0xFE,0x5E,0x0E,0x14,0x0B,one,two,0xFD};
      memcpy(cmd_bytes, MIC_GAIN_SET, sizeof(MIC_GAIN_SET));
    }
   
    if(message.substring(0,9) == "NR_LEVEL "){
     
      String level_str = message.substring(9,11);
      level_str.trim();
      int level_int;
      level_int = level_str.toInt();

      if(level_int > 0 and level_int < 16){
        memcpy(cmd_bytes, NR_LEVELS[level_int], sizeof(NR_LEVELS[level_int]));
      }
    }
   
   
    if(message == "MIC_GAIN"){
      memcpy(cmd_bytes, MIC_GAIN,7);
    }  

    if(message == "RF_LEVEL"){
      memcpy(cmd_bytes, RF_LEVEL,7);
    }
   
    if(message == "RF_LEVEL"){
      memcpy(cmd_bytes, RF_LEVEL,7);
    }

    if(message == "RF_LEVEL_HI"){
      memcpy(cmd_bytes, RF_LEVEL_HI,sizeof(RF_LEVEL_HI));
    }

    if(message == "RF_LEVEL_LOW"){
      memcpy(cmd_bytes, RF_LEVEL_LOW,sizeof(RF_LEVEL_LOW));
    }

   
    if(message == "SET_VFO_A"){
      memcpy(cmd_bytes, SET_VFO_A,7);
    }   
   
    if(message == "SET_VFO_B"){
      memcpy(cmd_bytes, SET_VFO_B,7);
    }   

    if(message == "VFO_A_eq_B"){
      memcpy(cmd_bytes, VFO_A_eq_B,7);
    }   
   
    if(message == "VFO_A_Sw_B"){
      memcpy(cmd_bytes, VFO_A_Sw_B,7);
    }   
   
    if(message == "SPLIT_ON"){
      memcpy(cmd_bytes, SPLIT_ON,7);
    }   
    if(message == "SPLIT_OFF"){
      memcpy(cmd_bytes, SPLIT_OFF,7);
    }

    if(message == "SET_TS_ON"){
      memcpy(cmd_bytes, SET_TS_ON,7);
    }   
    if(message == "SET_TS_OFF"){
      memcpy(cmd_bytes, SET_TS_OFF,7);
    }   
   
    if(message == "ATT_ON"){
      memcpy(cmd_bytes, ATT_ON,7);
    }   
    if(message == "ATT_OFF"){
      memcpy(cmd_bytes, ATT_OFF,7);
    }       
   
    if(message == "NB_OFF" ){   
      memcpy(cmd_bytes,NB_OFF,8);
    }
    if(message == "NB_ON"){
      memcpy(cmd_bytes,NB_ON,8);
    }
   
    if(message == "PRE_AMP_ON"){
      memcpy(cmd_bytes, PRE_AMP_ON,8);
    }   
    if(message == "PRE_AMP_OFF"){
      memcpy(cmd_bytes, PRE_AMP_OFF,8);
    }
   
    if(message == "NR_ON"){
      memcpy(cmd_bytes, NR_ON,8);
    }   
    if(message == "NR_OFF"){
      memcpy(cmd_bytes, NR_OFF,8);
    }   
   
    if(message == "COMP_ON"){
      memcpy(cmd_bytes, COMP_ON,8);
    }   
    if(message == "COMP_OFF"){
      memcpy(cmd_bytes, COMP_OFF,8);
    }       

    if(message == "VOX_ON"){
      memcpy(cmd_bytes, VOX_ON,8);
    }   
    if(message == "VOX_OFF"){
      memcpy(cmd_bytes, VOX_OFF,8);
    }

    if(message == "BK_IN_ON"){
      memcpy(cmd_bytes, BK_IN_ON,8);
    }   
    if(message == "BK_IN_OFF"){
      memcpy(cmd_bytes, BK_IN_OFF,8);
    }
   
    if(message == "READ_OPERATING_MODE"){
      memcpy(cmd_bytes, READ_OPERATING_MODE,6);
    }
   
    if(message == "READ_FREQUENCYS"){
      memcpy(cmd_bytes, READ_FREQUENCYS,6);
    }

    if(message == "READ_UPPER_LOWER_FREQUENCIES"){
      memcpy(cmd_bytes, READ_UPPER_LOWER_FREQUENCIES,6);
    }   
   
    if(message == "READ_SMETER"){
      memcpy(cmd_bytes, READ_SMETER,7);
    }
   
    if(message == "SET_OPERATING_FRQ"){
      memcpy(cmd_bytes, SET_OPERATING_FRQ,sizeof(SET_OPERATING_FRQ));
    }   
 
   
   
/*
    if(message.substring(0,4) == "CMD "){
      memcpy(cmd_bytes,genericCommand(message.substring(4,message.length())),8);
    }
*/   
    //Issue Command
    for(int i = 0; i < sizeof(cmd_bytes); i = i + 1){
      Serial.print(cmd_bytes[i],HEX);
      Serial.print(" ");
    }
    Serial.println();
   
    mySerial.write(cmd_bytes,sizeof(cmd_bytes));
    //Clear the memory
    memcpy(cmd_bytes,CLEAR,8);
  }
 
  byte read_byte = mySerial.read();   
  byte read_bytes[11];
  int read_byte_index = 0;
  if(read_byte == 0xFE){
    Serial.print("RX -->:");
    Serial.print(read_byte,HEX);
    Serial.print(" ");
   
    read_bytes[read_byte_index] = read_byte;
    read_byte_index++;

      if(read_byte != 0xFF){     
        while(1 == 1){
          read_byte = mySerial.read();
          Serial.print(read_byte,HEX);
          Serial.print(" ");   
     
          read_bytes[read_byte_index] = read_byte;
          read_byte_index++;
         
          if(read_byte == 0xFD){
            Serial.println(" <--");
            break;
          }        
        }

        Serial.print("RX:");       
        for(int i = 0; i < sizeof(read_bytes); i = i + 1){
          Serial.print(i);
          Serial.print("=>");
          Serial.print(read_bytes[i],HEX);         
          Serial.print(" ");
        }       
        Serial.println();
       
        if(read_bytes[4] == 0x00 or read_bytes[4] == 0x03){
          Serial.println("ParseFreq:" + parseFreq(read_bytes));
        }
       
        if(read_bytes[4] == 0x01){
          Serial.println("ParseMode:" + parseMode(read_bytes));
        }
       
        if(read_bytes[4] == 0x04){
          Serial.println("ReadOperatingMode:" + parseMode(read_bytes));
        }
       
      }
    
  }
}