NEWS 61 KB
Newer Older
Erik von Reis's avatar
Erik von Reis committed
1
==================================================================================================
Erik von Reis's avatar
Erik von Reis committed
2
3
4
5
6
7
8
9
10
11
12
Changes for 4.2.8
==================================================================================================
- fixed issue where two testpoints couldn't be opened at the same time from the same model
- fixed RCG bug where deep part links could cause infinite recursion of references
- delays inserted in shutdown to help prevent zombie luts in the dolphin drivers
- epics process fails gracefully and with better messages when it can't open a file
- BURT_RESTORE no longer needed in safe.snap file to start model
- DACKILL variables in default safe.snap set to more sensible values
- EDCU now supplies DATA_RATE_KB_PER_S epics variable
- RCG install step now creats chans/tmp.  Build now creates chans/ipc/<ifo>.ipc
==================================================================================================
13
14
15
16
17
18
19
Changes for 4.2.7
==================================================================================================
- Fixed more calculation out of order bugs.
- Cleared up warnings in slow-controls models.
- Clears annotations of any hidden HTML tags.
==================================================================================================
Changes for 4.2.6
Erik von Reis's avatar
Erik von Reis committed
20
21
==================================================================================================
- Fixed bug in ADC read when IOP rate was slower than ADC rate.
22
23
- Fixed virtualIOP parameter.  Virtual IOPs now build and run.
- Fixed bug that leads to incorrect ordering of calculations, adding unneeded latency.
24
- 'rtcds restart --all' fixed to also restart IOP model.
25
- Awgtpman now fails gracefully if there's an IOP mbuf version mis-match or the IOP is not running.
26
- rtcds will now start every model listed on the command line even if some models are already started
27
- rtcds now enforces lowercase model names on most commands
Erik von Reis's avatar
Erik von Reis committed
28
==================================================================================================
29
30
31
32
33
Changes for 4.2.3
==================================================================================================
- Name collisions between Goto tags in top level and subsystems avoided.
- Fixed build failure when IOP model rate is less than the ADC clock speed.
==================================================================================================
Erik von Reis's avatar
Erik von Reis committed
34
35
36
37
38
39
40
Changes for 4.2.2
==================================================================================================
- 'IRIGB' reading changed to 'TIME-0': latency from start of second to first cycle.
- Minimum 'TIME-0' (formerly IRIGB) is decreased to 1 usec when using LPTC.
- Fixed: MEDM controls are now generated using lowercase site names.
- Average cycle time EPICS variable corrected for fast models.

