Lazarus 3.0 (2023.12.21.)
Letöltés

  • Oldal:
  • 1

TÉMA:

Soros port sebesség 2024 ápr. 21 20:27 #2701

  • Macilaci
  • Macilaci profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 5
  • Köszönetek: 0
Köszi, holnap utána olvasok.
László

Soros port sebesség 2024 ápr. 21 20:26 #2700

  • Macilaci
  • Macilaci profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 5
  • Köszönetek: 0
Próbálkoztam a hétvégén, és kihagytam a grafikus részt és közvetlenül a synasert használtam, ahogy javasoltad, és a következőket tapasztaltam:
a Configban(......) különböző baudokat állítottam be.
- 600 illetve 900 baud beállítása esetén 600 baudos sebességgel jött ki az adat a PC-ből.  
- 1000, 1100, 1200 baudos beállítás esetén 1200 baudos jel jött ki a PC soros portján. 
A képet egy logikai analizátorral készítettem, 1200 baud beállítással. (A configban 1000 baud volt beállítva.)
Olyan, mintha valamelyik prg, a nem szabványos baud-okat fel vagy le kerekíti a szabványos értékre. (WIN10?, Synaser, Fpc)    
Találtam egy korábbi probléma felvetést ezzel kapcsolatban, ahol 28800-s baud-ot hiányoltak. Itt a Jurassic Pork javasolta a 3 forrásfájl adott sorainak kibővítését. Ezt is kipróbáltam, de nekem ezen a sebességen nem jött ki adat.
Van esetleg valami ötletetek?      
Mellékletek:

Soros port sebesség 2024 ápr. 21 08:29 #2698

  • Tomi
  • Tomi profilkép
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 81
  • Köszönetek: 1
Hűha, ez nekem nagyon "mélyvíz", de hátha ezen:  forum.lazarus.freepascal.org/index.php/topic,20481.0.html  a fórumoldalon találsz valami hasznosat hozzá. A címe:TLazSerial : serial port component for Lazarus (windows and linux).Igaz, angolul van és már 30 oldalasra hízott, de talán érdemes átböngészned, esetleg ott is kérdezni.

Soros port sebesség 2024 ápr. 19 20:04 #2696

  • Macilaci
  • Macilaci profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 5
  • Köszönetek: 0
Hello!

Sokat romlott a helyzet.
A kísérletezéseim  során sikerült olyan állapotot előidézni, hogy a forráskód szerkesztőből nem tudok a Form-ra átváltani. A forráskód szerkesztőben nyitja meg a Form-t.
A LazSerial componenst eltávolítottam, de úgy, hogy a a telepítendő csomagok között sincsen.
Van valami ötleted vagy telepítsem újra az egészet?
 
  

Soros port sebesség 2024 ápr. 19 07:01 #2695

  • Gábor
  • Gábor profilkép
  • Adminisztrátor
  • Adminisztrátor
  • Hozzászólások: 504
  • Köszönetek: 86
Ez a LazSerial komponens saját hibaüzenete, mert nem fogadja el a megadott értéket: "LazSerial1.Baudrate invalid value for property"

Arra gondoltam, hogy közvetlenül a Synaser-t használd, hogy a GUI komponens ne bonyolítsa a helyzetet a saját ellenörzéseivel. Ha valami szoftveres dolgon (pl. nem szabványos sebesség) kell változtatnod akkor kevesebb dolog akadhat össze.
Illetve arra is gondoltam, hogy ha minden más rendben akkor pl. a stop bitek / paritás (stb.) beállítása is okozhat adathibát. Ezért fontos tudni, hogy pontosan milyen paramétereket ír elő az eszköz gyártója.

Továbbá fontos, hogy az eszköz gyártója által előírt paramétereket a másik hardvere tudja-e kezelni, illetve a rendszerre telepített driver-ben vannak-e erre vonatkozó korlátozások. Az alaplapra integrált portok általában nem szeretik a nem szabványos dolgokat, míg a "régi gagyi" PCI kártyák simán elfogadtak mindent és működtek is...
Hogyan kérdezzünk okosan? / Mit kell tennünk kérdezés előtt? -- Lazarus 3.0 -- FPC 3.2-- GNU/Linux 5.15.0 x86_64

