Hume Datahub SDK Recent Changes
This document was last changed on $Date: 2008/11/05 16:34:35 $.
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
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
with the Tcl 8.4 lset command. The
package lset command has been renamed vset.
Read more about the new Tcl 8.4 namespace and compatibility issues in
document. Most Tcl/Tk applications will need to call dmh_import
change usage of lset to vset in order to use the new
The new Tcl commands dmh_import,
and vset have been added to both the
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
- The current Datahub Tcl/Tk distribution includes updated versions
[incr Tcl] (3.3 vs
3.2) [incr Tk] (3.3 vs 3.2), and Iwidgets (4.0 vs 3.0). We suggest
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.
Recent Hume Changes and Improvements
- The dmh package library code was updated with internal changes to
debugging certain procedures by swapping in instrumented versions.
- 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.
- 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.
- A minor change was made in the SECS Server logic of handling
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.
- 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
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
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
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
- 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
- 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).
the HTML documents for
Tcl commands were revised for better rendering by the konqueror
- 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
better error return code information. Changes were made in the Java
so that trace reports are automatically configured to be received as
reports when the traceSetup method is used. Also, the handling of event
has been revised to present them to the host application even when a
has not been created. On the equipment side, diagnostic
trace messages have been added to explain S9F7 replies to the S2F23
message. Also, new methods were added to the Java and .NET SecsHost
for better access to variable information. (5/31/06) and (6/30/06).
- Handling of SECS variable values larger than 20kb by the host
was revised to prevent an error after saving and restarting when the
is smaller. Also, the threshold for oversize data items was
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,
VB SecsEquip, and VC SecsEquip libraries were simplified by giving
a varID range of 1000 - 2999, and variables a separate range of 3000 -
9999. (3/9/06). New properties and methods have been introduced
provide control over persistent saving of parameters (Equipment
- The Tcl/Tk GEM host and equipment regression test files were
accommodate recent changes in the gemsim and gemhost applications.
the host initialization logic has more checks for communication being
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
interface trace window was updated for changes from the recently added
trace logging feature, including changes in the Tcl SECS software to
the newer variable trace syntax. The Tcl SECS host and equipment
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
configuration of the startup properties. The Tcl/Tk host application
also been updated to make it easier to close and re-open the GUI and
windows or to disable communication. The underlying Tcl hsms and
commands have been enhanced with new support for unattended logging of
trace data, and this new feature has been integrated into the
of startup properties. Also, the HSMS logic has a new feature for
imposing a maximum message size which prevents excess memory use when
with buggy software. New (2/27/06) with some revisions on (6/15/06).
- A new Java class library for deploying equipment SECS interfaces
to the Datahub SDK. See the Java
SecsEquip document. The Java
SecsHost class library was added to the Datahub SDK in June 2005.
libraries and applications were recently revised to include trace
- A new feature has been added to the SECS software to allow users
and work with improper SECS-II data. (10/17/2005).
- The Datahub SDK Tcl/Tk sources have been updated to the latest
8.4.11. Small changes have been made to the installation program,
documentation, and startup initialization. The Windows Start Menu
group has been renamed. (7/26/2005).
- The Datahub SDK has been ported to the 64-bit PA RISC version of
and Oracle 10g. (7/21/2005).
- The Tcl comm command was improved so that arbitrary 8 bit
data can be handled using the string oriented subcommands. Recent
of Tcl are able to represent binary data in string values using UTF-8
- The SEMI E5 standard has an incorrect message structure for
equipment exists where the incorrect structure is implemented. A fix
been added to the receiving logic to add an L:2 wrapper if the
format with two adjacent data items is received. (4/19/05).
- The .NET SecsPort and the other SECS libraries support using the
program for a simpler runtime deployment. (4/6/05) The .NET
the .NET SecsHost, and the VB SecsEquip components now feature Trace
- New methods to support Equipment initiated Process Program
added to the SECS equipment software. New code was also added to the
Host applications to respond to the equipment initiated
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
clock_offset value are now passed to the SECS libraries in the
- SECS equipment handling of S5F3 was revised to accommodate using
ALID vector to indicate all alarm types. (8/10/05)
- Minor changes to some font declarations were made for Solaris 10
SUSE 9.2 Linux. Also namespace dmh export logic was revised to fix
when using -notk. (4/5/05)
- Fixed a bug with the GEM Host creation of the recipe upload
Windows when the GNU file utilities are not installed. The GEM
recipe directory was also made configurable when using the supervisor.
- The Java DMH client library was updated for JDK 1.5 with the type
of Generics. (2/1/05) A new static split method and more lappend
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
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
have the desirable features of the new .NET SecsPort
component, and are intended for Equipment Manufacturers who prefer to
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
to enable the Host to discover DVVAL variables. This addition
a gap in the SECS/GEM standards. Other variables PPError,
RcpChangeName, and RcpChangeStatus have been added to update for the
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
.NET components provide all the usual GEM/SECS capabilities in native
- Minor changes have been made to the Tcl GEM Equipment application
integrate recipe management and spooling with the new .NET
Similarly, minor changes have been made to the GEM Host application for
better integration with the new .NET component. Also, the
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
The format of received message tracing was tweaked to show an R if a
was requested. Handling of the gemsim ControlMode variable was
The maximum length of SECS variable names was increased to 256
from 32. (11/8/04).
- Improvements were made to the HSMS logic and the GEM applications
setting up or recovering a connection. The active client setup
revised to be asynchronous which improves responsiveness when the
side is down. The default TRACE values were changed to include
and connection information. (9/24/04) The reconnection logic was
to prevent multiple retrying loops (2/1/05). When a passive server sees
additional connection attempts, a linktest is done with the existing
to hasten discovery of a broken connection. (5/17/05, 9/30/05).
- New DMH Client
is available for the Windows .NET Framework. (8/13/04).
- A change in the DMH logic was made to favor receiving reply
the mbx_do_xact, mbx_timed_get, and mbx_xact_pat
in the situation when messages are being sent to mailboxes read by a
DMH client at a rate faster than they are being received and processed.
- The DMH POSIX C library was updated to include new API calls for
and receiving binary messages in March 2004. The receiving logic has
revised to favor receiving reply or timed receive messages when both
asynchronous and reply messages are available. (1/21/05).
- The inspect interactive
tool was replaced with a new version written by Hume Integration.
The new inspect supports new features of Tcl/Tk such as
child interpreters, channels, packages, and working with [incr Tcl]
and objects. (2/4/2004)
- The conversion of Tcl data strings to and from SECS ASCII data
UTF-8 aware so that null characters embedded in ASCII data can be
- The Windows dmh84.exe (dmh_wish.exe) icon was updated from the
halo to the integrated H. Version information was added to the
- Windows icons and resources have been tweaked for Windows Vista
2). Also, some non-standard HTML tag placements have been corrected.
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
which affected ordering keystroke entry on Windows, when using entry
with modal windows, and having done a mouse drag selection of text in
entry widget, and releasing the mouse button to the left of the entry
This bug and fix have been reported using SourceForge. (12/11/01)
- The command memory_stats
and compiled by default for Windows NT.
- The NT console menu has a new item to display errorInfo,
item to display the HTML documentation. Bindings are added for Motif
cut-and-paste and NT style right button paste. These changes are
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
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
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
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
Executing winfo timelastevent . returns a value that changes
each new window event at your display. This value will be unchanged
time when there has been no user interaction with the window interface.
An application can poll this value using after, and determine if the
has been inactive.
- Hume compiles the Tcl DLL on windows NT so that 256 socket
are possible. The default compilation results in a limit of 64.
- The NT tclWinPipe.c file is patched so that built in
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
also revised handling of NT interactive shell commands in the Tcl
init.tcl file to allow mixed case commands.
- Hume converts the Tcl/Tk man pages to HTML, adds new pages, and
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