top of page

Programa "Radwag" svarstyklėms


Mano naujausias projektas, įgyvendintas darbovietėje. Tai C# programa (desktop application), parašyta pasitelkus .NET biblioteka bei "Visual studio 2015", Windows operacinei sistemai.

Programos rašymo tikslas buvo automatizuoti svarstyklių duomenų perkėlimą rs232 kabeliu į betkurią kompiuterio vietą pažymėta pelės paspaudimu, kur galimas klaviatūros input'as. Taip kažkiek sutaupant laiko perrašant duomenys ranka ir palengvina darbą, kadangi tenka nemažai svėrimų atlikti ir visus juos surašyti į kompiuterį.

Plačiau apie programos naudojimą kompiuteryje parašyta ši instrukcija darbuotojams.

Kadangi nustatymas - automatinis nusistovėjusio svorio siuntimas į kompiuterį nėra default, tai kiekvieną kartą dingus elektros maitinimui svarstyklėms, tenka vėliau jį vėl nustatyti. Šį parametrą nėra lengva rasti ir pakeisti, todėl tam buvo sukurta atskira instrukcija.

Programos veikimo aprašymas. Pagrindiniai aspektai.

Svarstyklių duomenų paketas atrodė taip:

HEX:

0x2B, 0x20, 0x20, 0x20, 0x31, 0x38, 0x2E, 0x38, 0x38, 0x5B, 0x38, 0x5D, 0x20, 0x20, 0x67, 0x20, 0x0D, 0x0A

ASCII:

+ _ _ _ 1 8 . 8 8 [ 8 ] _ _ g _ CR LF

Kadangi šių laužtinių skliaustų panaikinti svarstyklės parametruose nebuvo galima, teko duomenų paketą išskaidyti į atskirus byte'us, atmesti kas nereikalinga (iš esmės viską, išskyrus patį svorį) ir jei nustatytas taurelės svoris, atimti iš gauto svorio taurelės svorį. Toliau patikrinus ar svoris nėra už out of range - daugiau už 0g bet kartu ir mažiau už 120g (maximalus svarstyklių sveriamas svoris), įrašyti ten kur pažymėta vartotojo pelės klavišu.

Programa sukurta taip, kad su 1s miego pauze nuolatos sukasi vienas thread'as while cikle, laukdamas state'o pasikeitimo. Jų yra daug, tačiau jei buvo susijungta su serial port'u be klaidų, laukiama tik vieno state'o pasikeitimo - data received. Jis gaunamas iš serial port'o data received event'o, gavus visus 18 byte'ų, pakeičiamas state'as iš waiting data į data received. Tuomet duomenys apdorojami bei išsiunčiami kur vartotojui reikia.

Yra sukurtas nustatymų langas, leidžiantis vartotojui programos veikimo metu, pakeisti norimus nustatymus.

Nustatymai išsaugomi "Config.txt" faile nuspaudus "Taikyti" mygtuką. Jei pakeičiamas COM portas, kartu pakeičiamas ir programos state'as į pradinį. Taip programa lyg iš naujo atidaroma, paimamos reikšmės iš "Config.txt" failo, mėginama susijungti su Serial portu ir t.t.

Nors apie klaidas bus informuotas vartotojas iššokančiu MessageBox'u, sukuriau įvykių log'o failą, į kurį rašysiu programos eigos žinutes - ar rastas kompiuteryje COM portas, ar tai svarstyklių COM portas, ar pavyko prisijungti ir panašiai. Į log failą stengiausi rašyti informaciją, kuri nėra kritiškai svarbi vartototojui, tačiau gali būti aktuali man, developer'iui.


Featured Posts
Recent Posts
Search By Tags
Žymių dar nėra.
bottom of page