Portál AbcLinuxu, 8. května 2025 15:36
teplomer
čte z hw (skrze gpib) a posílá na stdin
. Asi bych měl ještě dodat, že celý záznam, tj. všechny dvojice "čas-teplota" z celého experimentu potřebuji zachovat.
Druhý program zase naopak potřebuje tyto dvojice jenom "od posledního čtení". Tj. za poslední 2s.
man setitimer
man
a z něj ITIMER_REAL
kde do it_interval-u si doplníš dvě vteřiny a odstartuješ to. Nemám osobní zkušenosti s přesností tohoto řešení, ale je to volání na úrovni kernelu, takže by to mohlo být tak přesné jak je jen možné, včetně toho že by nemusela vznikat kumulativní chyba (předpokládám že ta by ti vadila především, to že to bude jednou za 2.1s a podruhé za 1.9s ti asi vadit nebude, pokud ta odchylka nebude příliš velká a součet odchylek bude víceméně nulový). Každopádně si pak přesnost tohoto řešení samozřejmě pro jistotu změř.
Nemám osobní zkušenosti s přesností tohoto řešení, ale je to volání na úrovni kernelu, takže by to mohlo být tak přesné jak je jen možné, včetně toho že by nemusela vznikat kumulativní chybaTaktéž nemám osobní zkušenost, ale kdybych měl něco takového dělat, tak bych asi zkusil stejné řešení. V závislosti na zatížení stroje (např. počtu procesů, které budou chtít běžet zároveň s tím důležitým) se může objevit nějaké zpoždění mezi spuštěním časovače a reakcí procesu, ale to by se mělo pohybovat v řádu jednotek, maximálně desítek milisekund (a jak už bylo řečeno, časovač běží v jádře, takže toto zpoždění ho neovlivní)
Na co potřebuješ tak přesné rozlišení ?je to otázka akademické cti. Prostě chci co největší rozlišení pro svůj fyzikální experiment. Navíc se domnívám, že to udělat lze. Tudíž to udělat chci.
Teploměr připojený přes GPIB stejně bude mít celkové dopravní zpoždění včetně náhodných fluktuací podstatně věší než je vlastní reakce operačního systému.no, domnívám se právě, že nebude. Mám lpt-gpib ovladač, který mi "dopravní zpoždění" gpib minimalizuje. Pak mám real-time patch pro jádro. Možná se ale pletu a někde něco přehlížím. To je vždy možné. Kritika vítána.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.