Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
gelöst: Gpredict / rotctld
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
henry
Apprentice
Apprentice


Joined: 09 Aug 2002
Posts: 154

PostPosted: Wed Apr 02, 2025 2:05 pm    Post subject: gelöst: Gpredict / rotctld Reply with quote

Hallo Freunde ,

mein Problem

Gpredict soll an Port 4533 und hören senden
und rotctld soll das selbe auf Port 4533 machen.

Läuft auf localhost.

tcpdump zeigt:

15:58:01.705401 IP localhost.38504 > localhost.4533: Flags [.], ack 90, win 512, options [nop,nop,TS val 1060230869 ecr 1060230869], length 0

Bei jedem Neustart werden statt 4533 beliebige andere Ports geöffnet.

Ich habe nach tagelanger Suche des errors keine Idee mehr.
Wer kann helfen?

Danke und beste Grüße Henry

15:58:01.072325 IP localhost.4533 > localhost.38504: Flags [P.], seq 80:89, ack 34, win 512, options [nop,nop,TS val 1060230236 ecr 1060230236], length 9
15:58:01.072332 IP localhost.38504 > localhost.4533: Flags [.], ack 89, win 512, options [nop,nop,TS val 1060230236 ecr 1060230236], length 0
15:58:01.705329 IP localhost.38504 > localhost.4533: Flags [P.], seq 34:36, ack 89, win 512, options [nop,nop,TS val 1060230869 ecr 1060230236], length 2
15:58:01.705338 IP localhost.38504 > localhost.4533: Flags [F.], seq 36, ack 89, win 512, options [nop,nop,TS val 1060230869 ecr 1060230236], length 0
15:58:01.705387 IP localhost.4533 > localhost.38504: Flags [F.], seq 89, ack 37, win 512, options [nop,nop,TS val 1060230869 ecr 1060230869], length 0
15:58:01.705401 IP localhost.38504 > localhost.4533: Flags [.], ack 90, win 512, options [nop,nop,TS val 1060230869 ecr 1060230869], length 0


Last edited by henry on Fri Apr 04, 2025 7:22 am; edited 1 time in total
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1734

PostPosted: Wed Apr 02, 2025 4:29 pm    Post subject: Reply with quote

Quote:
Gpredict soll an Port 4533 und hören senden

sorry, der satz macht so keinen Sinn. Meinst du "... an Port 4533 hören und senden"?
wenn du das meinst, funktioniert das zusammen mit dem nächsten Satz "und rotctld soll das selbe auf Port 4533 machen." nicht. denn auf einen Rechner (streng genommen IP Adresse) kann nur ein Programm einen bestimmten Port zum Listen öffnen.

Lass uns doch mal einen Schritt zurückgehen. Was willst du denn eigentlich erreichen? sollen diese beiden Programme über TCP miteinander kommunizieren?
Wenn ja, ist eines davon das Programm, das den Port 4533 zum listenen öffnet (sorry, klingt irgendwie komisch, aber "zum horchen" in bezug auf netzwerk sockets ist für mich irgendwie noch komischer)

das andere macht dann eine Verbindung zu diesen port auf. Diese Verbindung geht von einem beliebigen port aus und endet bei einem bestimmten port. das ist aber kein problem, das ist so üblich, dass der, der die verbindung aufmacht keinen festen port verwendet (ich glaube, wenn man unbedingt will kann man einen festen port verwenden, aber die allermeisten programme machen das nicht, weil es wesentlich einige wesentliche nachteile hat)

dein tcpdump ausschnitt sieht aber auch so aus, als ob da eine Verbindung hergestellt ist, denn die zwei seiten reden miteinander. mal schickt der eine was, mal der andere.
Back to top
View user's profile Send private message
henry
Apprentice
Apprentice


Joined: 09 Aug 2002
Posts: 154

PostPosted: Thu Apr 03, 2025 6:55 am    Post subject: Reply with quote

Hallo Christian99,

ich versuch es mal so:

gpredict : listening 4533
rotctld : set TCP listening port, default 4533

So steht es in den help-Anweisungen geschrieben.

Interface ist IF-100
an /dev/parport0

Ich hoffe das ist aussagekräftiger.

Danke Henry
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1734

PostPosted: Thu Apr 03, 2025 9:49 am    Post subject: Reply with quote

henry wrote:

gpredict : listening 4533
rotctld : set TCP listening port, default 4533

das kann so nicht gehen. auf einer IP Adresse kann nur ein Programm auf einen port Listener sein.
Quote:

So steht es in den help-Anweisungen geschrieben.

Welche Help anweisungen?
Quote:

Interface ist IF-100
an /dev/parport0


bin mir nicht sicher was da was ist. IF-100 ist ein sehr untypischer name für ein Netzwerkinterface. und Netzwerkinterfaces haben normalerweise auch kein Devicenode in /dev
Aber dieser letzte Punkt ist eigentlich auch nicht relevant für das was du weiter oben geschrieben hast. Zu beginn hattest du was von localhost erzählt, was ja über ein lokales Interface läuft, also nicht über tatsächliche Hardware netzwerkinterfaces.

