Lazarus 3.2 (2024.02.28.)
Letöltés

  • Oldal:
  • 1

TÉMA:

Válasz:Soros port kezelés 2010 febr. 08 11:52 #477

  • nagylakas
  • nagylakas profilkép
  • Új tag
  • Új tag
  • Hozzászólások: 1
  • Köszönetek: 0
Üdv!

Nekem is hasonló feladatom lenne, leszámítva, hogy nekem csak olvasnom kellene soros portról, a küldőt már ASM-ben megírtam (Célhardverről jön az adat, DOS-t futtat). Az érdekesség, hogy a wiki.lazarus.freepascal.org/Hardware_Access oldalon található példaprogrammal tökéletesen fut a program, látom a bejövő adatokat. Viszont amint egy grafikus felületű alkalmazásba próbálom beilleszteni a kódot, ami olvasna, máris hibát dob, méghozzá a Synaser könyvtrában a CreateLockfile() függvény hibát dob a Rewrite(f); sorran ("RunErrror(5)").
Van valakinek bármi ötlete, hogy mi lehet a hiba? Jogosultsága van a lock fájlhoz, még rootként is futtattam a biztonság kedvéért....

Válasz:Soros port kezelés 2010 febr. 05 22:36 #476

  • szeti
  • szeti profilkép
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 39
  • Köszönetek: 1
Üdv!

Nos, megoldás született a problémámra, mert bár a ComPort Library továbra sem kommunikál helyesen a modememmel, a Synaser unit segítségével írt progi azonban tökéletesen végzi a feladatát. Kicsit egyszerűbb módon, de sokkal barátságosaban kezelhető számomra. A segítséget köszönöm.

Válasz:Soros port kezelés 2010 jan. 30 08:24 #466

  • szeti
  • szeti profilkép
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 39
  • Köszönetek: 1
Szia!

Bocsi ha nagyon amatőr vagyok, de a visszahurkolást ugye nem hardveresen érted, mert ez egy szabvány modem szabvány csatlakozóval a Com1-en.:blush:

Válasz:Soros port kezelés 2010 jan. 29 17:34 #465

  • Athomas
  • Athomas profilkép
  • Moderátor
  • Moderátor
  • Sör, virsli, Lazarus
  • Hozzászólások: 46
  • Köszönetek: 0
Az biztos, ha beküldesz egy AT-t, akkor válaszként OK-t kell kapjál. Ha nem így van, nem a modemmel beszélgetsz.
Nem lehet hogy visszahurkoltad az adást a vételhez?

Válasz:Soros port kezelés 2010 jan. 29 12:32 #464

  • dfeher
  • dfeher profilkép
  • Moderátor
  • Moderátor
  • Hozzászólások: 26
  • Köszönetek: 0
Sajnos akkor nem tudok többet segíteni. :( Esetleg megpróbálnám egy másik programmal is a kommunikációt...

Válasz:Soros port kezelés 2010 jan. 29 07:18 #463

  • szeti
  • szeti profilkép
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 39
  • Köszönetek: 1
Üdv!

Igen, az ATQ0V1E0 utasítással kezdtem, de a helyzet változatlan. Nincs véletlen valakinek egy egyszerű kis példa kódja, vagy arra mutató link amit értelmezhetnék?

Válasz:Soros port kezelés 2010 jan. 28 18:58 #461

  • dfeher
  • dfeher profilkép
  • Moderátor
  • Moderátor
  • Hozzászólások: 26
  • Köszönetek: 0
Nem tudom, de gondolom az E0 parancsot próbáltad már, ami kikapcsolja az echo-t.

Válasz:Soros port kezelés 2010 jan. 28 17:34 #460

  • szeti
  • szeti profilkép
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 39
  • Köszönetek: 1
Üdv!

Igazad lehet a kódolással, így most ASCII kódokat küldök ki, amit azonban most is ugyanúgy visszakapok. Sajnos nem ismerem jól a ComPort komponenst. Lehet, hogy az alapértelmezett beállításain állítani kell, hogy egy mezei modemmel kommunikálni tudjon (DataBit, Parity, StopBits, TimeOuts)?

Válasz:Soros port kezelés 2010 jan. 28 15:24 #459

  • dfeher
  • dfeher profilkép
  • Moderátor
  • Moderátor
  • Hozzászólások: 26
  • Köszönetek: 0
Szia!

Nem próbáltál inkább valami string konstanst küldeni TEdit.Text helyett? Mert arra gondolok, hogy a kódolása nem jó annak a string-nek, amit a TEdit visszaad (pl. unicode ascii helyett, stb...), és emiatt nem értelmezi a parancsokat a modem, hanem csak visszaküldi.
Egyébként a kódban szerintem sincs hiba.

Válasz:Soros port kezelés 2010 jan. 28 11:19 #458

  • szeti
  • szeti profilkép
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 39
  • Köszönetek: 1
Sziasztok!

Nos úgy tűnik valami nagyon nem esik le nekem. A ComPort Lybrary-t használom és egy analóg modemmel kísérletezek. AT parancsokat küldök neki, amire tudomásom szerint válaszokat kellene kapnom. Ezzel szemben a kiküldött parancsot olvasom vissza az OnRxChar eseményben, de miért is? Légyszi segítsetek egy kis útmutatással.

Parancs ki:

procedure TForm1.Button1Click(Sender: TObject);
var Operation1: PAsync;
begin

InitAsync(Operation1);
try
ComPort1.WriteStrAsync(Edit1.Text, Operation1);
ComPort1.WaitForAsync(Operation1);
finally
DoneAsync(Operation1);
end;

end;

Olvasás be:

procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var Str: String;
begin
ComPort1.ReadStr(Str, Count);
Memo1.Lines.Add(Str);
if ComPort1.TriggersOnRxChar then Memo1.Lines.Add('RxChar_Event=OK') else Memo1.Lines.Add('RxBuff_Event=OK');
end;

Válasz:Soros port kezelés 2010 jan. 26 08:42 #455

  • szeti
  • szeti profilkép
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 39
  • Köszönetek: 1
Sziasztok!

Úgylátom mindkét úton elindulhatok ezér nagyon köszönöm a segítségeket. Lelkesen nekilátok a soros port tanulmányozásnak :woohoo: .

Válasz:Soros port kezelés 2010 jan. 26 06:06 #454

  • dfeher
  • dfeher profilkép
  • Moderátor
  • Moderátor
  • Hozzászólások: 26
  • Köszönetek: 0
Ha tudsz angolul:

wiki.lazarus.freepascal.org/Hardware_Access#Serial_Communication

Elég egyszerűnek tűnik.

Válasz:Soros port kezelés 2010 jan. 26 06:04 #453

  • Athomas
  • Athomas profilkép
  • Moderátor
  • Moderátor
  • Sör, virsli, Lazarus
  • Hozzászólások: 46
  • Köszönetek: 0
Szia!

Nem te vagy tudatlan, valóban nem lehet az új verzió alá a CPortLaz komponenset telepíteni. Az én projektjeimhez is használom, ezért módosítottam, és így már jó. A letöltőközpontban megtalálod.

Üdv: Athomas

Válasz:Soros port kezelés 2010 jan. 25 22:09 #452

  • szeti
  • szeti profilkép
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 39
  • Köszönetek: 1
Üdv Mindenkinek!

Bocsi a tudatlanságomért, de meg kellene oldanom egy digitális mérleg (RS-232) és az én kis programom kommunikációját egyenlőre win32 alatt. Sajnos a nulláról kezdem, így egyenlőre kicsi útmutatásra lenne szükségem.

Létezik a letöltések között egy CPortLaz.zip csomag, melyet sajnos nem tudtam telepíteni, mert valami CTL3D-t hiányol. Valójában erre van szükségem, vagy a fentebb tárgyalt Synaser könyvtár is megoldja a problémámat? Amennyiben a CPort csomag szükséges, akkor azt hogyan lehet a 0.9.28.2 verzió alá bevarázsolni?

Válasz:Soros port kezelés 2008 márc. 05 07:55 #19

  • Athomas
  • Athomas profilkép
  • Moderátor
  • Moderátor
  • Sör, virsli, Lazarus
  • Hozzászólások: 46
  • Köszönetek: 0
H'ja! Az objektumorientáltság...

Válasz:Soros port kezelés 2008 márc. 04 21:56 #18

  • petya
  • petya profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 9
  • Köszönetek: 0
Athomas!
Köszönök szépen minden fáradozást, segítséget.
Sikerült amit szerettem volna.
Ott rontottam el hogy csak simán SendString()-et hívtam, a ser.SendString() helyet...
No mind1 :)

Lényeg hogy most van egy bomba biztos alapom, amire építem reményeim szerint a progit.

Még1szer köszi, üdv: Petya
petya@debian:-$ lazarus

Válasz:Soros port kezelés 2008 márc. 04 20:30 #16

  • Athomas
  • Athomas profilkép
  • Moderátor
  • Moderátor
  • Sör, virsli, Lazarus
  • Hozzászólások: 46
  • Köszönetek: 0
Nos én is debian alatt fordítottam a progit, és mint látod a com1-et com1-nek írtam. És jó! Ráakasztottam egy gsm telót, és az válaszolt.
Mivel én sosem használtam ezt a könyvtárat, ezért azt tudom javasolni, hogy írd be hogy ser. és a felbukkanó kódablakban válogass a küldési lehetőségek között. Úgy láttam sok van. pl.: Byte, string,stb. Nem látom bonyolultnak, csak el kell mélyedni benne. Jó munkát. Azért ha elakadsz írjál nyugodtan.

Válasz:Soros port kezelés 2008 márc. 04 19:09 #15

  • petya
  • petya profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 9
  • Köszönetek: 0
Na, ismét én,bocsánat, csak kicsit belezavarodtam..

