Skip to content

Conversation

@kiwisap
Copy link

@kiwisap kiwisap commented Nov 21, 2025

Was op school bezig met het maken van een slide show op de display, daarbij had de docent aangegeven maak maar een PR aan zodat andere studenten dit eventueel ook kunnen gebruiken.

Aanpassingen:

  • Documentatie op methodes binnen de LCD16x2 class verbeterd/toegevoegd
  • Diverse methodes toegevoegd
    • SetCursor(int row, int column)
    • SetText(int row, int column, string text)
    • SlideText(string text, int row)
    • SlideShow(IEnumerable<string> lines, int row)
    • SlideShow(int row, params string[] lines)
  • Ook heb ik de Device parameter protected gemaakt, zodat wij als studenten eventueel op een makkelijkere manier zelf functies kunnen toevoegen aan de LCD
  • De slide show zelf, methodes daarvoor zijn hierboven toegevoegd
    • Deze methodes geven een Slide class terug, waarin je zelf nog bepaalde instellingen kan aanpassen, zoals welke kant ie op gaat, L2R/R2L, wat de delay moet zijn tussen het tonen van de frames en de pauze voordat de volgende slide begint.

Voorbeelden:

display.SlideText("HELLO WORLD", 0) // "HELLO WORLD" is de text, "0" is de rij
    .LeftToRight() // Default, hoeft eigk niet meegegeven te worden
    .Start();
var slides = new[]
{
    "Dit is een test",
    "voor het LCD scherm",
    "van de Statistical Robot",
    "gemaakt door Avans",
    "Veel plezier!",
};
display.SlideShow(slides, 0)
    .RightToLeft()
    .SetFrameDelay(400)
    .SetPauseBetweenLines(1000)
    .Start(); // Kan ook worden neergezet als .Start(400, 1000);

@kiwisap kiwisap changed the title Feature/lcd cleanup and slide addition LCD16x2 cleanup and slide show functie toegevoegd Nov 21, 2025
@idorf79 idorf79 self-assigned this Nov 22, 2025
@idorf79
Copy link
Contributor

idorf79 commented Nov 22, 2025

Gaaf dat je nieuwe functionaliteit hebt toegevoegd!

Ik wil je wel de tip geven, om vaker (kleinere) commits te doen. Nu heb je, naast het toevoegen van extra functionaliteit, de structuur van de class wat om gegooid. Deze wijzigingen zijn erg lastig te overzien in 1 commit.

Daarnaast mis ik code om je nieuwe functionaliteit te testen. Je geeft het wel als voorbeeld, maar zet dit ook maar in de voorbeeld applicatie ;)

Als laatste vraag ik me af, of we de "slide" functionaliteit niet op een andere plek moeten leggen. Want wat als we een LCD met 4x40 characters gaan krijgen? Gaan we daar dan dezelfde functionaliteit nog een keer toevoegen?

Edit: valt me nu pas op dat je een aparte class hebt gemaakt voor de "slide" functionaliteit. Die zou ik eigenlijk dan ook in een aparte file verwachten?

@kiwisap
Copy link
Author

kiwisap commented Nov 24, 2025

Gaaf dat je nieuwe functionaliteit hebt toegevoegd!

Ik wil je wel de tip geven, om vaker (kleinere) commits te doen. Nu heb je, naast het toevoegen van extra functionaliteit, de structuur van de class wat om gegooid. Deze wijzigingen zijn erg lastig te overzien in 1 commit.

Daarnaast mis ik code om je nieuwe functionaliteit te testen. Je geeft het wel als voorbeeld, maar zet dit ook maar in de voorbeeld applicatie ;)

Als laatste vraag ik me af, of we de "slide" functionaliteit niet op een andere plek moeten leggen. Want wat als we een LCD met 4x40 characters gaan krijgen? Gaan we daar dan dezelfde functionaliteit nog een keer toevoegen?

Edit: valt me nu pas op dat je een aparte class hebt gemaakt voor de "slide" functionaliteit. Die zou ik eigenlijk dan ook in een aparte file verwachten?

Ik heb de voorbeelden toegevoegd aan de voorbeeld applicatie.

Daarnaast heb ik een AbstractLCD class toegevoegd, indien er ooit een 40x4 lcd oid gaat worden toegevoegd. Hierin staan abstracte methodes en deze worden geïmplementeerd in de LCD16x2 class. Ik heb de Slide class los getrokken en hernoemd naar LCDSlide. Deze kan nu ook op verschillende lcd schermen gebruikt worden.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants