Seite 1 von 4

Verfasst: Dienstag 21. Oktober 2008, 14:02
von Ingo
Im Messgerät kann ich aber keine Portnummer eingeben.

Verfasst: Dienstag 21. Oktober 2008, 14:06
von Hyperion
Ingo hat geschrieben:Im Messgerät kann ich aber keine Portnummer eingeben.
Hä? Das ändert doch nichts daran, dass die IP-Adresse in Deinem Code falsch ist!

Verfasst: Dienstag 21. Oktober 2008, 14:22
von Ingo
Die IP Adresse habe ich in der zwischen Zeit geändert, deshalb ist das jetzt eine andere. Von meinem Messgerät lautet die IP Jetzt 172.28.12.150. das Steht auch jetzt im Code

Verfasst: Dienstag 21. Oktober 2008, 14:31
von Hyperion
Ingo hat geschrieben:Die IP Adresse habe ich in der zwischen Zeit geändert, deshalb ist das jetzt eine andere. Von meinem Messgerät lautet die IP Jetzt 172.28.12.150. das Steht auch jetzt im Code
Also in dem Code aus Deinem ersten Posting steht noch was anderes ;-)

Was heißt hier eigentlich Zwischenzeit? HWK und ich fragten ja nur, ob Du auch die richtige IP verwendest - was hat sich da also in der Zwischenzeit getan?

Was ist mit meinen anderen Vorschlägen und Fragen?

Verfasst: Dienstag 21. Oktober 2008, 14:38
von Ingo
Ich glaube HWK hat recht die portnummer ist wahrscheinlich das problem aber ich kann die im Messgerät nicht definieren ich weiß nur ich kann ab 49152 mir den port bei meinem pc aussuchen aber beim messgerät gibt es keine möglichkeit ein port zu definieren.

Verfasst: Dienstag 21. Oktober 2008, 14:47
von Leonidas
Kann es sein, dass es so funktioniert?

Python-Programm ---> TCP/IP-Server auf deinem PC ----> IEEE 488 ---> Messgeraet

Irgendwie sind die Informationen ueber das Messgeraet ueberaus duerftig. Wie waere es, wenn du uns sagst, was das fuer ein Ding ist?

Verfasst: Dienstag 21. Oktober 2008, 14:48
von Hyperion
HWK hat eine Portnummer nie erwähnt ;-) Aber egal ...

Du musst die des Messgerätes natürlich kennen! Ohne die kann natürlich nichts klappen. Und Dein Client kann sich die natürlich nicht aussuchen; er muss schon den Port ansprechen, auf dem der Server läuft!

Und nur mal so am Rande: Ignorierst Du meine Fragen eigentlich?

Verfasst: Donnerstag 23. Oktober 2008, 08:40
von Ingo
Nein ich ignoriere nicht deine Fragen, habe nur vergessen sie zu beantworten.
Also ich bin jetzt soweit das ich erfolgreich was wegschicken kann aber ich bekomme eine merkwürdige antwort
und zwar diese hier:
\x80\x00\x00\tusername: kann jemand damit was anfangen?

Verfasst: Donnerstag 23. Oktober 2008, 09:03
von Leonidas
Das Gerät fragt wohl nach einem Usernamen...

Verfasst: Donnerstag 23. Oktober 2008, 09:36
von snafu
Ein print '\x80\x00\x00\tusername:' würde es noch deutlicher machen. ;)

Verfasst: Donnerstag 23. Oktober 2008, 10:09
von Ingo

Code: Alles auswählen

# Echo client program
import socket


HOST= '172.28.12.150'   
PORT = 10001              # The same port as used by the server
 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send ("Hold on")
antwort = s.recv(1024) 
s.close()

print 'Received', `antwort`


PythonWin 2.2.1 (#34, Feb 25 2003, 11:29:09) [MSC 32 bit (Intel)] on win32.
Portions Copyright 1994-2001 Mark Hammond (mhammond@skippinet.com.au) - see 'Help/About PythonWin' for further copyright information.
>>> Received '\x80\x00\x00\tusername:'

In meinem Messgerät befindet sich ein FTP Server
[/img]

Verfasst: Donnerstag 23. Oktober 2008, 10:34
von Hyperion
Hast Du es mal mit Telnet probiert? Da könntest Du nämlich auch sofort eine Antwort schicken ...

Verfasst: Donnerstag 23. Oktober 2008, 10:45
von BlackJack
@Ingo: Wenn sich im Gerät ein FTP-Server befindet, dann sprich den doch auch über das FT-Protokoll an. :roll: In der Standardbibliothek gibt's dafür das Modul `ftplib`.

Die Information hättest Du übrigens auch schon etwas früher mal geben können.

Verfasst: Donnerstag 23. Oktober 2008, 11:53
von Hyperion
Ooops ... das hab ich wohl übersehen ;-) (Steht aber auch sehr exponiert :-D )

Verfasst: Montag 27. Oktober 2008, 16:22
von Ingo
Hallo zusammen,
ich habe erfahren, dass ich eine .dll in meinem Code einbinden muss. weiß jemand wie ich das mache. die dll ist für die kommunikation zuständig.

Verfasst: Montag 27. Oktober 2008, 16:25
von HWK
ctypes

Verfasst: Montag 27. Oktober 2008, 16:35
von Ingo
was meinst du damit ctypes? wie soll das aussehen?

Verfasst: Montag 27. Oktober 2008, 18:02
von BlackJack
Damit ist das `ctypes`-Modul aus der Standardbibliothek gemeint. Zusätzlich zur DLL brauchst Du eine Beschreibung der API der DLL, am besten (auch) als C-Header-Dateien, und grundlegende C-Kenntnisse, zumindest was Datentypen angeht.

ctypes beispiel

Verfasst: Montag 27. Oktober 2008, 18:15
von farid
Ingo hat geschrieben:was meinst du damit ctypes? wie soll das aussehen?
Hier ein kurzes ctypes Beispiel (Windows DLL):

Code: Alles auswählen

from ctypes import *

# kernel32 = windll.kernel32
# msvcrt = cdll.msvcrt
user32 = windll.user32

MessageBoxW = user32.MessageBoxW

MessageBoxW(0, u'A Unicode Message: ÄÖÜäöüß', u'A Unicode Greeter', 0)
Bei einigen C-Funktionen muss man aber ctypes mitteilen, was fuer Argumente erwartet und zurueckgegeben werden (Stichwort .argtypes, .restype). Dazu benoetigt man C-types Wrapper, d.h. die c_* Typen aus ctypes. Die Doku ist da sehr hilfreich:

http://docs.python.org/library/ctypes.html

Verfasst: Dienstag 28. Oktober 2008, 08:23
von Ingo
Tut mir Leid aber ich verstehe dass nicht ganz meine dll die ich ansprechen muss heißt tmctl.dll
kann ich das so wie in dem beispiel machen?