Hume Datahub SDK Recent Changes
This document was last changed on $Date: 2008/08/21 15:10:12 $.
As new changes are added to this document, the older changes are
deleted so that the document size remains manageable.
Compatibility Issues with Tcl/Tk version 8.4
- The DMH84 release of the Hume Datahub SDK includes Tcl/Tk
applications that
are based on Tcl patch level 8.4.18 and Tk patchlevel 8.4.18.
There is also the DMH85 version of the Hume Datahub SDK available that
features improved Tcl/Tk SECS/GEM applications.
- With Tcl version 8.4, the Hume dmh package Tcl extension has been
revised to use
the ::dmh namespace to prevent future name conflicts such as
occurred
with the Tcl 8.4 lset command. The
Hume
package lset command has been renamed vset.
Read more about the new Tcl 8.4 namespace and compatibility issues in
the dmh_import
document. Most Tcl/Tk applications will need to call dmh_import
and
change usage of lset to vset in order to use the new
version.
The new Tcl commands dmh_import,
dmh_var,
and vset have been added to both the
8.3 (DMH83)
and the 8.4 (DMH84) Tcl/Tk distributions and to the GEM Tcl/Tk
applications to support
deploying software that is compatible with both Tcl 8.3 and Tcl
8.4+.
(10/1/2002).
- The current Datahub Tcl/Tk distribution includes updated versions
of
[incr Tcl] (3.3 vs
3.2) [incr Tk] (3.3 vs 3.2), and Iwidgets (4.0 vs 3.0). We suggest
continuing
to use the older versions with DMH83, and just using the newer versions
with Tcl/Tk 8.4, as testing has revealed some compatibility issues.
(10/1/2002).
Recent Hume Changes and Improvements
- The Tcl/Tk Host Supervisor application has had minor
improvements. The VFEI reconnect action has been removed from the
supervisor window, and the startup configuration dialog has a new
option for spooling initialization. The table save logic takes
into account loaded data and the existence of saved files for the
messages and choices offered to the user. The underlying hsms and
secsport Tcl commands have been updated so that during creation of a
connection, they will no longer overwrite array elements used for
configuration with default values. With this change, Tcl/Tk
applications are able to configure connection
data elements such as timer values before the interface is created.
(8/20/08).
- The Tcl langauge support files used for the .NET, Java, VB, VC,
and similar SECS libraries have been integrated into the Datahub SDK
gem directories. The creation of several SQL tables was changed
so that fields used by both host and equipment roles are always
created. There is a new directory gem/server where the
SecsServer.tcl application file is found. The startup logic of
the SECS libraries has been modified. Tcl/Tk applications can now
use any of procedures that have been developed to support these other
language platforms. The directory layout is simpler since all of
the Tcl SECS/GEM source code is consolidated under the gem directory.
(8/11/08).
- A minor change was made in the SECS Server logic of handling
event
reports to allow for the possibility of receiving a report that has
been configured prior to completing the initialization that sets up
event reporting. (8/11/08).
- The SECS equipment ControlState variable type has been changed to
U1 for better consistency with other state values. (8/11/08).
- Two new properties were added to the SECS Host libraries to
provide better control over the event
report deletion and enabling logic that executes during initialization.
(7/16/08).
- Performance of the Windows console logic was greatly improved
by modifying the line trimming logic and introducing a "fast mode"
where long output lines are optionally shortened. (7/15/08).
- The .NET and Java Host Supervisor applications were revised to
help
prevent overwriting previously saved session data with empty table
data, along with a few other minor improvements. (6/15/08).
- Support for large process program transfers using Stream 13 and
related Stream 7 messages has been added to both the SECS host and
equipment libraries. On the host side, process program uploads
have been revised with the addition of
Stream 13 support. For new uploads, only the data of the
recipe is saved in the file whether ordinary Stream 7 message types or
Stream 13 message types were used for the transfer. A new
table, ei_ppid, is used to save and restore the mapping of process
program identifiers to filenames. The normal Stream 7 transfer
software assumes the older upload format for a process program file
only when there is no saved description information. The new
Stream 13 large data set transfer logic always assumes the new format;
that uploaded files contain only process program data. On the
equipment side, The addition of Stream 13 data set transfer support
added 3 new
event types, 4 new variables, and a boolean property to
disable the new features. Also, there are new StateChange events
to notify your application of data set transfer activity and more
generally the
posting of event reports by the SECS server. The use of
Stream 13 defaults to being disabled so that an existing equipment
interface application can use the latest libraries and latest SECS
server without needing
application changes. (5/2/08).
- The property TracewinMaxWidth has been added to all host and
equipment
libraries to guard against excessive memory use when the trace windows
are displaying connection activity and very large data messages such as
recipe transfer occur. (4/4/08).
- The Java SECS Host GUI needed some layout tweaks to work properly
with JDK 1.6. (3/28/08).
- The ability to clear mailbox counts has been added to the mbx Tcl
command. (3/6/08).
- Methods were added to the Java and .NET SecsHost libraries to
simplify configuration of alarms, events, parameters, and variables for
equipment that does not support discovery. (2/15/08).
- The standard GEM spooling state model has required the host to
send S6F23 to purge or unload the spool in order to deactivate
spooling. As a concession to non-spooling aware hosts, if
spooling is active but no messages are spooled, and no message types
are configured for spooling, then spooling is automatically deactivated
when the online control state is entered. (4/3/07).
- The Tcl SECS Server equipment logic has been revised to allow
customization of the CEID values used for built-in event reports, and
the varID values used for built-in data items. The Java, VB, VC++, C++,
and .NET SECS equipment APIs have been updated with these
features. A revision was made to make the renumbering forgiving
of sequencing and certain data errors. (4/3/07).
- The Datahub SDK installation script needed changes for Windows
Vista. Ordinary user access is no longer possible under the
Program Files directory because of security changes. Installation
is forced elsewhere so that customization, saving, and directory
searching work as expected. (1/25/07).
- The handling of MouseWheel events by Tk 8.4 on Windows has been
improved using revised bindings similar to TIP
171. If these changes are not desired, they can be suppressed by
defining the environment variable NO_MOUSEWHEELFIX before loading the
dmh package. (1/10/07).
- The logic for handling LIKE expressions in the Datahub SQL
command was revised to
allow preceding SQL wildcard characters % and _ with a
backslash character \
to have them be interpreted as ordinary characters. (1/9/07).
- Handling of ASCII ECV values by the SECS equipment logic was
improved to allow for imbedded single quotes and to avoid using
surrounding braces or escape
sequences. (12/1/06).
- The C++ SecsEquip class is now available for POSIX platforms such
as Linux in addition to
Windows Visual Studio 6.0 and current Visual Studio versions. (11/1/06).
- The Tcl secsport command was revised to support receiving any
number of interleaved multi-block SECS-I messages. (9/12/06).
- The Datahub SDK has been ported to 64bit Linux (x86_64).
Many of
the HTML documents for
Tcl commands were revised for better rendering by the konqueror
browser. (7/31/06).
- The SECS host logic was revised to provide a more accurate
process program byte length when S7F1 is used. (7/11/06).
- The 3.3 [incr Tcl/Tk] extensions were updated from the latest
Sourceforge files. (6/15/06).
- The SECS host setup logic for S6F1 trace reports was revised to
provide
better error return code information. Changes were made in the Java
SecsHost
so that trace reports are automatically configured to be received as
event
reports when the traceSetup method is used. Also, the handling of event
reports
has been revised to present them to the host application even when a
report
has not been created. On the equipment side, diagnostic
trace messages have been added to explain S9F7 replies to the S2F23
setup
message. Also, new methods were added to the Java and .NET SecsHost
libraries
for better access to variable information. (5/31/06) and (6/30/06).
- Handling of SECS variable values larger than 20kb by the host
software
was revised to prevent an error after saving and restarting when the
value
is smaller. Also, the threshold for oversize data items was
expanded
to 60kb by enlarging the variable table varvalue field size. The
variable initialization logic was revised to reduce the amount of data
asked for in the S1F3R query.(4/4/06).
- The variable and parameter add methods in the Java SecsEquip,
.NET
SecsPort,
VB SecsEquip, and VC SecsEquip libraries were simplified by giving
parameters
a varID range of 1000 - 2999, and variables a separate range of 3000 -
9999. (3/9/06). New properties and methods have been introduced
to
provide control over persistent saving of parameters (Equipment
Constant
Variables). (6/6/06).
- The Tcl/Tk GEM host and equipment regression test files were
revised to
accommodate recent changes in the gemsim and gemhost applications.
Also,
the host initialization logic has more checks for communication being
disabled or
the connection being deleted during initialization as might be done in
regression tests.(3/7/06) and (7/20/06).
- The SECS ei_client application which provides for remote viewing
of a
SECS
interface trace window was updated for changes from the recently added
trace logging feature, including changes in the Tcl SECS software to
use
the newer variable trace syntax. The Tcl SECS host and equipment
communication
disable procedures were revised to preserve variable traces created by
the ei_client. (3/2/06).
- The Tcl/Tk GEM equipment simulator application was enhanced with
persistent
configuration of the startup properties. The Tcl/Tk host application
has
also been updated to make it easier to close and re-open the GUI and
trace
windows or to disable communication. The underlying Tcl hsms and
secsport
commands have been enhanced with new support for unattended logging of
trace data, and this new feature has been integrated into the
configuration
of startup properties. Also, the HSMS logic has a new feature for
imposing a maximum message size which prevents excess memory use when
communicating
with buggy software. New (2/27/06) with some revisions on (6/15/06).
- A new Java class library for deploying equipment SECS interfaces
was
added
to the Datahub SDK. See the Java
SecsEquip document. The Java
SecsHost class library was added to the Datahub SDK in June 2005.
These
libraries and applications were recently revised to include trace
logging
features. (2/27/06).
- A new feature has been added to the SECS software to allow users
to
receive
and work with improper SECS-II data. (10/17/2005).
- The Datahub SDK Tcl/Tk sources have been updated to the latest
patch
release,
8.4.11. Small changes have been made to the installation program,
documentation, and startup initialization. The Windows Start Menu
program
group has been renamed. (7/26/2005).
- The Datahub SDK has been ported to the 64-bit PA RISC version of
HP-UX
and Oracle 10g. (7/21/2005).
- The Tcl comm command was improved so that arbitrary 8 bit
binary
data can be handled using the string oriented subcommands. Recent
versions
of Tcl are able to represent binary data in string values using UTF-8
encoding.
(5/18/05).
- The SEMI E5 standard has an incorrect message structure for
S13F2, and
equipment exists where the incorrect structure is implemented. A fix
has
been added to the receiving logic to add an L:2 wrapper if the
incorrect
format with two adjacent data items is received. (4/19/05).
- The .NET SecsPort and the other SECS libraries support using the
new
SecsServer.exe
program for a simpler runtime deployment. (4/6/05) The .NET
SecsPort,
the .NET SecsHost, and the VB SecsEquip components now feature Trace
data
logging. (3/1/06).
- New methods to support Equipment initiated Process Program
transfers
were
added to the SECS equipment software. New code was also added to the
SECS
Host applications to respond to the equipment initiated
transfers.
Also a new version of SendSecsMsg() was added to the .NET, VC++, and VB
SECS libraries to provide parsed result data. Changes to the SECS
equipment
clock_offset value are now passed to the SECS libraries in the
StateChange
event. (4/6/05)
- SECS equipment handling of S5F3 was revised to accommodate using
an
empty
ALID vector to indicate all alarm types. (8/10/05)
- Minor changes to some font declarations were made for Solaris 10
x86
and
SUSE 9.2 Linux. Also namespace dmh export logic was revised to fix
errors
when using -notk. (4/5/05)
- Fixed a bug with the GEM Host creation of the recipe upload
directory
on
Windows when the GNU file utilities are not installed. The GEM
Host
recipe directory was also made configurable when using the supervisor.
(2/24/05, 9/28/04).
- The Java DMH client library was updated for JDK 1.5 with the type
safety
of Generics. (2/1/05) A new static split method and more lappend
methods
were added to the TclList class. (5/27/05). The library receiving
logic was revised to fix a bug involving the disarm command. (6/6/06).
- The 4.0 Iwidgets dateentry class constructor was fixed to not
explicitly
call the base class constructor. (1/25/05).
- A New Visual C++ library SecsEquip
and a new Visual Basic Active-X control SecsEquip.ocx
have been created for deploying SECS Equipment interfaces. These
products
have the desirable features of the new .NET SecsPort
component, and are intended for Equipment Manufacturers who prefer to
use
Visual C++ or Visual Basic 6.0. (1/18/05) These libraries were recently
updated to include the new trace logging features. (3/9/06).
- A new Status Variable DvvalList has been added to the GEM
Equipment
application
to enable the Host to discover DVVAL variables. This addition
fills
a gap in the SECS/GEM standards. Other variables PPError,
PPFormat,
RcpChangeName, and RcpChangeStatus have been added to update for the
latest
E30 version. (11/19/04).
- New Windows .NET software for deploying Equipment
SECS interfaces and for deploying Host
SECS interfaces has been added to the Hume Datahub SDK. The
new
.NET components provide all the usual GEM/SECS capabilities in native
.NET
APIs.(10/18/04)
- Minor changes have been made to the Tcl GEM Equipment application
to
better
integrate recipe management and spooling with the new .NET
software.
Similarly, minor changes have been made to the GEM Host application for
better integration with the new .NET component. Also, the
handling
of ASCII recipe data by the GEM host software has been revised to treat
it as binary, in order to avoid changes from code page or newline
translation.
The format of received message tracing was tweaked to show an R if a
reply
was requested. Handling of the gemsim ControlMode variable was
revised.
The maximum length of SECS variable names was increased to 256
characters
from 32. (11/8/04).
- Improvements were made to the HSMS logic and the GEM applications
when
setting up or recovering a connection. The active client setup
was
revised to be asynchronous which improves responsiveness when the
passive
side is down. The default TRACE values were changed to include
state
and connection information. (9/24/04) The reconnection logic was
improved
to prevent multiple retrying loops (2/1/05). When a passive server sees
additional connection attempts, a linktest is done with the existing
connection
to hasten discovery of a broken connection. (5/17/05, 9/30/05).
- New DMH Client
software
is available for the Windows .NET Framework. (8/13/04).
- A change in the DMH logic was made to favor receiving reply
messages to
the mbx_do_xact, mbx_timed_get, and mbx_xact_pat
commands
in the situation when messages are being sent to mailboxes read by a
Tcl
DMH client at a rate faster than they are being received and processed.
(6/23/04).
- The DMH POSIX C library was updated to include new API calls for
sending
and receiving binary messages in March 2004. The receiving logic has
been
revised to favor receiving reply or timed receive messages when both
new
asynchronous and reply messages are available. (1/21/05).
- The inspect interactive
development
tool was replaced with a new version written by Hume Integration.
The new inspect supports new features of Tcl/Tk such as
namespaces,
child interpreters, channels, packages, and working with [incr Tcl]
classes
and objects. (2/4/2004)
- The conversion of Tcl data strings to and from SECS ASCII data
was made
UTF-8 aware so that null characters embedded in ASCII data can be
handled.
(1/28/04)
- The Windows dmh84.exe (dmh_wish.exe) icon was updated from the
network
halo to the integrated H. Version information was added to the
dmh84.dll
file.(1/25/05)
- Windows icons and resources have been tweaked for Windows Vista
(Beta
2). Also, some non-standard HTML tag placements have been corrected.
(6/28/06)
New with Tcl/Tk 8.4
Hume Changes to the 8.4 Tcl/Tk Core Distribution
- Hume has fixed a problem in the Tk library tk::EntryAutoScan
procedure
which affected ordering keystroke entry on Windows, when using entry
widgets
with modal windows, and having done a mouse drag selection of text in
the
entry widget, and releasing the mouse button to the left of the entry
widget.
This bug and fix have been reported using SourceForge. (12/11/01)
- The command memory_stats
is
added,
and compiled by default for Windows NT.
- The NT console menu has a new item to display errorInfo,
and a
new
item to display the HTML documentation. Bindings are added for Motif
style
cut-and-paste and NT style right button paste. These changes are
actually
done at runtime without changing the core code. The changes that
Hume has made in the past to make the console safe for memory use are
no
longer needed - the core has similar logic. However, Hume has
revised the console trimming logic for better performance, and has
added a "fast mode" which optionally shortens long output lines.
- The Tk C code is patched for Windows NT so that the send command
and winfo
interps work using DDE.
- The Tcl library is patched so that index files of the name tclindex.txt
are used if tclIndex is not found. This enables Tcl to execute
from
an ISO 9660 CDROM image where tclIndex is not a valid filename.
- The Tk C code is patched to create an option to the winfo
command,
timelastevent.
Executing winfo timelastevent . returns a value that changes
with
each new window event at your display. This value will be unchanged
over
time when there has been no user interaction with the window interface.
An application can poll this value using after, and determine if the
user
has been inactive.
- Hume compiles the Tcl DLL on windows NT so that 256 socket
connections
are possible. The default compilation results in a limit of 64.
- The NT tclWinPipe.c file is patched so that built in
shell
commands
like "type" work without the user specifying cmd.exe /c. Also, NT batch
files with the extension .cmd are made executable. Hume has fixed
an 8.4 revision to the preparation of exec command line arguments on NT
that interferes with passing arguments containing braces. Hume
has
also revised handling of NT interactive shell commands in the Tcl
library
init.tcl file to allow mixed case commands.
- Hume converts the Tcl/Tk man pages to HTML, adds new pages, and
provides
custom indexes. Hume removes multiple, strange occurrences of "the the"
from the man pages. Hume has revised the encoding
man page which had erroneous information regarding Tcl's internal
string
representation.