Hei!
Olen tekemässä Accessin VBA:lla ohjelmaa, jonka pitäisi lukea sarjaportista tulevaa dataa ja tallentaa se tietokantaan.
Datan lukemiseen käytän Microsoftin MSComm-kontrollin korvaavaa ilmaisversiota XMComm (http://ourworld.compuserve.com/homepages/richard_grier/xmcomm.htm), jonka pitäisi toimia lähes identtisesti MSCommin kanssa.
Ongelmana on, että en saa InputData-propertystä luettua kaikkea sarjaportista tulevaa dataa, vaan siirto katkeaa satunnaisesta kohdasta. InputLen on asetettu 0:ksi, joten koko puskurin pitäisi kuitenkin olla luettavissa InputDatasta. Missä vika voisi olla?
Olen tekemässä Accessin VBA:lla ohjelmaa, jonka pitäisi lukea sarjaportista tulevaa dataa ja tallentaa se tietokantaan.
Datan lukemiseen käytän Microsoftin MSComm-kontrollin korvaavaa ilmaisversiota XMComm (http://ourworld.compuserve.com/homepages/richard_grier/xmcomm.htm), jonka pitäisi toimia lähes identtisesti MSCommin kanssa.
Ongelmana on, että en saa InputData-propertystä luettua kaikkea sarjaportista tulevaa dataa, vaan siirto katkeaa satunnaisesta kohdasta. InputLen on asetettu 0:ksi, joten koko puskurin pitäisi kuitenkin olla luettavissa InputDatasta. Missä vika voisi olla?
Vastaukset 10
Vanhimmat
Tuosta mainitsemastasi XMComm:sta en tiedä mitään, mutta eikö MSComm-controlia voisi käyttää?
Voisi muuten, mutta kun MSCommia ei tule Accessin mukana, ja se maksaisi :)
Sain jo probleeman ratkaistua käyttämällä kaksoispuskurointia. Ohjelmassa toinen OnComm-eventti alkoi jo ennenkuin edellinen oli ehtinyt loppua, mikä aiheutti ongelman.
Onko InputData ja InputLen Accessin ominaisuuksia? Pulikassa, josta kerroit, ei tällaisia ollut - lähinnä tuli mieleen näin äkkipäätä ongelmasi poistoon vain vastaanoton statuksen seuranta. mutta mitäpä välii jos nyt toimii.
Noissa ilmaispulikoissa on käyttörajoituksia. Ja sitten semmosii ikävii puolia, että kun M$ keksii tehä vaikka uuden SP:n johonkin, pulikka ei enää toimi. Työllistää.
Moro!
InputData vastaa MSCommin Input-propertyä. Nimi on muutettu, koska XMComm on koodattu Visual Basicilla, jossa Input-sana on varattu muuhun käyttöön, eikä sitä näin ollen voinut käyttää.
Mutta eikäs InputLen kuitenkin ole myös M$-pulikan ominaisuus?
Kyllä InputLen on MSCommin ominaisuus.
Jotenkin erikoista tehdä vb:llä pulikka jolla korvataan ms:n maksullinen vb-pulikka. pieni pätkä täytyy muutakin koodia olla.
Kieltämättä olisi mielenkiintoista tutustua kyseisen pulikan koodiin. XMCommin lähdekoodi löytyy kokonaisuudessaan kirjasta:
Grier, Robert: Visual Basic Programmer's Guide to Serial Communications
..mutta itse en ole päässyt siihen tutustumaan.
Sivumennen sanoen mahtaa tup sarjaportin ohjelmointi Visual Basicilla olla taitolaji, kun Grier on onnistunut kirjoittamaan aiheesta miltei 400-sivuisen kirjan! :O
thisisatestdfgfggfgdfgdfg
1232432543543554353
akupuu