Mindannyian, akik elkötelezettek vagyunk, mint én, az üzletek, szupermarketek stb. Programjaival küzdünk. valaha is skálán kellett közölnünk programjainkat a súly megszerzése érdekében. A mérleg kommunikációs protokolljának ismerete nem túl bonyolult, ezért nem magyarázom el, hogyan kell ezt megtenni. Éppen ellenkezőleg, a következő alkalmazás egy skála szimulátora, vagyis kiszorítja a skálát a kommunikáció során, lehetővé téve számunkra az értékesítési programjaink hibakeresését anélkül, hogy bármilyen skálát kellene csatlakoztatnunk a számítógépünkhöz.

Ehhez a szimulátorhoz a $ protokollt választottam (más néven is hívható), amely egyszerűbb, mint a cumi mechanizmusa. A súly megszerzéséhez a PC-nek csak a $ karaktert kell elküldenie a soros porton keresztül, és a skála olvasható karakterekkel adja vissza a súlyt.

Ez a protokoll az egyes méretarányoktól függően kissé eltérhet, például a tizedesjegyek elválasztására vesszőt használhat a pont helyett, vagy módosíthatja a számjegyek számát. Részletek, amelyeket szintén figyelembe kell vennünk, amikor szoftvereket tervezünk egy adott méretarányú modellhez.

A program futtatásakor találunk egy ilyen ablakot:

honlapja

Miután kiválasztottuk a soros portot, csak a Start gombra kell kattintanunk. A súly kiválasztásához használja a kijelző alatti csúszkát. Ilyen módon, amikor az értékesítési program kéri a súlyt, akkor elküldi az akkor megjelenő értéket.

Ezen a ponton azt gondolhatjuk, hogy a program nem túl hasznos, vagy legalábbis kissé zavaró, mivel ha a szimulátor soros portot használ, akkor az értékesítési programnak egy másikat kell használnia, és kommunikálnia kell a kettő között fizikailag csatlakoznia kellene hozzájuk egy soros kábel segítségével, ami nagyon nehézkes lesz. De még egyszer a "virtualizáció" megoldja ezt a problémát számunkra, csak létre kell hoznunk egymással összekapcsolt virtuális soros portokat, amelyek mindkét portban összekapcsolják az értékesítési programot és a szimulátort.

A "pár" extra port létrehozásához ajánlom ezt a szoftvert, csodákra képes, könnyen konfigurálható, emellett ingyenes és nyílt forráskódú, nem is kérhetne többet.
http://com0com.sourceforge.net/

Miután a program működése kissé tisztább lesz, egy kicsit elmagyarázzuk a kódot.

A fő darab az "uLink" egység:

Ez egy olyan egység, amelyet egy ideje fejlesztettem ki egy másik projekt számára, és amely alapvetően lehetővé teszi a soros porton keresztüli parancsok küldését és fogadását az alkalmazás fő szálával párhuzamosan, ily módon nem marad dermedten várva az adatokat. Kétféle üzemmódja van, a normál és a "RAW". Normál módban az adatokat elválasztó karakterrel, ebben az esetben CR (Carriage return) végződő szövegsorokban fogadják, és az adatokat addig nem dolgozzák fel, amíg egy teljes sort meg nem kapnak. Másrészt RAW módban, amelyet ebben az alkalmazásban használunk, az adatokat a soros portra érkezéskor dolgozzuk fel.

Ezen az egységen belül megtaláljuk a TThreadEnlace osztályt, amely a soros port kezeléséért felel. Ennek az osztálynak van egy "OnCommand" nevű eseménye, amelyet minden alkalommal végrehajtanak, amikor az adatok a soros porton keresztül érkeznek, így gyakorlatilag minden munkát elvégez, csak egy kis kódot kell hozzáadnunk ehhez az eseményhez a programunk létrehozásához:

A kód többi része egyszerűen a TThreadEnlace osztály létrehozására és megsemmisítésére, valamint a konfigurációs paraméterek megszerzésére szolgál.

A program és a forráskód letölthető innen