Szóval, Linux alatt dolgozok.
Itt ugye az eszköz az "/dev/ttys0"? (COM1)

Namármost, ha egy stringet, teszem azt, egy W betűt akarok a soros portra küldeni az hogyan van?
Bocsánat hogy ennyit, meg hogy ilyet, de linux alatt totál megzavar hogy máshogy kezelem a soros portot.

Ez van ugye megy:
procedure TForm1.Button1Click(Sender: TObject);
var
  ser:TBlockSerial;
  Buffer: string;
begin
  ser:=TBlockserial.Create;
  try
    ser.RaiseExcept:=True;
    ser.Connect('/dev/ttyS0');
    ser.Config(19200,8,'N',0,false,false);
    Buffer:= ser.ATCommand('AT'); // küldi a parancsot, és fogadja a választ
    Memo1.Text:= Memo1.Text+Buffer;
  finally
    ser.Free;
  end;
end;

Üdv: Petya
petya@debian:-$ lazarus

Válasz:Soros port kezelés 2008 márc. 04 19:06 #14

  • petya
  • petya profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 9
  • Köszönetek: 0
Athomas! Nagyon szépen köszönöm.
Megkaptam, kicsomagoltam, megnyitottam. és futtatás.
és megy frankón.

Viszont az nem tudom hogy jelenthet-e valamit, 9997-es timeout van amikor elindítom a küldést?
(Lazarus, debian)

Üdv: Petya
petya@debian:-$ lazarus

Válasz:Soros port kezelés 2008 márc. 04 17:53 #13

  • Athomas
  • Athomas profilkép
  • Moderátor
  • Moderátor
  • Sör, virsli, Lazarus
  • Hozzászólások: 46
  • Köszönetek: 0
Megírtam a példaprogramot.B) Debianom van, a program com1-en kiküld egy AT-t, a választ kiírja egy memo-ba. Átküldtem az emiledre.

Válasz:Soros port kezelés 2008 márc. 03 17:39 #12

  • Athomas
  • Athomas profilkép
  • Moderátor
  • Moderátor
  • Sör, virsli, Lazarus
  • Hozzászólások: 46
  • Köszönetek: 0
Ok, csak most van egy kis munkám, este foglalkozok vele.

Válasz:Soros port kezelés 2008 márc. 03 16:36 #11

  • petya
  • petya profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 9
  • Köszönetek: 0
igazából arra várnám a rávezető utat, hogy példának okáért, lenne egy gomb, ha azt megnyomom, akkor küldjön a com1-portra egy megadott karaktert pl.
petya@debian:-$ lazarus

Válasz:Soros port kezelés 2008 márc. 02 19:33 #10

  • petya
  • petya profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 9
  • Köszönetek: 0
azt megköszönöm nagyon!
petya@debian:-$ lazarus

Válasz:Soros port kezelés 2008 márc. 02 19:12 #9

  • Athomas
  • Athomas profilkép
  • Moderátor
  • Moderátor
  • Sör, virsli, Lazarus
  • Hozzászólások: 46
  • Köszönetek: 0
Én még nem használtam, de ránézek.

Válasz:Soros port kezelés 2008 márc. 02 18:56 #8

  • petya
  • petya profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 9
  • Köszönetek: 0
Ok, köszönöm, bennem lehet a hiba, de nem bírom működésre bírni.

Nincs véletlen egy Lazarusos grafikus felületű programod ami használja ezt példának? :S Sry hogy .. de ez most télleg nem megy..
petya@debian:-$ lazarus

Válasz:Soros port kezelés 2008 márc. 02 16:48 #7

  • Athomas
  • Athomas profilkép
  • Moderátor
  • Moderátor
  • Sör, virsli, Lazarus
  • Hozzászólások: 46
  • Köszönetek: 0
Ez egy könyvtár, nem kell telepíteni, csak bemásolni, és a uses szekcióba beírni. A projectfelügyelőben add hozzá a programodhoz szükséges csomagként.

Válasz:Soros port kezelés 2008 márc. 02 16:28 #6

  • petya
  • petya profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 9
  • Köszönetek: 0
Hi!
Igen, ezt megtaláltam, de nem siekrült működésre bírnom, hogyan telepítem fel a lazarushoz?
grafikus felületű programhoz kéne.
petya@debian:-$ lazarus

Válasz:Soros port kezelés 2008 márc. 02 16:27 #5

  • Athomas
  • Athomas profilkép
  • Moderátor
  • Moderátor
  • Sör, virsli, Lazarus
  • Hozzászólások: 46
  • Köszönetek: 0
Van egy Synaser nevű könyvtár, ami win, és linux alatt is megy, keress rá a google-n.

Üdv.: Athomas

Soros port kezelés 2008 márc. 02 15:07 #4

  • petya
  • petya profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 9
  • Köszönetek: 0
Sziasztok!
Lazarus alatt, (linux) hogyan lehetséges a soros port kezelése?

Üdv: Petya:dry:
petya@debian:-$ lazarus

  • Oldal:
  • 1