www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Delphi ter zajem podatkov na serijskem portu

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> MS Windows razprave
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14679
Aktiv.: 61.79

PrispevekObjavljeno: Sre Dec 12, 2007 4:40 pm    Naslov sporočila:  Delphi ter zajem podatkov na serijskem portu Odgovori s citatom

V službi za potrebe testiranja ter meritev uporabljamo posebno orodje. V sklopu orodja je tudi tehnica ter pomično merilo katero pa želim uporabiti za svojo meritev.
Ker so mi znani porti ter parametri sem najprej spisal preprost program, da sem videl kaj sploh posamezna zadeva pošilja. Sedaj sem spisal kompleksnejši program, kjer iz poslanih podatkov izluščim potrebne jih obdelam ter jih zapišem v bazo.
Za delo s serijskim portom po priporočilu Darkota uporabljam SerialPortNG. Zadeva dela čisto vredo. Zgodilo pa se mi je, da je zadeva "odpovedala". Podatke sprejemam ob dogodku "SerialPortClusterEvent" Očitno do dogodka "ne pride". Port ni blokiran, kajti če program zapustim, ter poženem ogrinalni sofwere le ta dela. Moj program pa začne delati le ob restatu računalnika. Še tole. Uprabljam dva porta COM4 ter COM5 Naj port takrat, ko ga ne rabim zaprem? Port takoj ob zagonu progama odprem.

Edit:
Mogoče našel vzrok. V seriji naključij pri nadaljni obdelavi bi lahko prišlo do deljenja 0. Tole sem popravil - sprobal bom jutri v službi. Program takrat, ko odpove ne "crkne" Ročni vnos je še veno možen.

PS.
Pozna kdo kako lowcost varianto tehnice s serijskim izhodom, natančnosti 1g do recimo max 1kg .

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.50

PrispevekObjavljeno: Sre Dec 12, 2007 5:43 pm    Naslov sporočila:   Odgovori s citatom

1: Za Delphi obstaja unit slovenskega avtorja, ki je baje super dober (ne bi vedel kako je primerjalno, ker nisem uproabljal drugih).

2: Divide by zero bi moral biti exception; ce se program ne ustavi in nisi eksplicitno ujel napake, to ne more biti vzrok nedelovanja.

_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 39.60
Kraj: Kranj - struževo

PrispevekObjavljeno: Sre Dec 12, 2007 5:45 pm    Naslov sporočila:   Odgovori s citatom

Za COM port ne uporabljaj raznih dodatkov in bombončkov. Več stvari kot imaš, večja je možnost za hrošče. Jaz sem imel hude probleme z njimi.
Jaz in Jur uporabljava original procedure iz Windowsov (API).
Lepi primeri uporabe so tu na forumu. Priporočam!

Če je možnost, da v programu pride do deljenja z 0, se prepričaj, da imaš v Compilerju nastavljena vsa preverjanja (Range checking, overflow,...).
To sicer upočasni izvajanje programa, ampak neopazno. (mikrosekunde)

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 12.43
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Sre Dec 12, 2007 7:49 pm    Naslov sporočila:   Odgovori s citatom

Ali in Jur. Ko sem sam prenašal stvari preko API klicev sem naletel na problem. Niz, ki si ga poslal ali prejel na port ni smel vsebovati #0.
Kako vidva rešujeta ta problem?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
micabauc
Član
Član



Pridružen-a: Tor 03 Jun 2003 7:12
Prispevkov: 177
Aktiv.: 0.75
Kraj: Celje

PrispevekObjavljeno: Sre Dec 12, 2007 7:57 pm    Naslov sporočila:   Odgovori s citatom

String se zaključi z #0, zato.
Uporabljaj tekst (BCD) za prenos, ne binarnih vrednosti. Tu so še druge omejitve. Glej ASCII kode od 0x00 do 0x1F (NULL, BELL, ACK, XON, XOF,....)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
GJ
Član
Član



Pridružen-a: Čet 02 Nov 2006 15:51
Prispevkov: 946
Aktiv.: 4.16
Kraj: Ljubljana

PrispevekObjavljeno: Sre Dec 12, 2007 11:53 pm    Naslov sporočila:   Odgovori s citatom

micabauc je napisal/a:
String se zaključi z #0, zato.
Uporabljaj tekst (BCD) za prenos, ne binarnih vrednosti...


Ahh..
Odvisno kakšno komunikacijo uporabljaš!

Če hočeš EOF preverjanje izklopit nastaviš v DCB.Flags zastavico fBinary na 1, pa bo šlo vse čez port vključno z #0! Pa v help poglej kaj je to DCB struktura!

LP GJ
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> MS Windows razprave Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 9 dni


Powered by phpBB © 2001, 2005 phpBB Group