» Poradna » Ostatní

C# pomoc

 |   |  Microsoft Windows 10 Firefox 44.0

Dobrý den, chtěl bych Vás požádat o radu...potrebuji napsat kousek kodu v C#, ale bohuzel neprogramuji.Potrebuji sledovat dobu po kterou svetlo svítilo, tzn, když bude úroven osvetlení>0 rozebehne se casovac a bude sledovat jak dlouho svetlo sviti, když bude uroven osvetlení=0 tak se casovac vypne.Následne secíst celou dobu svitu.bohužel C# neumim, tak nevím poradne ani jak na to, stacilo by to i jako consolova app.PS: domácí ukol do skoly to není děkuji Vám za rady a přeji hezký den

Odpovědi na otázku

 |   |  Microsoft Windows 7 Chrome 48.0.2564.109

Lepší by bylo kdyby třída Svetlo měla eventy napr. LightOn a LightOff, pak netřeba časovače.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 48.0.2564.109

Teoreticky není problém. Ale řekni jakým způsobem do té aplikace budeš cpát informaci "osvetleni" tj jak hodně světlo svítí. Podle toho se bude odvíjet ten zbytek. Tj jestli to čidlo bude nějaký Arduino nebo raspberry pi a budeš to číst ze sériového portu, nebo prostě jak a odkud tu informaci aplikace dostane. Pak už není problém na tom stavět a zaznamenat si čas kdy se světlo rozsvítilo, kdy zhaslo. A pak jen jednoduchým odečtením máš dobu po kterou svítilo.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 44.0

o vyčítání dat se mi stará tirsnet(scada/hmi), beru hodnotu ze signálu, kterým světlo rozsvecim... spís mi jde o pouziti toho casovace...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 44.0

<program name="PrgPower">//<signal>*</signal><timer>60</timer><code>public object PrgPower(int iDuvod, SignalAttrib sa){double spotreba,spotreba2,svetlo2;spotreba = GetNumber(GetSignalAttrib("spotreba").tnValue,-1);svetlo2 = GetNumber(GetSignalAttrib("svetlo2").tnValue,-1);//spotreba2 = GetNumber(GetSignalAttrib("spotreba2").tnValue,-1);if(spotreba==-1){MonitorTextOut("chyba s nactenim hodnoty spotreba pro svetlo 1");return 1;// ukončení běhu}spotreba2=(svetlo2*20)/100; //vypocet spotreby pro svetlo 2, protoze neni led predradnik, pro LED 20Wdouble dLoadPower1 = spotreba + spotreba2;MonitorTextOut("Celkova spotreba je: " + dLoadPower1 + " W");WriteTirsSignal ("LoadPower1", dLoadPower1);WriteTirsSignal ("spotreba2",spotreba2);return 0;}</code></program>program pro C# je jen v casti <code>kód</code>

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 41.0.2272.101

Večer ti sem dám kód, teď musím pryč. (teda pokud ti sem nenapíše řešení někdo jiný) Ale chtěl bych se zeptat. Ta funkce "public object PrgPower(int iDuvod, SignalAttrib sa)" se spouští automaticky po nějaké době? tj jak vidím nahoře timer, tak například každých 60s? Pokud ano, tak je to celkem snadné řešení. A někdy na večer ti zkusím napsat kód.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Opera 9.80

Tak pokud platí ten můj předpoklad, že se ta funkce opakovaně volá po nějaké době, tak by mohlo fungovat toto (jen s tím že nevím zda jsem správně odhadl tu funkci na získání hodnoty toho osvětlení): private DateTime startTime = DateTime.MinValue; public object PrgPower(int iDuvod, SignalAttrib sa) { double osvetleni = GetNumber(GetSignalAttrib("osvetleni").tnValue, -1); //toto nevím zda je takhle správně, tak si to kdyžtak oprav. if (osvetleni != -1) { if (osvetleni > 0 && startTime == DateTime.MinValue) startTime = DateTime.Now; if (osvetleni <= 0 && startTime != DateTime.MinValue) { TimeSpan doba = DateTime.Now - startTime; MonitorTextOut("Svetlo svitilo: "+doba.ToString()); startTime = DateTime.MinValue; } } double spotreba, spotreba2, svetlo2; spotreba = GetNumber(GetSignalAttrib("spotreba").tnValue, -1); svetlo2 = GetNumber(GetSignalAttrib("svetlo2").tnValue, -1); //spotreba2 = GetNumber(GetSignalAttrib("spotreba2").tnValue,-1); if (spotreba == -1) { MonitorTextOut("chyba s nactenim hodnoty spotreba pro svetlo 1"); return 1;// ukončení běhu } spotreba2 = (svetlo2 * 20) / 100; //vypocet spotreby pro svetlo 2, protoze neni led predradnik, pro LED 20W double dLoadPower1 = spotreba + spotreba2; MonitorTextOut("Celkova spotreba je: " + dLoadPower1 + " W"); WriteTirsSignal("LoadPower1", dLoadPower1); WriteTirsSignal("spotreba2", spotreba2); return 0; }A ten tvůj zbytek kódu jsem tam nechal.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 44.0

jeste doplneni: double osvetleni = GetNumber(GetSignalAttrib("osvetleni").tnValue, -1);toto říká, že když osvetleni==-1 tak se nepodarilo nacist hodnotu ze signálu osvetleni..kdyztak si to poupravim a zitra vyzkousim

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 44.0

ano timer se spousti kazdych 60s :) děkuji, zítra až budu mít u sebe HW tak to vyzkouším

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 48.0.2564.109

A to má nějakou knihovnu do C++ nebo to někde naslouchá atd... ? Řešení je mnoho, tam můžeš sypat časy kdy to je zaplé a vyplé a z nich to dopočítat, nebo tam reálně nechat bežet timer... je to celkem jedno, ale je třeba vědět jakej je z toho vstup do toho C++

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 44.0

ano, melo by to mit knihovnyModul Calc rozšiřuje systém TIRS.NET o programy a funkce definované uživatelem, a to nejen matematickéhocharakteru. Uživatel napíše zdrojový textový soubor (skript) požadovaných akcí ve zvoleném programovacímjazyku platformy .NET (C#, Visual Basic), Calc tento skript při startu zkompiluje a ve spolupráci s jádremTirsNetKernel vyvolává jednotlivé uživatelské procedury tak, jak je požadováno. Uživatelských procedur můžebýt v jednom modulu více. U každé procedury se definují podmínky kdy má být daná procedura spouštěna,například při změně signálu nebo po uplynutí určitého času. Modul Calc je vhodné použít pokud potřebujeteprovádět se signály složité logické operace, zapisovat signály do externích databází, atp..spis bych tam chtel nechat bezet timer, ale nevim jak timer pouzit, nejsem programator

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 44.0

nikdo neporadi?

Souhlasím  |  Nesouhlasím  |  Odpovědět


Určitě si přečtěte

10 mýtů a polopravd o bateriích, kterým možná ještě věříte

10 mýtů a polopravd o bateriích, kterým možná ještě věříte

** Kolem baterií a akumulátorů koluje řada mýtů, nepravd a polopravd ** Dnes vám devět z nich zkusíme vyvrátit na základě faktů ** Většina z nich totiž neplatí pro moderní lithiové baterie

Karel Kilián, David Polesný | 99

Antivir zdarma: 8 bezplatných řešení, která zatočí s havětí v počítači

Antivir zdarma: 8 bezplatných řešení, která zatočí s havětí v počítači

** Součástí Windows 10 je integrovaný antivirový program. Stačí to? ** Představíme vám sedm aplikací na boj proti virům a malwaru ** Všechny jsou k dispozici zdarma a některé ani nemusíte instalovat

Karel Kilián | 31

10 novinek Androidu 10, které vás budou bavit

10 novinek Androidu 10, které vás budou bavit

Jan Láska, Vladislav Kluska | 28


Aktuální číslo časopisu Computer

Megatest: 20 powerbank s USB-C

Test: mobily do 3 500 Kč

Radíme s výběrem routeru

Tipy na nejlepší vánoční dárky