Balancing robot for dummies

The functions looks like this to day:

int skipOut=0;

void serialOut_GUI() {  
  
  if(skipOut++>=updateRate) {                                                        
    skipOut = 0;
    //Filtered and unfiltered angle
    Serial.print(ACC_angle, DEC);  Serial.print(",");
    Serial.print(actAngle, DEC);   Serial.print(",");
    
    //Raw sensor data
    Serial.print(sensorValue[ACC_X], DEC);   Serial.print(",");
    Serial.print(sensorValue[ACC_Z], DEC);   Serial.print(",");
    Serial.print(sensorValue[GYR_Y], DEC);   Serial.print(",");
   
    Serial.print(pTerm, DEC);      Serial.print(",");
    Serial.print(iTerm, DEC);      Serial.print(",");
    Serial.print(dTerm, DEC);      Serial.print(",");
    Serial.print(drive, DEC);      Serial.print(",");
    Serial.print(error, DEC);      Serial.print(",");
    Serial.print(setPoint, DEC);   Serial.print(",");
    
    //PID Parameters
    Serial.print(K, DEC);    Serial.print(",");
    Serial.print(Kp, DEC);   Serial.print(",");
    Serial.print(Ki, DEC);   Serial.print(",");
    Serial.print(Kd, DEC);   Serial.print(",");
    
    //loop
    Serial.print(STD_LOOP_TIME, DEC);        Serial.print(",");
    Serial.print(lastLoopUsefulTime, DEC);   Serial.print(",");
    Serial.print(lastLoopTime, DEC);         Serial.print(",");
    Serial.print(updateRate, DEC);           Serial.print(",");
    
    Serial.print(motorOffsetL, DEC);         Serial.print(",");
    Serial.print(motorOffsetR, DEC);         Serial.print(",");  
    
    Serial.print(pTerm_Wheel, DEC);     Serial.print(",");
    Serial.print(dTerm_Wheel, DEC);     Serial.print(",");
    Serial.print(Kp_Wheel, DEC);        Serial.print(",");  
    Serial.print(Kd_Wheel, DEC);        Serial.print(",");    
    Serial.print("\n");
  }
}

union u_tag {
  byte b[4];
  float fval;
} u;

int skipIn=0;

void serialIn_GUI(){
  
  if(skipIn++>=updateRate) {                                                        
    skipIn = 0;
    byte id;
    
    if(Serial.available() > 0)
    {               
      char param = Serial.read(); 
      //Serial.println("Have bytes");
      delay(10);
      byte inByte[Serial.available()];
      if(Serial.read() == SPLIT){
        if(Serial.available() >= 4){
          u.b[3] = Serial.read(); 
          u.b[2] = Serial.read(); 
          u.b[1] = Serial.read(); 
          u.b[0] = Serial.read(); 
          Serial.flush();
          
          switch (param) {
            case 'p':
              Kp = int(u.fval);
              break;
            case 'i':
              Ki = int(u.fval);
              break;
            case 'd':
              Kd = int(u.fval);
              break;
            case 'k':
              K = u.fval;
              break;
            case 's':
              setPoint = int(u.fval);
              break;
            case 'u':
              updateRate = int(u.fval);
              break;
            case 'l':
              motorOffsetL = u.fval;
              break;
            case 'r':
              motorOffsetR = u.fval;
              break;
            case 'q':
              Kp_Wheel = int(u.fval);
              break;
            case 'e':
              serial_type = int(u.fval);
              break;
            case 'w':
              Kd_Wheel = int(u.fval);
          }
        }
      }
      
    }
  }
}

It's a realy long line that are beaning send to the GUI maybe it would be better to split it and sending it like bytes like I do when I send data to the Arduino..