Außerdem weiß ich immer noch nicht was dein eigentliches Problem ist. Können die beiden Programme nicht miteinander reden? Dein anfänglicher tcpdump auszug sieht aber anders aus. Da sieht es so aus, als ob eine TCP Verbindung besteht, über die geredet wird.
Back to top
View user's profile Send private message
henry
Apprentice
Apprentice


Joined: 09 Aug 2002
Posts: 154

PostPosted: Thu Apr 03, 2025 10:09 am    Post subject: Reply with quote

Hallo,

ich versuche es mal anders :

das Rotorinterface von gpredict:

Name : Rotor
Host: 127.0.0.1
Port: 4533 (Standartport)

rotctld:

rotctld -m 1201 -r /dev/parport0 -T 127.0.0.1 -t 4533 -vvvv -C south_zero=1

wenn ich rotctld starte:

rotctld, Hamlib 4.6.2 2025-02-09T21:03:50Z SHA=870364 64-bit
Report bugs to <hamlib-developer@lists.sourceforge.net>

rot_init called
initrots4_amsat called
rot_register (1201)
rot_token_lookup called lookup south_zero
rot_token_lookup called lookup south_zero
rot_set_conf called
rot_set_conf: south_zero='1'
frontrot_set_conf called
rot_open called
par_open called
ser_set_dtr: DTR=0
ser_set_dtr: Cannot change DTR - Invalid argument
ser_set_rts: RTS=0
ser_set_rts: Cannot change RTS - Invalid argument
Opened rot model 1201, 'IF-100'
Backend version: 20110531.0, Status: Stable
Connection opened from 127.0.0.1:57134
rot_get_position called
rot_get_position called
rot_get_position called
rot_get_position called
rot_get_position called
rot_get_position called
rot_get_position called
rot_get_position called
rot_get_position called
Connection closed from 127.0.0.1:57134


/dev/parport0 wir angezeigt (lspci -v auch)

rotctld -h
Usage: rotctld [OPTION]... [COMMAND]...
Daemon serving COMMANDs to a connected antenna rotator.

-m, --model=ID select rotator model number. See model list
-r, --rot-file=DEVICE set device of the rotator to operate on
-R, --rot-file2=DEVICE set device of the 2nd rotator controller to operate on
-s, --serial-speed=BAUD set serial speed of the serial port
-t, --port=NUM set TCP listening port, default 4533
-T, --listen-addr=IPADDR set listening IP address, default ANY
-C, --set-conf=PARM=VAL set config parameters
-o, --set-azoffset==VAL set offset for azimuth
-O, --set-eloffset==VAL set offset for elevation
-L, --show-conf list all config parameters
-l, --list list all model numbers and exit
-u, --dump-caps dump capabilities and exit
-v, --verbose set verbose mode, cumulative
-Z, --debug-time-stamps enable time stamps for debug messages
-h, --help display this help and exit
-V, --version output version information and exit

Commands (some may not be available for this rotator):
P: set_pos (Azimuth, Elevation)
p: get_pos ()
K: park ()
S: stop ()
R: reset (Reset)
M: move (Direction, Speed)
V: set_level (Level, Level Value)
v: get_level (Level)
U: set_func (Func, Func Status)
u: get_func (Func)
X: set_parm (Parm, Parm Value)
x: get_parm (Parm)
C: set_conf (Token, Value)
_: get_info ()
s: get_status ()
w: send_cmd (Cmd)
1: dump_caps ()
3: dump_conf ()
?: dump_state ()
L: lonlat2loc (Longitude, Latitude, Loc Len [2-12])
l: loc2lonlat (Locator)
D: dms2dec (Degrees, Minutes, Seconds, S/W)
d: dec2dms (Dec Degrees)
E: dmmm2dec (Degrees, Dec Minutes, S/W)
e: dec2dmmm (Dec Deg)
B: qrb (Lon 1, Lat 1, Lon 2, Lat 2)
A: a_sp2a_lp (Short Path Deg)
a: d_sp2d_lp (Short Path km)
?: pause (Seconds)
?: get_conf (Token)


In interactive mode prefix long command names with '\', e.g. '\dump_state'

The special command '-' is used to read further commands from standard input
Commands and arguments read from standard input must be white space separated,
comments are allowed, comments start with the # character and continue to the
end of the line.


Habe ich ein Problem mit parport0?
IF-100 ist ein Interface für die parallele Schnitstelle. Habe eine PCI Multi-I/O-Karte.

73 Henry
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1734

PostPosted: Thu Apr 03, 2025 10:27 am    Post subject: Reply with quote

hm, ich weiß immer noch nicht was dein Problem ist.
Du schreibst zwar jetzt was die Ausgaben von dem Programm sind, aber da ich dieses Programm nicht kenne, weiß ich jetzt auch nicht ob das was da steht, so richtig ist, oder nicht. Auf den ersten Blick ist aber nichts zu sehen, was offensichtlich wie ein Fehler/Problem aussieht.

Quote:
Connection opened from 127.0.0.1:57134
...
Connection closed from 127.0.0.1:57134


