variabele zichtbaar maken op laptop ?


Op 7 mei 2021 11:39:09 schreef RP6conrad:
Je zal dan zelf een programma moeten schrijven op de laptop dat de seriele poort uitleest.

Gebruik de arduino "serial monitor" en programmeer de arduino om "x=" en "y=" voor de variabelen te zetten. Klaar ! Zichtbaar op de laptop!

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
trix

Golden Member

ik ga het op het eind van het programma 1x versturen dus niet continu.
dan zou ik graag die 100 variabele op mijn scherm zien, om het een en ander te controleren.

ik heb geen arduino maar een atmega 2560.

[Bericht gewijzigd door trix op 7 mei 2021 11:45:54 (12%)]

eigenwijs = ook wijs

Hoe wordt het verstuurd, en hoe wil je het op het scherm zien? (alles onder elkaar gaat niet lukken op een monitor...)

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com
trix

Golden Member

nee hoeft niet onder elkaar mogen meerdere kollommen zijn bijvoorbeeld.

ik wil graag gebruik maken van de seriel verbinding die ik nu ook gebruik om "scan resultaten" zichtbaar te maken, hier heeft arco speciaal voor mij een programmatje geschreven (waarvoor nog mijn dank)

eigenwijs = ook wijs
EricP

mét CE

Waarom probeer je het zo ingewikkeld te makken?
Terminal emulatie op de computer. En je AVR kan daar op zetten wat jij wilt. Waarom moeten alleen de getallen verstuurd worden, compleet protocol optuigen, aan beide kanten een stukje software wat dat moet implementeren... Hoop gedoe om niks. Tenzij er een reden achter zit die je nog niet verteld hebt...

Als het waardes < 256 zijn, kun je net als met dat andere programmaatje alles achter elkaar als byte versturen.
Dus bijv. <x1><y1><x2><y2>.... en dan bij een timeout op scherm tonen. (x1,y1... zijn bytes)

Als het meer als 255 kan worden moet je het iets anders aanpakken...

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com
trix

Golden Member

Op 7 mei 2021 12:03:45 schreef EricP:
Waarom probeer je het zo ingewikkeld te makken?

probeer dat juist niet te doen ;)
maar als het meesturen van: X-pos. & Y-pos. het eenvoudiger maakt, dan doe ik dat natuurlijk.

nee word niet meer dan 255.

eigenwijs = ook wijs
EricP

mét CE

Op 7 mei 2021 12:09:23 schreef trix:
[...]
probeer dat juist niet te doen ;)

Toch lukt het je elke keer weer. Je bent toch niet in het dagelijks leven manager he? Die hebben er ook zo'n handje van... Geen kennis, halve implementatie verzinnen, het daardoor vreselijk ingewikkeld maken en vervolgens piepen dat de mensen die het werk moeten doen er zo lang mee bezig zijn...

Minicom doet vast wel VT100. Zoek ff uit hoe je VT100 bestuurt. En frot dat in je AVR. Waarschijnlijk is het makkelijkste om elke variabele op een aparte regel te zetten. Met snprintf bouw je een string waar verklaring en waarde in zitten. En dan heb je vast wel een routine die dar naar buiten jast. Afsluiten met CR of CR/LF, afhankelijk van wat je terminal emulatie lekker vindt. En dan kun je zoveel naar buiten jassen als je wilt.
Scrollen kan vast ook wel. En als je logging aan zet, dan heb je het in een file staan.

buckfast_beekeeper

Golden Member

Op 7 mei 2021 11:39:07 schreef Arco:
[...]
Dat staat er toch? Is de X/Y positie en wordt verstuurd via seriele verbinding...

Welke X/Y, deze van de muis, deze van een foto, een robotarm, .... Van alles kan je een X/Y weergeven. Elke pixel op je scherm is een mogelijkheid.

Van Lambiek wordt goede geuze gemaakt.
trix

Golden Member

nee nee..... geen manager :)
X Y posities van een X-Y "tafel" maar dan vertikaal.

ga ik bekijken tnx.

[Bericht gewijzigd door trix op 7 mei 2021 13:08:01 (12%)]

eigenwijs = ook wijs

