Newsgroups : Borland : borland.public.delphi.internet.winsock : 2006 Nov : Between a Rock and a hard spot
| Subject: | Between a Rock and a hard spot |
| Posted by: | "Larry" (lkill..@charter.net) |
| Date: | Thu, 23 Nov 2006 12:43:37 |
I am the designer of world wide food processing equipment software. We are
completing a large project for a .4 million dollar piece of equipment. The
software is complete except for a small commication piece that is to
communicate with two real time controllers. The controllers are GSE/SPX 660
scales indicators that come equipped with NIC on COMM 3 set up as a Telnet
server. We have no control over them. They are no ours, or manufactured by
us.
Prior to this porduct we simply talked through the comm poret and all was
well. But that is not an option in this installation due to distance.
We need to send commands to the program running in this devise and also know
when it has informed us of certain state changes.
The state change is to be sent, unsolicited.
Every 6 seconds we send the GSE a "GETDATA"+CrLf and retrieve the returning
data.
Every 4 minutes (or so) a sensor detects a ZERO flag and the GSE informs us
of that. We don't poll for it since we know not in the 4 minuite cycle
whence it will arrive.
We are using the Telnet client since it is the only client that triggers and
event, that we can tell.
Though you have told my senior developer that that was the wrong component
to use, it is the only component where we get any results. The example you
provided does not work nor is there a IdTCPClient1.WriteLn method.
We have also purchased the Online book in hopes of getting some usable
documentation but it is essentially a Coffee table book about sockets. It
has served no purpose to us.
I have also logged into the Indy AtoZed forum and found teh same basic
concerns but no better answers. To universal theme is that the developer is
lacking and the product isn't. There is an old adage that says you can
ignore one person that says you look like a horse but when 10 tell say you
look like a horse, you may want to shop for a saddle.
You seem to tell the user what he is doing wrong, often denying results that
he wittnessed and DEMANDING proof, etc,.etc. in a less then professional
tone. But what is needed is solutions, not finger shacking.
I am only a mediocre programmer yet I have pulled in 4 excellent
programmers; 2 Delphi and the other two, embedded C. None can make the Indy
components work to suit our needs.
I am open to using any Socket components but since the project is written is
Delphi we went with Indy. Personally, I prefer to buy since I can then hold
the manufactures feet to the fire in the event of failure. That is the
contraint I am held to by my customer.
We only want to do 2 small things...
1. We want to poll a device periodically, pass it a request (not telnet)
called GETDATA which fires off a macro on this devise and it sends a list of
variables to it's comm3 port, which in turn sends it out of their NIC to us
to be captured in a buffered, parsed and stored.
2. The same devise receives sensor inputs from various devises. When the
conveyor completes a cycle a mgnetic sensor triggers an end of cycle called
a ZEROFLAG. At that moment, the GSE devise sends out that string ZEROFLAG.
We need to know it.
That is all we want.
Please do not replay with Caps Lock, what exactly do you want? The anser is
for it to work. One or two functioning examples that truly work would be
great. Something along the lines of:
Drop this compoentent on your form, set the host and IP to your GSE. Issue
this method to request data from the GSE devise. You will find teh result
in (this is always missing) and process it this way to get it into a string.
In order to know when a zero flag is sent, you must do this (real code) and
that. When the ZEROFLAG message is sent, you will know it by ...
I thank you very much for you help.
Larry