Soros port sebesség 2024 ápr. 18 19:52 #2694

  • Macilaci
  • Macilaci profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 5
  • Köszönetek: 0
Szervusz Gábor!
Köszönöm a válaszodat.
Sajnos nem teljesen értem a dolgot.
A Form1-en létrehoztam a soros portot. Az objektum felügyelőben beállítottam a soros port paramétereit. (1200 baud)  A külső berendezést meg is tudtam szólítani, és válaszolt is csak a sebesség eltérés miatt a vett adatoknál a 7. bit már hibás volt. A config(....) paramétereket elegendő volt beállítani az objektum felügyelő ablakban a LazSerial1 tulajdonságainál. Itt viszont csak a szabványos sebességeket tudom kiválasztani. Ezért gondoltam, hogy a LazSerial forrásprogramban átírom a TBaudrate illetve a ConstsBaud tömbben az 1200 értéket 1117-re. Ezután telepítettem a csomagot, és újra fordítottam. A LazSerial1 tulajdonságainál meg is jelent a listában az br__1200 helyett a br__1117, ezt ki is választottam. A többi paramétert nem változtattam. A program fordításakor a következő hibaüzenet jelent meg:
'EReadError' osztályú hibaüzenet
Error reading LazSerial1.Baudrate invalid value for property

Az általad jelzett eljárást külön meg kell hívnom?  Nem a LazSerial1 beállított tulajdonságaival kerül meghívásra a TBlockSerial.config(....)?     
Üdvözlettel: László


 

Soros port sebesség 2024 ápr. 17 04:29 #2693

  • Gábor
  • Gábor profilkép
  • Adminisztrátor
  • Adminisztrátor
  • Hozzászólások: 504
  • Köszönetek: 86
Erre nézz rá ha még nem tetted: procedure TBlockSerial.Config(baud, bits: integer; parity: char; stop: integer; softflow, hardflow: boolean); virtual;
A kommunikáció részletes (akár nem szabványos) paramétereit itt tudod megadni... elvileg.
A nem szabványos paramétek (pl sebesség) esetén különösen fontos a hardvernek megfelelő paraméterezés (pl. a stop bitek száma stb.), mert ilyen esetben gyakran a többi paraméter sem szabványos.

Továbbá egy beszélgetés, amiben talán találsz valami hasznos infót: How do I use SYNASER?
Hogyan kérdezzünk okosan? / Mit kell tennünk kérdezés előtt? -- Lazarus 3.0 -- FPC 3.2-- GNU/Linux 5.15.0 x86_64

Soros port sebesség 2024 ápr. 16 20:43 #2692

  • Macilaci
  • Macilaci profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 5
  • Köszönetek: 0
Hello!
Még kezdő vagyok, ezért segítséget szeretnék kérni a soros port kezelésével kapcsolatban. 
A szabványtól eltérő sebességű (1117 baud) kommunikációs sebességre lenne szükségem egy meglévő rendszer adatainak lekéréséhez. Az 1200 baud-s beállítás esetén a 7.bitben már hibás az adat.
A komponensek közé letöltöttem a TLazSerial-Mastert. Mivel ebben csak szabványos sebességek voltak, a "lazsynaser"-ben megpróbáltam átírni a az 1200 baud-t 1117-re. A fordítással nem is volt probléma, de futás közben "Invalid baudrate" ablakkal kilépett a program. Próbáltam mélyebbre nézni. A SetCommState függvény és a winbase.h -ig jutottam. (github.com/tpn/winsdk-10/blob/master/Include/10.0.10240.0/um/WinBase.h) Itt találtam egy olyan baudrate makrot (379.): BAUD-USER.  Esetleg ez lehet a megoldás, ha egyáltalán megoldható ez a kommunikációs sebesség probléma. Ebben kérném a segítségeteket.
Előre is köszönöm.
László

  • Oldal:
  • 1