Fix missing initialization of inTerminator
and outTerminator
.
Thanks to Krisztián Löki.
New checksums %<lrc>
and %<hexlrc>
.
Thanks to Marcio Paduan Donadio.
Make timestamp output in error and debug messages optional with new
iocsh variable streamMsgTimeStamped
. Default is 1.
Reduce number of duplicate error messages. Dead time for repeated messages
is configurable with new iocsh variable streamErrorDeadTime
.
Thanks to Dominic Oram.
Shifted some noisy debug messages to streamDebug
level 2.
In STREAM_PROTOCOL_PATH
, allow both :
and ;
separators on all
operating systems to make startup scripts OS independent.
On Windows however, an initial single letter followed by a :
is detected
as a drive letter. Thus single letter directories must be separated with
;
or followed by \
or /
on Windows.
Allow absolute path protocol files. Those will not use
STREAM_PROTOCOL_PATH
.
Changed the default search path from "."
to NULL
.
Only poll for I/O Intr
records while interruptAccept
is true,
in particular not between iocPause
and iocRun
.
Added this change log and a document about contributing to StreamDevice.
Make colorization of error and debug messages optional with new
iocsh variable streamDebugColored
. Defaults to 1 when output is a tty
and 0 otherwise.
Another format string fix for VxWorks in checksum converter.
Fix format strings for VxWorks 6.9 in checksum converter.
Fix some compiler warnings on Windows.
Fix some missing header files installations.
Drop support of upper level configure/
directory for improved
compatibility with SynApps.
Fix problem with extra spaces after protocol name in record links.
Make version string generation more robust.
Do not overwrite HOST_OPT
flag.
Fix version string generation for zip downloads.
On Windows use ;
and \
in STREAM_PROTOCOL_PATH
.
(Was not the case before due to typo in macro name.)
Link streamApp with seq
and pv
libraries when SNCSEQ
is defined in
RELEASE file.
Fix version string generation from git tags.
Fix bug with integer datatype handling in redirectons.
Apply GPL-3.0.
Fix buffer overrun. Thanks to Garth Brown and Bruce Hill.
Fix bug in 64 bit data type handling in array records (aai
, aao
,
waveform
).
Thanks to Andrew Johnson.
Fix Windows linker problem. Thanks to Freddie Akeroyd.
Allow (,)
inside protocol parameters. Limitation: Parenthesis must be in
matching pairs. Commas within inner parenthesis are consideres part of the
argument. Example: protocol(arg1, (arg2, still arg 2), arg3)
.
New checksums %<brksCryo>
, %<xor8ff>
, %<nsum8>
, %<nsum16>
,
%<nsum32>
, %<notsum>
.
Thanks to Mark Davis.
Some error message cleanup.
Fixes for Windows / Visual Studio 2010. Thanks to Freddie Akeroyd.
Fix infinite loop in I/O Intr
scanned records.
Enable error messages by default and always show error messages too when debug messages are enabled.
Make sure any console output from StreamDevice can be redirected.
Fix some problems when building for old EPICS R3.13.
Leave asynTraceMask
alone. Before, streamDevice had set setTraceMask
to 0 initially.
Link with sscan
module if SSCAN
is defined in RELEASE file because the
calc
module may need it.
Fix in regsub converter: Avoid infinite loop if an empty string is matched. Add support for toupper/tolower to regsub converter.
Fix build problem observed on MacOS related to clash between wait()
system function and the StreamDevice wait
command.
Allow %%
in addition to \%
to escape %
in protocols (compatibility
with printf
/scanf
).
Have separate dbd file for applications without scalcout support built in.
Improved compatibility with SynApps. (fix of the attempt in 2.8.6)
Fix problem with in
command hanging forever if it is the the first
command of the protocol and the device is offline.
Enable colored error/debug output on Windows.
Changed error/debug hex output highlight from fat to inverse.
Fix build problem on Windows.
Improved compatibility with SynApps.
Fix redirection to records with names not starting with a letter or underscore.
Use .MASK
and .SHFT
fields even if no xxVL
field is defined
(and thus .VAL
is used instead of .RVAL
).
Bugfix: Set mbbo
to unknown state 0xffff
if in readback no state
matches.
Bugfix: Use defined state alarms when mbbo
is updated by @init
handler.
A "\?"
at the end of an input format now matches an empty string.
Used to do so unintendedly in earlier versions but had been changed.
Bugfix: After @init
had been triggered with "magic value" 2 in .PROC
field, reset the field to 0.
Increase limits on filename, protocolname, busname in record links.
Bugfix: Fix typo calcout device support that prevented compiling it.
Bugfix: Fix string termination reading into char array records (waveform
,
aai
, aao
, lsi
, lso
).
Allow empty parameter list ()
in record links.
Drop support for (buggy) cygnus-2.7.2 gcc (as used in some old cygwin version).
Add standard EPICS App build system (configure/
).
Some re-ordering of directories. When upgrading from 2.7 or earlier to 2.8, better start with a fresh source directory to avoid problems with files that have moved.
Support for 64 bit integers. This affects some conversions (e.g. in ai
and ao
records).
Device support for new record types int64in
, int64out
, lsi
and lso
added.
Support for new INT64
and UINT64
types in aai
, aao
and waveform
records.
Allow spaces in protocol parameter list in record link.
One space after the opening (
, before and after the separating ,
and
before the closing )
ignored. More spaces are part of the parameter.
String format %s
can now pad with 0-bytes instead of spaces using the
0
flag.
New checksums %<cpi>
and %<leybold>
.
Properly distinguish beween signed and unsigned integers, e.g. when
converting to double.
Allow signed enums to do this: %#{backwards=-1|stop=0|forwards=1}
.
Run @init
handler each time the device (re-)connects
(as long as asynDriver detects connection changes), also at each iocRun
(after being paused with iocPause
), and after each streamReload
.
Also run @init
of a record when the "magic value" 2 is written to the
.PROC
field or when new streamReinitRecord
shell function is called.
Trigger monitors when @init
updates output records (after the intial run
in iocInit
).
Use "COMM"
error code in .STAT
when device is disconnected.
If write fails because device has disconnected, try to re-connect and re-do write once.
Fix parser bug when command reference was followed by }
without ;
.
Fix potential buffer overrun during streamReload
.
After streamReload
, properly delete handlers and variables that do not
exist any longer.
Fix for waveforms of unsigned integers.
Several Windows related fixes and support building shared libraries on Windows.
Fix C++11 warnings.
Check formatting of exec
command for errors.
Fix bug in dbior
output.
Fix BCD %D
format and allow negative values.
Fix signed hex and octal formats.
Fix in regsub: Do not run regsub again on substituted string.
New functions streamReportRecord
and streamSetLogfile
.
Support output redirection to file of stream shell functions
and protocol dump via dbior
.
Cleanup some debug and error messages.
Hex bytes in debug/error output are now highlighted.
StreamError
can now be set before iocInit
.
Avoid repeating error messages. Thanks to Ben Franksen.
HTML files converted to HTML 5.
Update and improve several chapters.
Not available. See git log.