PlatformIO

Software die niet past in bovenstaande onderwerpen
Berichten: 22
Geregistreerd: 13 Aug 2018, 17:59
Woonplaats: Krimpen

PlatformIO

Berichtdoor swets » 09 Dec 2021, 22:35

Ik ben sinds kort gestart met PlatformIO, en er zijn nog een aantal dingen die niet erg willen lukken....

ik heb een bestaand project geimporteerd, wat goed werkt op via de arduino IDE..

maar het gekke is, dat het via platformIO maar voor een deel werkt...

Ik kan via de seriel monitor commandos geven naar de arduino... nu is het vreemde, dat Din en Dout het gewoon doen...
Afbeelding
Afbeelding

maar alle andere niet, en krijg ik Unknow command terug...

het zijn wel de functies, waar ik geen waarde aan mee geef? iemand die me een duwtje kan geven in de goed richting?



Code: Alles selecteren
void parseCommand(String Command) {

  String partCommand;
  String partAdress;
  String partData;


  partCommand = Command.substring(0, Command.indexOf(" "));
  partAdress = Command.substring(Command.indexOf(" ") + 1, Command.indexOf(","));
  partData = Command.substring(Command.indexOf(",") + 1);

  SerialUSB.print("ParseCommand:");
  SerialUSB.print(partCommand);
  SerialUSB.print("-");
  SerialUSB.print(partAdress);
  SerialUSB.print("-");
  SerialUSB.println(partData);

  int intAdress = partAdress.toInt();
  int intData = partData.toInt();

  if (partCommand.equalsIgnoreCase("Dout"))            //Digital outputs
  {
    Dout(intAdress, intData);
  }
  else if (partCommand.equalsIgnoreCase("Din"))            //Digital inputs
  {
    Din(intAdress);
  }

  else if (partCommand.equalsIgnoreCase("KnightOn"))            //Digital inputs
  {
    Knight();
  }
  else if (partCommand.equalsIgnoreCase("KnightOff"))            //Digital inputs
  {
    KnightOn = 0;
  }
  else if (partCommand.equalsIgnoreCase("TestAdress"))            //Digital inputs
  {
    TestAdress();
  }
  else
  {
    SerialUSB.println("Unknow command");
  }
}

Advertisement

Berichten: 287
Geregistreerd: 15 Apr 2021, 20:05

Re: PlatformIO

Berichtdoor ctunes » 19 Dec 2021, 23:56

Hoi Arjan, je plaatjes werken niet.

Verder ben ik niet bekend met: PlatformIO

Kun je wat duidelijker aangeven wat wel en wat niet werkt?

En vooral ook: wanneer?

De code die je gepost hebt is zonder waarde, zolang wij niet precies weten voor welke architectuur jij schrijft.

Berichten: 287
Geregistreerd: 15 Apr 2021, 20:05

Re: PlatformIO

Berichtdoor ctunes » 20 Dec 2021, 00:02

Oh, en nog iets: mischien is switch() iets dat je gebruiken kan?
https://www.scaler.com/topics/switch-case-in-c/

Berichten: 287
Geregistreerd: 15 Apr 2021, 20:05

Re: PlatformIO

Berichtdoor ctunes » 20 Dec 2021, 00:06

Zo lees je maar 1 keer de waarde in, en bepaalt wat te doen met die waarde, in plaats van telkens opnieuw een waarde te moeten evalueren.

Berichten: 22
Geregistreerd: 13 Aug 2018, 17:59
Woonplaats: Krimpen

Re: PlatformIO

Berichtdoor swets » 20 Dec 2021, 00:10

pff ja ik weet even niet hoe ik het nu precies omschrijven moet....

ik weet dus at alles werkt, want in de arduino IDE werkt het....

maar in PlatformIO is het gekke, als je naar de bovenstaande code kijk...

als ik het (via de seriele monitor) het commando geef Dout 255,255 dan gaat alles goed....
geef ik een Din 128 gaat dus ook goed....

maar geef ik een TestAdress krijg ik dus een "Unknow command" terug in de seriele monitor....
en nogmaals, in de arduino IDE werkt het....

en wat me dus opviel, dat als ik een fucntie aanroep, waar ik waardes naar toe stuur, gaat het goed...

roep ik een functie aan zonder een waarde gaat het fout...?
dus het is wel echt een platformIO ding?

maar zal ook eens opzoek gaan naar een platformIO forum?

Berichten: 287
Geregistreerd: 15 Apr 2021, 20:05

Re: PlatformIO

Berichtdoor ctunes » 20 Dec 2021, 00:21

ctunes schreef:Hoi Arjan, je plaatjes werken niet.

Verder ben ik niet bekend met: PlatformIO



Wasda?

Een emulator?

Berichten: 287
Geregistreerd: 15 Apr 2021, 20:05

Re: PlatformIO

Berichtdoor ctunes » 20 Dec 2021, 00:22

partCommand.equalsIgnoreCase

Wat doet dat?

(kijkt het naar iets dat ooit werd ingevoerd, of haalt het telkens een nieuwe waarde op?)

Dat iets bij A wel werkt, en bij B niet kan ook op toeval berusten.

Berichten: 287
Geregistreerd: 15 Apr 2021, 20:05

Re: PlatformIO

Berichtdoor ctunes » 29 Dec 2021, 00:46

ctunes schreef:partCommand.equalsIgnoreCase

Wat doet dat?

(kijkt het naar iets dat ooit werd ingevoerd, of haalt het telkens een nieuwe waarde op?)

Dat iets bij A wel werkt, en bij B niet kan ook op toeval berusten.


Het is "niet handig(TM)" om als je een waarde wilt evalueren telkens de waarde opnieuw in te lezen.

Code: Alles selecteren

switch(partCommand.equalsIgnoreCase) {

     case "whatever" :  {
                                                 whateverstuff();
                                                 break;}
     case "somehow" :  {
                                                 somehowstuff();
                                                 break;}
     case "really?" :  {
                                                 reallystuff();
                                                 break;}
                    default : break;
}



Da's al een stuk handiger met: "partCommand.equalsIgnoreCase()", omgaan.

Toch?

Berichten: 287
Geregistreerd: 15 Apr 2021, 20:05

Re: PlatformIO

Berichtdoor ctunes » 29 Dec 2021, 00:54


Terug naar Overige Software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 7 gasten