Serijska komunikacija i pristup,pisanje i citanje com porta

Serijska komunikacija i pristup,pisanje i citanje com porta

offline
  • sandra 
  • Novi MyCity građanin
  • Pridružio: 30 Nov 2004
  • Poruke: 2
  • Gde živiš: novi sad

Zdravo svima,

Radim za diplomski program u c++ bilderu(elektrotehnicki faks u Novom Sadu); ukratko, primam neki string preko com porta, u njemu se nalaze GPS koordinate vozila,brzina,regstracija...(te podatke vozilo salje preko GSM mreze )...Napravila sam aplikaciju koja na osnovu nekih kordinata koje poznajem, radi posao(prikazuje vozilo na mapi Novog Sada,ispisuje njegovu poziciju,ostvareno je zumiranje...). Sada je potrebno da i testiram program na realnom sistemu..Jel neko ima neki source kod i da je radio sa com portom pa da na osnovu toga ja mogu da zavrsim ovo moje...Ako neko nesto zna, savet....
Unapred hvala....

[mod::gamzzy] Molim te da ne bojiš ceo text i da pročitaš pravilnik



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Prvo, zelimo ti dobrodoslicu.
Zgodnije je bilo da si ovo postovala u delu foruma koji se bavi programiranjem.

Sada da se vratimo na tvoj problem. Otvori ovaj link:
http://torry.net/pages.php?id=198
Skroluj nize, ima par komponenti za komunikaciju preko serijskog porta. Vecina su za Delphi (pise ispod opisa komponentre D4, D5...) ali imas par komada i za C Builder (ispod opisa pise i CB4, CB5...).
Isto tako pogledaj da li je komponenta free ili komercijalna (FWS, C, SH..) i da li dolazi sa source-om.
Nadam se da ce ti ovaj sajt malo pomoci. Ukoliko ne pomogne, javi sto pre da ti nadjem komponente negde drugde.



offline
  • mr_W 
  • Počasni građanin
  • Pridružio: 22 Mar 2004
  • Poruke: 835

Сандра,

а ако неким случајем развијаш програм под линуксом, онда ти ове "компоненте" неће много помоћи.

Под линуксом је довољно само да отвориш одговарајући фајл у /dev директоријуму (жељени серијски порт - нпр /dev/ttyS0), и да читаш из њега (read(), fread(), fgets(), fscanf() .. )

offline
  • Đuro Glumac
  • dipl. ing. informatike
  • Pridružio: 08 Feb 2004
  • Poruke: 3640
  • Gde živiš: ApAtIn

Sun May 30th 2004 12:00:14: Reading and Writing to Serial Port in C++ http://www.fogma.co.uk/foggylog/archive/140.html

Reading dates from serial port in C++ http://www.control.com/1026174700/index_html

offline
  • Nom  Male
  • Građanin
  • Pridružio: 17 Nov 2004
  • Poruke: 168
  • Gde živiš: Shanghai, China

@sandra

ja sam u builder-u 6ici pravio vec citanje sa serijskog porta. Pogledaj header tty.h - to je Microsoft-ov header, potrazi u MSDN-u sa kojim sve primerima je header povezan i nacices bez problema sve sto ti treba. Uz njega naravno ide i tty.cpp u kome imas sve funkcije (OpenConnection, CloseConnection, CreateTTYInfo, SetupConnection, CommWatchProc, SetTTYFocus, ReadCommBlock, WriteTTYBlock, KillTTYFocus ...)

ako se ne snadjes sama, mogu da ti posaljem primer (ceo projekat) na mail.

aj pa srecno.

offline
  • sandra 
  • Novi MyCity građanin
  • Pridružio: 30 Nov 2004
  • Poruke: 2
  • Gde živiš: novi sad

Hvala svima koji su mi odgovorili.Ja svakako koristim API funkcije windowsa koje su opisune u MSDM.
Medjutim,sve sam ja to lepo procitala,znam da otvorim COM port,da maskiram neke dogadjaje vezane za njega medjutim nije mi jos jasno iz kog Bufer citam i gde se on nalazi,a i kako da postavim one Time out vrednosti da mi se procesor ne bi zapucao?
Ako nesto nesto zna..bila bih vrlo zahvalna da odgovori.

offline
  • Nom  Male
  • Građanin
  • Pridružio: 17 Nov 2004
  • Poruke: 168
  • Gde živiš: Shanghai, China

@sandra

time-out mozes i sama da uradis, kad vec radis u builder-u, imas lep timer koji stavis da recimo 1min zaustavi proces koji je u toku i izbaci msgbox. Kad zapocnes proces, enable-ujes timer. Kad se proces zavrsi, zaustavis timer. Timer mozes da namestis da se update-uje na svaku sekundu ili svakih 10s ili minut, koliki time-out zelis da namestis.

sto se tice citanja buffer-a, pa ja sam citao ulaz (probao sam sa serijskim misem) i ispisivao vrednosti u memo-polju koristeci tty.cpp i tty.h - u tty.cpp imas funkciju CommWatchProc - nju dobudzi tamo gde ta f-ja poziva WriteTTYBlock( hTTYWnd, (LPSTR) abIn, nLength ); tu stavi svoju funkciju na primer: WriteDataFromComm(abIn); gde ti je abIn... pa pogledaj i sama tty.cpp

offline
  • Pridružio: 03 Dec 2004
  • Poruke: 6
  • Gde živiš: Novi Sad

Moj savet ti je da procitas MSDN pazljivo, tamo ti sve lepo pise Shocked

offline
  • meka  Male
  • Počasni građanin
  • Pridružio: 06 Avg 2003
  • Poruke: 811
  • Gde živiš: Novi Sad / Vojvodina

Postoj li tako nesto za MinGW? Bilo bi lepo da nadjem nesto kao /dev/tty* koji mi i nije problem programirati (uostalom, kome jeste), ali daj sta das.

Ko je trenutno na forumu
 

Ukupno su 871 korisnika na forumu :: 42 registrovanih, 5 sakrivenih i 824 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., aramis s, babaroga, bankulen, black_arrow, cenejac111, Djole, dragon986, Drug pukovnik, elenemste, girici2, gorantrojka, ikan, kalens021, LeGrandCharles, Leonardo, LUDI, madza, Marko Marković, mercedesamg, Mercury, mikrimaus, mk, nenad81, pein, proka89, RJ, rovac, royst33, ruso, Singidunumac, Sirius, stegonosa, suton, Toni, VJ, vlvl, vobo, Wlade, Yellow Pinky, zexoni, zixmix