Run state machine if condition met

Here's my full code, running everything as part of the state machine.

  switch (state)
  { 
    case S_sensorRead:
      digitalWrite(trigPin, LOW);
      delayMicroseconds(2);
      digitalWrite(trigPin, HIGH);
      delayMicroseconds(5);
      digitalWrite(trigPin, LOW); //sends out ping
        
      duration = pulseIn(echoPin, HIGH); //reads the echo
    
      cm = microsecondsToCentimeters(duration); //time to distance

      Serial.print(cm);
      Serial.print("cm");
      Serial.println();

      ts = millis();

      state = S_sensorTrigger;

      break;

    case S_sensorTrigger:
    
      if ((cm <= 40) && (cm >= 2)) {
        Serial.print("starting state machine");
        state = S_seriesAOn;
      }
      else {
        state = S_sensorRead;
      }

      break;