0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaProgramiranjePredstavljamo Visual Studio 2016 (In se dokončno poslavljamo od VB6) (2)

    Predstavljamo Visual Studio 2016 (In se dokončno poslavljamo od VB6) (2)

    Kot sem omenil že v prvem delu članka, je bila v večino programov, ki sem jih v preteklosti napisal z VB6, vključena neka oblika komunikacije z zunanjimi napravami (še posebej z laboratorijsko opremo). Zato sem seveda upal, da bi lahko v VB.NET dosegel enako funkcionalnost, kot mi je to uspevalo z uporabo VB6.

    Komunikacija z zunanjimi napravami prek serijskih COM vrat.

    Za začetek me je močno prizadelo spoznanje, da se “MSComm” objekt, ki sem ga uporabljal v VB6, za serijsko komunikacijo v VB.NET ne uporablja več. Na njegovem mestu je sedaj komponenta Serial Port, ki je vsekakor veliko bolj primerno ime kot MSComm. To komponento dodate svojemu programu tako, da se pomaknete na okno Toolbox in odprete seznam Component List, kjer boste našli tudi komponento Serial Port. Z dvojnim klikom nanjo boste komponento dodali v svoj program. Opazili boste, da spet obstaja precej razlike, saj smo v VB6 dodajali MSComm predmet v okno za oblikovanje zunanjega videza zaslona (kot ikono “telefona”), v VB.NET pa se podobne komponente ne dodajo oknu, ki je namenjeno oblikovanju zaslona, ampak ločenemu majhnemu oknu pod njo. To velja tudi za gradnika, kot sta časovnik (Timer) in razna pogovorna okna, kot je na primer pogovorno okno za delo z datotekami (File dialog box).

    Ko je komponenta Serial Port enkrat dodana programu, jo je seveda potrebno konfigurirati. Večino potrebnih parametrov (če že ne kar vseh) lahko nastavimo v oknu Lastnosti (Properties) komponente Serial Port, kot je razvidno iz slike 7. Namesto tega pa lahko to storite v Form Load delu vaše programske kode, kot sledi, glej program 1.

    V tem primeru je prvi (in edini) primerek komponente Serial Port samodejno označen z oznako SerialPort1. Bodite pozorni tudi na to, da je parameter PortName prestavljen z enakim nizom kot spremenljivka comPortNumber. Ta spremenljivka niza znakov se nanaša na “COM1”, “COM2” in tako naprej in je določena znotraj neke druge rutine, o kateri bo govora malce kasneje.

    V svojih primerih nisem za prenos uporabljal nikakršne oblike strojnega nadzora pretoka podatkov, zato tudi parametri handshake niso omogočeni, kot je prikazano zgoraj. Sem pa nastavil ReceivedBytesThreshold na vrednost 1, ker moj instrument pošlje v potrditev nazaj en znak, ko obdela ukaz iz računalnika. Zato sem seveda želel, da PC program ta dogodek “vidi “, kar pomeni, da bil program obveščen takoj, ko instrument obdela ukaz, ki mu je bil izdan.

    Zelo je treba biti tudi previden, da pravilno nastavimo parameter .NewLine. Če namreč vaš instrument pošilja <CR> znak kot zaključek vrstice, potem morate ta parameter nastaviti na vbCr (Visual Basic konstanta, ki predstavlja <CR> ASCII znak). Če pa vaš instrument pošilja <LF> ali oboje <CR> <LF>, potem boste morali spremeniti to vrednost v vbLf oziroma vbCrLf.

    Zadnji parameter na katerega moram opozoriti, je parameter .ReadTimeout. Njegova vrednost je izražena v milisekundah, tako da je v zgornjem primeru nastavljen na 10 sekund. Nastavitev tega parametra na nek določen čas bo preprečila, da bi vaš program kar “obvisel” za nek nedoločen čas, če iz kakršnega koli razloga kakšno pričakovano sporočilo z instrumenta ne pride v predvidenem času. Dobro je tudi vedeti, da lahko ta parameter nastavite tudi na -1, če želite, da sprejemna rutina serijskih vrat na odgovor čaka tudi nedoločen čas: to je lahko zelo praktično ali v nekaterih primerih celo nujno potrebno.

    Celotni članek

    Predstavljamo Visual Studio 2016 (In se dokončno poslavljamo od VB6) (2)

    2016_SE244_22