Wie kan helpen met een code voor bleutooth

Hey Guys,

Ik leg de laatste hand aan me camera slider nl. de contolle wil ik volledig bleutooth doen.

Na enig onderzoek naar de beste app kom ik op RoboRino of Arduino Total Contol van bijde de betaalde versie.

Ik heb codes die op bv ralais werken of bv 6 ledlampjes (bestuurd via de gratis versie van beide apps)

Ik heb ook codes die goed werken met de joytick AXY assen analog pin A0, A1, A2. - dus niet bleutooth

Ik zag ook dat het mogelijk blijft om gebruik te maken van libraries. - met bleutooth

Toch heb ik het gevoel dat het hele steur om moet (qua code) in tegenstelling tot de analoge besturing.

Ik probeer bv 2 code's te combineren, maar tot nu toe zonder succes.

Dit is het stukje code waar het fout gaat

// Function to read available data from serial input buffer
//
void readData()
{
  while ( Serial.available() )         // Read while there are available characters
  {
    delay(3);
    char c = Serial.read();
    myString += c;                     // build the command string
  }
  Serial.print(myString);              // Output the full command string - for debugging
}
//-------------------------------------------------------------------------------------------
//
// Function to check the input data string for validity and extract the command character
//
void checkData()
{
  // Is the input data string 4 characters long, starting with sub-string "com" ?
  if ((myString.length() == 4) && (myString.startsWith("com") )) 
  {
    validCommand = true;
    command = myString[3];             // Get the command character
    Serial.print(" command is   ");
    Serial.println(command);
  }
  else  // input data string must contain at least 1 character, or we get stuck in a loop
  if ( myString.length() > 0)
  {
    validCommand = false;
    Serial.println("   command string is invalid");
  }
  myString = "";                        // Clear the input data string for next time
}
//-------------------------------------------------------------------------------------------
//
// Function to process command character and change stepper motor behaviour
//
void processCommand()
{
  justRun = false;
  stepper1.enableOutputs();              // enable the motor coils

  switch (command)
  {
  case '0':// ... bla bla bla

de comands zitten onder de knoppen van mijn telefoon, de comands komen keurig in de serial aan, arduino leest het ook want hij zegt direct, :" command string is invalid" ...

Alles geporbeerd , hoofdletter gevoeligheid, spatie met/zonder aanhalingstekens... letterlype heb je niet in de hand zag ik.

iemand een idee? er zijn zelfs na veel speurwerk niet veel hapklare skatches te vinden

een mooie foto van na de verbouwing

Je weet helemaal niet wat er binnen komt, alleen dat het als onjuist wordt bestempeld.

Er word iets gecontroleerd (de lengte van de datastring).
Die lengte moet 4 zijn.
En als die 4 is, dan moet de inhoud beginnen met "com".
En als dat zo is, dan is het 4e karakter de data die je hebben moet, en dat word ergens anders in gestopt.

Anders word er gekeken of de lengte groter dan nul is.
Wanneer daaraan word voldaan, dan word er besloten dat er geen geldig commando is, en komt jouw foutmelding.

Als er beoordeeld is of de data niet leeg is en ook niet te kort is, dan word de data gewist en is er dus ergens anders nog iets overgebleven.

Veel meer kan ik van het uitknipsel niet maken.
Jij wel want jij hebt de rest er nog van.
Maar ik zou dus aan de gang gaan met dat stukje wat je ergens anders had opgeslagen.

Om eerlijk te zijn vind ik deze code niet echt handig om te gebruiken.
En ik vind het lastig lezen omdat je
een enkele
regel code
op verschillende regels neerzet.

Mijn persoonlijke voorkeur ligt bij deze wijze van schrijven:

 if ((myString.length() == 4) && (myString.startsWith("com") )){
    validCommand = true;
    command = myString[3];             // Get the command character
    Serial.print(" command is   ");
    Serial.println(command);
  }
  else if ( myString.length() > 0) {     // input data string must contain at least 1 character, or we get stuck in a loop
    validCommand = false;
    Serial.println("   command string is invalid");
  }

Daar staat precies hetzelfde, en de IDE maakt het ook geen bal uit.
Maar ik vind het een heel stuk prettiger lezen.

Mooi en netjes gemaakt