Mám soubor neměnné délky, do kterého se občas zapíše na konec číslo a na druhé straně to nejstarší vypadne. Tohle chci pokaždé vykreslit do stejného grafu (efekt běžící křivky). Jak jsem se tak prolouskával manuálem k GNUplot-u, tak tohle _asi_ neumí. Poradíte mi něco jiného, než začnu mastit nějakou svojí vlastní funkci?
Nekolik moznosti v ramci gnuplotu:
1. skript a.gp:
plot 'a.dat'; pause 5; reread
2. skript b.gp:
plot 'a.dat'
!wait_please a.dat
reread
3. dopsat do gnuplotu funkci
wait_until_file_changes("a.dat")
Ad 2: existuje v nejakem shellu ci xxxutils prikaz, skript ci program "wait_please", ktery ceka, nez se nejaky soubor zmeni? Pod OS/2 jsem mel neco takoveho napsaneho v REXXu, ale pod Unixem?
Vyzkoušel jsem a opravdu to funguje.Pro moji aplikaci je to ale pomalé. Mě ty data pricházejí asi 200x za sekundu a na Duronu@750 zvladne gnuplot obnovu jen asi 40x za sekundu a ještě to generuje strašnou zátěž systému (spíše to ale nějak nemohou rozdejchat iXy. Podle top-u bral gnuplot asi 6%, ale X asi 80% :-O). Zkusím ještě ty plotutils ...
A k cemu je dobre prekreslovat data vice jak 10x za sekundu? Anebo se jedna o implementaci osciloskopu? Televize ma 25 obr/s, akcelerace oka je cca 10 obr/s, a lidsky mozek... no rekl bych, ze by stacil jeden obrazek za par vterin. Aplikaci "top" taky nemate pustenou s frekvenci 40 Hz. Gnuplot opravdu neni navrzen pro velmi rychle zobrazovani dat; vlastni zkusenost mam s real-time (jedenkrat za sekundu) zobrazeni 2..4 1024 krivek na Pentiu 75 pod OS/2 a naprosto v pohode.
Jinak, pokud by se Vam chtelo trochu programovat, tak nasledujici veci cekaji na dobrovolnika:
(a) binarni protokol pro X11 (zatim je komunikace gnuplo t -> gnuplot_x11 ascii, coz je sice prenosne i mezi nejstarsi X11, ale trochu pomale {pozn.: implementace by mela byt trivialni, viz binarni protokol OS/2 pm.trm).
(b) pristup do dat nikoliv ze souboru, nybrz ze sdilene
pameti; tohle uz muze byt trochu vetsi zabava.
1) Někdy se opravdu vyplatí nad něčím zamyslet. Uznávám, že vykreslovat 400/sec. je kravina. 2)Opravdu se jedná o něco jako osciloskop. Mimochodem vyhledání slova "oscilloscope" bylo mnohem úspěšnější než všechny mé dřívější pokusy. Například jsem objevil knihovnu BLT pro Tk :-)
V diskusi za "Gnuplot I" se objevila temata, k nimz bych chtel neco dodat:
1. "Cestinu", tj. stredoevropska kodovani, gnuplot podporuje nekdy od zimy 2000 --- konkretne kodovani cp852 a 912 = iso_8859_2 --- pouzivam to pri vystupu do OS/2 PM a postscriptu. X11 by snad mely taky fungovat.
2. Zdrojaky aktualni vyvojove verze gnuplotu se daji stahnout pres cvs z gnuplot.sourceforge.net.
3. Stranky na www.gnuplot.org nikdo neupdatoval, tj. neni tam ta vyse uvedena adresa, protoze (a) na to nikdo nema cas [dobrolnici na psani web stranek jsou vitani!], (b) rozhodnutim hlavnich vyvojarum je verze 3.7.1 posledni stabilni, a v nove je prilis mnoho novych veci (pm3d -- barevne mapy a povrchy, mys pro OS/2 PM, X11, Linux GGI a Windows, zmena syntaxe "set no..." na "unset ..." aj. --- viz ChangeLog a NEWS), a opet nikdo nema cas na provereni, ze to funguje na vsech tech strasne mnoha podporovanych platformach a terminalech a stale se neco pridelava a tak... ovsem ja osobne doporucuji, zejmena chcete-li tu mysicku, upgradovat na soucasnou cvs verzi (serie 3.8g).