Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 10 odgovora
  • 3.421 pregleda

Najnovija ↓

MSComm.Output problem 05.02.2009. u 13:51 · pre 215 meseci #1
Treba na serijski port da posaljem neku komandu u specificnom formatu ali imam problem jer ne prihvata celu komandu:

Komanda = "blabla blabla -b 0x60000 -r 0x80000 -l 0x230000 -f 0x60030000 blabla"

1. Kada kazem MSComm.output = "blabla blabla -b 0x60000 -r 0x80000 -l 0x230000 -f 0x60030000 blabla" i kada sa inputa procitam sta je dobio, on dobije nesto ovako
"blabla blabla -b 00 -r 0x80000 -l 00 -f 0x60030000 blabla" , drugim recima neke brojeve skrati

2. Onda posaljem kao niz bajtova

dim a () as byte
a= strconv("blabla blabla -b 0x60000 -r 0x80000 -l 0x230000 -f 0x60030000 blabla",vbfromunicode)
MSComm.output =a

ali se opet desava isto

Onda vidim da ima property OutBufferSize=512, pa se postavlja pitanje da li je to dovoljno?

U kom obliku poslati gore navedenu komandu da radi kako treba?



Re: MSComm.Output problem 05.02.2009. u 14:33 · pre 215 meseci #2
Sad sam probao:

MSComm.Output="123456789123456789123456789" a on sa inputa vrati "123456789123456456789".

Isprobano vise stringova i uvek na 15 poziciji nesto skrati po random algoritmu. O cemu se ovde radi?
Re: MSComm.Output problem 05.02.2009. u 18:16 · pre 215 meseci #3
Problem je verovatno u tome sto ti nije isti baudrate na oba uradjaja, a moze da se desi i da imas elektromagnetne smetnje.
Re: MSComm.Output problem 05.02.2009. u 18:51 · pre 215 meseci #4
Baudrate je isti 57600 .....izgleda da ima neke veze sa velicinom buffera, ali jos uvek nisam otkrio resenje.
Re: MSComm.Output problem 05.02.2009. u 19:16 · pre 215 meseci #7
a da ubacis delay izmedju? koliki je recieve buffer na prijemniku? Koliki je delay kod recieva? A da implementiras "nesto", da reciever posalje neki podatak, kad primi prvih recimo 14 simbola, pa da onda saljes dalje?
Potpis
Bolje ispasti glup nego iz aviona
http://www.mulaz.org/
Re: MSComm.Output problem 05.02.2009. u 19:40 · pre 215 meseci #8
Ako se dobri sećam MSComm kontrola ima property InputLen sa kojom možeš da definišeš koliko karaktera odjednom čitas sa buffer-a. Predpostavljam da je on kod tebe namešten na 15, a ti ga postavi na 0 kako bi čitao sve odjednom
Potpis
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
Re: MSComm.Output problem 05.02.2009. u 20:32 · pre 215 meseci #9
InputLen je setovan na 0.

Kod mene se sve desava u petlji:

MSComm.output = " ona gore komanda" & vbCrLf

NekoVreme = Timer
While Instr(1,Odgovor, "Nesto sto ocekujem")=0

DoEvents
odgovor= odgovor & MSComm.input

if Timer - NekoVreme > 50 Then
' otisao u timeout izbacim neku gresku
endif

wend
Re: MSComm.Output problem 05.02.2009. u 20:35 · pre 215 meseci #10
Ovo sto sam detektovao da se desava na 15 karakteru.... ne mora da znaci da je neko pravilo. Pokusao sam na tom mestu da u output string ubacim neke space-ove.... ali nije proslo.
Re: MSComm.Output problem 05.02.2009. u 21:42 · pre 215 meseci #11
Moraćeš raditi drugačije. Probaj ovako: Šalješ jedan byte i čekaš echo, a taj drugi kad primi byte, on ga dodaje u svoj neki bafer, u programu, i vraća taj byte nazad. Tako će da radi malo sporije ali ćeš dobiti zaštitu...
Potpis
I ♥ ♀

Ovaj post je zlata vrijedan!
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme