regelnummer opvragen

IDE gerelateerde berichten
Berichten: 50
Geregistreerd: 09 Jun 2020, 22:11
Woonplaats: Roosendaal

regelnummer opvragen

Berichtdoor Frans53! » 26 Jan 2021, 22:29

Goede dag,

Voor foutopsporing plaats ik veel serial.print opdrachten in het programma, en zet handmatig het regelnummer erbij, zodat het makkelijk terug te vinden is.
Maar als ik er stukken programma bij zet, kloppen natuurlijk die regelnummers niet meer.

Is het mogelijk om het regelnummer automatisch terug te vragen, dus op dezelfde regel als waar ik het regelnummer opvraag.

Groet.

Advertisement

Berichten: 3662
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: regelnummer opvragen

Berichtdoor shooter » 27 Jan 2021, 11:20

dat gaat niet want het programma wordt gecompileerd waarbij de regelnummers verdwijnen.
ik zou aanraden om in je programma een variabele tekst te zetten, zoals nummer=ga nu regel (150) uitvoeren
met de status (6), en met (millis()) bezig bijvoorbeeld.
vroeger in basic deden we altijd met 10 ophogen waardoor er regels tussen kunnen.
Nu kun je in de debugger dat wel, en daar krijg je heel vaak precies waar je een fout maakt.
maak de functies apart en zet ze in een library dan kun je langzaam een goed resultaat hebben.
paul deelen
shooter@home.nl

Berichten: 50
Geregistreerd: 09 Jun 2020, 22:11
Woonplaats: Roosendaal

Re: regelnummer opvragen

Berichtdoor Frans53! » 27 Jan 2021, 15:59

Bedankt scooter voor je reactie,

Je hebt wel een punt, dat de regelnummering van de IDE is, en niet meegecompileerd worden. Dus mijn idee valt dan af.

Geen idee wat status() was, is nieuw voor mij. Maar na uitgebreid gegoogled te hebben, is dit alleen voor communicatie naar buiten toe. Ik zie nog niet zo snel hoe ik dat kan inzetten bij mijn suggestie.

Nu heb ik veel commentaarregels met Serial.print, zodat ik kan zien wat mijn programma doet, dus ook waar het vast loopt of verkeerd gaat. Het regelnummer dat ik erbij vermeld heb, geeft eigenlijk voldoende indicatie waar ergens ongeveer die commentaarregel staat. En als het erg scheef uitkomt, moet ik maar de regelnummering van het commentaar aanpassen.

Groetjes, Frans.

Berichten: 63
Geregistreerd: 26 Aug 2015, 11:57

Re: regelnummer opvragen

Berichtdoor Frits1956 » 27 Jan 2021, 20:10

Ik hak mijn programma meestal in kleine subroutines en ik initialiseer een variabele TEST.
De meeste subroutines hebben een logische naam en aan het begin en eind van zo'n subroutine schrijf ik de volgende tekst.

//#define TEST // Alleen tijdens ontwikkelen serialprint staat aan.


void setup(){
code ...
}

void loop(){
code ...
}

void (Request_event){
#ifdef TEST
Serial.print(variabele);
Serial.print("starten Request event"); // Print to Serial Monitor
#endif

code...

#ifdef TEST
Serial.print(variabele);
Serial.print("einde Request event"); // Print to Serial Monitor
#endif
}

Door de comment slashes bij #define TEST weg te halen wordt het commentaar naar de monitor geschreven en kan ik de waarden van de variabelen checken op wat ik verwacht.
Het is ook mogelijk om bij een gecompileerd programma afhankelijk van bijvoorbeeld een sensor of button de variabele te definieren.
De gewenste waarden kunnen dan naar een lcd oid geschreven worden.
Zit er ergens een vergissing, dan zoek ik de procedure naam of variabele met CTRL+F
Het maakt dan niet meer uit waar de subroutine staat en wordt snel gevonden, zelfs in heel lange listings

Berichten: 3662
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: regelnummer opvragen

Berichtdoor shooter » 27 Jan 2021, 21:30

Ik bedoelde dus dat je een variabele telkens vult met bijvoorbeeld een regel nummer maar handiger is
debug$="initialisatie"
status="taak"+(nummer);
dan maak je een functie aan die debugprint heet bijvoorbeeld
in debugprint komt dan de serial.print debug$
en serialprint status
in elk stuk verander je dan de tekst bijv debug$ is maken tabel
in een ander stuk zet je bijvoorbeeld ophalen sensoren, en dan verander je nummer naar elke sensor apart,
dan hoef je maar af en toe naar je debugprint te gaan bijvoorbeeld elke seconde, dan print je dus alleen de debugtekst en de status die er op dat moment is.
als je klaar bent zet je die debugprint uit door de serialprint in comment te zetten.
dat serial print kost namelijk best veel tijd want elk bitje moet er serieel uit op 9600 baud.
anders dan frits doe ik maar op een plek die serial.print en door het hele programma heen zet ik wel al die variabelen en teksten in. maar die kan ik gewoon laten staan want ik hoef maar op een plek die serial print uit te zetten.
paul deelen
shooter@home.nl

Berichten: 50
Geregistreerd: 09 Jun 2020, 22:11
Woonplaats: Roosendaal

Re: regelnummer opvragen

Berichtdoor Frans53! » 28 Jan 2021, 13:12

Beste shooter en frits,

Bedankt voor jullie reacties. Na enige bestudering van jullie ideen begin ik er een beetje van te begrijpen. Af en toe is het voor mij "hogere wiskunde", maar ik zie wel wat er gebeurt.

Zopas heb ik alle print-commentaar achter een if()-statement gezet. In setup zet ik een boolean true of false, waarmee ik dus telkens test en al dan niet uitprint.

Vertragingen door al het seriele printen is niet echt aan de orde in mijn programma's. Snelle processen heb ik nog niet nodig gehad, dus het kan wel wat hebben.

Nu ik het toch over "hogere wiskunde" heb, heb ik een vraag:
In bibliotheek bestanden <bestand.h> zie ik veelvuldig jullie "taalgebruik" terug. Wat is dat voor taal?? C++ of zoiets? Ik ben al enige tijd op zoek naar de taal die in de bibliotheken wordt gebruikt. Ik zou er graag zelf mee aan de slag willen gaan, maar dat lukt maar niet. Ik moet alles hebben van datgene wat ik op internet kan vinden, en iets zinnigs heb ik nog niet gevonden. Hebben jullie enig idee waar ik een "cursus" kan vinden op internet?

Groetjes,
Frans.

Gebruikers-avatar
Berichten: 534
Geregistreerd: 15 Nov 2015, 11:54

Re: regelnummer opvragen

Berichtdoor Gij Kieken » 28 Jan 2021, 14:04

Persoonlijk vind ik het ook vrij lastig om iets van het net te lezen.
Mijn voorkeur gaat bij deze uit naar een boek , waar je een keer een paar bladzijden kan terug bladeren en dan weer weg op.
Het boek <beginning c for arduino 2nd edition door Jack Purdum > is daarom een van mijn voorkeuren.

Berichten: 63
Geregistreerd: 26 Aug 2015, 11:57

Re: regelnummer opvragen

Berichtdoor Frits1956 » 28 Jan 2021, 18:57

Het verschil tussen een if en #ifdef is in het geval van #ifdef dat als TEST niet is gedefinieerd de compiler het stuk niet mee compileert dus geen geheugenruimte inneemt terwijl een if statement altijd geheugen inneemt.
Bij kleine programma's is het geen probleem maar soms.......

Berichten: 50
Geregistreerd: 09 Jun 2020, 22:11
Woonplaats: Roosendaal

Re: regelnummer opvragen

Berichtdoor Frans53! » 28 Jan 2021, 19:51

Bedankt voor jullie reactie.

Dus het is gewoon C??

Groet,
Frans

Terug naar Arduino IDE

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 0 gasten