Brauche Hilfe zu SynaSer

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
braspi
Beiträge: 57
Registriert: So 20. Mär 2016, 16:39

Brauche Hilfe zu SynaSer

Beitrag von braspi »

Hallo Leute, bräuchte wiedermal Hilfe.

Code: Alles auswählen

 
Unit main;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
 
  synaser;       // Achtung
 
type
  TForm1 = class(TForm)
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
end.


Ich will mit der Seriellen Schnittstelle arbeiten. Füge ich "synaser" ein kommen viele, viele ERROR
z.B. Komma fehlen.
Komma eingefügt, dann kommt Identifier not found und und und

Fehlt etwas oder funktioniert das grundsächlich nicht ?
Viele Grüße und danke. braspi

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Brauche Hilfe zu SynaSer

Beitrag von theo »

Merkwürdig.
Aufgrund des Beispiels sollte eigentlich nur eine Meldung und nicht "und,und und" kommen, nämlich diese:

Code: Alles auswählen

Fatal: Can't find unit synaser used by...

Das kann man beheben, indem man in Projekt->Projektinspektor->Hinzufügen->Neue Anforderung "laz_synapse" auswählt.
Vorher muss man das laz_synapse.lpk aber einmal in der IDE geöffnet und eventuell compiliert haben.

Mathias
Beiträge: 6193
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Brauche Hilfe zu SynaSer

Beitrag von Mathias »

So nebenbei, hast du synapse runtergeladen, die ist kein Bestandteil von Lazarus.
Ansonsten nützt das nichts, was Theo angegeben hat.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

braspi
Beiträge: 57
Registriert: So 20. Mär 2016, 16:39

Re: Brauche Hilfe zu SynaSer

Beitrag von braspi »

Guten Morgen,
synapse geladen und in meinem "Projekt"ordner abgelegt.
Bild

1. Mit Originaldateien kompiliert
Bild

2. Komma gesetzt
Bild
Was mache falsch

Grüße aus Berlin

Linkat
Lazarusforum e. V.
Beiträge: 530
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 21.3; Lazarus 3.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 32
Wohnort: nr Stuttgart

Re: Brauche Hilfe zu SynaSer

Beitrag von Linkat »

Hallo Braspi,
setze an den Anfang der Zeile 232 ein Komma:

Code: Alles auswählen

     ,(500000, B500000),


dann könnte es funktionieren.

Viel Erfolg.
Linux Mint 21; Lazarus 2.2.4 FPC 3.2.2; RaspiOS

braspi
Beiträge: 57
Registriert: So 20. Mär 2016, 16:39

Re: Brauche Hilfe zu SynaSer

Beitrag von braspi »

Hallo Linkat,

mache ich, aber dann kommt Bild Nr2 : identifier not found .....

... ich glaube, es fehlt eine Unix-Definition/Uses ..
ändere ich die MaxRates (für array Übertragungsgeschwindigkeiten) läuft das Programm durch.
Ergo fehlt wahrscheinlich irgendeine Uses.
Ich muss $IFDEF UNIX definieren, weiss nur nicht wie und wo.

Gruß

Mathias
Beiträge: 6193
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Brauche Hilfe zu SynaSer

Beitrag von Mathias »

Dieses Problem kenne ich, so wie ich sehe hast du einen Raspi.
Ersetzt alle Bxxx-Zeilen, welche nicht gehen zB. mit B2400.

Nur darfst dann so hohe Baudraten nicht verwenden.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
willi4willi
Lazarusforum e. V.
Beiträge: 155
Registriert: Sa 1. Nov 2008, 18:06
OS, Lazarus, FPC: Windows, Linux (debian) / Lazarus 3.2 / FPC 3.2.2
CPU-Target: i386, win64, arm

Re: Brauche Hilfe zu SynaSer

Beitrag von willi4willi »

Ich hatte auch einmal diese Problem mit den Baudraten.

siehe hier: http://www.lazarusforum.de/viewtopic.php?f=4&t=6670

Vielleicht hilft das weiter. Beim Raspi muss man das anpassen.
 

Viele Grüße

Willi4Willi

------------

Mathias
Beiträge: 6193
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Brauche Hilfe zu SynaSer

Beitrag von Mathias »

Man müsste mal die ganze Synapse-Pakage entschlacken, so das nur noch die COM-Port Funktionen drinnen sind.
Und sogar dort hat es viel überflüssiges.
Eine einfache COM-Port-Unit, welche TimeOut-Funtionen hat, würde reichen.

