Hirdetés

2024. május 3., péntek

Gyorskeresés

Hozzászólások

(#1701) Neil Watts válasza stevve (#1698) üzenetére


Neil Watts
veterán

"Ez bevett dolog az iskolapadon kívül (bár remélem, legalább ilyen alap dolgokat tanítanak)" > Tekintve, hogy magamtol alltam neki tanulni/olvasni ezzel kapcsolatban igy nalam ez a lepes nincs/probalom magam potolni valamennyire... :D

[ Szerkesztve ]

(#1702) Neil Watts


Neil Watts
veterán

lol.
ennek meg mi baja lehet? :D

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace szervusz
{
class Program
{
static void Main(string[] args)
{
var a = "";
var b = "";

Console.WriteLine("Mondj egy szamot!");
Console.WriteLine(a);
Console.ReadKey();
Console.WriteLine("Mondj megegy szamot!");
Console.WriteLine(b);
Console.ReadKey();
Console.WriteLine("Osszeadtam oket");
Console.WriteLine(a + b);
Console.ReadLine();
}
}
}

Mindent megcsinal, csak nem irja ki a es b erteket :D vagyis nem latom. Hogy tudnam megakasztani? :D

Udv. core2

[ Szerkesztve ]

(#1703) Lortech válasza Neil Watts (#1702) üzenetére


Lortech
addikt

Előszöris szerintem nem kéne var-t használnod ezen a szinten és konkrétan erre a feladatra.

Console.WriteLine(a);
-a változó értéke üres string, nincs mit kiírnia (egy sorvégén kívül - WriteLine).

Console.ReadKey();
-[link]
Lásd a metódus dokumentációját. Ez nem azt csinálja, amit szerintem te szeretnél elérni, de amúgysem jól használod.
Ennek hatására annyit csinál a program, hogy vár 1 db leütésre. Nem kerül be "a" változóba a beírt szöveg/szám, meg semmi hasonló.
Írj a = Console.ReadLine(); -t helyette. És beolvasás után kéne kiiratni a tartalmát, hacsak nem a beolvasás előtti tartalmát akarod kiírni a változónak.

Console.WriteLine(a + b);
- ez konkatenálni fogja a stringet ebben az esetben, mivel string típusok esetén a + operátor ezt jelenti, tehát ha a = "1", b = "2", akkor a + b == "12", nem pedig 3.
A stringet át kell alakítani a fent már említett módon pl. egy int vagy valamelyik szám típussá, és úgy összeadni őket.

Olvass sokat az alapokról mielőtt kódot írsz szerintem, vagy nézegess meg egyszerű, működő példákat, ennek én így sok értelmét nem látom.

[ Szerkesztve ]

Thank you to god for making me an atheist

(#1704) ArchElf


ArchElf
addikt

Látom, hogy Windows Service esetében van valami webszervizes lehetőség...
Properies > Services > Enable Client Application Services
Van valakinek erről anyaga, esetleg megosztható tapasztalata?

De ahogy nézem ez akár egész más is lehet, mint amit én szeretnék. A lényeg, hogy kellene egy szervíz, ami RPC/XMLRPC vagy valami hasonló módon "távolról" (kliensből) vezérelhető. Az az igazság, hogy nincs kedvem egy egész TCP Listener osztályt legyártani, szívesebben használnék valami beépített lehetőséget, amit a C# / IDE alapból is támogat.

AE

[ Szerkesztve ]

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1705) stevve válasza Lortech (#1703) üzenetére


stevve
nagyúr

"Előszöris szerintem nem kéne var-t használnod ezen a szinten és konkrétan erre a feladatra."

Miért ne? Mindenhol használható. Szerintem érdemes hamar megszokni - csak persze meg is kell érteni, ezért kell utánaolvasni.

A hiba pontosan az, amit írsz, hogy amikor kiírunk, akkor WriteLine, amikor beolvasunk, akkor ReadLine kell a ReadKey pedig szolgáljon csak a program megállítására, ne legyen más funkciója.

Értelme volna mórickázni, de mégsem, mert a példa nem alkalmas semmire. Az alapoktól kezdeni annyit tesz, hogy megérteni az osztályokat, interfészeket, a C# beépített dolgait, hívásait. Példának pedig olyat érdemes nézni, kitalálni, aminek haszna is van. Mondjuk egy számológép. Kicsi, könnyű, nagyon alap. :)

ArchElf:
Sajnos egyelőre passzolok, ilyeneket mostanában nem csináltam... de megnézem, hátha akad valami régebbről. :)

[ Szerkesztve ]

(#1706) Lortech válasza stevve (#1705) üzenetére


Lortech
addikt

Azért ne használjon var-t (még), mert ennek a megfelelő, körültekintő használata, egyáltalán a megértése komolyabb tudást feltételez, mint ami a példából láthatólag megvan. Ha a végrehajtás sorrendje - szekvencia, vagy egy alap beolvasás, kiíratás, egyszerű típushasználat problémát okoz, "proc.", fgv. használatát keveri, akkor még ráér type inference-t használni.
Ezen a szinten konkrétan a példában azért sem szerencsés, mert kezdő számára nem biztos, hogy egyértelmű, hogy melyik változó vagy kifejezés itt milyen típusú lesz, string és numerikus érték, azok konverziója és egy rajtuk végzett művelet is van benne.
A tanulás megfelelő sorrendje is fontos szerintem, először legyen tisztában azzal, hogy hol, milyen típus várható, majd később ráér a compilerre bízni ezt.

Thank you to god for making me an atheist

(#1707) stevve válasza Lortech (#1706) üzenetére


stevve
nagyúr

Ez igaz, mondjuk. Amíg az int és a string keverése megy, addig inkább jobb kiírni a típust... :K

(#1708) x007 válasza ArchElf (#1704) üzenetére


x007
tag

Remoting?
WCF?

Mind a kettő egyszerű, de sztem a WCF-fel érdemes.

(#1709) ArchElf válasza x007 (#1708) üzenetére


ArchElf
addikt

WCF-re tudnál példát linkelni?

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1710) x007 válasza ArchElf (#1709) üzenetére


x007
tag

Röviden összefoglalom:
Ez egy SOA framework, a lényege, hogy kommunikációs végpontokat (Endpoint) tudsz definiálni.

A végpontokat meghatározza: ABC

Address: A végpont címe (többféle URI van, a bindingtól függ, hogy milyet kell használni)
Binding: A végpontnál használt protokoll, ebből többféle gyári megvalósítás van: [link]
Contract: Ez végpont interface-e, ami meghatátozza, hogy milyen műveleteket lehet végrehajtani.

Itt egy nagyon egyszerű példa, ami szerintem a Te igényeidet is fogja fedni [link]

[ Szerkesztve ]

(#1711) pethYeti


pethYeti
addikt

Üdv!

Bocs lehet off.

A Visual Studio 2010-nek mennyi helyre van szüksége a C meghajtón? Valamint a 2008-nak?

Köszi előre is!

(#1712) j0k3r! válasza pethYeti (#1711) üzenetére


j0k3r!
senior tag

hello!

vs2010 + updatek
vs2008 + updatek

[ Szerkesztve ]

some men just wanna watch the world burn...

(#1713) bpx válasza pethYeti (#1711) üzenetére


bpx
őstag

tegnap raktam fel egy gépre a VS2010-et, mindent hagytam defaulton, telepítés előtti és utáni állapot között 5.5 GB volt a különbség

(#1714) pethYeti


pethYeti
addikt

Köszi!

(#1715) Vasinger!


Vasinger!
nagyúr

Üdv.!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Gondoltam egy számra 1-100 között, Találd ki!");
int a, b;
bool logika = true;
Random rnd = new Random();
a = rnd.Next(100);
do
{
b = Convert.ToInt16(Console.ReadLine());
if (a < b)
{
Console.WriteLine("A szám kisebb");
}
if (a > b)
{
Console.WriteLine("A szám nagyobb");
}
if (a == b)
{
Console.WriteLine("Eltaláltad a számot");
logika = a == b;
}
} while (true);
Console.WriteLine("Miért nem lépsz ki?");
Console.ReadLine();
}
}
}

Van egy ilyen progim, de valamiért nem 100-as. A végén nem írja ki azt a szöveget "Miért nem lépsz ki?" és le is fagy. Ez az első hátultesztelős ciklusos progim, így nem nagyon értem a szintaktikáját, hogy ez miért nem tetszik neki.
A végén nem lép ki. 5let?

(#1716) Jester01 válasza Vasinger! (#1715) üzenetére


Jester01
veterán

A do-while ciklus addig marad a ciklusban amíg a feltétel igaz (mint ahogy a sima while ciklus is). Neked ez konstans true, szóval sose fog kilépni.

Jester

(#1717) Vasinger! válasza Jester01 (#1716) üzenetére


Vasinger!
nagyúr

És akkor hogy lenne a helyes megoldás? False-szal sem volt jó. :F

(#1718) RedSign válasza Vasinger! (#1717) üzenetére


RedSign
tag

Talán:

while (a!=b);

http://www.redsign.hu

(#1719) j0k3r! válasza Vasinger! (#1717) üzenetére


j0k3r!
senior tag

vagy elejen
logika = false;
aztan az a == b agnal:
logika = true;
es
while(!logika);

[ Szerkesztve ]

some men just wanna watch the world burn...

(#1720) Vasinger! válasza RedSign (#1718) üzenetére


Vasinger!
nagyúr

Köszi, így jó. De ez mit csinál, mit jelent?

j0k3r!: Köszi, bár ezt nem nagyon értem mit hogy hova. Elmagyaráznád?

(#1721) j0k3r! válasza Vasinger! (#1720) üzenetére


j0k3r!
senior tag

elejen letrehozol egy bool tipusu valtozot, amit false kezdeti ertekkel latsz el:
bool logika = false;
a logika valtozo csak akkor valt igazra (true), ha a == b, tehat amikor a ket szam megegyezik.
eppen ezert a ciklusod addig megy
amig logika nem igaz -> while(logika != true) -> while(!logika)

amugy, asszem a
a = rnd.Next(100);
nem 1 es 100 kozotti szamot general, hanem 0-99 koze esot
random class

[ Szerkesztve ]

some men just wanna watch the world burn...

(#1723) Vasinger! válasza j0k3r! (#1721) üzenetére


Vasinger!
nagyúr

Köszi a segítséget!

Így már tiszta minden.

A az mind1, hogy 1 és 100 között vagy 0 és 99 között, a lényeg, hogy random legyen. :)

(#1724) RedSign válasza Vasinger! (#1723) üzenetére


RedSign
tag

Annyit azért akkor írjál át a programban, hogy 0 és 99 között "gondol" a program, mert egy 0-ás randomszámnál sohasem találja ki a felhasználó... ;) ...vagy adj hozzá 1-et... ;)

A az mind1, hogy 1 és 100 között vagy 0 és 99 között, a lényeg, hogy random legyen. :)

Console.WriteLine("Gondoltam egy számra 1-100 között, Találd ki!");

http://www.redsign.hu

(#1725) Vasinger!


Vasinger!
nagyúr

Hogyan tudom kiíratni az angol ABC nagybetűit?

Addig eljutottam, hogy ciklussal kell (vagynem) és elég a kisbetűket kikeresni, majd utólag To.Upper paranccsal nagybetűsíteni.
De maga az a parancs, hogy ABC betűit kiíratni az nem megy.

(#1726) j0k3r! válasza Vasinger! (#1725) üzenetére


j0k3r!
senior tag

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace abc
{
class Program
{
static void Main(string[] args)
{
string betu = "";
for (int i = 65; i <= 90; i++)
{
betu = ((char)i).ToString();
Console.WriteLine(betu+"\n");
}
}
}
}

a 65 meg 90 az ascii kodja az 'A' es 'Z' karakternek.

[ Szerkesztve ]

some men just wanna watch the world burn...

(#1727) Vasinger! válasza j0k3r! (#1726) üzenetére


Vasinger!
nagyúr

Köszi, így teljesen érthető minden. :R

(#1728) Jester01 válasza j0k3r! (#1726) üzenetére


Jester01
veterán

Azért az egy elég csúnya példaprogram volt...

1. minek is bele annyi using?
2. minek beledrótozni az ascii kódot ha egyszer a fordító is tudja?
3. minek stringgé konvertálni, ha char-t is ki lehet írni?
4. minek a WriteLine hívásba még egy enter
5. ... és azt miért string összefűzéssel kell beletenni?
6. minek kell a betu változót inicializálni
7. ... és miért nem a ciklusmagban van?
8. miért nem lehet eleve char a ciklusváltozó?

Az egy dolog ha valami működik, de lehetőség szerint ne ilyeneket tanítsunk már...

using System;

namespace abc
{
class Program
{
static void Main(string[] args)
{
for (char c = 'A'; c <= 'Z'; c++)
{
Console.Write(c);
}
Console.WriteLine();
}
}
}

Jester

(#1729) j0k3r! válasza Jester01 (#1728) üzenetére


j0k3r!
senior tag

usingokat vs dobalta bele default console app letrehozasanal, azert nem ritkitottam, mivel nem az a program lenyege, gondolom nem copy-paste lesz az egesz, csak a main.
tobbire: ok

some men just wanna watch the world burn...

(#1730) Vasinger!


Vasinger!
nagyúr

Kéne megint egy kis help.

Van ez a program:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Betűtalálgatós
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Gondoltam egy betűre az angol ABC-ből, találd ki!");
int a;
char b;
bool logika = false;
Random rnd = new Random();
a = rnd.Next(26);
a = a + 96;
do
{
b = (char)Console.Read();

int intASC2 = System.Convert.ToInt32(b);


if (a < intASC2)
{
Console.WriteLine("A betű előrébb van az ABC-ben");
}
if (a > intASC2)
{
Console.WriteLine("A betű hátrább van az ABC-ben");
}
if (a == intASC2)
{
Console.WriteLine("Talált!");
logika = a == intASC2;
}
} while (!logika);
Console.ReadLine();

}
}
}

Nah most ha ti is elindítjátok a programot látjátok, hogy nincs vele valami rendben. Kiír +2 sort teljesen feleslegesen. Miért? Egyszerűen nem jövök rá.
Ha a bool-t átírom true-ra akkor csak egyszer dobja ki, de egyből kis is lép. Mi a megoldás? :R

(#1731) szabodani


szabodani
csendes tag

Van egy véletlen számokból tömböm amibe vannak számok,és azokat a számokat összeadtam hogy hány db van belőle.
És a kérdés hogy tudom azt megcsinálni hogy egy másik tömböt hozok létre mibe a számok db számát tárolom?

(#1732) ArchElf válasza szabodani (#1731) üzenetére


ArchElf
addikt

Mármint az azonos számokat számolod össze az első tömbből?
Az első "tömb": List<int> számok
A második tömb: Dictionary<int, int> számok_száma
List<int> számok = new List<int>();
Dictionary<int, int> számok_száma
/*
számok feltöltése jön ide
*/
foreach(int szám in számok)
{
if (számok_száma.ContainsKey(szám))
számok_száma[szám].Value += 1;
else
számok_száma.Add(szám, 1);
}

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1733) ArchElf válasza Vasinger! (#1730) üzenetére


ArchElf
addikt

Kicsit finomítva:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Betűtalálgatós
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Gondoltam egy betűre az angol ABC-ből, találd ki!");
char a;
char b;
Random rnd = new Random();
a = (char)(rnd.Next('z'-'a') + 'a');
do
{
b = Console.ReadKey(true).KeyChar;

if (a < b)
{
Console.WriteLine("A betű előrébb van az ABC-ben");
}
else if (a > b)
{
Console.WriteLine("A betű hátrább van az ABC-ben");
}
else //if (a == b)
{
Console.WriteLine("Talált!");
break;
}
}
Console.ReadLine();
}
}
}

Randomban char műveleteket használtam, hogy "látszon", mi történik.
Read helyett használj ReadChar-t, az vár egy lenyomásra, a Read-egész mást csinál (emiatt volt három "válaszod").
nem kell int-té alakítani, char is összehasonlítható
sima if-ek helyett, használj if - else if - else if - ... - else logikát.
logika helyett elég egy break.

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1734) Vasinger! válasza ArchElf (#1733) üzenetére


Vasinger!
nagyúr

Először is köszönöm.

Másodszorra akármit is csinálok, nem akar működni. A zárójelekkel van valami de esküszöm, hogy nem értem mi.

(#1735) ArchElf válasza Vasinger! (#1734) üzenetére


ArchElf
addikt

do helyett while (true)
Sorry...

AE

[ Szerkesztve ]

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1736) Vasinger! válasza ArchElf (#1735) üzenetére


Vasinger!
nagyúr

Köszi, így már jó!

Nem semmi ahogy megcsináltad. Bár most nem írja ki a betűt se amit beírok és entert sem kér, durva.

:R

(#1737) FehérHolló válasza Vasinger! (#1736) üzenetére


FehérHolló
veterán

Ha mindenképp látni akarod a betűt, akkor Console.ReadLine().
Csak akkor kicsit finomítani kell, hogy 0 hossznál ne csináljon semmit és 1-nél hosszabbnál csak az első betűt szeresse a feldolgozáskor.

string b_s;
b_s = Console.ReadLine();

if(b_s.Length > 0)
{
b = b_s[0];

if (a < b)
{
Console.WriteLine("A betű előrébb van az ABC-ben");
}
else if (a > b)
{
Console.WriteLine("A betű hátrább van az ABC-ben");
}
else //if (a == b)
{
Console.WriteLine("Talált!");
break;
}
}

[ Szerkesztve ]

Skynet is real. It's called Google.

(#1738) FehérHolló válasza FehérHolló (#1737) üzenetére


FehérHolló
veterán

Úgy tűnik, hogy nem annyira okos, hogy magától tabuláljon. :)
A szerkesztőd majd tabulálja, ha bemásolod.

Egyébként az kimaradt, hogy ezt a while(true) cikluson belülre kell írni, de remélem, egyértelmű volt.

[ Szerkesztve ]

Skynet is real. It's called Google.

(#1739) ArchElf válasza FehérHolló (#1737) üzenetére


ArchElf
addikt

Console.ReadKey(false) is elég - mondjuk akkor nem árt utána egy Console.WriteLine(), hogy ne csússzon össze a szöveg a beírt betűvel.
Persze, ha enterrel szeretné bevinni a karaktert, akkor kell a ReadLine()

Amúgy befejezéshez is elég egy Console.ReadKey(true) - és akkor tényleg bármilyen gomb lenyomására vár, nem csak egy enterrel tud kilépni.

AE

[ Szerkesztve ]

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1740) sagit


sagit
addikt

sziasztok

Tényállas: idei szemeszterben Visual Studio 2010-el programozunk az egyetemen, de nem sikerült órákat felvennem, és az egyetlen gyakorlat ami nekem jó betelt. Namár most a tanár megengedte hogy laptoppal beüldögéljek, de laptopom az nincs és rohadtul nincs is szükségem rá ( otthon asztali, egyébként teló)... tehát valami olcsó megoldás után néztem.

Találtam is egy fapados eee pc-t ami arra jó lenne hogy ezt a félévet kihúzzam vele.

De a felbontása csak 800*600, az lenne a kérdés hogy ezen a felbontáson elindul a program? A többi összetevő nem lényeg.. nemgáz ha lassú lesz.. csak fusson és be tudjak járni.

előre is köszi az infót :C

Philips 65OLED803 || iPhone 15 Pro Max || Macbook Air M1 ||

(#1741) bpx válasza sagit (#1740) üzenetére


bpx
őstag

el

(#1742) sagit válasza bpx (#1741) üzenetére


sagit
addikt

köszöntem szépen a gyors választ :R

Philips 65OLED803 || iPhone 15 Pro Max || Macbook Air M1 ||

(#1743) ArchElf válasza sagit (#1740) üzenetére


ArchElf
addikt

Nem lesz egy élmény a fejlesztés ilyen kis képernyőn (rendesen el kell rejteni minden felesleget), de azért használható. Mondjuk én laptopon az 1024*768-al is rendesen megszenvedek...

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1744) bod101


bod101
aktív tag

Sziasztok!

Tudna valaki ötletet adni szoftverfejlesztés párhuzamos és elosztott környezetben téma alatt esszére?
Miről lehetne irni, forrást szerezni hozzá

[ Szerkesztve ]

1-es golf, 2-es golf, ... (Bëlga)

(#1745) FehérHolló válasza bod101 (#1744) üzenetére


FehérHolló
veterán

Több sikerrel járnál itt: [link]

Én sajnos nem tudok szabad felhasználású irodalmat adni.

Skynet is real. It's called Google.

(#1746) Jester01 válasza sagit (#1740) üzenetére


Jester01
veterán

Végső esetben, ha hálózat legalább van, akkor távelérés az otthoni gépre. Az biztos működik. Az se biztos, hogy nem elég figyelni (esetleg videózni) a gyakorlaton és otthon programozni.

Jester

(#1747) bod101 válasza FehérHolló (#1745) üzenetére


bod101
aktív tag

Köszönöm, ott is próbálkozom.

1-es golf, 2-es golf, ... (Bëlga)

(#1748) tototos


tototos
őstag

Sziasztok!

Olyan feladatot kaptam, hogy can buson keresztül programozzak fel egy mikrovezérlőt. A can bus kártyához van .net támogatottság. Amikor bejön egy üzenet akkor a kártya ezt jelzi és veszi majd tovább tudja adni másik osztálynak. Az lenne a kérdésem hogy to hogy oldanátok meg hogy minden üzenetet megkapjon egy másik osztály és ott feldolgozza sorba őket? Van olyan hogy egymás után bejön 5 üzenet és ezeket kellene sorba feldolgozni. Próbálkoztam delegattel meg autoreseteventtel de nem sok sikerrel. Túl sűrűn jönnek az üzenetek hogy a programban rendes feldolgozás menjen.
Szóval kb vázolom mit kell megvalósítani.
osztály 1 elküld egy üzenetet majd vár hogy jöjjön rá válasz. A kártyának is van egy kezelő osztálya ami veszi az üzenetet egy szálban folyamatosan ezt berakja egy bufferba majd egy jelzést küld hogy üzenet érkezett. Ezt a jelzést kellene érzékelni és az eseményeket sorba állítani.

class vector{
rxthread{
while(true){
wait for message{
message received,
message to buffer,
received message event set
}
}
}
}
class protocol{
function1{
send message
wait answer
answer received
message handle
wait for next message
}
}

(#1749) ArchElf válasza tototos (#1748) üzenetére


ArchElf
addikt

Biztos van olyan eseménye az osztálynak, hogy OnReceive vagy valami hasonló és azt kell lekezelned... valahogy így:
kezelo.OnReceive += ... (tabbal beadja automatikusan, és létre is hozza a metódust)

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1750) FehérHolló válasza tototos (#1748) üzenetére


FehérHolló
veterán

Gondolom, ez egyértelmű, de több szálon kell megoldanod.
A CAN-t figyelő thread töltsön egy puffert, ami az üzenetek leíróját tartalmazza. Miután megjött X darab (ne egyesével), szóljon a feldolgozó szálnak egy AutoResetEvent típusú példányon keresztül. A feldolgozó szál pedig pakolja ki a puffert, és az üzenet típusától függően dolgozza fel azokat.
Ehhez ami kell MSDN-ről ([link]):
- Linkedlist ([link])
- Szálkezelés ([link]) + tutorialok.
- AutoResetEvent: [link]

Konkrét megoldát nem akarok, és nem is tudok mondani, esetleg csak részleteket. Ha új vagy C#-ban és többszálas programozásban, ráadásul a CAN kártya is teljesen új számodra, akkor olyan 30-40 óra körülire saccolom a feladatot.

Ha esetleg a KB monogramra hallgató cégnek csinálod ezt, vagy egy Vector cég által gyártott CAN kártyával akadt dolgod, akkor kérlek vedd fel velem a kapcsolatot privátban!

ArchElf: OnReceive csak a WinFormson alapértelmezett tudtommal. Amilyen CAN wrapperekkel eddig találkoztam, mind ipari szemét volt a Microsoft elképzeléseihez képest.

[ Szerkesztve ]

Skynet is real. It's called Google.

Copyright © 2000-2024 PROHARDVER Informatikai Kft.