[elektro] RS232 es a Window 8.x

"L. Pásztor" seasoft at invitel.hu
Tue May 20 10:21:18 CEST 2014


Hello,

a PC-s oldalról nem sokat tudok. Még XP alatt ment, visual akarmiben 
kreált, és .NET -es szoft volt.
Ez adott gyári szoft volt, ehhez senkinek nem akaródzott hozzányúlni.
Meg látszott h prog-matekosok csak vegytiszta szoftveresek, nem-igen 
értették mi megy vas szinten.

A kis doboz meg ACK-zott, pufferelt, és kisebb baud-ra tett át mindent 
és küldött a PC felé. Ezt már le tudták kezelni.
Ez ugyan nem volt a szó szoros értelmében valós időben, de ez ott és 
akkor nem számított, pár msec késés nem volt gond.

---------------------
L. Pásztor
---------------------





2014.05.20. 9:28 keltezéssel, Moravcsik Szilard írta:
> Szia!
>
> 2014.05.20. 8:45 keltezéssel, "L. Pásztor" írta:
>> Soros vonali hardveres pufferrel.
> Nem írtam, de egy (valamilyen) mikrokontrolleres az adatgyűjtő kütyü.
> Ez fogja küldözgetni 1ms-onként a 2 byte-os adatot a saját soros portján
> keresztül.
>
>> Volt már ilyen, egy drága labor műszerből túl gyors volt a kijövő
>> folyam, direktben PC-be bevitt adatok vesztek el.
>> Nem tudtunk rájönni miért nem puffereli rendesen a ringyóz.
>>
> Ettől féltem. :(
> Direktben kezeltétek a Win API-t vagy valamilyen beépített komponensen
> keresztül (pl. MSComm a VB-ben, stb.)?
>
>> Aztán kapott az RS232 elé egy kis dobozt, benne kis processzorral es
>> SRAM-nal fifo-szerű üzemben.
>> Onnantól nem volt adatvesztés.
>>
> A kis "doboz" begyűjtötte az adatokat a pufferbe, majd lassabban
> átküldözgette a PC-nek? Esetleg valamilyen kézfogásos módszerrel lett
> biztonságosabb a PC felé menő adatforgalom?
>
> Üdv:
> Szilárd
>
>> ------------------------
>> L. Pásztor
>> ------------------------
>>
>>
>> 2014.05.20. 8:28 keltezéssel, Moravcsik Szilard írta:
>>> Sziasztok!
>>>
>>> Lesz egy feladatom, ahol egy adatgyűjtő által RS232 porton küldött
>>> adatokat kell venni, tárolni, kijelezni, stb. Eddig rendben is van a
>>> dolog, de:
>>>
>>> -- a COM port 115200 (esetleg 230400) Bauddal megy, 1 start, 8 adat, 1
>>> stop bittel;
>>> -- a soros adatok 2 byte-os értékek (leszámítva a fejlécet, stb.);
>>> -- 1ms időközzel követik egymást az adatok (2 byte ki -> 1ms várakozás 2
>>> byte ki -> 1ms várakozás, stb.);
>>> -- 20 másodpercig megy a történet, 20*1000*2 byte adattal;
>>> -- Windows 8.x (USA verzió, 32 vagy 64 bites) alatt kell venni őket;
>>> -- majdnem valós időben (tehát kb. 1ms körüli idővel) kellene a vett 2
>>> byte-os adatokkal dolgozni, reagálni rájuk, stb.
>>> -- a felhasznált PC egy mai átlagos, több magos asztali darab lenne (még
>>> nincs meg);
>>>
>>> Ebből nekem leginkább az a kérdés, hogy Windows alatt lehet-e egyáltalán
>>> ilyen gyors időközzel küldött adatokat kb. valós időben elkapni, azokra
>>> adott feltétel szerint reagálni, vagy esetleg a Windows 8.x üzenetkezelő
>>> rendszere erre alkalmatlan (túl lassú ehhez a feladathoz).
>>>
>>> A program leginkább Delphi 2005-ben, vagy .NET alatt készülne el
>>> (ingyenes Visual Studio Express 2013-mal, C#-ban, ha ennek van
>>> jelentősége). Első körben a fejlesztői rendszerekben komponensekkel
>>> lenne kényelmes a soros adatokat adni/venni, azok eseménykezelőjét
>>> felhasználva, ha bírják a komponensek ezt a tempót (Delphi 2005: CPort
>>> komponens, .NET SerialPort "gyári" osztály).
>>>
>>> Ha a komponensekkel túl lassú, esetleg Win API hívásokkal mehetne-e
>>> valahogy gyorsabban?
>>>
>>> Kérdezem azoktól, akik már kitapasztalták a Win és a soros port
>>> sebességét, hogyan oldottátok meg? :)
>>>
>>> Üdv:
>>> Szilárd
>>>
>>>
>>> -----------------------------------------
>>>              elektro[-flame|-etc]
>>>
>> -----------------------------------------
>>             elektro[-flame|-etc]
>>
> -----------------------------------------
>            elektro[-flame|-etc]
>



More information about the Elektro mailing list