Hume Datahub SDK Recent Changes
This document was last changed on $Date: 2008/12/08 15:05:29 $.
Changes are made to this document to inform the user
community of recent changes to the Datahub SDK toolset
software. This document does not contain most of the
detailed changes that are described in the changes document of the
previous SDK version.
SECS/GEM Software Changes
- Tracing of HSMS control messages has been enhanced to be similar
to data messages.
Also, the secsport and hsms Tcl commands have been revised so that
during creation of a connection they 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. (9/9/08).
- The Tcl/Tk user interfaces for the host and equipment
applications have been rewritten using the ttk widget set newly
available with Tk 8.5. There are many new features including
Conversations. The updated applications are installed under
directory gem2 so they can co-exist with the older versions. (8/14/08).
- The Tcl language 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 gem2/server where the
SecsServer.tcl application file is found. The startup logic of
the
SECS libraries has been modified to look for this new directory. 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).
- Support for large process program transfers using Stream 13 and
related Stream 7 messages has been added to both the host and
equipment libraries. (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 process program transfer occur. (4/4/08).
Host Side
- New methods have been added to the Java and .NET host libraries
to request variable values by name or identifier. (10/20/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).
- Two new properties were added to provide better control over the
event report deletion and enabling logic that executes during
initialization. (7/16/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).
- 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. (5/2/08).
- The Java SECS Host GUI needed some layout tweaks to work properly
with JDK 1.6. (3/28/08).
- Methods have been 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).
Equipment Side
- New variable definitions and a property have been added to
simplify complying with the requirements of SEMI Draft Standard #4557
for the Photovoltaic Industry. The new alarm event sharing
property simplifies having all alarm set and clear events share the
same generic data collection events. New variable items
AlarmCode, AlarmText, LocationID, and PPUsedName have been
added. The Java and .NET applications have been updated to
demonstrate use of the new alarm event sharing property, and setting
the TimeFormat per the PVECI draft Standard. (12/6/08).
- New methods have been added to the .NET and Java equipment
libraries to facilitate using variables and parameters by name in
addition to access by integer varID. (10/6/08). The .NET SecsPort
Dispose logic was also revised to fix an issue that interfered with an
unforced exit. (10/24/08).
- The boolean parameter EnableSpooling, specified by the latest
GEM
E30 standard, has been added as a means for the host to disable the
transition to the Spooling Active state. (10/3/08)
- Higher resolution time formats with timezone information are
supported with TimeFormat set to the value 2. A new parameter
TimeFormatMinutesWest provides for specification of the extended
format. (10/2/08).
- SECS-I features have been added to the C++ SecsEquip libraries
for Windows and POSIX. (9/16/08).
- The SECS equipment ControlState variable type has been changed to
U1 for better consistency with other state values. (8/11/08).
- 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 HTML documentation was improved by describing the built-in
SECS items in more detail in a separate document. (2/22/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 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 recently made to make the renumbering forgiving of sequencing and
certain data errors. (4/3/07).
- The C++ SecsEquip class is available for POSIX platforms such as
Linux in addition to
Windows Visual Studio 6.0 and current Visual Studio versions. (11/1/06).
Tcl/Tk Application and API Changes
- The dmh package library code was updated with internal changes to
support
debugging certain procedures by swapping in instrumented
versions. When testing this change, a memory leak with sending
messages was observed and fixed.
(11/5/08).
- The .NET DmhClient component library, HumeDMH.dll, is now
delivered as signed, strong name assemblies to facilitate
system installation and sharing. Signed strong name
versions of the SecsPort and SecsHost can be created by the customer as
needed. They are not delivered by Hume to avoid creating problems
for the customer building the example SECS applications.
(10/20/2008).
- The SecsServer application was updated so that any Tcl
application script can be specified on the command line for execution.
(9/12/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 Datahub UI has been revised to use the table display widget newly
available in Tk 8.5. There is a new Edit menu action to use an
existing table data row as the editing startpoint for a new row, and
there is a new Table menu action that shows example code to make a
table persistent. The persistence code uses the ::dmh::dp_atexit command which is
newly documented. (3/18/07).
- The ability to clear mailbox counts has been added to the mbx Tcl
command. (3/6/08).
- 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 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).
Tcl/Tk 8.5 Compatibility Changes
- The current release of the Hume Datahub SDK includes Tcl/Tk
applications that
are based on Tcl & Tk patch levels 8.5.2. From a
compatibility
point of view, Tcl 8.5 differences from Tcl 8.4 are minor and present
few problems (more
details).
- The Tcl 8.5 distribution is not compatible with the open source
tbcload package. The Hume Data Collection Component (DCC) command
dc_encode which is used to obscure passwords is now a compiled dmh
package command and the DCC no longer requires tbcload.
With this change, the dmh package version has been changed to 1.3 from
1.2.
- Since Tcl version 8.4, the Hume dmh package Tcl extension has
been revised to use
the ::dmh namespace to prevent name conflicts such as occurred
with the Tcl 8.4 lset command.
Read more about the new Tcl 8.4 namespace and compatibility issues in
the dmh_import
document. The Hume provided Tcl commands dmh_import, dmh_var,
and vset were added to the 8.3 (DMH83)
distribution and newer Tcl/Tk distributions to support
deploying software that is compatible with Tcl 8.3 and newer.
- The Datahub SDK Tcl/Tk 8.5 distribution includes updated versions
of
the optional packages [incr Tcl], [incr Tk], and Iwidgets.
You need to use the versions that are matched to your version of
Tcl/Tk. Hume provides a modified index file for these packages so
that the correct version is chosen when multiple versions are
installed.
New with Tcl/Tk 8.5
Hume Changes to the 8.5 Tcl/Tk SourceForge Distribution
- Hume has diagnosed and fixed a problem with executing wish -help
(Sourceforge bug report 1938580). (4/9/2008)
- 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.
- The windows 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 Windows 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 so that the send command and
winfo interps work using the Hume DDE command.
- 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. Users should migrate to the new Tk 8.5 command
tk
inactive for this purpose - winfo timelastevent will not be patched
into the next version.
- Hume compiles the Tcl DLL on Windows so that 256 socket
connections
are possible. The default compilation results in a limit of 64.
- The windows tclWinPipe.c file is patched so that built in
shell
commands
like "type" work without the user specifying cmd.exe /c. Also, windows
batch
files with the extension .cmd are made executable. Hume has
also revised handling of windows 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 has revised the encoding
man page which had erroneous information regarding Tcl's internal
string
representation.