Hi Barrie
We have also had problems using RS232 under Vee 5.01 and 6.01, exactly the
same kind of things you describe. We would be interested to see some code
examples of using Mscomm if you have some you can provide.
Thanks a lot.
Nick
-----Original Message-----
From: owner-vrf@lvld.agilent.com [mailto:owner-vrf@lvld.agilent.com]On
Behalf Of Barrie Walden
Sent: 13 February 2001 00:12
To: david_sherrill@Agilent.com
Cc: Agilent Reflector
Subject: Re: vrf serial i/o read formats
David,
In my opinion, despite substantial improvement in version 6.01, Vee
still does not handle RS232 in a reasonable manner. I believe you have
stumbled into one of the issues - Vee believes that a port time-out
indicates an error and any data which might have been received is junk
and therefore discards it. There are only two ways around this: 1)
specify a termination character and make sure the time-out value is high
enough to allow all of the expected string to arrive (the time-out timer
does not reset on each received character as I think it should) or 2)
use single character input and rebuild the string with an accumulator.
Under some conditions these solutions are inadequate - try reading
multiple data scans from an HP 34970A. I have pretty much given up on
Vee's serial I/O capability and now use MSComm ActiveX. This comes with
Visual basic, Visual C++, and probably other MicroSoft language
packages. GreenLeaf also makes a serial I/O ActiveX library but I had
problems when trying to use this with Vee 5.01 (Vee 6.01 may be better,
I haven't tried it yet).
While on the subject of Vee RS232 weaknesses, one of the things added
(fixed) in version 6 was the ability to specify port addresses and
parameters from within a program. Unfortunately, event driven I/O was
left out of this improvement. If you use a DAV to signal incoming data,
you need to know the port to watch when you write the program - this
makes portability a real issue.
If you're interested in trying MSComm, let me know and I will send some
code examples.
Barrie
whoi
---------------------------------------------------------------------
This is the "vrf" maillist, managed by Majordomo. To send messages to
this maillist, just email to "vrf@lvld.agilent.com". Subscriptions and
unsubscriptions are done through the address "vrf-request@lvld.agilent.com".
If you need details, just send a message containing the text "help"
to "vrf-request@lvld.agilent.com".
---------------------------------------------------------------------
---------------------------------------------------------------------
This is the "vrf" maillist, managed by Majordomo. To send messages to
this maillist, just email to "vrf@lvld.agilent.com". Subscriptions and
unsubscriptions are done through the address "vrf-request@lvld.agilent.com".
If you need details, just send a message containing the text "help"
to "vrf-request@lvld.agilent.com".
---------------------------------------------------------------------
We have also had problems using RS232 under Vee 5.01 and 6.01, exactly the
same kind of things you describe. We would be interested to see some code
examples of using Mscomm if you have some you can provide.
Thanks a lot.
Nick
-----Original Message-----
From: owner-vrf@lvld.agilent.com [mailto:owner-vrf@lvld.agilent.com]On
Behalf Of Barrie Walden
Sent: 13 February 2001 00:12
To: david_sherrill@Agilent.com
Cc: Agilent Reflector
Subject: Re: vrf serial i/o read formats
David,
In my opinion, despite substantial improvement in version 6.01, Vee
still does not handle RS232 in a reasonable manner. I believe you have
stumbled into one of the issues - Vee believes that a port time-out
indicates an error and any data which might have been received is junk
and therefore discards it. There are only two ways around this: 1)
specify a termination character and make sure the time-out value is high
enough to allow all of the expected string to arrive (the time-out timer
does not reset on each received character as I think it should) or 2)
use single character input and rebuild the string with an accumulator.
Under some conditions these solutions are inadequate - try reading
multiple data scans from an HP 34970A. I have pretty much given up on
Vee's serial I/O capability and now use MSComm ActiveX. This comes with
Visual basic, Visual C++, and probably other MicroSoft language
packages. GreenLeaf also makes a serial I/O ActiveX library but I had
problems when trying to use this with Vee 5.01 (Vee 6.01 may be better,
I haven't tried it yet).
While on the subject of Vee RS232 weaknesses, one of the things added
(fixed) in version 6 was the ability to specify port addresses and
parameters from within a program. Unfortunately, event driven I/O was
left out of this improvement. If you use a DAV to signal incoming data,
you need to know the port to watch when you write the program - this
makes portability a real issue.
If you're interested in trying MSComm, let me know and I will send some
code examples.
Barrie
whoi
---------------------------------------------------------------------
This is the "vrf" maillist, managed by Majordomo. To send messages to
this maillist, just email to "vrf@lvld.agilent.com". Subscriptions and
unsubscriptions are done through the address "vrf-request@lvld.agilent.com".
If you need details, just send a message containing the text "help"
to "vrf-request@lvld.agilent.com".
---------------------------------------------------------------------
---------------------------------------------------------------------
This is the "vrf" maillist, managed by Majordomo. To send messages to
this maillist, just email to "vrf@lvld.agilent.com". Subscriptions and
unsubscriptions are done through the address "vrf-request@lvld.agilent.com".
If you need details, just send a message containing the text "help"
to "vrf-request@lvld.agilent.com".
---------------------------------------------------------------------
For READ TEXT transactions, only the CHAR and BYTE formats seem to work.
For example, I can't read a series of numbers separated by spaces using the
TOKEN format. I must resort to reading one character at a time in a loop,
building the string with an accumulator, and breaking when a space is found.
Using the TOKEN format, I get a timeout error without transferring a single
byte (if the bus I/O monitor can be trusted to log data read by transactions
that fail).
Am I doing something wrong, or is TOKEN only compatible with To/From String,
File, etc. objects?
Page 502 of the "Advanced Programming Techniques" book mentions that "Read
to End" is not compatible with serial I/O. Other than that, I have not
found any mention of I/O options that are similarly restricted.
Thanks
...david
David Sherrill
Agilent Technologies
Healthcare Solutions Group
(soon to become a part of Philips Medical Systems)
---------------------------------------------------------------------
This is the "vrf" maillist, managed by Majordomo. To send messages to
this maillist, just email to "vrf@lvld.agilent.com". Subscriptions and
unsubscriptions are done through the address "vrf-request@lvld.agilent.com".
If you need details, just send a message containing the text "help"
to "vrf-request@lvld.agilent.com".
---------------------------------------------------------------------