Ich weis, es gibt noch Serial, aber dort fehlen wichtige Sachen, welche bei Synaser dabei sind.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

braspi
Beiträge: 57
Registriert: So 20. Mär 2016, 16:39

Re: Brauche Hilfe zu SynaSer

Beitrag von braspi »

Hallo, beides funktioniert.
Ich habe mich aber für die "Willi"-Methode entschieden.
Irgendwie komme ich aber nicht zu Potte. Eigentlich habe ich keine Lust mich da durchzuwurstln. Geht es .. geht es nicht.. ich bin nur am Suchen
Mit Linux(Raspi) ist das so eine Sache für mich. Hat vielleicht jemand ein einfaches, funktionierendes Beispiel, wo ich einfach mit einem Jumper auf dem Raspi (TX-RX = Nullmodem) rum tippen kann.
Noch einen schönen "Vater"-tag aus Berlin.

Mathias
Beiträge: 6193
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Brauche Hilfe zu SynaSer

Beitrag von Mathias »

Mit Linux(Raspi) ist das so eine Sache für mich. Hat vielleicht jemand ein einfaches, funktionierendes Beispiel, wo ich einfach mit einem Jumper auf dem Raspi (TX-RX = Nullmodem) rum tippen kann.

Was willst du genau machen ?
Mit was soll dein Raspi kommunizieren ?
Arduino ?

Im Normalfall ist eine Serial-Kommunikation keine Hexerei.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

braspi
Beiträge: 57
Registriert: So 20. Mär 2016, 16:39

Re: Brauche Hilfe zu SynaSer

Beitrag von braspi »

Hallo Mathias, ja, der Raspi soll mit einem Arduino korrospondieren. Und auch mein Windowsrechner soll mit beiden per serieller Schnittstelle das Eine und das Andere schalten und Werte abfragen.
Mit Window und Delphi habe ich null Probleme. Ich tu mich da mit Linux um so schwerer. Ich brauche "nur" mal ein paar Zeilen, wie
- Create
- Open
- Connect
. Write
- Read
- DisConnect oder was sonst von Nöten ist.
Bei meinem Raspi wollte ich TX mit RX jumpern und dann sollte mein "ser.Write('A');" als Folge haben "Memo.Lines.Add(ser.Read(sString));"
Als grobes Beispiel.

Ich hoffe mich halbwegs verständlich ausgedrückt zu haben.
Gruß aus Berlin

Mathias
Beiträge: 6193
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Brauche Hilfe zu SynaSer

Beitrag von Mathias »

Ich tu mich da mit Linux um so schwerer

Mit Linux ist es fast das selbe, der grösste Unterschied, unter Windows heisst es "COMx" unter Linux "/dev/ttyUSBx" .

Bei meinem Raspi wollte ich TX mit RX jumpern

Wo findest du auf dem Raspi Jumper ?

Die Kommunikation mit einem Arduino geht sehr einfach, da es nur eine virtuelle COM-Schnittstelle ist, welche über USB geht.

Wie willst du den PC mit dem Raspi verbinden, über ein 9-Pol-Kabel ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

braspi
Beiträge: 57
Registriert: So 20. Mär 2016, 16:39

Re: Brauche Hilfe zu SynaSer

Beitrag von braspi »

Hallo Mathias,
Jumper ? ganz einfach : Ich gehe zu meiner Bastelkiste und nehme mir einen Jumper (heute in Rot) und stecke diesen (heute rot) auf die Pins 8 und 10.
Jetzt sollten, hoffe ich wenigstens, die Pins (heute rot) als Null-Modem funktionieren. So habe ich mir auch die Verbindung als serielle Schnittstelle vorgestellt.
Später sollen die Pins 8 und 10 auf einen Pegelwandler gehen und dann zum Arduino.

Pc zu Arduino läuft dann über USB (COMxx), nur der Raspi soll mit dem Arduino "fest"verdrahtet werden.

Grüß aus Berlin

Mathias
Beiträge: 6193
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Brauche Hilfe zu SynaSer

Beitrag von Mathias »

Denke einfach daran, das der Raspi 3,3V und der Arduino 5V hat, und der 9-Pol-stecker sogar bis +-15V.

Den Raspi würde ich auch mit USB mit dem Arduino verbinden.
Oder wenigsten mit i²C, aber dann unbedingt auf die Spannung achten.

PC <--> Raspi wäre noch Ethernet eine Lösung.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten