Wpis z mikrobloga

#linux
jak powinno się robić takie coś:
1 program kontroluje kilka plików (dla ustalenia uwagi dajmy że dwa)
i jak cokolwiek zapyta o zawartość tych plikow to albo odda watość z cache swojego albo przekonfiguruje urządzenie i zwróci kolejną wartość
urzadzenie pod i2c, nie chce mieć surowej szyny wystawionej a moje przetworzone wyniki

to się w kernelspace pisze?
#raspberrypi
  • 19
@Init0: a da mi to czasy poniżej sekundy na odświeżenie?
aktualnie najgorszym możliwym algorytmem przeczesywania sensorów mam 0.3 sekundy na pełne 16 pomiarów a wiem że mogę zejść jeszcze niżej
to się w kernelspace pisze?

@wytrzzeszcz: znowu jakieś zaawansowane rozwiązanie do ściągania gaci przez głowę wymyślasz. Nie możesz tego zrobić tak, że wystawiasz demona do którego będziesz gadał po HTTP(albo czystym TCP) i będzie on albo oddawał dane z cache albo z urządzenia?
@yuim: po co mam wychodzić po http jak czuniki sa pod i2c podłączone do tej samej maliny która te dane zbiera i potem zbiorczo gdzieś wyśle.

wystawianie jaki pliki ma być by można było przeprowadzać kilka eksperymentów na raz
@wytrzzeszcz: wiesz, jak chcesz to sobie napisz moduł do kernela albo zrób to na FUSE, ale moim zdaniem to jest #!$%@? pomysł. Nie rozumiem jaki masz problem napisaniem jakiegoś prostego programiku który będzie ciągle czytał co tam na tym i2c jest wystawione i zrzucał to do pliku skoro i tak jest to później gdzieś zbiorczo wysyłane.
@yuim: @daczka92:
Interfejs:
Użytkownicy czytają pliki /dev/sensor0 --- /dev/sensor15
na przykład przy pomocy fread

działanie:
1. jeśli od ostatniego pomiaru z tego sensora minęło mniej czasu niż koszt przekonfigurowania szyny i2c zwróć ostatni wynik.
2. jeśli ostatni wynik jest zbyt stary załóż blokadę i prze-konfiguruj szynę, po czym zapisz wynik oraz go zwróć
3. jeśli chciałeś zrobić punkt 2 ale szyna jest zajęta, czekaj aż ktoś zwolni.

dzięki takiemu podejściu
problem by móc mieć taki wygodny interfejs muszę zrobić sterownik urządzenia blokowego?


jak juz to znakowego. Skoro tak bardzo chcesz żeby to działało dokładnie w taki sposób jak wymysliłeś no to nie masz zbyt wielu możliwości.

Natomiast nadal nie rozumiem podstawowej rzeczy, dlaczego nie możesz tego czytać z pliku który będzie regularnie aktualizowany przez jakiś programik działający jako demon? Czytasz nim wszystkie /dev/sensorX tak szybko jak się da i odkładasz wynik w
@yuim: oram dysk (no ok tmpfs i nie oram)
i z uwagi na znaczący czas przekonfiguowania pogram który będzie w tle odczytywał będzie zmienił 1 sensor wolniej niż program odczytujący z mojego pliku. Rekonfiguracja z tego samego na to samo jest prawie darmowa

dodaktowo taki demon jest obciążeniem które nie jest konieczne gdy akurat nikt nie czyta wyników