41
==================================================================================================
Erik von Reis's avatar
Erik von Reis committed
42
43
44
45
46
47
48
49
50
51
52
53
Changes for 4.2.1
==================================================================================================
- time_shift parameter added to ADC block to support getting all or part of the data from ADC from an earlier cycle.
- Dolphin startup code changed to support node 4.
- Start up sequence for front ends fixed to load dolphin drivers when models are set to not start.
- IO timing display improved for fast ADCs (524 kHz)
- Awg memory footprint reduced and now related to model rate.
- Name collisions in model blocks now detected and reported by the RCG.
- RCG parsing issues related to goto tags fixed.
- gpstime driver updated to work with and report data from LIGO PCIe timing cards.
- Fixed issue where 18AI32SSC1M was going into 16-bit mode (issue #261)
- Maximum binary IO card increased to support 4-part 64 I/O cards.
Erik von Reis's avatar
Erik von Reis committed
54

Erik von Reis's avatar
Erik von Reis committed
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
==================================================================================================
Changes for 4.2
==================================================================================================
- Installer now handles $bdroot variable generated by newer matlab version.
- support for running two IO chassis with a single IOP.
- cps_recv now supports transmission of a compressed stream.
- dataviewer removed.  Now it's own progect at http://git.ligo.org/cds/dataviewer
- IOP model now counts each type of IO card separately.
- Can now clock different IO cards at different rates when using LIGO PCIe timing card.
- Site specific RCG logic removed.
- Added featureful stream simulator for testing DAQ and awgtpman.
- New MEDM added to list names of open test points.
- Automated integration tests added.
- Shared memory now abstracted into shmem library
- Some overloaded shared memories are now separated into individual shared memories
- awgtpman now uses model rate directly and no longer uses rate multipliers.
- awgtpman now loads with any type of ADC as the first ADC.
- DAQD changed to check circular buffers before going to files for data.
- IOPs now report data rate in IO_MEM_DATA structure
- Allow IOP to run on internal clock.
- Can run ADCs at ~ 524 kSamples/sec.
- Drivers for GSC18AI321M and GSC18AI64 added.
- IO cards now mapped to slots when using the LIGO PCIe timing card.
- New IOP IO STATUS medm screen shows details on slots and cards.
- EDC can now get it's timing from an IOP model.
- Systemd generator added to build startup sequences for diskless frontend servers.
- Support for double values added to simple_pv
- IOP using timing over PCIe network will suspend when timing lost and resume when restored.
- supports new LIGO PCIe timing card.
- shared memory structures simplified.  awgtpman and models not backwards compatible.
- Cycle checking in DAQ improved.
- IOC no longer sets file permissions, allowing temporary NFS disconnects (issue #166)
- http interface added to cps_recv
- requireIOcnt=0 parameter now required to ignore IO card counts, otherwise models will not load with a wrong count.
- Added lhomid=1 parameter to fix PEMMID timing problems (issue #170)
- DAC found status bit fixed for user app models.
- Delay of DAC watchdog trip increased from 2 to 6 seconds.
- Additional diagnostics added to FE_STATS screen.
- UPTIME text changed form white to green.
- Fix issue of shuffling order of INI file entries. (issue #169)
- DAC AUTOCAL status to FE_STATS screen (issue #167)
==================================================================================================
97
98
99
100
101
102
Changes for 4.0.2
==================================================================================================
- RCG I/O module mapping modified to allow DAC models to appear in any order on the bus. (issue #150)
- Fix for ANU new 'N' site setting (Issue #117)
- Fix to rtcds stop --all to stop IOP model last
- Various changes to clear all RCG code gcc compile warnings (Issue #147)
Erik von Reis's avatar
Erik von Reis committed
103
- Modified Parameters.pm to perform proper checking for Parameter block entries. (Issue #155)
104
- Enabled user space code compile with RCG_BUILD_USP compile argument
105
==================================================================================================
106
107
108
109
110
111
Changes for 4.0.1
==================================================================================================
- Minor fix to the daq_wiper.py script, so that it does not crash when a free size is specified.
- Bug fix to enable biquad filtering.
==================================================================================================
Changes for 4.0
Rolf Bork's avatar
Rolf Bork committed
112
==================================================================================================
113
114
- Added a new streamer cps_xmit/recv (cds pub sub) which is an ip based streamer system
- Added a mx receiver variant omx_recv_buffered which can hold multiple cycles of data
115
- Removing all daqd variants except daqd_shmem which is now named daqd.
Jonathan Hanks's avatar
Jonathan Hanks committed
116
117
118
119
120
121
122
123
- Renaming and reworking the streamer processes
   - local_dc (takes input from models and concentrates it into one memory buffer)
   - omx_xmit/omx_recv
      - still needs work to consume the buffer from local_dc
   - zmq_xmit/zmq_recv (takes the buffer from local_dc and transmits it over zmq pub/sub)
   - dix_xmit/dix_recv (takes the buffer from local_dc and transmits it over IX dolphin)
- Improved FE/IFO data simulation code for daqd and streamer testing
   - This provides properly formated data, not a plant model of an IFO
124
125
126
127
128
- Improved the diagnostic tool mbuf_probe
   - Allow for simple streaming and limited analysis of some of the shared memory buffers used in the codebase.
- Implemented a standalone_edc.
   - An edcu as a regular program, not a non-rt model.
   - Can record data into multiple types (short, int, float, double)
129
- Implemented fix for FRS 13791
130
131
   - Increase the number of connections allowed on a daqd circular buffer past 32.
   - Generalize the data structure to allow changing the max number easier.  Currently set to 128.
132
- Updated the nds process
Jameson Rollins's avatar
Jameson Rollins committed
133
   - run dir defaults to /run/nds
134
   - the name of the socket has changed from pipe to daqd_socket
135
   - the command line is changed to specifying the run dir instead of the pipe/socket filename
Jameson Rollins's avatar
Jameson Rollins committed
136
137
   - ie nds --rundir /run/nds
     - gives a jobs dir of /run/nds/jobs and a socket at /run/nds/daqd_socket
138
   - the nds process will attempt to create the 'jobs' directory if it does not exist
Rolf Bork's avatar
Rolf Bork committed
139
==================================================================================================
140
Changes for 3.6  (NOT YET RELEASED)
Rolf Bork's avatar
Rolf Bork committed
141
==================================================================================================
142
- When using daqd_shmem, must set a parameter "GDS_BROADCAST" = "1" to enable gds broadcast.
143
144
145
146
- daqLibZmq.c developed to send out GDS TP data via separate shared memory area for use with 
  new ZMQ DAQ transmission software.
  - This code is inserted if USE_ZMQ file exists in release/src/include directory. If not, then
    build will default to using mx_stream version (daqLib.c).
147
- RCG now builds user space code as well as kernel objects.
148
149
150
- controller.c and moduleLoad.c now split into new files to clean out #defs:
	- controllerIop.c and moduleLoadIop.c for IOP model builds.
	- controllerApp.c and moduleLoadApp.c for user application model builds.
Rolf Bork's avatar
Rolf Bork committed
151
	- controllerIopUser.c and controllerAppUser.c, which are user space equivalents.
152
153
- Removed /proc entries from all FE code. This should alleviate issue with change to /proc
  in later Linux kernels.
154
155
156
- daqd does not allow non-minute minute trends.
- zmq_rcv_ix_xmit allows a configurable time window in which it will wait for all FE computers to
  send data.
157
158
159
160
161
- Bug fix for Fcn, Relational Operator, AND parts: Not removing spaces in arguments.
- Added controllerLR.c.  This is code to run an IOP at 32K, as required by PEM Mid IOC over long fiber.  This in invoked by:
	- Set rate=32K in IOP model Parameter Block
	- Set virtualIOP=3 in IOP model Parameter Block
	- NOTE: Presently, this only reads ADC modules ie not DAC writes, as it was implemented for PEM DAQ channel.s
Rolf Bork's avatar
Rolf Bork committed
162
==================================================================================================
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
Changes for 3.5.1
==================================================================================================
- Bug fix for mx_fe: Not reading test point count properly from FE code resulting in xmit buffer
  overflow.
  - Bug fix (1136) for the external edcu.  Exit instead of crash on bad filenames when building
   the channel list.  Allow for blank lines and comments
   ==================================================================================================
   Changes for 3.5.0
   ==================================================================================================
   - Removed old EPICS Control System Studio from plugins.
   - Bug fix for MATH.pm: improper variable case when used with EPICS input.
   - Bug Fix (1133) - Fix cdsEzCaRead/Write implementation
   - Bug Fix (1132) - Increase ADC parser part limit to 6000
   - Add installer support for kamioka,indigo,anu,uwa,cardiff,bham sites
   - Add awgtpman support for indigo,anu,uwa,cardiff,bham sites
   - Modifications to edcu.c:
     - No longer hard coded dcuId: takes it from template model like all other FE code.
       - Now synchonizes to IOP model on target computer: set sync=<iopmodelname> in model Param block.
==================================================================================================
182
183
184
Changes for 3.4.5
==================================================================================================
- Bug Fix (1133) - Fix cdsEzCaRead/Write implementation 
185
- Bug Fix (1132) - Increase ADC parser part limit to 6000
186
187
- Add installer support for kamioka,indigo,anu,uwa,cardiff,bham sites
- Add awgtpman support for indigo,anu,uwa,cardiff,bham sites
188
==================================================================================================
Rolf Bork's avatar
Rolf Bork committed
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
Changes for 3.4.3
==================================================================================================
- Changed PCIe real-time network configuration from single Dolphin channel to 2 Dolphin channels
  to avoid end station local traffic being sent back to long range PCIe network switch:
	- Local traffic (PCIE IPC) via channel 0
        - Long range traffic (RFM0/RFM1) via channel 1
- Bug Fix: Move rearming of ADC Demand DMA in IOP models from as ADC data is read in to after
  call to feCode(), IOP model code. Found that there was bus contention issues if IOP model was
  sending PCIe IPC at 65K.
- Added TIME_MASTER option for IOP models.
	- IOP will send GPS time and cycle via PCIe network to sync other computers.
- Added support for IOP that has no IOC ie synchronized by TIME_MASTER via PCIe network.
==================================================================================================
Changes for 3.4.2.1
- Bug Fix for Bit2Word.pm as per FRS 11066.
==================================================================================================
==================================================================================================
Changes for 3.4.2
==================================================================================================
- Increased the number of IPC per transmission type from 512 to 1024. This was done due to IPC
  counts on PCIe network approaching 500 at the sites.
- Fixed EPICS startup file to test against existence of proper log file ie path was wrong.
- Fixed bug in cdsrfmswitch. Code was not unmapping Dolphin cards properly when module removed.
==================================================================================================
Changes for 3.4.1
==================================================================================================
- Bug Fix: Support for 20bit DAC was not included in 3.4. This release reinstates that support.
==================================================================================================
==================================================================================================
Changes for 3.4 
219
==================================================================================================
220
- Bug Fix (1112): Add support for Indigo,ANU,UWA,Cardiff site/ifo in feCodeGen.pl
221
- Bug Fix (1085): Default daqd behavior is to disable md5 checksum file creation
222
- Bug Fix (1098): Fix EZ_CA_READ/WRITE calls to work with EPICS Sequencer 2.2
223
- Improve lock-up on model shutdown by removing erroneous printkl() in moduleLoad.c (r4486)
224
225
- Added ability to run DAC modules without a preload of the FIFO for lower latency.  This done
  specifically for MIT in RCG V2.8.8, but had not been carried over into RCG V3.x.
226
- Added support for General Standards 20AO8 DAC module, as was done for branch-3.3 as a test.
Rolf Bork's avatar
Rolf Bork committed
227
228
229
- Added auto generation of safe.snap files for models built for the first time.
- Changed IPC error reporting, as requested in Bugzilla 793.
- Added support for Dolphin PCIe network Gen 2 hardware.
230
231
- Add ability to inter-connect PCIe (Dolphin) switches between corner and end stations.
	- Deletes need for GeFanuc RFM cards. However, option still remains to use them.
Rolf Bork's avatar
Rolf Bork committed
232
	- Added standalone cdsrfmswitch code into src/pcieswitch directory. 
233
234
- Add mx_crc_only process: Required to perform CRC calculations for real-time code when DAQ run
  in a 'standiop' mode.  This is also included in branch-3.0.
235
236
237
- Bug Fix (472): Better framewriter error messages
- Bug Fix (985): Fix daqd for single-machine framebuilder in kernel 3.2
- Bug Fix (1010): Prevent divide-by-zero error in daqd filesys.hh
238
239
- Bug Fix (513): Cleanup debug schemes.  Also created separate udp_rcvr files, fixed mx_rcvr header
- Bug Fix (1015): Update daqd,nds build for ldas-tools 2.5
240
- Add leap second to dataviewer for Dec. 31, 2016
241
242
- Bug Fix (1047): EDCU code that supports dual data concentrators was modified to work 
  with new mx_stream introduced in 3.1
243
244
245
- Bug Fix: Change MX heartbeat betwwen controller.c and mx_stream/mx_crc_only to use ipc->reqAck
  instead of ipc->status.  DAQD uses ipc->status on a standalone system, so was an issue there.
  This fix also done in RCG branch-3.2.
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
==================================================================================================
Changes for 3.2
==================================================================================================
- Bug Fix (1033): Daqd frame writer changes:
  Split the producer thread into multiple parts to free up a thread to only receive data.
  Split the raw frame writer thread into two compoments to allow it to catch up better to
  when there is a slow down on frame writes.
  Cleaned up some of the EPICS code.
  Added more EPICS channels to give metrics on daqd.
  	- Add leap second to dataviewer leapsecs.txt file for 12-31-16
	- Bug Fix (1010): Prevent divide-by-zero error in daqd filesys.hh
	- Bug Fix (1047): EDCU code that supports dual data concentrators was modified to work
	  with new mx_stream introduced in 3.1
	- Bug Fix: Corrected initialization for fixed and set phase oscillators at model start.

261
==================================================================================================
262
263
264
265
Changes for 3.1.1
==================================================================================================
- Bug Fix for loading of RampMuxMatrix on startup (1030).
==================================================================================================
266
267
268
269
270
271
272
273
274
Changes for 3.1
==================================================================================================
- Per ECR LIGO-E1600234, modified front end daq code to run without any fast channels. Previously,
  DAQ required minimum of 2 channels at full rate.  This resulted in a lot of useless DAQ data
  traffic, particuarly from IOP models, which were creating 550KByte/sec of raw network traffic
  for signals not of interest or acquired. While not significant for smaller systems, for LIGO
  production systems this accounted for ~25% of the 70MByte/sec DAQ network traffic. The code
  changes made to implement this also reduce the latency of front end data transmission to 1/16
  of a second from the previous 1/8 second.
275
- Bug Fix (1022): Allow dataviewer to display trends of double precision channels.
Keith Thorne's avatar
Keith Thorne committed
276
==================================================================================================
277
278
279
280
Changes for 3.0.3
==================================================================================================
- Bug Fix for loading individual filter coeffs (#1008 and #1014).
==================================================================================================
281
Changes for 3.0.2
Keith Thorne's avatar
Keith Thorne committed
282
==================================================================================================
283
284
285
- Bug Fix to SUM.pm part connection checking.
- Bug Fix to auto-generated ADC monitor screens. Screens for models which use several top level
  signal names were not being generated correctly.
Keith Thorne's avatar
Keith Thorne committed
286
==================================================================================================
287
Changes for 3.0.1
Keith Thorne's avatar
Keith Thorne committed
288
==================================================================================================
Keith Thorne's avatar
Keith Thorne committed
289
290
- Bug Fix (957): Phase locked oscillator 
- Bug Fix (1005): GPS part: GPS second being sent to user code 1 cycle late.
291
- Bug Fix (832): Dataviewer -r <restorefile> command line option fixed.
Keith Thorne's avatar
Keith Thorne committed
292
293
294
- Bug Fix (999): start script does not error out if real-time model killed 
- Bug Fix (1000): ccodeio.h now uses environment variables in file paths
==================================================================================================
295
Changes for 3.0
296
==================================================================================================
297
- New Decimation filters for IOP to 16K as per T1600066.
298
299
- Bug Fix (973): HWWD.pm part updated to reflect new status bit pattern from updated SUS HWWD
	chassis.
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
- Bug Fix (895): Attempting to clean up compile, with better error messages with user direction
  to error files:
	- Added checkInputConnect() function to all library parts in src/epics/utils/lib.` This
	  was done to allow for checking of connections prior to going into the code linking
	  portion of the compiler, which should provide better info to the user as to exactly
	  which part(s) are not properly connected instead of the old 'search around these 
	  parts' message.
	- There are still a number of parts which are handled by code within feCodeGen.pl, instead
	  of having there own .pm library part. Began the process of moving these out. Those
	  moved to their own .pm file are:
		- SUM.pm - Matlab summing part.
		- MATH.pm - Subset of Matlab MATH parts
		- AND.pm - Matlab logical operations
		- DEMUX.pm
		- MUX.pm
		- MULTIPLY.pm
		- RelationalOperator.pm
		- SATURATE.pm
		- Switch.pm
	- Moved some routines out of feCodeGen.pl into /lib files.
		- BusSelect.pm: Used to help make part connections via busses.
321
- Bug Fix: Old watchdog (Wd.pm) part was never updated to support real-time EPICS DAQ. This fix
322
  was also done to branch-2.8, used by PDE at MIT, and Branch-2.9.
323
324
- Bug Fix (966): RCG FunctionCall.pm now checks that model part has the same number of in/outs as
  defined in the associated user C code function.
325
326
  	- RCG attempts to parse C code file to determine number of inputs/outputs used.
	- Failing that, RCG uses new header file 'userapps/trunk/cds/common/ccodeio.h.
327
328
- Bug Fix (903): With requireIOcnt=1 set in parameter block of a model, code will not start unless
  the model required number of ADC and DAC modules exist on the run time computer bus.
329
330
331
332
333
334
- Bug Fix (948): ADC channel lists are incorrect when model contains MUX/DEMUX parts. It was also
  noted that this produced incorrect ADC Monitor MEDM screens, which was also corrected as part
  of this fix.
- Bug Fix (894 and 896): Having to do with coeff files and their archives, along with diffs 
  between what is loaded into the real-time code and exists in a modified foton file. For
  details, see T1500592 in DCC.
335
336
- Request (831): Added support in FE code to acquire double precision 64bit floats.
- Bug Fix (887): SDF uninitialized table did not allow accepting present settings.
337
338
339
- Request (833): RCG now produces a text file that lists all ADC connections for that model as
  part of the make, make-install process.
  - make command produces build/modelepics/config/adcListSorted.txt
340
  - make install-model produces a /opt/rtcds/site/ifo/chans/adc/model_adclist.txt file.
341
- Request (886): Added RCG version number to GDSTP screens.
342
343
344
- Added multi-page listing capabilities for unconnected EDCU channels. Presently, still a work
  in progress.
- Added a new install script, nort- (No real-time). This was added to properly generate
345
  the start script for EDCU models, which have no real-time component.
346
347
348
- Added a compile option (DUAL_DAQ_DC) for running with 2 data concentrators. Until I think of
  a better solution, this is 'hardwired' in feCodeGen.pl by setting daq2dc = 1. If it is desired
  to run with a single data concentrator, set this to daq2dc = 0 for now.
349
350
- mx_stream modified to provide additional diagnostics when used in a system with 2 DAQ data
  concentrators.
351
352
- Request (691): DAQ builds now detect EPICS, framecpp installs 
- Request (854): DAQ builds put labels on thread, can set real-time priority, CPU affinity
353
- Bug Fix (494): Remove test for frame directory count when using GPS-time folders
354
- Bug Fix (888): Make mx pre-thread inputs non-volatile
355
356
- Added sequential startup of ADC modules when sync source = 1PPS.  This had been done in branch
  2.9, but not conveyed into the trunk. This change primarily affects AEI.
357
- Removed support for startup sync using IRIG-B card. This is old eLIGO, and no one uses it.
358
==================================================================================================
359
360
361
362
363
364
365
Changes for 2.9.7 release
==================================================================================================
- Bug fix: Modified the DAC timing diagnostic code:
        - DAC error bit in STATEWORD will now latch.
        - 18 bit DAC timing fault now requires two consecutive errors detected before performing
          a DAC kill.
==================================================================================================
366
367
368
369
Changes for 2.9.5 release
==================================================================================================
- Bug fix for True RMS part as per and tested by M. Evans.
==================================================================================================
370
371
372
373
374
375
376
377
Changes for 2.9.4 release
==================================================================================================
- Changes to account for June 30, 2015 leap second.
   - Modified timing.c and spectracom.c files to add leap second. This code should be redone in
        next major release as it is not well done here.
   - Dataviewer fixed by adding to leap second list in src/dv/Lib/UTC_GPS/leapsecs.txt
   - gds/tconv.c modified.
==================================================================================================
378
379
Changes for 2.9.3 release
==================================================================================================
380
- Bug Fix (850) : SDF changes.
381
382
- As requested for Guardian, changed skeleton.st to read filter module ramp time values before
  offsets and gains.
383
==================================================================================================
384
385
386
387
Changes for 2.9.2 release
==================================================================================================
- Bug Fix: IPC errors when using RFM DMA mode.  Modified controller.c to verify that RFM DMA
  was complete before triggering user applications. 
388
389
390
- Added a 1 cycle delay for RFM senders.  This is specifically for use in RFM sender models
  that run too long (>45usec) for transmission to reach end/corner in time. This delay is set on
  a per model basis by adding the line rfm_delay to the Parameter block.
391
==================================================================================================
392
Changes for 2.9.1
393
==================================================================================================
394
- Bug Fix (811): NDS1 Version 12.2: Fix byte-ordering in 'status channels 2' 
395
396
- Added individual channel reset to BURT value capability for SDF_TABLE display.
- Bug Fix (810): Code not properly resetting SW1S and SW2S for FMC parts when in local mode.
397
398
  Operation of the FMC parts was not affected by this bug, but caused issues with SDF
  reporting.
399
400
- Added read file error checking for filter switch settings (somehow, some settings in file >16
  bits. SDF code now truncates to 16bits and reports a read error to SDF table.
401
402
403
- Bug Fix (796): Added paging capability to SDF_TABLE to allow listing of up to 400 items.
  Also cleaned up BURT file reader line parsing to pick up on strings.  Was having problems
  when strings started with a number and a string contained more than one word.
404
- Bug Fix (803): Modified Makefile.linux to not add SDF EPICS variables to the autoBurt.req file.
405
406
- Bug Fix (790): Added difference calc and EPICS records to provide diff between present setpoint
  and BURT request as added feature to SDF. As part of this fix, also:
Rolf Bork's avatar
Rolf Bork committed
407
408
409
410
411
412
413
	- Added FILTER_MODULE_SWSTR EPICS record for each filter module. This is a string 
	  representation of the filter module switch settings. 
        - Changed the way filter switch setting errors are reported.
                        CHANNEL NAME          BURT              PRESENT                 DIFF
                - Old: FILTER_NAME_SW1S   Hex of BURT set   Hex of Present set
                - New: FILTER_NAME        BURT SWSTR         Present SWSTR       Diff String
        - Increased display precision to BURT/PRESENT value fields on DIFF Display.
414
415
- Bug Fix (802): Changed SDF reporting records from string type to waveform type to allow >40
  character strings to be reported to SDF MEDM screens.
416
- Bug Fix (763):  rampMuxMatrix fix to screen size and background color for fractional settings.
417
418
- Bug Fix (799): Added a third output, STATE, to the DacKillIop part. This fix was also made in 
  branch-2.8 post release 2.8.8.
419
- Bug Fix (791): Raise ADC waits to ADC0 23 mu-sec, others 5 mu-sec
420
421
- Bug Fix (792): Wait for RT startup to complete in start scripts
- Bug Fix (759): Fix DAQ calculation of science frame 'Fast Chans' on stand-alone
Keith Thorne's avatar
Keith Thorne committed
422
423
- Bug Fix (743): Increase ADC0 allowable wait to 20 mu-sec
- Bug Fix (751): Modified install script.
424
425
426
==================================================================================================
Changes for V2.9
==================================================================================================
427
- Bug Fix (776): EXC part not operating properly under all selection conditions.
Rolf Bork's avatar
Rolf Bork committed
428
429
430
431
432
433
434
435
436
- Bug Fix (756): Added monitoring of the filter module 'Decimation' and 'Hold Output' settings as
  part of the common filter SWSTAT EPICS record. This required changes to:
  -  main.c, skeleton.st and fm10Gen.c to add the two extra bits.
  - In skeleton.st, moved the clr history and status to req diff bit up two to accomodate new
    switch monitors.
  - Modified the filter MEDM files to provide RED indicator next to 'GUARDIAN SET' related display
    icon to indicate when filter switch request != status.
  - Modified FILTALH.adl screen to monitor new bits.
  - Had to modify FiltCtrl2.pm to NOT pass these bits at control output port.
437
- Bug Fix (662): Fix Phase part to allow FE DAQ to record user settings.
438
439
440
- Bug Fix (556): Fix WfsPhase part to allow FE DAQ to record user settings.
- Bug Fix (732): AUTOCAL of 18bit DAC modules made the default compile option in feCodeGen.pl. This
  change also applied in branch 2.9.
441
442
- Bug Fix (505): Added warning bit (bit 10) to STATEWORD to be set if either the Coeff File or
  DAQ config file has changed. This fix also added to branch-2.9.
443
444
- Bug Fix (772,773): SDF save issues bug fixes perfomed in src/epics/seq/main.c. Fix also done in
  branch-2.9.
445
- Bug Fix (729): Errant value if input to TrueRMS = 0. Bug also fixed in branch-2.9.
446
447
448
- Bug Fix (764): Modified RampMuxMatrix part to only check load ramp command at 16Hz after a
  16Hz boundary.  This allows load command to be captured by DAQ before being cleared by the FE
  code. Fix also applied to V2.9.
449
450
451
- Bug Fix (732,765): Correct DAQD output for "status channel 2","status channel 3" to fix 
    formatting, speed-up - incremented protocol from 12.0 to 12.1
    - NOTE: Fix also made in branch-2.9
452
- Bug Fix (762): DAQ error bit of STATEWORD adjusted to set error at 4MByte/sec, previously 3.5.
453
454
455
456
457
- Bug Fix(758): Removed load matrix reset from being placed at the end of code cycle in RampMuxMatrix.pm.
  This is already done properly in the matrix part code itself and this added clearing can result
    in the race condition ie sometimes load matrix command ignored.
    - NOTE: Fix also made in branch-2.9 and branch-2.8 at the same time.
==================================================================================================
458
Changes for 2.9  - Initial test release
Keith Thorne's avatar
Keith Thorne committed
459
==================================================================================================
460
- Modified ADC overflow reporting, same as done for DAC outputs.
Rolf Bork's avatar
Rolf Bork committed
461
462
- Added capability to define engineering units, for both fast/slow channels, to be passed and to
  and recorded by DAQ system.
Rolf Bork's avatar
Rolf Bork committed
463
464
- Modified FiltCtrl.pm (Filter Module w/Control) such that is requires that all inputs be
  connected or build process will exit with error message.
465
466
467
468
469
470
471
- Modified DAC overrange reporting (Bug #722).
	- Removed ROLLING_OVERFLOWS compile option, which set EPICS record to report overrange per
	  second or accumulated overrange count.
	- Code now reports DAC overflows as both overrange/sec and accumulated overflows since last
	  overflow reset.
		- IFO:FEC-DCUID_DAC_OVERFLOW_DAC#_CHAN# = Overflows per second.
		- IFO:FEC-DCUID_DAC_OVERFLOW_ACC_DAC#_CHAN# = Accumulated overflow.
Rolf Bork's avatar
Rolf Bork committed
472
473
- Checking for Coeff and DAQ file changes, based on file CRC checking, has been moved out of the
  model sequencer code and into the model EPICS main.c program.
Rolf Bork's avatar
Rolf Bork committed
474
- As of SVN 3694, marked by this file submission to SVN, the reading of BURT files from the FE code
475
476
477
478
is supported. This is prodominantly handled by the src/epics/seq/main.c program.
Bug Fix - DacKillTimed and DacKillIOP parts: Parts ignored reset command while in fault mode,
  however, would remember the reset request and would reset as soon as fault cleared. This fix
  was also made to branch-2.8 prior to release V2.8.4.
479
480
481
- Bug #660 - Add daqd thread pid info to log files
- Bug #590 - Implement support for unsigned 32-bit integers for both fast and slow (EPICS) 
channels.  Added new RCG part, updated DAQ code and modified Dataviewer to handle new data type
482
483
484
485
486
487
488
- Added ADC timing diagnostic ie time between ADC rdy cycles. If errant, reported to stateword ADC
  bit. Current info also reported via /proc/modelname/status file. Note that this only affects IOP
  models.
- Modified the DAC FIFO error code. Error must now exist for two consecutive checks before turning
  off all DAC outputs. This affects IOP code only.
- Bug Fix (553) - Errant code produced when not all 16 inputs of Bit2Word part connected. Fix also
  applied to Branch-2.8.
489
490
- Bug Fix (621) - ADC part errant code if ADC part named incorrectly. Fix also applied to
  Branch-2.8 (SVN 3645).
491
- Bug Fix (595) - FMC2 part compiling improperly if not all inputs connected. This bug also fixed
492
  in Branch-2.8.
493
494
- Bug Fix: Model with EXC part fails to compile. Problem was that EXC part was not in
  list of signal sources. Bug also fixed in branch-2.8 (SVN 3621).
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
- Added support for EPICS longint record type. This is to be used as unsigned int to support
  unsigned int type for EPICS records being stored to DAQ. 
- Modified code for ADC/DAC overflow counters: now writes overflow counter whenever overflow
  detected vs once per second. Note: This change only affects models which have "accum_overflow"
  set in the parameter block. If this is not set, then code still updates counter once per second.
- Added overflow counters to auto-generated ADC monitor MEDM screens. (SVN 3606)
- Bug Fix: During testing, found that DACKILL IOP and TIMED parts would allow reset while
  fault condition at input.
- RCG parts in simLink/lib file updated to Matlab 2012b from various older versions.
- Bug Fix (#523): EPICS binary parts could take on values other than 0 or 1.
- Modified binary I/O read (SVN 3586). Now reads one card every code cycle to support reading
  of information from SUS hardware watchdog via digital line.
- Added warnings for unconnected subsystem part outputs.
- Bug fix: Use of PHASE and EzCa parts produced errors in DAQ .ini file for associated EPICS
           records.
        - File feCodeGen.pl modified to move EzCa part variables to end of shared mem header file
        - Phase part writing of EPICS channels fixed in fmseq.pl
- Bug fix (#515): In transition from Matlab 2010a to 2012b, some bus selectors were left without OutputSignals
  field in .mdl file, required by RCG to produce proper links. On RCG side, added check for this field
  and exit with error if it does not exist. See bug report on how to fix Matlab side.
Keith Thorne's avatar
Keith Thorne committed
515
516
517
518
519
520
521
- BugFix (#514): trend.cc modified to align trend frames to multiples of duration. Check that second 
  trends are in whole minutes (blocks are multiple of 60 seconds). Check that minute trends are in 
  whole hours (blocks in multiples of 60 minutes)
- fmseq.pl modified to not place extra space at end of line when writing EPICS channel names to
  DAQ .ini files. This did not affect the system, but LHO DAQ .ini file checker scripts had
  issues with it.
- Makefile.linux change: DACKILL PANIC was not being written properly to autoburt files.
522
- Added new watchdog part to control and monitor SUS hardware watchdog chassis.
Rolf Bork's avatar
Rolf Bork committed
523
============================
Keith Thorne's avatar
Keith Thorne committed
524
Changes for 2.8
525
============================
526
527
528
529
530
531
- Bug Fix. Turns out EPICS_SYNC record was being produced twice per model and used by two competing
  pieces of code. To fix this, added another EPICS record, EPICS_SYNC_TIME. 
	- IFO:FEC-DCUID_EPICS_SYNC = internal sync from RT code to EPICS sequencer at 8 hz. This
	  channel step from 0 to 14 in increments of 2.
	- IFO:FEC-DCUID_EPICS_SYNC_TIME = Produced by EPICS sequencer, is GPS time of EPICS update
	  at 8 Hz in the form second.msec.
532
533
- Changed the update rate of EZCA_WRITE tranmissions to same as EPICS sequencer rate of 8Hz. This
  had previously been throttled down to 2Hz to avoid overload of Beckhoff systems. 
Rolf Bork's avatar
Rolf Bork committed
534
- New Matrix part added (JB). This matrix part has ramping capabilities. See V2.8 release notes.
535
536
537
- Added ability to increase duration of trend frames in DAQ. Implemented with expanded config input
   - start trender <second-blocks> <minute-blocks>. 
   Defaults remain 60 (1 minute for sec, 1 hour for minutes). Max values about 1800.
Rolf Bork's avatar
Rolf Bork committed
538
539
540
541
542
543
- Added new subsystem block to CDS_PARTS, RT Links. This is to include parts which can access internal
  runtime parameters already maintained as part of the real-time core software. Initial parts in this
  area are:
	- GPS : Enhancement (Bugzilla 492): Modified old GPS part for a single output: time in GPS seconds. 
	- STATEWORD: Produced to support ODC diagnostics, has three single bit outputs.
	- MODEL_RATE: Outputs the runtime code rate.
544
545
546
- Added new Parameter block compile option: remoteGPS=1.
	- Built specifically for use on PEM at LHO mid stations, where IRIG-B time is not available.
	- Allows IOP module to get startup GPS seconds from another FE via its GPS EPICS record.
Rolf Bork's avatar
Rolf Bork committed
547
- Added new OSEM WD part to CDS_PARTS/WatchDogs: WD2.
548
	- Original WD part ANDs DC and RMS paths within the part, with a single FAULT output.
Rolf Bork's avatar
Rolf Bork committed
549
	- New WD part removes AND within part and brings DC and RMS fault indicators out as separate outputs. This
550
551
	  is to allow user to only use RMS trips, if desired.
- Two new DACKILL parts added: DACKILLIOP and DACKILLTIMED. See V2.8 release notes.
552
- Bug Fix (#456): Mark DACKILL part settings as RO in autoburt files.
553
554
- Bug Fix (#487): IPCx.pl modified to produce IPC EPICS error channel names using FEC-DCUID instead of
  model name information. 
Rolf Bork's avatar
Rolf Bork committed
555
556
557
- Synchronous acquisition of EPICS channels at 16Hz via DAQ network. 
	- RCG now produces a single DAQ .ini file, which contains all channels ie no longer a separate
	  EDCU .ini file.
558
559
560
561
562
563
	- GDS_TP screens updated to show number of EPICS DAQ channels below fast channel count.
	- As part of this change, performed some variable name cleanup. Previously, certain diagnostics were
	  passed to EPICS as an array (diags[15]). This was broken up into separate variables with more
	  meaningful names in the code. Also, a single variable, named 'diag', was used to pass IPC status
	  information. This was changed to ipc_stat, with EPICS variable changed from DIAG to IPC_STAT. This
	  change is also reflected in the autogenerated GDS_TP screen.
Rolf Bork's avatar
Rolf Bork committed
564
565
566
567
568
	- INSTALLATION NOTE: To run this code requires:
		- Newest iniChk.pl to be copied into site/ifo scripts area. Previously, this DAQ file checking 
		  code would return error if data rates in DAQ files were below 256Hz.
		- Removal of old EDCU file from DAQ master file. Failure to do this will result in DAQ not 
		  start running due to duplicate channel names.
569
570
571
572
- Filter Module memory change. Previously, RT code used a local copy of filter module EPICS data during execution of filter module code. This required copying of this data to/from EPICS shared memory at 16Hz to communicate to EPICS sequencer. This was changed such that RT code uses EPICS shared memory space directly, same as for other EPICS channels. Calls to move data between EPICS shared memory and local memory in controller.c (calls to subroutines in epicsXfer.c) were removed. Regression testing was performed on LHO DAQ test system on July 29, 2013.
============================
Post 2.7 and trunk bug fixes
============================
573
574
575
- Bug fix (bug 490) - On startup, some models have matrix input values locked to zero. Found to be due to
  improper initialization of local/remote control mask bits. Skeleton.st file modified to clear all of EPICS
  memory at startup. This bug fix was also part of release V2.7.2.
576
577
578
579
580
581
582
583
584
585
- Bug fix (bug 477) - Improper generation of DAC monitor screens when model contains mix of 16bit and 18bit 
  DAC modules. This fix also applied to release V2.7.1.

- Bug fix (bug 481) - Limit of 85 connections to DAQ raised to 170. When limit exceeded, DAQ status checking had 
  errors, resulting in all DAQ data being marked as bad.

- Bug fix (bug 482) - Contec module outputs set errantly on code startup after reboot. This fix also applied to
  RCG release V2.7.1.


586
============================
Rolf Bork's avatar
Rolf Bork committed
587
588
Changes for 2.7
============================
589

590
591
- Change to the default slope values for the Fast and the EDCU .ini DAQ channel configuration files.
  	The slope value is set to 3.0518e-04.
592
- Bug fix to IPCx.pm. Code was not generating EPICS screens properly when model does not include
593
  	subsystem name eg H1ASC, H1LSC. 
594
595
596
- Archived filter coeff file names were changed to use the GPS time instead of local time (bug #458).
	This requires working "tconvert" and /proc/gps support using the new Symmetricom driver.
	If either tconvert or /proc/gps is not found, the code would use local time as before.
597
598
599
600
601
602
- frame builder code has a maximum channel limit increased to 524288 (that is .5 * 1024 * 1024).
	Some internal data structures were eliminated, but there are still some old historic
	data structures remaining in the code from the days when the C++ library was not working
	properly in the reentrant code. Changes are planned to clean this up and eliminate more
	redundancy in order to shrink the memory footprint.
- frame builder code has a set of new daqdrc commands to configure and start a second full-res
Alexander Ivanov's avatar
Alexander Ivanov committed
603
	frame writer thread, to write frames in the "science" mode. The commands are:
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
	set science_frame_dir="/frames/science", "M-R-", ".gwf";
	start science-frame-saver;
	sync science-frame-saver;
	These mirror the commands for the main full-res frame writer (commissioning mode).
	Commands are only relevant for the frame writer and not for the DC or the NDS instances.
- frame builder code has new EPICS channels H1:DAQ-FW0_FRAME_SIZE and H1:DAQ-FW0_SCIENCE_FRAME_SIZE
	to show the size (in bytes) of the last frame file written to disk.
- frame builder code has CHAN_SAVED Epics record fixed (bug #454). This record is updated
	only on the frame writers, it is not updated on DC or NDS daqd instances.
- frame builder code has a new daqdrc command added. Command is "enable fckrs;" is intended to
  	be added to the data concentrator's daqdrc in order to enable new EDCU .ini file checking
  	functionality. This is related to the bug #440. If enabled this code will periodically
	check all EDCU .ini files for modification. If any modification is detected then the 
	corresponding DCU status is set to 0x8000 (this is a new value, in addition to the old
	0x4000 0x2000 0x1000 and 0xbad). IMPORTANT: this code requires two things in order to
	run as intended:
	1) daqdrc must start the profiler (must contain "start profiler;" command)
	2) the "master" file must have all EDCU .ini lines listed after all fast DAQ .ini lines
Alexander Ivanov's avatar
Alexander Ivanov committed
622
	The code checks one EDCU .ini file per second, so it will take a few seconds to detect a
623
	particular EDCU .ini file change.
Rolf Bork's avatar
Rolf Bork committed
624
- Makefile.linux modified to exclude some filter module channels from EDCU.ini files,
Rolf Bork's avatar
Rolf Bork committed
625
626
627
628
629
630
	as outlined in LIGO-T1300494. This also fixes bugzilla #460.
- controller.c file modified to set DACKILL when DAC timing error detected. This will cause 
  	all DAC outputs to go to zero. To reset, must restart the code. This was done to avoid
	channel hopping of DAC channels.
- Filter module w/control (FMC) part .pm and MEDM screens changed. EPICS channel added for MASK 
	setting and now reflected on new screen template.
Rolf Bork's avatar
Rolf Bork committed
631
- New filter module EPICS channels added as described in LIGO T1300494.
Rolf Bork's avatar
Rolf Bork committed
632
633
	- skeleton.st and fmseq.pl modified to automatically set filter module SWSTAT.HIGH alarm levels to 0x7fff.
	- Makefile.linux changed to exclude this channel in burt, such that burt cannot reset it.
Rolf Bork's avatar
Rolf Bork committed
634
635
- Bug Fix (461) TRAMP moved to top of burt restore settings for filter modules.
============================
Rolf Bork's avatar
Rolf Bork committed
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
Changes for 2.6.2
============================
- Makefile.in fixed to point to framecpp library in /opt/rtapps instead of /usr/local
- DAQ reload problem fixed ie reloading same file could result in CRC errors. Fix was in daqLib.c
- RCG compiler fix. If multi-output part, such as matrix, placed at top level, with inputs to subsystem
  part, which in turn connected to multiple parts within the subsystem, could result in errant
  connections.
- Bug fix for ADC/DAC overflow detection. Code would not detect overflow errors on positive rail side as
  alarm limit was set to 32768, but max reading from ADC on positive rail is limited to 32767.
- Redefinition and additons to EPICS STATE_WORD:
        - Bit 0: FE Code running (no change)
        - Bit 1: Timing error (no change to bit location; more items may cause this error. All errors:
                - IRIG-B time offset from second mark greater/less than limits.
                - ADC duotone time offset from second mark greater/less than limits.
                - Time between code cycles (new adc data rdy) greater/less than limits.
                - Code execution time greater than alloted time.
        - Bit 2: ADC (changed for I/O) error. In either of the following cases, realtime code will exit.
                - Data no longer arriving on time from one or more ADC modules.
                - ADC channel hopping detected.
        - Bit 3: DAC module timing error.
        - Bit 4: DAQ error (no change).
        - Bit 5: IPC error: (no change).
        - Bit 6: AWG no running error.
        - Bit 7: DAC Kill error.
        - Bit 8: EXC - one, or more, EXC signals are selected and active ie awg is producing injections.
        - Bit 9: Overflow. One, or more, ADC or DAC channels are being driven beyond their range.
============================
Changes for 2.6.1
============================
Rolf Bork's avatar
Rolf Bork committed
665
666
667
- Added IPC receiver diagnostics code, as discussed in CDS meeting 12/12/12. This was also added in branch2.6 for
  inclusion in release V2.6.1.
- Bug fix for Acces I/O 8 and 16 channel relay I/O cards. Also added to branch2.6 for inclusion in release V2.6.1.
668
===========================
669
Overview of changes for 2.6
670
===========================
671
672
673
674
675
676
- mx_stream and daqd changes to improve OpenMX to MX communication
- Bug Fix: changed front-end filter module to the Epics variable update rate. It used to
  read and write these variables on every front-end cycle. There was a problem with this arrangement
  detected at AEI in Hannover on the AMD hardware. We needed to slow down the rate of the communication,
  which is done through the shared memory, in order to fix a dramatic slow down in the front-end
  running speed, which was seen right after the code upgrade.
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
- IPC code generation portion of feCodeGen.pl moved to IPCx.pm (part of cleanup)
- Bug Fix: Memory size mismatch for TP table between awgtpman and daqLib.
- RCG_HOST environment variable added. This setting will override the hostname in the user model to allow running
  on different machines in test stands ie startup command will now have this computer name to check on startup.
- General cleanup based on compiler warning messages; warning messages turned back on to provide info the build logs.
- Added C99 compile flag to Makefiles. Changed O3 optimization flag to just O after some errors at 40m lab in their
  C code which generated large arrays.
- Increased max IPC channels per net or computer to 256 (previously 64). Added RCG compile time error if this is exceeded.
- Implemented TP upper limit checking ie ensure total DAQ network rate/model <4MByte/sec. This is a coordinated effor
  between daqLib.c and awgtpman ie daqLib passes size to awgtpman, which will reject further requests if >4MByte/sec.
- Added IPC name and sender model name to IPC info tables for additional diagnostics vi dmesg and /proc files.
- Added DAC buffer size info to /proc. EPICS Dac diag info only indicates if DAC buffer data size is incorrect. Diags to /proc
  file indicate if this is an overflow or underflow condition.
- Bug Fix (#400): RCG Makefile now checks for undefined symbols in the kernel object and throws error. 
- Bug fixes for 394, 395, 404, 406, 407, 402, 409
- Added new filter module w/control 2 part. Allows setting of offsets, gains, and ramp times and switching of input, offset, 
  and output switches from within model.
- Changed Dolphin network cache flushing to only occur after last write in list. This takes much less time than fix for 2.5.1,
  where cache flushing occurs after every write. Tested ok with test model sending 200 signals at 32K.
- Check added to verify CPU core is not in use by another model prior to loading new one. Requires a kernel patch (see .patch
  files).
- EPICS update rate increase from 4-5Hz to 16Hz, triggered by RT code. New EPICS channel (IFO:FEC-DCUID_EPICS_SYNC) updated (0-15) 
  at 16Hz for use by scripts, if desired.
- Bug fix for models containing both 18bit and 16bit DAC modules. However, it is required that 18bit DAC modules show up on
  the PCIe bus before 16bit modules in the I/O chassis.
===========================================================
Tagged release 2.5.1 from branch 2.5
===========================================================
- Cache flushing added to Dolphin network writes. This cleared IPC errors on receivers.
===========================================================
Tagged Release 2.5, with final set of changes listed below.
==========================================================
- Bug fix for new Contec BIO cards - Code not addressing boards properly if user model skipped cards in I/O chassis.
- Reinstate SQRT part in CDS_PARTS - got lost along the way.
- Channel hopping error detection now results in code exit ie dangerous to keep running if ADC channels are mixed up.
- Remaining bug fixes from test results can be found in the SVN log.
===========================
714
Overview of changes for 2.5 - Branch released 3/19/12 for testing.
715
===========================
716
- Additional checks in RCG to verify that user has correctly numbered ADC/DAC cards.
Rolf Bork's avatar
Rolf Bork committed
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
- OSEM IOP Watch Dogs:  Added susWatchdogFilters.c in the src/drv directory.  Added the SUS_IOP_WD.mdl and OSEM_WD.mdl models to src/epics/simLink/lib.  The OSEM_WD.mdl is a model which watches a single OSEM input and if the RMS becomes to large, or the DC value is too high or low, sets an output value of 0, indicating to stop running.  The SUS_IOP_WD.mdl chains 6 of the OSEM_WD.mdl parts together for a top stage.  The susWatchdogFilters.c contains hard coded a 100 mHz high pass filter and 10 mHz low pass filter used by the OSEM_WD.mdl model.  These parts are intended to be used in an IOP connected to suspensions, to watch the top stage OSEMs for signs of excessive motion and send a signal to the new cdsDacKill part.
- Guardian Support: A new monitor has been added to src/epics/seq/main.c to monitor
  alarm setpoints to support Guardian scripts. This monitor, once per second:
  - Performs a CRC checksum on all EPICS .HSV and .LSV (High/Low alarm settings)
    and transmits this as an EPICS channel (IFO:FEC-DCU_ID_GRD_ALH_CRC). This is
    intended to be read by the Guardian to verify that the code is monitoring the
    correct state.
  - Checks all EPICS channels .STAT (Alarm status) field. The number of HIGH/LOW
    alarms is sent out via two EPICS channels, one for setpoint (operator input)
    errors ie setpoints outside set limits (IFO:FEC-DCU_ID_GRD_SP_ERR_CNT), and
    another for total readback channels outside limits (IFO:FEC-DCUID_GRD_RB-ERR_CNT).
    There are an additional 10 EPICS channels to report the name of the channel that
    in an alarm state, 10 for reporting setpoint errors (IFO:FEC-DCUID_GRD_SP_STAT(0-9))
    and 10 for reporting readback errors (IFO:FEC-DCUID_GRD_RB_STAT(0-9));
  - New filter module screens, with additional related display button (GUARDIAN SET),
Rolf Bork's avatar
Rolf Bork committed
732
733
734
    which calls up a new screen with filter module alarm setpoints for Guardian. 
    Backgrounds for setpoints also changed to black w/alarm color mode to have 
    setpoint alarms display in Red if not within the prescribed range.
Rolf Bork's avatar
Rolf Bork committed
735
736
737
738
739
740
741
742
743
- Bug fix: If ADC input connected to Filter Module w/control, signal name and 
  values would not be added to autogenerated ADC monitor screens. 
- Bug fix: Possible for two, or more, user models to write to the same DAC channel. 
  To avoid this, code now registers for DAC channels on startup, and, if DAC 
  channel is already in use by another application, the code exits, with
  error message sent to dmesg, with offending DAC card(s) and channel number(s).
- cdsDacKill part added. This part, along with controller.c changes, allows user
  models to communicate DAC shutdown info directly with code actually writing
  the DAC outputs. This was added to allow user watchdogs to kill DAC outputs
744
745
  directly at the source of the DAC output code. Only one (1) of these parts is
  allowed per user model and RCG will kick out error if >1 defined.
Alexander Ivanov's avatar
   
Alexander Ivanov committed
746
747
748
749
750
751
752
- Fixed filter module on/off switching handoff between the Epics buttons
  and the control input. This applies to the filter module with controls
  only. Filter module can be turned on using the control input bit and this
  state is kept even when the bit is cleared in the mask input. Also
  the Epics button will not control a request bit for a filter if 
  it is masked out to be controlled through the control input programmatically.
- Added new frame builder record, e.g. C0:DAQ-FB0_CHANS_SAVED
753
  to display the total count of saved channels in full frames.
Alexander Ivanov's avatar
   
Alexander Ivanov committed
754
- Added new cdsParameter "no_zero_pad=1" can be used to
755
756
  stop zero padding DAC data. This is usefull if sending a flat DC
  signal to a DAC channels is desired.
Alexander Ivanov's avatar
   
Alexander Ivanov committed
757
- Fixed broken "biquad=1" flag handling code.
758
- New parts for CONTEC6464 binary I/O modules for use in user application
Rolf Bork's avatar
Rolf Bork committed
759
760
  models - NOTE part for use in IOP is not changed and code is still 
  backward compatible with user models using the original part.
761
762
763
764
- DAC names no longer matter ie code only check card_num=
- skeleton.st updated to check if DAQ .ini has changed since
  last changed since last file load to front end.
===========================
Rolf Bork's avatar
Rolf Bork committed
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
Bug fix for 2.4.2
===========================
- I/O bug fix: Incorrect size of ADC/DAC down/up sampling filter history buffers.
  If more than 3 ADC modules defined in user model, ADC downsampling
  history would bleed into DAC upsampling filter history, essentially causing
  a "short" from ADC input to DAC output. Code fix was to use MAX_ADC_MODULES and
  MAX_DAC_MODULES (12), as defined in cdsHardware.h, which has been used for
  sizing all other ADC/DAC related arrays.
===========================
Bug fix for 2.4.1
===========================
- map.c has fix added for DAC modules with PEX8111 interface chips ie
  all those boards that are native PCIe and not PCM cards (older revs).
- Reinstated DAC DMA as default mode after fix above. Since DAC buffer
  now used as a buffer, of sorts, moved DMA code into DAC write area.
===========================
Alexander Ivanov's avatar
   
Alexander Ivanov committed
781
782
783
784
Overview of changes for 2.4
===========================

- Changed all remaining floats into doubles in Epics sequencers.
Alexander Ivanov's avatar
Alexander Ivanov committed
785
- Improved generated autoburt request file, where all readbacks are
Alexander Ivanov's avatar
   
Alexander Ivanov committed
786
  marked readonly now.
Alexander Ivanov's avatar
Alexander Ivanov committed
787
788
789
790
791
792
793
- Added new cdsParameters setting: biquad.
  biquad=1 forces all filter modules as well as ADC/DAC up/down filters and
  DAQ downsampling filters to be calculated using biquad form.
- Until DMA issues with General Standards DAC modules are resolved the IOP code
  has direct DAC write code enabled, DMA is not used to write to the DAC modules.
- DAQ decimation filtering and oversampling filter is done using biquad form IIR filters,
  if cdsParameters block has biquad=1.
Alexander Ivanov's avatar
   
Alexander Ivanov committed
794
795
796
- Do not update DAQ configuration file (INI file) during installation,
  move it away into archive and install new file, generated based on DAQ
  chanenls list in the RCG model.
Alexander Ivanov's avatar
Alexander Ivanov committed
797
- New DCU Id Epics channel, e.g. L1:SUS-ITMX_DCU_ID
Alexander Ivanov's avatar
   
Alexander Ivanov committed
798
799
800
801
802
803
804
805
806
807
808
809
810
- New FE overall state word Epics channel, named e.g. L1:FEC-28_STATE_WORD,
  where the lower 7 bits are set as follows:
  	FE stopped		-	bit 0
	Code timing problem	-	bit 1
	I/O problem		- 	bit 2
	AWG dead		-	bit 3
	DAQ dead		- 	bit 4
	IPC errors detected	-	bit 5
	A/D or D/A overflowed	-	bit 6
- Source code has ./configure script now, which needs to be executed once
  before cmopilation of RCG models can be done. Build can be done in a 
  directory separate from the source now. RCG source can be made read-only now.
- Do not create backup Makefiles in the FE build directory.
811
812
813
- DAQ upgraded from 2MB/sec to 4MB/sec.
- DAQ channel list in the RCG models support.
- DAQ file check performed at run time.
Alexander Ivanov's avatar
   
Alexander Ivanov committed
814
815
816
817
818
819
- Oscillator and filer module spline ramping
- Filter module spline offset ramping
- Spline ramping phase stability improvements
- Mask input for a filter module with control
- New FE code timing/daq/GDS monitor screens
- FE code watchdog in EPICS sequencer (state word bit 0)
Alexander Ivanov's avatar
Alexander Ivanov committed
820
- FPU SSE instructions underflows were turned off and floating point
821
822
823
  denorms were forced to zero by setting FZ and DAZ bits in the CPU MXCSR register.
  +-1e-20 limiting code was removed from the filter code.
- NOTE: DAQ INI file checker script src/epics/util/iniChk.pl needs to be installed
824
825
  in a location on PATH for a front-end system, before the Epics process is
  restarted. A good location is /opt/rtcds/llo/l1/scripts/iniChk.pl.
826
827
828
- NOTE: Extra EXC part is broken in this release, will be fixed in the next release.
  It was discovered that this part is not working correctly and needs debugging.
  Filter module excitation works fine as before.
829
830
- Added post-build script execution at the end of install step.
  T1100340-v1 https://dcc.ligo.org/cgi-bin/private/DocDB/ShowDocument?docid=63485
831
832
833
834
835
- When a brand new model is compiled and started for the first time there is no
  existing burt snapshot for it to restore and it used to be that the operator needed
  to press the BURT button on the GDS screen within 10 seconds in order for the FE kernel
  module start running or else the FE execution failed. This was fixed by writing 1 into
  BURT_RESTORE channel within the generated startup script.
836
837
838
839
- Linux kernel 3.0.8 (patched with patches/linux-3.0-cs.patch and configured with
  patches/linux-3.0.8-cs.config) was tested at LLO and wwas found working just as well as
  the currently used 2.6.34.1 kernel. mbuf driver (src/drv/mbuf) was modified to
  compile on 3.0.8 kernel.
Alexander Ivanov's avatar
Alexander Ivanov committed
840
841
842
843
844
845
- New Epics channel added to show the total number of testpoint selected L1:FEC-7_TP_CNT.
- Added DAC Duotone  measurement feature along with the selection switch L1:FEC-7_DACDT_ENABLE.
- The startup script now looks for an optional safe.snap file, e.g.
  /opt/rtcds/llo/l1/target/l1lsctest/l1lsctestepics/burt/safe.snap
  and burt restores this file instead of the latest burt snapshot.

Alexander Ivanov's avatar
   
Alexander Ivanov committed
846

Gerrit Kuehn's avatar
Gerrit Kuehn committed
847
848
849
850
851
Overview of changes from 2.3 
============================
Bug Fixes:
- fixed rogue testpoints shown up at AEI/GEO and LLOLSC

Gerrit Kuehn's avatar
Gerrit Kuehn committed
852
853
854
855
New Feature:
- added flip_signals parameter to make working with buffered and unbuffered
  aa/ai filters easier

Gerrit Kuehn's avatar
Gerrit Kuehn committed
856
857
858
Overview of changes from 2.1 to 2.3
===================================

Rolf Bork's avatar
Rolf Bork committed
859
860
861
862
863
864
865
866
867
Bug Fixes:
- daqLib.c fixed to support up to 256x decimation for DAQ channels. Previous versions only
provided proper decimation to 32x.
- FiltCtrl.pm bug fix to provide all filter module switch setting bits at status output.
- Bit2Word.pm bug fix.
- controller.c, map.c and map.h changed to support double buffer for DAC outputs. This fixes a bug where
a race condition could exist between the IOP loading new DAC data into the same buffer and at the same time
as the DAC module was trying to DMA data out of that buffer.
- Set the '-2' awgtpman flag for a 4K system in top level Makefile.
Rolf Bork's avatar
Rolf Bork committed
868
869
870
871
- Fixed biquad filter module operation.
- Change inputFilter part to use extensions of GAIN,POLE, ZERO instead of K,P,Z.
- RMS part to have limits of +/-200000 instead of +/-2000.

Rolf Bork's avatar
Rolf Bork committed
872
873
874
875
876

New Additions:
- Updated dataviewer with support for 32K and 64K resolution data viewing.
- Various updates to support new longer signal names (Max size, with extensions, 60 chars).

Alexander Ivanov's avatar
 
Alexander Ivanov committed
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
Overview of changes from 2.0 to 2.1
==================================
New Branch, which includes:

New Features:
1) RCG provides default code rate in coeff.txt files for use by foton.
2) New IIR filter part based on BiQuad filter algorithm as provided by M. Evans.
3) Ability to include a user-defined library part in an RCG model.
4) Support for connection of buses between multiple layers of the model, not just on save level.
5) Auto-generated EPICS.ini files for each model.
6) Check of 16bit DAC module FIFOs for proper clocking plus new error bit added to GDS_TP screens..
7) Change of _DAQ to _DQ tag on filter modules in DAQ .ini files.

Bug Fixes:
1) Fix to EPICS EZCA part to:
- compile correctly within subsystem parts.
- Use pvPut instead of EZCA for performance reasons (plus EZCA not supported in latest EPICS).
2) Removal of SVN tag from BURT file ie BURT restore would overwrite latest SVN tag).
895
3) Fix to control model DAC status info on GDS TP screens (false error indicator).
Alexander Ivanov's avatar
 
Alexander Ivanov committed
896
897
898
899
4) Change in CDS_PARTS.mdl bus selector part to set use to "Require input signal names to match signals below", instead of "Inheri
t bus signal names from input ports". This is required to make BUS parts work with new, multi-level BUS parser in RCG.