Interpretar comandos en Arduino por el serial desde un pc

Hola
Esto es parte de un instrumento que estoy tratando de armar no se si es mejor hacerlo como proyecto o por partes
Me pareció más útil para que tenga la misma duda o sacra una idea de algo puntual y no de algo que tiene mucho código y se puede ser entreverado

Les cuento arme una rutinita para poder recibir comandos desde un pc y fue lo que se me ocurrió
Quisiera saber si hay alguna forma mejor o mas eficiente de hacer lo mismo

lo que trate de hacer es pasarles parámetros al Arduino
Por ejemplo la frecuencia el comando que mando es F432300f
F es el inicio
432300 la frecuencia
f sierro
Lo otro que mando son los pasos S100s
S es el inició
100 Pasos
s sierro
Y me faltan algunos parámetros mas como la atenuación apagada y encendida de la salida y algún comando o parámetro más que al momento no me doy cuenta que falte

Les dejo el código que tengo echo y me gustaría recibir alguna sugerencia para bien o para mal así puedo tratar de mejorar lo que hago

char caracter;
String comando;
boolean Finicio=false;
boolean Pasos=false;
String RFoutString;
unsigned long RFouttemp;
int RFStep = 0;
String RFStepString="";




void setup() {
  // put your setup code here, to run once:
      Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
   while (Serial.available()>0)
   {
        RX232();
   }
   Serial.println(RFouttemp);
   Serial.println(RFStep);
}

void RX232()
{
   caracter= Serial.read();
   comando.concat(caracter);
   if (comando=="F")
   {
     Finicio = true;
     RFoutString="";
   //  comando="";
   }
   else if(comando=="f")
   {
    RFouttemp=RFoutString.toInt(); //combierto de string a valor numerio
    Finicio=false;
   // comando="";
   }
    else if(Finicio == true)
   {
    RFoutString += comando;
   // comando="";
    }
   if (comando=="S")
   {
     Pasos = true;
     RFStepString="";
   //  comando="";
   }
   else if(comando=="s")
   {
    RFStep=RFStepString.toInt();//combierto de string a valor numerio
    Pasos=false;
   // comando="";
   }
    else if(Pasos == true)
   {
    RFStepString += comando;
    //comando="";
    }
comando="";
    
}