Před 60 lety, 1. května 1964, byl představen programovací jazyk BASIC (Beginners' All-purpose Symbolic Instruction Code).
Byla vydána nová verze 12.0 minimalistické linuxové distribuce (JeOS, Just enough Operating System) pro Kodi (dříve XBMC) a multimediálního centra LibreELEC (Libre Embedded Linux Entertainment Center). Jedná se o fork linuxové distribuce OpenELEC (Open Embedded Linux Entertainment Center). LibreELEC 12.0 přichází s Kodi 21.0 "Omega".
Microsoft vydal novou velkou aktualizaci 2404.23 v září 2019 pod licencí SIL Open Font License (OFL) zveřejněné rodiny písma Cascadia Code pro zobrazování textu v emulátorech terminálu a vývojových prostředích.
OpenTofu, tj. svobodný a otevřený fork Terraformu vzniknuvší jako reakce na přelicencování Terraformu z MPL na BSL (Business Source License) společností HashiCorp, bylo vydáno ve verzi 1.7.0. Přehled novinek v aktualizované dokumentaci. Vypíchnout lze State encryption.
Spouštět webový prohlížeč jenom kvůli nákupu kávy? Nestačí ssh? Stačí: ssh terminal.shop (𝕏).
Yocto Project byl vydán ve verzi 5.0. Její kódové jméno je Scarthgap. Yocto Project usnadňuje vývoj vestavěných (embedded) linuxových systémů na míru konkrétním zařízením. Cílem projektu je nabídnou vývojářům vše potřebné. Jedná se o projekt Linux Foundation.
Operační systém 9front, fork operačního systému Plan 9, byl vydán v nové verzi "do not install" (pdf). Více o 9front v FQA.
Svobodná webová platforma pro sdílení a přehrávání videí PeerTube (Wikipedie) byla vydána v nové verzi 6.1. Přehled novinek i s náhledy v oficiálním oznámení a na GitHubu. Řešeny jsou také 2 bezpečnostní chyby.
Lennart Poettering na Mastodonu představil utilitu run0. Jedná se o alternativu k příkazu sudo založenou na systemd. Bude součástí systemd verze 256.
Hudební přehrávač Amarok byl vydán v nové major verzi 3.0 postavené na Qt5/KDE Frameworks 5. Předchozí verze 2.9.0 vyšla před 6 lety a byla postavená na Qt4. Portace Amaroku na Qt6/KDE Frameworks 6 by měla začít v následujících měsících.
assert(min_teplota < max_teplota); while (true) { teplota = getTeplota(); if (teplota <= min_teplota) { setRele(true); } else if (teplota >= max_teplota) { setRele(false); } }
Četl jsi špatně otázku... Kdyby to bylo tak primitivní, tak to zvládnu sám....Vzhledem k řazení příspěvků v diskusi není úplně jisté, jestli reaguješ na to, co psal AraxoN, nebo na moji odpověď. Jirka
Mimochodem, myslím, že to, co radil AraxoN, s doplněním počátečního sepnutí, dává smysl, pokud by to běželo na nějakém jednoduchém řídícím čipu, který nedělá nic jiného. Problém by mohly být případné výjimečné situace.Četl jsi špatně otázku... Kdyby to bylo tak primitivní, tak to zvládnu sám....Vzhledem k řazení příspěvků v diskusi není úplně jisté, jestli reaguješ na to, co psal AraxoN, nebo na moji odpověď. Jirka
if aktualni_teplota <= minimalni_teplota || ( rele == 1 && aktualni_teplota < maximalni_teplota) { rele = 1; } else { rele = 0; }
if (kotel(teplota) < maxtep) zapnout(ohřev); do { if (kotel(teplota) > maxtep) vypnout(ohřev); if (kotel(teplota) < mintep) zapnout(ohřev); } while(topit()); vypnout(ohřev);Přidat tam hlídání hladiny a tlaku je triviální.
#include <stdio.h> #include <stdbool.h> bool regulace_kotle(float aktualni_teplota, float minimalni_teplota, float maximalni_teplota) { /* Funkce pro regulaci kotle. Argumenty: aktualni_teplota: Aktuální teplota. minimalni_teplota: Minimální požadovaná teplota. maximalni_teplota: Maximální požadovaná teplota. Vrací: Stav relé kotle (true/false). */ if (aktualni_teplota < minimalni_teplota) { // Teplota je nízká, zapneme relé. return true; } else if (aktualni_teplota >= maximalni_teplota) { // Teplota je vysoká, vypneme relé. return false; } else { // Teplota je v požadovaném rozmezí, relé zůstane beze změny. return false; // Předpokládám, že chcete prozatím relé vypnout } } int main() { float aktualni_teplota = 22.5; float minimalni_teplota = 20; float maximalni_teplota = 25; bool stav_rele = regulace_kotle(aktualni_teplota, minimalni_teplota, maximalni_teplota); printf("Aktualni teplota: %.1f°C\n", aktualni_teplota); printf("Minimalni teplota: %.1f°C\n", minimalni_teplota); printf("Maximalni teplota: %.1f°C\n", maximalni_teplota); printf("Stav rele: %s\n", stav_rele ? "zapnuto" : "vypnuto"); return 0; }
if (aktualni_teplota >= maximalni_teplota) {
// Teplota je vysoká, vypneme relé.
return false;
} else {
// Teplota je v požadovaném rozmezí, relé zůstane beze změny.
return false; // Předpokládám, že chcete prozatím relé vypnout
}
jde nahradit za
return false;
#include <stdio.h> int main() { int minimalni_teplota = 2050; int maximalni_teplota = 2400; int aktualni_teplota; int rele_stav = 0; // 0 pro vypnuto, 1 pro zapnuto while (1) { // Nekonečná smyčka printf("Rele stav: %d\n", rele_stav); // Výpis stavu relé printf("Teplota v 0.01°C: "); scanf("%d", &aktualni_teplota); if (aktualni_teplota < minimalni_teplota) { rele_stav = 1; // Sepnout relé } else if (aktualni_teplota >= maximalni_teplota) { rele_stav = 0; // Rozepnout relé } } return 0; }Tento kód vypisuje stav relé a čeká na uživatelský vstup teploty v jednotkách setin stupňů Celsia. Pokud je teplota nižší než minimální teplota, relé se spustí; pokud je teplota rovna nebo vyšší než maximální teplota, relé se vypne.
if (aktualni_teplota < maximalni_teplota) rele_stav = 1; // Sepnout reléNic jednoduššího mě nenapadá. A) Začínat se zapnutým relé
int rele_stav = 1;
není úplně čisté řešení. Po spuštění, při (aktualni_teplota >= maximalni_teplota)
by relé bylo zapnuto jen na okamžik, v rámci jednoho cyklu - v případě pomalého taktu procesoru, rychlého relé a velkého spínaného výkonu by to teoreticky mohlo způsobit potíže. Šlo by to ošetřit, ale to by bylo zbytečně krkolomné.
B) Testovaní prvního běhu v nekonečném cyklu je nepraktické, zbytečně by se opakovalo a kód by byl složitější.
Tiskni Sdílej: