presmervanie dát v počítači z COM do súboru

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
Zaky
Příspěvky: 6129
Registrován: 30 říj 2010, 02:00
Bydliště: Praha

#16 Příspěvek od Zaky »

Co bych ještě vyzkoušel, pokud tedy máš k dispozici jiný UART/USB konvertor a Arduino to umožňuje, tak data pustit na UART, co je vyvedený na piny a ne interně do USB a do počítače data poslat přes něj. Bastlit hw bys mohl alternativně třeba pro to, že se ti s Arduinem nedaří realizovat zamýšlený záměr? Je otázkou, jaké máš prioroty, jestli jednorázově vyčíst paměť s minimem opruzu kolem, nebo porazit problém s přenosem.
Krátce před tím, než se to rozbilo, tak to ještě fungovalo...

Uživatelský avatar
lesana87
Příspěvky: 3296
Registrován: 20 zář 2014, 02:00

#17 Příspěvek od lesana87 »

Samec klídek, nasraností to nevyřešíš. Jiný sériový terminál na PC nemáš? Třeba v nějakým tom Arduino IDE. Většina terminálů umí data zobrazovat ale i ukládat do souboru.

Uživatelský avatar
Zaky
Příspěvky: 6129
Registrován: 30 říj 2010, 02:00
Bydliště: Praha

#18 Příspěvek od Zaky »

Možná by tomu pomohlo použít Serial.flush(); https://www.baldengineer.com/when-do-yo ... flush.html
Krátce před tím, než se to rozbilo, tak to ještě fungovalo...

Uživatelský avatar
samec
Příspěvky: 3692
Registrován: 19 pro 2017, 01:00

#19 Příspěvek od samec »

Prepáčte, chcem sa vám všetkým ospravedlniť, hlavne Zakymu. Snažite sa mi pomôcť a ja som mrzutý z neúspešného gúglenia.

Áno Arduino IDE má monitor sériového portu. Tam sa tie dáta z Arduina zobrazia všetky. Vie však zobraziť len text, nie raw dáta. A nemá možnosť uložiť do súboru.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#20 Příspěvek od FHonza »

Stáhni si Putty, nejlépe v portable verzi (nemusíš jí instalovat). Otevři si nový sériový terminál. Uvidíš co ti z portu přijde. Když budeš spokojen, tak v menu vyber "Copy All to Clipboard".

Edit: mi to došlo, problém není v bufferu portu ale ve souborovém bufferu. Zkus to s tím MODE, TYPE. Dej si nějak vědět že už máš přenesená data (např. rozsviť LEDku) a ten příkaz TYPE ukonči stiskem Ctrl+Pause. Soubor se uzavře správně (na rozdíl od Ctrl+C).

Uživatelský avatar
lesana87
Příspěvky: 3296
Registrován: 20 zář 2014, 02:00

#21 Příspěvek od lesana87 »

samec píše:Áno Arduino IDE má monitor sériového portu. Tam sa tie dáta z Arduina zobrazia všetky. Vie však zobraziť len text, nie raw dáta. A nemá možnosť uložiť do súboru.
Ale ty ta data posíláš textově nebo co dělá to HEX v Serial.println()? Ctrl+C z okna Arduino monitoru nefunguje?

Uživatelský avatar
Zaky
Příspěvky: 6129
Registrován: 30 říj 2010, 02:00
Bydliště: Praha

#22 Příspěvek od Zaky »

Případně v tom Herculesu, zkontroluj, že když klikneš do okna pro data pravým myšítkem, že máš vybráno special chars hexadecimal nebo tak něco, v text mode, který je asi default, to taky nemusí na binární data psát nic.
Krátce před tím, než se to rozbilo, tak to ještě fungovalo...

Uživatelský avatar
samec
Příspěvky: 3692
Registrován: 19 pro 2017, 01:00

#23 Příspěvek od samec »

lesana87 píše:Ale ty ta data posíláš textově nebo co dělá to HEX v Serial.println()? Ctrl+C z okna Arduino monitoru nefunguje?
To je len taký pokus predtým, než začnem naostro čítať tú pamäť.
Napríklad Serial.println(255,HEX); pošle hodnotu 255 ako text FF a za tým ešte znak pre koniec riadku.
Serial.println(255,DEC); pošle hodnotu 255 ako text 255 a za tým znak pre koniec riadku. Vyzerá to divne, ale takto to niekto naprogramoval do tej arduinovej Serial knižnice.

Ja tam nakoniec chem mať Serial.write(data), čo pošle surové dáta. Tie však Arduino IDE serial monitor nevie zobraziť. Presmerovaním COM5 do súboru v prikazovom riadku sa však dajú tieto raw dáta jednoducho zapísať. Pred pár dňami som takto načítal obsah inej pamäte. http://www.ebastlirna.cz/modules.php?na ... ic&t=96927 Aj preto som dnes taký nespokojný, lebo minule som nevidel v komunikáciii po seriovej linke najmenší problém.

Pred chvíľou som si bol posedieť v malej miestnosti a pri tom mi došlo, že asi nemám problém. Buffer má 512 bajtov a to je presne veľkosť tej pamäte 93C66C, ktorú chcem skopírovať. Pri tom pokuse s posielaním skúšobných dát v tvare textu sa preniesla polovica dát, čo vyšlo na 512 bajtov a druhá polovica nie, lebo posledné hodnoty začínali nulou (0F...00) ktorú ten println vynecháva. Takže druhej polovici dát chýbalo do zaplnenia buffera 16 bajtov. Ak však budem posielať raw dáta, tak to bude presne 512 bajtov a malo by sa to zapísať. No a minule som posielal 524288 bajtov, čo je násobok 512, takže problém nebol. Tiež som skúšal posielať aj v textovej forme, ale tam som veľkosť súboru nekontroloval. Užitočné dáta boli aj tak len na začiatku pamäte.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#24 Příspěvek od FHonza »

Ukonči ten příkaz TYPE stiskem Ctrl+Pause (Break). Funguje to, vyzkoušel jsem to.

Uživatelský avatar
samec
Příspěvky: 3692
Registrován: 19 pro 2017, 01:00

#25 Příspěvek od samec »

Púšťam to na notebooku. Pause mám cez špeciálny kláves Fn. Ak stlačím Ctrl + Fn + Pause, tak výsledok je rovnaký ako pri Ctrl+C. Dáta z bufferu sa neuložia.

Uživatelský avatar
PotPalo
Příspěvky: 4565
Registrován: 13 kvě 2009, 02:00
Bydliště: BA-Petržalka :(
Kontaktovat uživatele:

#26 Příspěvek od PotPalo »

A vypnúť buffer si teda skúšal? V správci zariadení, COM port, spresniť... medzipamäť FIFO.
Zlu sa neustupuje, proti zlu sa bojuje.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#27 Příspěvek od FHonza »

samec píše:Púšťam to na notebooku ...
Na notebooku mi funguje Crtl+Fn+Break. Teď jsem to vyzkoušel.

Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“