ik denk ook dat het voor nu het makkelijkst is om het vanuit je avr als leesbare ascii naar buiten te sturen en een standaard terminal programma te pakken.
met functies als sprintf geloof ik (weet even niet uit mijn hoofd, kun je makkelijk je variabelen. dan doe je iets in de trand van

c code:


#include <stdio.h>

#define MAX_STRING_LENGTH (40)
static char stringBuilder[MAX_STRING_LENGTH];


void PrintCoordinates(uint16_t xpos, uint16_t ypos) {
   uint16_t stringLength = 0;
   //de volgend snprintf functie formateerd een leesbare string, de %u's worden vervangen door de varabelen xpos en ypos die je ook als argumenten aan de functie meegeeft. 
   //Dit mogen er ook meer worden, als ze maar matchen met het aantal %u, die je in je string format hebt staan.
   stringLength = snprintf(stringBuilder, MAX_STRING_LENGTH,"Xpos = %u ,Ypos = %u \n\r",xpos, ypos);
   //stringLength bevat nu de string "Xpos = 100,Ypos = 200" bij gegeven xpos van 100 en ypos van 200, de \n\r zorgt voor een nieuwe regel in je terminal
   Serial.print(stringBuilder); // verander dit door jouw uart put string functie
}

zoiets zou je makkelijk kunnen doen. Pin me niet vast op de exacte correctheid.
(remark, het is niet altijd %u, maar dat hangt af van het type variabele. voor een uint16 is dat goed, maar voor een uitn32 moet ik bijvoorbeeld %ul gebruiken)

trix

Golden Member

probleem is nu dat ik 2 programmatjes heb de gebruik maken van de zelfde poort (com3).
1e is het programma dat arco voor mij heeft gemaakt. (7 posts terug vermeld)
2e is putty waarmee ik dus de gevraagde variabele mee wil binnen halen.

dat 1e programma kijkt continu naar port3 of er iets veranderd waardoor putty deze poort niet meer kan gebruiken.

eigenwijs = ook wijs
EricP

mét CE

Eh... waarom niet? (of is dat een typisch windows probleem?)

Maar goed... dat verschijnsel heb je ook als je alleen de waarden doorstuurt en een specifiek stuk software de legenda ervoor laat plakken...

Kort door de bocht oplossing: maak er een 2de poortje op die laptop bij en hang ze beiden aan je AVR.

Als je de x/y data (200 bytes dus) er direct achteraan stuurt kan ik die in hetzelfde programmaatje wel laten zien...

Eh... waarom niet? (of is dat een typisch windows probleem?)

Een rs232 verbinding is nu eenmaal een point-to-point verbinding, geen bussysteem...

[Bericht gewijzigd door Arco op 7 mei 2021 14:17:38 (42%)]

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com
trix

Golden Member

dat zou inderdaad geweldig zijn, ik zag ook even niet hoe dit op te lossen.

[Bericht gewijzigd door trix op 7 mei 2021 14:25:33 (97%)]

eigenwijs = ook wijs
EricP

mét CE

Een rs232 verbinding is nu eenmaal een point-to-point verbinding, geen bussysteem...

Ja, en? Dan kun je toch gewoon ff mee kijken wat eroverheen gaat? Heeft niks met point-to-point te maken, maar gewoon met hoe (on)handig je OS er (niet) mee om gaat...

Dit even vlug gemaakt, zou moeten werken denk ik... ;)
Je verstuurt <grafische data> <0xFF> <XY data> (de 0xFF is ervoor om te kunnen zien waar de XY data begint en de grafische data ophoudt)
Data komt in listbox rechts...

[Bericht gewijzigd door Arco op 7 mei 2021 15:49:36 (12%)]

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com
trix

Golden Member

ga ik morgen testen bedankt.

eigenwijs = ook wijs
trix

Golden Member

zo juist dus getest, ik heb na het scheidings teken: 0x64 & 0xC8 is (100 en 200) verstuurd.
deze vind ik terug helemaal onder aan de lijst (zie printscreen).

en als het mag :), kun je de "dubbelklik is scherm leeg" functe weer toevoegen, die wastoch wel erg handig. tnx.

het hoeft trouwens niet X en Y te zijn, het mag gewoon een kollom variabele zijn genummerd 1 2 3 4 enz.
dat heb ik eigenlijk liever, omdat ik ook nog andere variabele wil weergeven
die niets met X en Y van doen hebben.

[Bericht gewijzigd door trix op 8 mei 2021 10:54:47 (13%)]

eigenwijs = ook wijs
trix

Golden Member

.

[Bericht gewijzigd door trix op 8 mei 2021 10:54:59 (98%)]

eigenwijs = ook wijs

Op 7 mei 2021 14:28:20 schreef EricP:
[...]Ja, en? Dan kun je toch gewoon ff mee kijken wat eroverheen gaat? Heeft niks met point-to-point te maken, maar gewoon met hoe (on)handig je OS er (niet) mee om gaat...

Welk OS gebruik jij dat je twee terminals naar een poort kunt laten kijken? Want Windows (duh!) en de Unoxen die ik ken kunnen dat standaard niet.

Windows kan dat wel, meekijken op een poort die al in gebruik is.
Maar dan moet je wel weten hoe dat moet. (Ik weet dat niet).

Er zijn wel SerialPort monitor programma's die dat wel kunnen, en kunnen inhaken op een al open poort. Voor USB zijn er ook zulke programma's trouwens, en de meeste serial poorten gaan over USB tegenwoordig dus dat zou ook een optie zijn.

En dat zal in Linux ook wel kunnen natuurlijk.

Maar dat is hier wel erg off-topic geloof ik.

Tja,

Met een multitasking OS is het nu eenmaal zaak om goed af te schermen dat meerdere applicaties niet in hetzelfde randapparaat gaan zitten roeren... ;)
(het kan wel, maar dan moet je zelf een aangepaste driver maken)

Heb het programma aangepast, 'X' en 'Y' weggehaald, alleen nog een 'volgnummertje'
de 0x255 kan weg blijven, je kunt de data meteen erachter sturen. ( <grafische data> <XY data> )
(voor een 240*120 scherm verwacht het programma 240*120/8=3600 bytes. Alles wat daarachter komt wordt in de tabel getoond.)
Dubbel klikken werkt ook weer...

Edit: Iets aangepast, nieuwe zipfile (9/5, 12:00)

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com
trix

Golden Member

super, morgenvroeg testen _/-\o_

edit: word wat later.

[Bericht gewijzigd door trix op 8 mei 2021 22:13:17 (27%)]

eigenwijs = ook wijs
trix

Golden Member

net getest, en het werkt _/-\o_
bedankt.

eigenwijs = ook wijs