Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: rikonen - 02.09.15 - klo:20.48
-
Osaako joku neuvoa miten saisi Gambaksen käyttämän formaatin vaihdettua siten että se lähettäisi yhden tavun kahden ASCII -tavun sijaan? Kirjoittamalla sarjaporttiin (/dev/ttyUSB0) komennolla Print #hDevice, Hex$(32); saan vastaukseksi (32 30), odotus oli (20). Datan (tavun) arvon pitäisi kattaa alue 0x00 ... 0xFF.
Onko kellään ideaa millä ongelman voisi ratkaista, sisäisesti tai ulkoisesti käyttöjärjestelmätasolla? Esim. iconv -merkistömuunnos voisi jollain tavalla toimia, tärkeintä olisi että saisin luettua ja kirjoitettua vähäisen määrän dataa tavuittain ja käsitellä sitä Gambaksella?
-
Kokeile käyttää write-komentoa printin sijaan, eli jotenkin tyyliin:
DIM b AS Byte = 32
WRITE #hDevice, b
-
Kiitos vinkistä, sain aikaa kokeilla ja sain toimimaan :D
Alla esimerkki kuinka kirjoitetaan ja luetaan 0x00 - 0xFF sarjaporttiin.
Viive tarvitaan koska sarjaportissa tulee luonnostaan viivettä jolloin portin lukua ei luonnollisesti voida heti tehdä. 9600 merkin siirtonopeudella 3 ms oli pienin arvo jolla välitön luku porttiin kirjoittamisen jälkeen toimii.
Gambas on hieno ohjelma johon kannattaa tutustua syvemmin, sen kyvyistä saa jotain käsitystä DomotiGasta https://domotiga.nl/projects/domotiga/wiki/Gambas (https://domotiga.nl/projects/domotiga/wiki/Gambas)
Dim a, b As Integer
For a = 0 To 255
Write #Rport, a As Byte
Sleep 0.01
b = Read #Rport As Byte
Logwindow.Text = Logwindow.Text & b & Chr(13)
Next