|
NAME changes - highlights of modifications for
spec release 5.08
June 3, 2010 - RELEASE 5.08.06-6
Fix For Repeated "Lost Connection" Messages
A problem where a spec client would
occasionally print a stream of "Lost Connection" error
messages has been addressed. Only one message per event should
appear now.
Support For EPICS Motor Record Update
The spec support for the EPICS motor record
has been adapted to follow the elimination of the RES process
variable in release R6-5.
May 20, 2010 - RELEASE 5.08.06-5
Fix For Crash On epics_put() Syntax Error
A bug dating from the original EPICS implementation in
spec, where using only one argument with the
epics_put() function could cause a crash, has been
fixed. Such use is now properly flagged as a syntax error.
Fix For Crash On epics_get() When Forcing String
Type
A bug, where spec could crash when using
epics_get() with the optional "string"
argument to read a process variable of array type that was longer
than 40 bytes (the maximum length of an EPICS string) but was not
DBF_STRING type, has been fixed.
Fixes For Returning EPICS Arrays As Strings
When forcing a "string" type with
epics_get(), spec now properly
formats the returned values as ASCII strings for all supported
EPICS data types. For native types other than
DBF_CHAR, arrays will be returned as a
spec string data array consisting of 40-byte
rows, with as many rows as elements in the EPICS array. For
DBF_CHAR data, the return value will be a single-row
string data array with as many columns as elements in the EPICS
array. See the
epics help file for more
information.
Fix For Writing to EPICS Character Arrays
When sending values to a process variable which is an array
of DBF_CHAR type using epics_put(),
non-array values will now be transferred as a string, filling as
many elements of the array as the string is long. Previously,
the number value of the argument would be assigned to only the
first element of the process variable array.
May 19, 2010 - RELEASE 5.08.06-4
Baud-Related Updates For Serial Support
A number of fixes and enhancements associated with setting
the baud rate on serial devices are included in this
spec release. The non-standard baud rates 7200,
14400 and 28800 are now working on Linux platforms. All
the generally recognized baud rates are now available, when
supported by the underlying system and hardware. In particular,
spec now recognizes baud rate values of 921600,
1000000, 1152000, 1500000, 2000000, 2500000, 3000000, 3500000 and
4000000. In addition, it is now possible to use the
ser_par() function to set and read the current baud
rate. See the
serial help file for details.
Baud Rate Setting Now Working on Mac OS X
A bug in Mac OS X version of spec, where
serial lines only worked at 9600 baud, has been fixed. Note,
spec only changes baud rates on serial lines on
a Mac when using USB-to-serial converters, as the Mac hardware
that spec supports doesn't include built-in
serial ports. For serial ports accessed via Ethernet-to-serial
devices, spec doesn't set the baud rate.
Fix For Limit Message On Micos Pollux Controllers
A problem associated with recent updates to the Micos motor
controller support, where hitting a limit switch with the Pollux
models would stop the associated motor but not generate a limit
message in spec, has been fixed.
Fix For Move-To-Limit Operation On Trinamic Controllers
Previously, if a move-to-limit search was the first move
performed with a Trinamic motor controller, the motor speed used
for the move was undefined. spec now programs
the move speed before doing a limit search.
April 15, 2010 - RELEASE 5.08.06-3
Can Now Check Active Status Of Calculational Pseudomotors
The command motor_par(mne,
"active") will now return a zero or one to indicate
whether any of the real motors associated with the calculational
pseudomotor mne are busy. Previously, the
command only worked with real motors.
New "nodelay" Option For TCP Sockets
Is now possible to disable or enable the
TCP_NODELAY socket option via a
"nodelay" option to sock_par(). See
the
sockets help file for details.
New "fast_hdw_checks" Option For Server Mode
An experimental "fast_hdw_checks" option is now
available via spec_par() to enable clients to get a
faster notification of changes in hardware status. See the
spec_par help file for details.
Is used, please report any issues to CSS to allow further tuning
of the code.
Fixes For Sigmatech FC501-A Motor Controller
This release includes a couple of fixes for the recently
added support for the Sigmatech FC501-A motor controller.
Fixed Crash With Unresponsive OMS PC48
A bug, introduced in spec release 5.07.04-1,
where spec would crash when configured for an
OMS ISA PC48 motor controller and no such controller was
detected, has been fixed.
Fixed Parameter Issue With Attocube Controller
A bug, introduced in spec release 5.08.03-8,
which disabled the ability to set values for non-standard
optional motor parameters from the config file for the
Attocube ANC350 motor controllers, has been fixed.
March 25, 2010 - RELEASE 5.08.06-2
Support For Oregon Micro Systems MAXnet
The OMS MAXnet motor controller is now supported over both
RS-232C (serial) and Ethernet interfaces. See the
oms help file for configuration
details.
March 22, 2010 - RELEASE 5.08.06-1
Support For Dectris Mythen 1K MCA
This spec release includes a first version
of support for the Dectris Mythen 1K MCA over the Ethernet
interface. See the
mythen help for complete details.
Support For Sigmatech FC501-A Motor Controller
This spec release supports the Sigmatech
FC501-A motor controller over GPIB and RS-232C interfaces. See
the
sigmatech help file for
complete details.
Fix and Additions For fmt_read() Programming
Functions
The fmt_read() and fmt_write()
functions allow specific binary data formats to be supported in
spec. The source code to the functions included
in the standard spec distribution serves as
documentation for the feature. This spec
release includes a new C function,
ff_adjust_byte_order(), which can be called in the
read function to adjust the byte order of the binary data if it
differs from that of the current platform. Also, the existing
function ff_put_head_item(), which can be called in
the read routine to transfer header items to the
spec user level, now works properly. Finally,
the specification of the format name in the spec
user-level function calls is now case insensitive.
Enhancement For the ESRF Format For fmt_read()
The fmt_read() implementation for the ESRF data
format will now correct data for byte order if the data in the
file is different from that of the host. In addition, a
fmt_read() call will now properly fill the optional
associative array argument with all values from the data file
header.
Update to spec Shared Memory Header For
Frames
The spec_shm.h file contains an updated header for the
spec shared memory structure with new elements
called frame_size and latest_frame, and
a new flag definition SHM_IS_FRAMES. The intended
usage is to communicate to auxiliary programs that 2D data
consists of a series of frames, where the frame_size
element will contain the number of rows per frame, and the
latest_frame element will contain the most recently
updated frame number. The version number of the structure has
been incremented from 4 to 5.
New array_op() Options For Frames
It is now possible to tag shared data arrays as a
"frames" type, which means the data in a 2D array
can be described as a series of acquisitions. A
"frame_size" parameter is the number of rows per
frame. A value of one would be appropriate for a series of MCA
acquisitions. A "latest_frame" parameter can be
assigned the frame number of the most recently added frame. The
values can be set and retrieved using the array_op()
function. In addition, certain hardware support may set the
frame parameters (see the
mythen help file). See the
arrays help file for more
information on frames.
Fix For Counters-Only Configuration Of Tsuji Counter/Timers
A bug, where a Tsuji counter/timer configured as
"counters only" was not started correctly, has been
fixed.
Fix For Crash With -p Flag On Startup
A situation where spec could crash when
started with the deprecated -p flag directly from
the shell has been fixed.
February 5, 2010 - RELEASE 5.08.05-6
Support For Revised Amptek MCA 8000A Firmware
spec now supports the new firmware included
with the Amptek MCA 8000A with serial numbers 3660 and higher.
The new firmware can be used with USB-to-serial adapters on
Linux. See the
amptek help file for details.
Fine Tuning Of New Micos VENIX-3 Support
This spec release contains a minor update to
the Micos motor controller support added in the previous release
to better handle error responses from the controller.
January 12, 2010 - RELEASE 5.08.05-5
Can Now Assign PCI Bus and Slot Numbers For NI 6601/2 Cards
It is now possible to specify the PCI bus and slot numbers of
National Instruments 6601/2 timer/counters cards in the
spec configuration editor, so that a particular
card can be selected when more than one is installed in the same
PC. See the
ni660x help file for details.
Files Opened For array_dump() Will Close
Automatically
If an unopened output file is used as the optional first
argument for the array_dump() (or
data_dump()) functions, spec will
now automatically close the file when the function finishes.
Previously, such files remained open and an explicit
close() call to remove the file from
spec's list of open output files was required.
If the file is already open when the function is called, it will
stay open and on the list of open files.
Updates To the New Micos VENUS-3 Support
This release includes a couple of updates to the support for
the Micos VENUS-3 protocol as used with the new Hydra models
introduced in spec release 5.08.05-1. The new
setorgconfig command included with Hydra firmware 2.034 is
used so that the spec set_dial
command will work as expected. Also, the error stack is now
cleared when an error is detected, preventing spurious error
messages on subsequent commands.
Fix For Recent Bug Concerning EPICS Motor Numbering
A bug introduced in spec release 5.08.04-3
which prevented an EPICS motor with channel number one from being
used has been fixed.
December 3, 2009 - RELEASE 5.08.05-4
Fix For Macro Hardware Parameters
A bug introduced in spec release 5.08.05-1
that removed the unit number from the argument list in calls to
the prefix_cmd() macro-hardware macro
function has been fixed. In addition, an issue where the value
of the prefix_ADDR and
prefix_CONPAR parameters would be cleared if
the prefix_par() macro function was called
from the prefix_cmd() macro function has been
partially addressed. With this release, the above parameters are
not available in prefix_par() although the
value of prefix_ADDR can be retrieved using
the counter_par() or motor_par()
"address" argument.
November 25, 2009 - RELEASE 5.08.05-3
New Write-Only I/O Port Configuration Option
Due to issues with certain PC cards freezing a Linux system
when a write-only I/O port is accessed for reading,
spec now supports write-only I/O port
configuration on the Interfaces screen of the hardware
configuration editor.
Fix and Additional Support For Measurement Computing PCI-DDA
Cards
Newer revisions of the Measurement Computing PCI-DDA DAC
cards (supported via spec's DAC motor facility)
appear to freeze a Linux PC if write-only ports are accessed for
reading or if ports associated with channels not present on the
card are accessed at all. The presence test for the cards now no
longer attempts a read of the write-only ports. Also,
spec now determines the maximum number of
channels for PCI DACs automatically and will overrule a
misconfigured value from the config file. In addition,
spec now supports Measurement Computing models
PCI-DDA02/12, PCI-DDA04/12, PCI-DDA08/12, PCI-DDA02/16 in
addition to the PCI-DDA04/16 and PCI-DDA08/16 models previously
supported. See the
dac help file for more details.
Fix For PI Motor Controller Crash
A bug introduced in release 5.08.05-1, where
spec would crash during hardware configuration
if the device associated with a Physik Instrumente motor
controller channel couldn't be opened, has been fixed.
Fix For Mclennan PM595 Delays On Exit
Previously, when quitting spec, each
Mclennan PM595 motor controller configured would add a delay of
one second to the time it took for the spec
process to exit. Those delays are now gone.
Fix For unix() Return Value
A very old bug, where the return value of the
unix() function when used with more than one
argument was not the return status of the executed command, has
been fixed.
November 16, 2009 - RELEASE 5.08.05-2
Fix For Broken Macro Hardware
prefix_ADDR
A bug introduced in the previous release that broke the
availability of the prefix_ADDR variable
inside macro-hardware macro functions has been fixed.
October 30, 2009 - RELEASE 5.08.05-1
New Support For Controller Parameter Configuration
It is now possible to access the nonstandard optional
controller parameters available from the configuration editor
Devices screen. These parameters are entered and modified
by typing the p command and appear in the
config file prefixed with CONPAR. Values can
now be accessed from the spec user level using
the motor_par() and counter_par()
functions. The parameter will be associated with the controller
used by the motor or counter mnemonic given as the first
argument. In addition, the parameters are accessible from within
macro hardware functions as elements of the associative array
prefix_CONPAR[] where the array elements are
indexed by the parameter name and prefix is
the macro function prefix.
Fix For Disabled Calculational Macro Motors
Previously, if the motor_par()
"disable" command was used to disable a
calculational macro-hardware pseudomotor, a move command for that
motor would generate an error message that the motor was
disabled, but spec would still send move
commands to the associated real motors. That problem is fixed in
this release. spec will no longer make
mode=1 calls to the
prefix_calc() function when the pseudomotor
is in a disabled state. The associated real motors are not
disabled, but will not move as a result of a move command to the
pseudomotor.
A ^C Will Now Override "keep_going"
Mode
The spec_par() "keep_going" option
(introduced in spec release 4.05.01), which
tells spec to keep reading and executing
commands from a command file no matter what errors occur, will
now return to command level if there is a ^C abort
entered at the keyboard.
Shared Arrays Now Working on Mac OS X
A long-standing issue with the experimental
spec support on the Mac OS X platform with
respect to shared data arrays not working properly has been
resolved.
Powder-mode Macro Update
The waitmove call in the _pcount
macro associated with the powder-mode macros has been replaced by
the new _pcount_em macro which adds calls of
user_precount and user_postcount before
and after the move_cnt command.
Fix For Position Resolution For Huber H9000
The support for the Huber H9000 motor controller will now
send up to nine significant figures to specify the target
position in move commands. Previously, only up to six
significant figures were used.
Fix For OMS PC48 Issue
Recent updates to the spec support for OMS
motor controllers resulted in a bizarre problem with the ISA bus
PC48 model OMS motor controller on at least one platform, where
the modified initialization sequences sent to all the OMS
controllers resulted in a Linux crash. Although the exact
mechanism of this crash is unknown, it has been suppressed by
adding a couple of ten millisecond delays around the new
commands.
Fix For PA In OMS "init_sequence"
The OMS support now correctly recognizes and requires a
parameter of 0 or 1 for the PA (power automatic)
command when included as part of an "init_sequence"
nonstandard optional motor parameter.
New OMS Position Maintenance Details
By default, spec will now turn off position
maintenance on OMS_P configured motors on exit.
This default behavior can be disabled by setting the nonstandard
optional parameter "keep_pos_maint" to a non-zero
value. The parameter can be a controller parameter which will
set values for all motors on the controller, or a motor parameter
which will only set values for the individual motor (and override
a controller parameter setting). In addition,
spec now turns on position maintenance for
OMS_P on start up rather than on the first move
command. See the
oms help file for details.
Preliminary Support For Micos VENUS-3 and Hydra Model
Support for the latest revision of the Micos firmware, called
VENUS-3, as implemented in the Hydra model of their motor
controller, is included in this spec release.
The support is for both serial and Ethernet interfaces.
Preliminary Support For Physik Instrumente Model C-863 Motor
Controller
This spec releases includes support for the
Physik Instrumente (PI) model C-863 single-axis DC-motor
controller.
Preliminary Support For Korean HMT HCC1 Motor Controller
This spec release includes preliminary
support for the Korean-made HMT HCC1 motor controller over a
serial interface. See the company's site
(www.e-hmt.kr) for a
product description.
September 10, 2009 - RELEASE 5.08.04-4
Fix For Crash When Using CAMAC RTC-018
A bug, where configuring an RTC-018 module could sometimes
lead to a program crash, introduced when spec
was updated over four years ago to support multiple CAMAC crates
(release 5.06.02-1), has been fixed.
September 9, 2009 - RELEASE 5.08.04-3
New remote_par() Command For
spec Clients
For spec clients communicating with a
spec server, a new remote_par()
command is available, currently with the following options:
"connect" to open a connection to a remote server,
"close" to close a connection, "abort"
to send a ^C-type event to the remote server and
"timeout" to set a timeout for
remote_eval() calls. See the
server help file for additional
details.
A ^C During a remote_eval() Now
Passed To Server
If a call to remote_eval() from a
spec client is interrupted by a ^C
from the keyboard, the client will send the spec
server an SV_ABORT event, to which the server will
respond as if a ^C had been typed at its keyboard.
In addition, any pending commands in the server queue from that
client will be flushed from the queue.
Cleanup Macros Now Called From Commands Sent To Server
If a command sent to a spec server
encounters an error or is otherwise interrupted, the server will
now run the standard cleanup macros, cleanup_once
and cleanup_always (and the deprecated
cleanup and cleanup1), if any such
macros are defined.
Preliminary Support For the Newport Agilis Piezo Actuators
This spec release contains preliminary
support for Newport's Agilis Model AG-UC2 controller over a USB
interface. Each controller supports two piezo actuators. To
distinguish multiple AG-UC2 modules, configure the device serial
number in the address field of the configuration editor.
libedit Command Completion For Directory Names
Restored
From time to time, the version of the libedit command-
line editing library included with the spec
distribution is updated to track changes at the upstream source
repository. A recent change in the upstream sources, which was
included in spec release 5.08.03-5 and
subsequent releases, eliminated the feature where command
completion for directory names appended a / rather
than a space character. The prior behavior is now restored in
the patched version distributed with spec. See
the
editline help file for details
on spec's command-line editing library support.
August 9, 2009 - RELEASE 5.08.04-2
Fix For Recently Created OMS Bug
A bug created in the previous release, where OMS motor
channels were not necessarily marked as unusable when the
associated controller was unresponsive, has been fixed. It was
possible for spec to crash in some instances due
to this bug.
August 1, 2009 - RELEASE 5.08.04-1
Fix For Server Position/Count Update Throttling
The update in release 5.08.03-1 which limited the rate at
which a spec server sends position and count
updates to clients inadvertently blocked sending position updates
for more than one motor when more than one motor was active.
That issue has been corrected. Note, the problem only affected
the updates during motion. The final position at the end of the
move was always sent correctly for all motors.
Support For Struck PCI Express SIS1100E VME Card
This spec release supports the Struck model
SIS1100E PCI Express to VME interface.
Updates For OMS Motor Controllers
Slip detection for OMS motor controllers configured with
stepper motors and encoders is now supported. Also, additional
OMS commands are permitted in the init_sequence
optional parameter introduced in spec release
5.08.03-8. See the
oms help file for details.
Encoder Update For Huber 9300 Motor Controller
When moving a motor configured with an encoder on the Huber
9300 motor controller, spec now sends a
relative-move command rather than an absolute-move command.
Relative moves make it more likely the position after a small
move will match the commanded position.
July 17, 2009 - RELEASE 5.08.03-13
Additional Serial Baud Rates Supported
Serial devices can now be configured for 7200, 14400 and
28800 baud. Those rates were not previously supported by
spec.
Fix For Canberra Multiport II Support
A bug in the support for the Canberra Multiport II MCA
devices for configurations with less than the full complement of
six MCA modules, where certain spec commands
such as mca_sel("?") would cause
spec to crash, has been fixed.
July 9, 2009 - RELEASE 5.08.03-12
New d2ps Geometry Variation
A variation on the standard psic geometry for the ERSF
BM02 (D2AM) beamline is now included. The diffractometer differs
in that the sample circles are stacked as eta,
chi, mu, phi rather than
eta, mu, chi,
phi as in the standard psic. Currently only
the "d1 d2 s1" modes are implemented and only for the
eta sample circle fixed at zero. The configuration
should be installed as geometry psic with name
d2ps. The motor mnemonics and macros are otherwise the
same as for psic.
Fix For ESRF/TACO Serial Device Configuration
A bug, introduced in spec release 5.08.03-4,
where the spec configuration editor,
edconf, did not properly read in serial devices configured
to use the ESRF or TACO interface type,
has been fixed. With the bug, the configuration editor would
display the initial TACO: from the config
file as part of the device name and not show the interface type
as TACO.
Fix For Using ^C Around TANGO Calls
A problem, where a ^C keyboard interrupt during
the TANGO user-level calls of tango_io(),
tango_get() and tango_put() could cause
memory corruption leading to a subsequent segmentation fault
crash, has been fixed.
July 1, 2009 - RELEASE 5.08.03-11
Fix For Out-Of-Bounds Array Bug
A bug, introduced in spec release 5.08.01-9,
where repeated access to out-of-bounds data array elements would
lead to the message "Out of temporary cells" and made
spec unusable, has been fixed.
June 30, 2009 - RELEASE 5.08.03-10
Support For the National Instruments VME-GPIB Module
spec now includes built-in support for the
National Instruments VME-GPIB module. See the
nigpib help file for more
details.
June 20, 2009 - RELEASE 5.08.03-9
Improved GPIB Error Messages
The more frequent GPIB error messages, such as "GPIB
timeout", now show the associated GPIB controller number
(for other than controller zero) and device address, which may be
useful in diagnosing hardware problems when many GPIB devices are
involved. This update is only for the National Instrument GPIB
controllers, but covers both the built-in and the external driver
(or library) support.
Fix To Accommodate Old OMS Cards
Some of the recent updates to the OMS support had made very
old OMS controllers (particularly ISA bus models) unusable. That
issue is fixed in this release, and the older cards are again
usable.
June 18, 2009 - RELEASE 5.08.03-8
Fixed Missing Shared Array Update In
array_pipe()
When the array_pipe() function obtains new array
data, it now updates the shared-array update flag used by other
processes to detect changes in the shared array data.
Minor Fix For Reading Optional Motor Parameters
A small issue, where spec would send a
command to certain models of motor controller to set the current
value of an optional motor parameter when a
motor_par() command was used to read the value, has
been fixed. This fix simply eliminates an unnecessary hardware
access. The parameter value returned by the command is as
before.
Update To Attocube ANC350 Support
The code for the Attocube ANC350 will now update the current
values (values returned by motor_par()) for non-
standard optional motor parameters included in the config
file to the values contained in a .aps file sent to the
controller using the motor_par() "load"
option.
An Initialization Sequence Can Now Be Configured For OMS
Motors
If a non-standard optional motor parameter named
"init_sequence" is created for an OMS motor
controller motor, the string value of the parameter wil be sent
to the controller by spec during hardware
configuration as an initialization sequence. Only certain
commands, such as those for configuring limits and the general
purpose I/O pins, are allowed in the string. See the
oms help file for complete details.
June 15, 2009 - RELEASE 5.08.03-7
New TIFF Support With fmt_write(),
fmt_read()
spec now includes basic support to save two-
dimensional array data to TIFF output files using the
fmt_write() function. Code for reading TIFF files
using fmt_read() is included, but is disabled by
default, as it requires linking with libtiff.a, which is
not part of the spec distribution. See the
fmt_tiff.c file in the spec distribution
for implementation details and how to enable the TIFF read
functionality.
Fixed Delimiter Issues With array_dump() From
Previous Release
A couple of problems when using the "D=" option
introduced for array_dump() in the previous release
have been fixed.
Update To Attocube ANC350 Support
The support for the Attocube ANC350 will now track changes to
the "sensorunit" parameter made by loading
.aps files, by reading the config file or directly
through motor_par(). Previously, the parameter's
value was read from the controller during hardware configuration
and that value was used to label units displayed with the
motor_par() "dump" option.
June 11, 2009 - RELEASE 5.08.03-6
New array_dump() Options
Additional options are now available to the
array_dump() function. In particular, additional
printf()-style format options are available for
integer data types, one can now specify an arbitrary delimiter
character, and one can now control the number of data elements
printed per line when outputting two-dimensional arrays. See the
array_dump() entry in the
arrays help file for complete
details.
Improved Support For UDP Sockets
The user-level socket support for UDP socket connections has
been updated to provide more robust functionality. Previously,
reading from UDP sockets did not work well.
Improved sock_par() "queue" Option
The "queue" option to the
sock_par() command has previously returned the
number of available bytes that have been read from the socket
into spec, but have not yet been retrieved using
sock_get(). (Data could remain in the queue due to
a previous sock_get() call only reading up to an
end-of-string match or a specific number of bytes.) In this
release, if there are leftover bytes remaining in the queue from
the prior sock_get() call, that number will still be
returned. However, if there are no leftover bytes,
spec will now query the underlying kernel driver
to see if there is data available and will return that value.
Fix For ser_par() "queue" Option
The "queue" option to the ser_par()
function has been long documented to return the number of bytes
in the input queue, but has instead returned a fixed value of one
if there were one or more bytes available (for UNIX-type serial
devices). The function now returns the number of bytes
available.
Fix For array_pipe() With 2D Data Arrays
A bug, where the array_pipe() (or
data_pipe()) function would only fill the first row
of a returned two-dimensional array, has been fixed,
Fix For array_pipe() With Big Shared Arrays
A bug, where the array_pipe() (or
data_pipe()) function would generate a spurious
error about a too large array when trying to read into a shared
array larger than half a megabyte, has been fixed.
May 28, 2009 - RELEASE 5.08.03-5
Fix For Struck SIS1100 Driverless Support
A small timing problem with the Struck SIS1100 PCI cards
using spec's recently added driverless support,
where the card could become unresponsive to spec
after repeated initializations, has been fixed.
New Emergency Stop Feature For OMS MAXv Controllers
For Oregon Microsystems MAXv VME motor controllers, if both
limits are found active at the same time, spec
will treat that as an emergency stop signal. The effect is very
similar to what happens when a single hard limit, in that
spec will stop all active motors and reset to
command level. The difference is that a different message will
be displayed on the screen, and if using spec in
server mode, an "emergency_stop" event will be sent to
clients. Note, with most models of OMS controllers, it is not
possible to detect when both limits are set.
Fix For EPICS Encoder Motor Initial Value
An issue dealing with the initial value displayed for EPICS
motors after spec release 5.08.01-4 (and
partially fixed in spec release 5.08.02-3), has
been fixed for motors where the UEIP (use encoder if
present) process variable is nonzero. The order of events
produced by the standard EPICS motor record caused
spec to report the initial motor position based
on the RRBV (raw read back value) process variable
without correcting for the encoder resolution.
spec will now recalculate the motor position
whenever a UEIP event is received.
May 21, 2009 - RELEASE 5.08.03-4
New Polled Macro-Hardware Counter Type
A new polled macro-hardware counter type is available. These
counters will be polled using the standard wait()
function. Counting won't end until both the master timer and all
polled macro-hardware counters have finished. See the
mac_hdw file for details.
Support For Attocube ANC350 Piezo Controller
This spec release contains preliminary
support for the Attocube ANC350 piezo controller over an Ethernet
connection. See the
attocube help file for
implementation details. The controllers should have current
firmware (later than 0.0.2.1) in order for
spec's limit sensing to work properly.
New ser_par() Options for DTR, RTS, DSR
The ser_par() function can now be used to set
values for the modem control Data Terminal Ready (DTR) and
Request To Send (RTS) signals on standard serial interfaces.
Also, the Data Set Read (DSR) signal can be read. See the
serial help file for details.
Parameter Settings Can Be Combined With
ser_par()
Multiple serial interface parameters can now be set with one
call of ser_par() using a comma-delimited string of
assignments. See the
serial help file for details.
Configuration Editor Now Uses TACO For Serial Device Type
The serial interface device type used in the hardware
configuration file and configuration editor that was formerly
named ESRF is now called TACO. Both
spec and the configuration editor will continue
to recognize the old name, but the configuration editor will use
TACO when writing out updated config files.
spec binaries since release 5.01.01 will
recognize both names. Previous releases of the configuration
editor will not.
May 11, 2009 - RELEASE 5.08.03-3
Final Fix For Local Variables in Recursive Macro Functions
A remaining problem with the fixes in the two previous
releases for local variables in macro functions, where a macro
function could no longer return an associative array local
variable, has been fixed.
May 5, 2009 - RELEASE 5.08.03-2
Tweak Of Fix For Local Variables In Recursive Macro Functions
A bug, introduced in the previous release and associated with
the fix for macro function local variables used in recursive
calls, where a local declaration of a variable as an
associative array within a macro function was broken, has been
fixed. Also, a second introduced bug, where using a local
associative array within a macro function as an argument to a
call of another macro function caused a segmentation fault when
running spec in server mode, has been fixed.
March 16, 2009 - RELEASE 5.08.03-1
Install Script Simplified
Questions related to obsolete or little-used hardware options
asked by the Install script have been eliminated.
Specifically, questions for the cib,
cvxi, ksc_scsi and sicl
parameters are gone. Note, though, if the associated object
files or libraries are still needed, they should be entered as
values for the site_obj or site_lib
parameters, as appropriate. The updated Install script
will automatically convert old install_data files to the
new format. Also, the Install script no longer asks
whether to include CAMAC or VME support. Such support will be
included for all standard installations. (As before, it is still
possible to prevent linking in hardware support by manually
editing the u_hdw.c file, although there is little reason
to go to that trouble.)
Can Link With TANGO Without TACO
It is now possible to install spec with TANGO support
included but TACO support left out.
Local Variables Now Behave Well In Recursive Macro Functions
Previously, local variables used in a macro function would be
reset to zero on return from a recursive call to the same macro
function. Now, local variables behave as expected.
spec Server Position/Counts Update Frequency
Throttled
Position update events while moving and counter update events
while counting sent by a spec server to its
clients will now be limited to a rate no higher than four times
per second.
spec_par("?") Now Shows Default Values
When the current value differs from the default value, the
spec_par("?") command now displays the default value
in parenthesis.
New spec_par("set_defaults") Option
A new spec_par("set_defaults") command will now
set all the spec_par() parameters to their default
values.
New spec_par() Option For Enabling a Motor
Warning Message
A new spec_par() option
"warn_not_at_pos" enables printing of a warning
message whenever a motor doesn't reach its final position.
Previously, the warning message was not optional, but was only
available when spec was linked with TACO
libraries.
Fix For plot_cntl("kill") With Multiple Windows
An ancient bug, where using the
plot_cntl("kill") command with multiple plot windows
open would make reopening some of the windows impossible, has
been fixed.
February 26, 2009 - RELEASE 5.08.02-7
Fix For Recently Broken OMS Encoder Support
The support added in spec release 5.08.02-4
for position maintenance mode with Oregon Micro Systems motor
controllers (OMS_P controller type) inadvertently
broke the basic encoder support (OMS_E controller
type). That problem is fixed in this release.
Fix For Keyboard Generated Stop Signal Issue
The keyboard generated stop signal (usually associated with
^Z) has always been purposely ignored by
spec. However, when running a subprocess via
the unix() command, such as with unix("vi
somefile"), a ^Z would stop the subprocess
and spec would hang (although recovery was
possible by sending a kill signal to the subprocess via another
terminal window). This spec release fixes that
problem by allowing spec to receive the stop
signal while such a subprocess is running. Thus, both the
subprocess and spec are stopped (and both can be
resumed with the shell fg command). Note,
spec still ignores the keyboard stop signal at
all other times.
February 24, 2009 - RELEASE 5.08.02-6
New strdef() Built-In Function
The new strdef() function returns a string
containing the definition of the macro name given as an argument.
If there is no such defined macro, the function returns its
argument.
New Optional "Units" Argument To getval()
The getval() built-in function now takes an
optional third argument. If present, it will be appended to the
current value displayed in parenthesis after the first argument
prompt string:
|