Temperatuur instellen.

Software die niet past in bovenstaande onderwerpen
Berichten: 313
Geregistreerd: 23 Okt 2016, 20:29

Re: Temperatuur instellen.

Berichtdoor benvo » 27 Mei 2017, 17:36

Koepel schreef:Intussen heb ik door wat de bedoeling is ;) van de ITEAD Nextion Library. De bedoeling is om alles met de callback functies te doen. Dat is (bijna) altijd mogelijk omdat er ook een Nextion timer gemaakt kan worden.

Als ik meer controle wil in de Arduino sketch dan is het nodig om de pagina te weten. Dat kan met de callback van de pagina, als daar een variabele 'current_page' wordt gezet dan weet je altijd de pagina. Dat heb ik nodig omdat bij mij sommige dingen onafhankelijk van een pagina zijn (alarm met geluid) en sommige dingen wel afhangen van de pagina.

Ik ga mijn sketch verder aanpassen om de callback voor alle pagina's er in te zetten.

@benvo, het eenmalig schrijven van de minTemp en maxTemp naar de pagina op het moment dat die pagina opent, dat hoort dus in de callback functie van die pagina. Dat moet wel in de Nextion Editor ingesteld worden, omdat default die callback niet aangeroepen wordt.

Je bent nu weer de seriële poort aan het overladen door honderden keren per seconden de tekst voor 't11' en 't12' te schrijven.


Eerst even je laatste opmerking. Volgens mij ben ik niet aan het overladen. Er wordt alleen weggeschreven als er iets wijzigt. Dit is toch juist?

Wat betreft die CallBack: wat moet er dan precies in de Editor gezet worden?

Groet,
Ben.

Advertisement

Berichten: 313
Geregistreerd: 23 Okt 2016, 20:29

Re: Temperatuur instellen.

Berichtdoor benvo » 27 Mei 2017, 19:15

@Koepel

Nog even toevoegen. Je kunt in je Editor onder je Touch release event vermelden; sendme. Bedoel je dat? Wanneer je dan je knop indrukt zie je op je Editor aangegeven parse: Current page3. 't Is me niet helemaal duidelijk, bovendien weet ik niet hoe je in je Arduino sketch je minTemp en maxTemp eenmalig naar de pagina schrijft of wat je daar precies mee bedoelt.

Groet,
Ben.

Gebruikers-avatar
Berichten: 1776
Geregistreerd: 06 Aug 2016, 01:03

Re: Temperatuur instellen.

Berichtdoor Koepel » 27 Mei 2017, 20:32

Het is nu allemaal een rommeltje, vooral hier op mijn tafel :mrgreen: Dus ik ben nog wel even bezig.
Mijn Nextion scherm zit in mijn project en ik kan niet meer bij de verbinding naar het scherm of de SD socket. En ik moet steeds wisselen tussen linux en Windows :o

Gebruikers-avatar
Berichten: 1776
Geregistreerd: 06 Aug 2016, 01:03

Re: Temperatuur instellen.

Berichtdoor Koepel » 27 Mei 2017, 21:51

De sendme wordt niet herkend in de functie nexLoop(). Het zou een mooie oplossing kunnen zijn, om dat bij een pagina als pre-init-code of post-init-code te sturen maar dan zou nexLoop() in de library aangepast moeten worden, en dat doe ik liever niet.

Het is wel mogelijk om een 'touch' commando te geven (door het uit te schrijven met hex codes in de Nextion Editor), dat vervolgens mee kan liften met de rest. Dat werd voorgesteld in het forum. Dat vind ik echter nogal een gebrekkige oplossing.

Ik kies er voor om het niet te doen. Ik ga ook geen bladzijde selecteren in de Nextion Editor, maar dat doe ik in de Arduino.
Wanneer ik een pagina verander, dan zet ik meteen een globale variabele.
Code: Alles selecteren
  current_page = 2;
  page2.show();


Ik heb voor iedere pagina een functie gemaakt om die pagina te initialiseren, en ik heb voor iedere pagina een functie om die pagina te updaten. Het updaten laat ik af hangen van de pagina die aktief is. Of dat zo een gangbare oplossing is weet ik niet, maar het werkt goed.
@nicoverduin, de manier waarop de Nextion library is opgebouwd, dat is nogal anders dan hoe ik tegen software aan kijk. Dus ook voor mij is het erg veel gestruggel. De tutorials en voorbeelden zijn vaak te beperkt of hebben rare eigenaardigheden.
@benvo, het blijft lastig dat een project nu uit Arduino code en uit de Nextion Editor bestaat. Om dat via dit forum te doen, dat kost veel tijd. Ik twijfel serieus of je het werkend kunt krijgen.

Gebruikers-avatar
Berichten: 4861
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Temperatuur instellen.

Berichtdoor nicoverduin » 27 Mei 2017, 22:51

@koepel: je had het al veel eerder voorgesteld vwb de structuur. Ik deed het nog eens dunnetjes over en uiteindelijk werkt het vrijwel altijd zo. Een scherm laad en een scherm process functie.
Wat je ziet is dat men ook in het scherm gaat programmeren voor bijv het schakelen van de paginas waard de lib het niet weet. Een interface op 2 plekken onderhouden is nooit aan te raden.
Docent HBO Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 313
Geregistreerd: 23 Okt 2016, 20:29