das sieht so aus, als ob da erfolgreich eine Netzwerkverbindung zu diesem Programm hergestellt wird, und nach einer Weile wieder beendet wird. Also funktioniere Netzwerkverbindungen und dein eigentliches Problem ist was anderes, richtig?

Kannst du mal versuchen zu erklären, was du von den beiden Programmen erwartest, und was da nicht geht/was tatsächlich passiert?
Back to top
View user's profile Send private message
henry
Apprentice
Apprentice


Joined: 09 Aug 2002
Posts: 154

PostPosted: Thu Apr 03, 2025 1:34 pm    Post subject: Reply with quote

Es wir aber nicht Port 4533 angesprochen.
Bei jedem Start wird ein anderer Port angesprochen.

Es müsste doch so aussehen 127.0.0.1: 4533

Oder?

73 Henry
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1734

PostPosted: Thu Apr 03, 2025 4:17 pm    Post subject: Reply with quote

da steht "from", das bezieht sich auf die gegenstelle der eingehenden verbindung. Eine TCP Verbindung hat zwei seiten: die Seite, die listener ist, und die Seite, die sich zu dem listener verbindet. und eine Seite setzt sich zusammen aus IP und port, übliche darstellung ist, das durch ":" zu trennen.

in deinem fall ist die listener seite 127.0.0.1:4533, was du ja auf der Kommandozeile angibst. Jetzt kommt ein anderes Programm, das ein connect zu diesem 127.0.0.1:4533 macht, wenn man das nicht explizit anders macht, wird vom Netzwerkstack/Kernel eine zufällige portnummer als absender port zugewiesen. in dem fall ist die Gegenstelle, die die Verbindung aufbaut, 127.0.0.1:57134.
Die Verbindung ist also 127.0.0.1:4533<->127.0.0.1:57134. Da die listenseite fix ist, solange das programm läuft, und die Parameter dafür auf der Kommandozeile angegeben werden, haben sich die Entwickler des Programms vermutlich gedacht, dass man sich das sparen kann, und es wird nur die Gegenseite der Verbindung ausgegeben, 127.0.0.1:57134

Du kannst das Programm mal starten und dann in einer anderen shell mal "ss -tlpn" (als root) ausführen, das zeigt dir an welche programme auf deinen Rechner gerade auf welchen port listener sind.
ich mach das mal beispielhalber mit socat, da ich das programm von dir nicht habe.
Code:
socat TCP-LISTEN:22222,fork,bind=127.0.0.1 -

im ss output ist dann neben anderen folgende zeile zu sehen.
Code:
LISTEN                  0                       5                                            127.0.0.1:22222                                        0.0.0.0:*                     users:(("socat",pid=1907501,fd=5))

die erste spalte heißt, dass das die Informationen zu einen Programm sind, das listener ist, die nächsten zwei spalten sind irgendwelche queue längen im Kernel und interessieren uns hier nicht, danach steht da "127.0.0.1:22222", das heißt das an der adresse 127.0.0.1 port 22222 (bei dir wäre der port dann 4533) ein listener ist, und in der letzten spalte steht, welches programm das ist. bei dir wäre das dann rotctld

Jetzt mache ich zu diesem socat eine Verbindung auf, auch mit socat:
Code:
socat TCP:22222 -

wenn ich jetzt
Code:
sudo ss -tpn

ausführe (achtung ohne l parameter wie oben)
sehe ich folgende 2 zeilen
Code:

ESTAB               0                    0                                               127.0.0.1:22222                                         127.0.0.1:34482                users:(("socat",pid=1911185,fd=6))
ESTAB               0                    0                                               127.0.0.1:34482                                         127.0.0.1:22222                users:(("socat",pid=1911184,fd=5))


ohne den l parameter zeigt ss bestehende verbindungen an, mit l die listener.
Die erste Spalte bedeutet, das es eine bestehende Verbindung ist, ESTAB soll established heißen, dann wieder 2mal Queues im kernel, dann die zwei seiten der Verbindnug 127.0.0.1:22222<->127.0.0.1:34482 in der einen zeile und 127.0.0.1:34482<->127.0.0.1:22222 in der anderen. Da beide Programme auf meinen rechner laufen ist die selbe verbindung hier zweimal zu sehen, einmal aus der Sicht des Listeners(erste Zeile) und einmal aus sicht dessen, der die Verbindung aufgebaut hat(zweite Zeile).
Back to top
View user's profile Send private message
henry
Apprentice
Apprentice


Joined: 09 Aug 2002
Posts: 154

PostPosted: Fri Apr 04, 2025 7:22 am    Post subject: Reply with quote

Hallo Chris,

danke für Deine Erläuterungen, das war sehr erhellend. Habe wieder was dazu gelernt.
An Hand Deiner Erklärungen kann ich nun den Fehler auf ein Hardwareproblem am Rotor eingrenzen.
Wahrscheinlich ist das Potentiometer (im Rotor) für die Positionsmeldung defekt.
Ein Fehler der in den einschlägigen Foren benannt wird.

Nochmals vielen Dank. War wirklich sehr aufschlussreich für mich.

73 Henry
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum