Hume Datahub SDK Recent Changes
This document was last changed on $Date: 2010/07/25 14:30:46 $.
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
- Java libaries now include jar files and javadoc in-context API
documentation. New classes StringList and ListBuilder have been
added for list parsing and list construction. The libraries are no
longer compatible with pre JDK 1.6 versions. (7/25/10).
- The SECS-I communication trace window now includes the block send
retry count when the display of the Header Interpretation is selected.
(7/8/10).
- An integer conversion issue was fixed for the .NET libraries
which affected custom message handlers when the 4 byte SECS header
system value was a negative 32bit value. (6/15/10).
- A Tcl library procedure, secs_DMH_reply, was enhanced to provide
for a client data argument and background error trapping. This
procedure is a higher
performance alternative for implementing SECS message conversations
using the SECS server for the developer who is willing to deploy
asynchronous conversation logic. (5/31/10).
- A minor change was made to better coordinate disabling of SECS
communication during a modal send-and-reply. Second,
conversions of hex values in the Secs Server have been made tolerant of
improper formats
by using a new procedure ei_hexvalue. Also, a
synchronization bug was fixed in the static Java TclList methods.
(4/29/10).
- Linux x86 versions of the SDK and SecsServer have been updated to
use newer runtime libraries and to be compatible with the latest
X-windows. (3/21/10).
- The Tcl hsms command was updated to support a non-standard 1994
protocol version that uses two length bytes. (10/08/09).
- The SecsServer program was
enhanced so that it can generate temporary licenses using the
-setup.tcl option. (6/28/09).
- Both the .NET SecsPort and .NET SecsHost components were revised
to simplify usage - events are executed by the same thread used to
construct connections, and only events are needed to receive
asynchronous inputs. With these changes, the SecsPort can be
directly imbedded in a LabView application, and the application does
not need to deal with thread synchronization issues. We think you
will agree that these changes are worth breaking compatibility with
earlier versions. (6/24/08).
- The alarm text (ALTX) length limit was raised to 120 from 40 per
the recent change in SEMI standard E5. (3/17/09).
- 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).
Host Side
- Subscription logic of the Tcl Host user interface was tweaked to
allow for other interfaces running without windows in the same process.
(6/29/10).
- An array version of VariableQuery() was added to the .NET
SecsHost for more efficient querying of sets of variables. (4/8/10).
- The handling of property CEID_OFFLINE by the .NET and Java
libraries has been improved so that a restart is not needed to use a
changed value. (3/22/10).
- A property was added to the .NET SecsHost to disable the use of
UserControl instances and calls to Application.DoEvents. This
feature enables using the SecsHost component in a Windows Service
application using the Windows Communication Foundation (WCF). (1/27/10).
- Initialization was revised to discover ECV parameters before
Status variables. This avoids problems with equipment that
reports ECV items as being both ECVs and Status Variables. A
related change is that the host logic allows ECVs to be included in
event reports if the array element report_ecvs
is defined and set to 1. (12/18/09).
- The .NET SecsHost component was revised to allow not dispatching
events to the thread that constructed the instance. (12/15/09).
- A new property, ReportsUnlink, has been added to the .NET host
library to accommodate certain equipment that requires S2F35 to be sent
twice during event report setup. A corresponding field was added
to the startup table. (1/30/09)
- 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).
- 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).
Equipment Side
- The S2F31R time set command has been updated to allow the host to
use UTC TimeFormat 2 values with one or more fraction decimal
places. However, we continue to recommend
that clock synchronization should be done using NTP at the system
level, and the SECS clock set commands should not be used. (6/11/10).
- Command mailbox usage for the .NET and Java libraries has been
revised to preserve the sequence of data changes mixed with rapid event
posting. The .NET application now includes a demonstration test
case for this scenario. (4/4/10).
- The ERACK value in the S2F38 reply message has been updated to
send the value 1 instead of 2 for unknown CEIDs, and similarly the
TIACK error code for the S2F32 message was revised to send the value 1
if the time offset could not be set. (4/8/10).
- A minor problem with using non-numeric text values for the
built-in variable LocationID was fixed. (3/4/10).
- The .NET SecsPort component was enhanced to include methods for
integrating OPC device data as SECS interface items. (12/12/09).
- The handling of the ECV UseMultiBlockInquire was tweaked to avoid
and prevent errors from incorrectly saved values. (7/20/09).
- A minor change was made so that multiple reports in an event
report are sent in numeric ascending order. (7/16/09).
- We are introducing the variable class PPV, Process Parameter
Variables, for the subset of ECV Parameter items that affect
processing. The equipment logic rejects an S2F16 request to set a
PPV value with the return code value of 2 unless the control state is
remote. Methods used to add Parameters have been revised to
permit specifying whether the ECV affects processing.
Documentation has been revised to refer to ECV items as Equipment
Configuration Variables and not the misnomer Equipment Constant
Variables. Pursuant to this change, the Event Name
OperatorEquipmentConstantChange has been renamed OperatorECVChange.
(5/26/09).
- 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).
OPC Software
- We are pleased to inform you that support for OPC has been added
to the
Datahub SDK version for Windows. There is a new Tcl command ::opc::opc and a new high-level
application, the OPC Supervisor.
There are also example procedures for the OEM to easily deploy an
equipment SECS interface with a controller system that uses OPC
connected devices. (5/27/09).
Tcl/Tk Application and API Changes
- Hume Datahub SDK applications have been revised to use the
built-in font TkFixedFont instead of creating the font fixed. (4/4/10).
- The .NET DmhClient component library, HumeDMH.dll, had a bug with
parsing a version string as a floating point value in locales where a
period is not used for the decimal point. (6/5/2009).
- The SQL subscription OPEN
command has been enhanced with a new option ARGDATA which provides for
passing user specified data to a subscription procedure.
(5/26/09).
- Several Tcl commands have been newly added to the dmh package
including hash5, hub_insert, hub_safe_sub, mbx_when_reply, and mbx_xact. (5/12/09).
- The Windows console Exit menu item was changed to call exit in
the main interpretor so that ::dmh::dp_atexit is not bypassed.
(4/26/09).
- 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.