Re: Temperatuur instellen.

Berichtdoor benvo » 28 Mei 2017, 10:28

Ik moet zeggen dat ik het raar blijf vinden dat, in mijn geval, een bepaalde pagina wel werk en een andere met hetzelfde principe niet. Zo is bij mij pagina 2 de instelpagina voor tijd en datum. Dat werkt, niet goed maar het werkt. Alles kan met één hoger of lager gezet worden. Pagina drie zou in principe hetzelfde moeten doen nl. met één omhoog of omlaag gaan. Maar dat doet zelfs niets. In feite is de bedoelde werking niets anders als een menu. Een menu waar vanuit een hoofdpagina en met tab bladeren voor de diverse functies gewerkt wordt. Je ziet dit al heel vaak gebruikt alleen met een Arduino. Minder met Nextion maar ook ik vind de informatie, zoals ook koepel opmerkt, slecht te vinden.

Hoe dan ook, ik blijf wel zoeken.


Groet,
Ben.

Berichten: 313
Geregistreerd: 23 Okt 2016, 20:29

Re: Temperatuur instellen.

Berichtdoor benvo » 29 Mei 2017, 17:05

Hallo allemaal,

N.a.v. eerdere opmerkingen heb ik de volgende vraag:

Op dit moment wissel ik van pagina 0 naar 1 doordat ik in de Nextion Editor bij de desbetreffende knop, onder het Touch release event heb staan; page 1.

Maar wat nu als je dat zou willen doen vanuit de Arduino gezien?
Ik bedoel dit: Op mijn pagina 0 (nul) staat de knop instellingen. Deze wijst naar pagina 1, Menu Instellingen. Zou het mogelijk zijn om onder de knop Instelling, van pagina 0 in de Arduino sketch een PopCallback te maken die dan pagina 1 zou openen én inladen. Onder pagina 1 staan dan weer vier knoppen die elk naar een pagina verwijzen. Ook onder elk van die knoppen zou je in pagina 1 dan weer een PopCallback zetten die de gevraagde pagina opent én inlaadt. Op die manier zou de Arduino, maar ook de Nextion, alleen iets hoeven doen voor de geopende pagina. Bovendien zou je qua programmering alle instelling schermen die nu zorgen, in mijn geval, voor problemen kunnen scheiden van de hoofdpagina. Zit er een mogelijkheid, of misschien een deel mogelijkheid, in deze gedachten gang? Tenminste als ik mijn bedoeling voldoende duidelijk heb gemaakt?

Dank je wel voor jullie reacties.

Groet,
Ben.

Gebruikers-avatar
Berichten: 4861
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Temperatuur instellen.

Berichtdoor nicoverduin » 29 Mei 2017, 17:44

Het kwartje dreigt te vallen..... En als je dan gelijk splitst in functies voor het opbouwen en verwerken van een scherm....
pseudocode (in de pop call backs):
cpp code
nieuwePagina = paginanummer (moet je dus zelf definieren)


in de loop
cpp code
nexLoop();
ALS huidigePagina != nieuwePagina){
//
// er is een pagina wissel
//
huidigePagina = nieuwePagina;
switchCase huidigePagina {
case 0:
p0.show();
// doe de specifieke dingen voor opbouw pagina 0
// maak hier een aparte functie van
break;
case 1:
// enz
}
} else {
//
// de juiste pagina staat er als dus alleen die dingen die je wilt updaten tijdens het displayen
//
switch case(huidigePagina) {
case 0:
// bijv. de tijd bijwerken op het scherm
// maak van al deze dingen gewoon een aparte functie voor het overzicht
break;
case 1:
// enz...
}
}


Bovenstaand is ongeveer de hele loop
Docent HBO Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 313
Geregistreerd: 23 Okt 2016, 20:29

Re: Temperatuur instellen.

Berichtdoor benvo » 29 Mei 2017, 18:29

Dank je wel, Nico.

Even om te zien of ik het goed begrijp. Pagina 0 (nul) is de pagina die Nextion als default laad.
Dit is de (hoofd-)pagina die mijn 5 meters laat zien en een tijd/datum aanduiding.

Op deze pagina zou ik dan jou sketch moeten zetten? Maar dan zou ik niet Case 0 nodig zijn, immers de pagina 0 is al opgebouwd?
Op deze pagina 0 heb ik één keuze mogelijkheid, nl. naar pagina 1 waar een vierknops keuze menu Instellingen staat. Dus daar, vanaf pagina 1, zou ik dan Case 2 voor pagina 2 hebben, Case 3 voor pagina 3, Case 4 voor pagina 4 en tenslotte Case 5 voor pagina 5. Zo begrijp ik het goed?

Groet,
Ben.

Gebruikers-avatar
Berichten: 4861
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Temperatuur instellen.

Berichtdoor nicoverduin » 29 Mei 2017, 20:15

Je hebt hem wel nodig als je van een andere pagina naar pagina 0wilt
Je begrijpt het goed maar wat ik beschreven heb zou zo ongeveer jouw loop moeten zijn. En daar staat dus niets over het invullen van schermen
Docent HBO Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Vorige

Terug naar Overige Software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast