[ indy @ 21.12.2005. 08:52 ] @
Naleteh na nezgodan problem.
Naime, želeo bih da napišem servis koji će prikupljati podatke od nekih mašina. Nažalost, komunikacija sa tim mašinama ide preko neke biblioteke (+ proizvođačev servis). Imam f-ju koja čita, a biblioteka nudi i slanje Windows poruke kad postoji podatak u baferu.

Mogu da radim polling kad čitam, ali mi to rešenje i nije toliko elegantno. Poruke mogu da obrađujem u overloadovanoj WinProc metodi, kad izvedem glavnu klasu iz NativeWindow. Ali to ne mogu da iskoristim u servisu. Nezgoda je što pišem u C#.

Ima li neko ideju šta raditi?

Hvala.
[ kleo @ 22.12.2005. 10:18 ] @
Jedno od rijesenja moze da bude da napravis na svakoj masini web servis i da svaki od tih web servisa dodas u glavni projekat ,tj. da napravis distribuiranu aplikaciju...
[ mmix @ 22.12.2005. 12:16 ] @
Citat:
kleo: Jedno od rijesenja moze da bude da napravis na svakoj masini web servis i da svaki od tih web servisa dodas u glavni projekat ,tj. da napravis distribuiranu aplikaciju...

Posto covek radi u hemofarmu, pretpostavljam da se radi o industrijskim masinama (za koje bih se zacudio da imaju windows na sebi ). A i ovaj metod bi i dalje bio pooling, sto ovde treba zaobici.

Citat:
indy: Mogu da radim polling kad čitam, ali mi to rešenje i nije toliko elegantno. Poruke mogu da obrađujem u overloadovanoj WinProc metodi, kad izvedem glavnu klasu iz NativeWindow. Ali to ne mogu da iskoristim u servisu. Nezgoda je što pišem u C#.

E sad, resenje za prozore u windows servisima. Ako me secanje iz API dana sluzi, kad se servis instalira sa "Allow service to interact with desktop", servis dobija mogucnost kreiranja prozora. Ti mozes napraviti prozor koji je hidden i cija jedina uloga ce biti da hvata WM_ ili koje vec poruke salje servis povezan sa masinom. To sto radis u C# malo otezava stvari ali ne mnogo. Probaj sa ovim pa cemo videti sta dalje...