?? Modules for GPIB and Ethernet ??

C

Chaser

Hi folks,

Just wondering if anyone knows where I can find modules for NI-488.2
GPIB and for a generic ethercard?

Thanks.
 
P

Peter Hansen

Chaser said:
Just wondering if anyone knows where I can find modules for NI-488.2
GPIB and for a generic ethercard?

Can't help directly with the GPIB thing, except to note that
using something like ctypes it is generally pretty easy to
wrap the NI libraries for such things.

As for the other question: do you actually mean you want a
way to talk "raw" Ethernet, or are you just trying to do
some networking?

-Peter
 
C

Chaser

Peter Hansen said:
Can't help directly with the GPIB thing, except to note that
using something like ctypes it is generally pretty easy to
wrap the NI libraries for such things.

As for the other question: do you actually mean you want a
way to talk "raw" Ethernet, or are you just trying to do
some networking?

-Peter

Hi Peter,

I have an equipment that's controlled through ethernet. (The control
program is currently written in C++.) I guess my really difficulty
is, how do I send commmands to that devise through ethernet using
Python?

Any suggestions are appreciated. Thanks.

v/r,
Justin
 
R

Roy Smith

I have an equipment that's controlled through ethernet. (The control
program is currently written in C++.) I guess my really difficulty
is, how do I send commmands to that devise through ethernet using
Python?

You havn't given enough information to give a good answer, but I'll take
a shot.

First, you need to know what kind of protocol your device talks. It's
virtually certain that the device implements some kind of custom
application-level protocol on top of some standard transport layer such
as TCP/IP. Assuming that's the case, you need to:

1) Find the documentation for the application-level protocol it talks.

2) Find out the IP address (or hostname) of the device.

From within Python, you will need to create a socket, connect the socket
to your device using the connect() method, and then use the send() and
recv() methods to talk to the device. You'll need to implement the
application-layer protocol yourself.

The details of how to use sockets in Python (i.e. connect(), send(),
recv(), etc) are documented in "7.2 socket -- Low-level networking
interface" of the Python Library Reference. To really understand what
section 7.2 is talking about, however, you need to have a general feel
for how network communication works in general. Fortunately, the
introduction to section 7.2 contains some pointers to some good general
reference books.
 
C

Cameron Laird

You havn't given enough information to give a good answer, but I'll take
a shot.

First, you need to know what kind of protocol your device talks. It's
virtually certain that the device implements some kind of custom
application-level protocol on top of some standard transport layer such
as TCP/IP. Assuming that's the case, you need to:

1) Find the documentation for the application-level protocol it talks.

2) Find out the IP address (or hostname) of the device.

From within Python, you will need to create a socket, connect the socket
to your device using the connect() method, and then use the send() and
recv() methods to talk to the device. You'll need to implement the
application-layer protocol yourself.

The details of how to use sockets in Python (i.e. connect(), send(),
recv(), etc) are documented in "7.2 socket -- Low-level networking
interface" of the Python Library Reference. To really understand what
section 7.2 is talking about, however, you need to have a general feel
for how network communication works in general. Fortunately, the
introduction to section 7.2 contains some pointers to some good general
reference books.

I'll add that what you're attempting might be essentially impossible,
or extremely easy, or anything in between. Hardware vendors vary
WIDELY in the "hackability" of what they sell.

It might be worth calling in one of us with experience in networking
and physical devices for at least a small amount of initial consulta-
tion. It has the potential to save you months (! yes, I've seen it
take that long to understand a vendor sufficiently well to realize
that a problem has an easy answer).
 
J

Jorgen Grahn

....
I have an equipment that's controlled through ethernet. (The control
program is currently written in C++.) I guess my really difficulty
is, how do I send commmands to that devise through ethernet using
Python?

If this really is raw ethernet, I think your best multi-platform shot would
be a bleeding edge version of libpcap (http://www.tcpdump.org), and a Python
wrapper on top of it. Then make your OS accept the presence of the
interface, but not send or listen to it, and use libpcap to listen and to
inject (new feature in libpcap) ethernet frames.

It /might/ work. High data rates may be a problem; libpcap with a
relatively slow client might drop packets.

/Jorgen
 
C

Chaser

Jorgen Grahn said:
If this really is raw ethernet, I think your best multi-platform shot would
be a bleeding edge version of libpcap (http://www.tcpdump.org), and a Python
wrapper on top of it. Then make your OS accept the presence of the
interface, but not send or listen to it, and use libpcap to listen and to
inject (new feature in libpcap) ethernet frames.

It /might/ work. High data rates may be a problem; libpcap with a
relatively slow client might drop packets.

/Jorgen

Wow! Thanks for the overwhelming support. I am a computer
illiterate. Please be patient with me.

I found the following posting that deals with GPIB interface using
Python.

http://groups.google.com/groups?q=p...=UTF-8&[email protected]&rnum=4

But I got stuck on the first step of installing the dynwin package.
The dynwin package relies on two auxiliary dlls, calldll.pyd and
npstruct.pyd.

I literally downloaded the .zip, unzip them and "drag and drop" the
two .pyd into my Python24/DLLs folders. Then I created a dynwin
folder in the Python24\Lib directory.

1. Is this the right way?
2. At the Python prompt, I typed "import windll" and got the error
message that the module doesn't exist!
3. I then tried "import dynwin.windll" and Python says module calldll
doesn't exist!

HELP HELP HELP
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,565
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top