Keresés

Új hozzászólás Aktív témák

  • azbest

    félisten

    válasz atesss #38944 üzenetére

    műveletvégzéshez utc, de nem a leírt dátumra gondolok, hanem timestampre vagy más olyan reprezentációra amit használni lehet. A megjelenítés vagy kiírás pedig, ha oda helyi idő kell, akkor arra szokott lenni függvény, ami kiadja magából olyan, emberi fogyasztásra alkalmas formában.

    De úgy általában, azt javaslom, hogy amikor a feladat megoldását akarod kitalálni, akkor ne a végétől állj neki, hogy a kakukkos órából kiszámolsz valami pici időkülönbséget. Hanem úgy a végcélből indulj ki és tedd fel a kérdést (akár a google keresőnek), hogy pythonban és raspi hardveren milyen létező megvalósításokat használhatnál fel rá.

    Például, ha neked 1 másodpercenként kell csinálni valamit, akkor nem a kakukkos órát kell nézegetni gyakran, hanem konkrétan egy másodpercenként kellene történni valaminek. Nem foglalkoztam sokat pythonnal, de google kidobta, hogy van valami interrupt kezelés benne, ami callback függvényt hív meg, amikor esemény van.

    Szóval nem azt mondod, hogy végeten ciklusban nézegeted az órát, hanem megmondod neki, hogy 1 másodpercenként történjen a végrehajtás és adott függvény végezze akkor el. Csak valami véletlen találat példának [link]
    Ne tévesszen meg, hogy belül megint meghívja magát. Ott valójában azt mondja, hogy x idő után melyik függvény fusson le. Csak mivel egy következő esetet kezel, így ezért a függvény álítja be a következő időpontra. De lehet van interval vagy hasonló nevű megoldás is (mint javasciptben), ahol nem egyetlen, hanem leállításig minden egyes x idő elteltében való futtatást lehet beállítani.

    Az áramszünetre: az már egy teljesen más probléma és gondolom most sem tudod lekezelni. Oda már valami nyilvántartás kell (adatbázis), hogy mi történt meg és ha késik, akkor megtörténjen -e és ha igen, akkor mikor. Az a másik véglet, ha mindenre is jó megoldást akarsz, annak sem szokott lenni jó vége :D

    Egyébként újraindulásnál érdemes azt is megnézned, hogy mikor történik az óra netes szinkronizációja. Hogy előtte elindul-e a szolgáltatásod. Egyébként systemd óta úgy emlékszem külön érdemes megadni a raspbianon, hogy várja meg a szolgáltatások indításával a netkapcsolatot. Mert anélkül ész nélkül elindít minden szolgáltatást és például hálózati meghajtók felcsatolásával is problémák vannak. Még a raspi-config utilba is tettek erre beállítást azt hiszem, szal elég lehet ott beállítani, hogy várja meg a netet.

    A saját szolgáltatásodnak meg lehet függősége egy másik, példál olyasmi, ami az óra szinkronizációt elvégzi. Amíg az nem végzett, addig a tiedet nem indítja.

    [ Szerkesztve ]

Új hozzászólás Aktív témák