advLigoRTS issueshttps://git.ligo.org/cds/software/advligorts/-/issues2024-03-12T22:04:11Zhttps://git.ligo.org/cds/software/advligorts/-/issues/618The RCG should emit more structured data about the model's IPCs and filter mo...2024-03-12T22:04:11ZEzekiel DohmenThe RCG should emit more structured data about the model's IPCs and filter modules, so we don't need as many one-off scripts.`librts` scans a header file to find filter information, and this breaks every so often because we change that headers structure.
We also have to scan medm or build files to list receivers when we remove an IPC sender.
The `.ini` refl...`librts` scans a header file to find filter information, and this breaks every so often because we change that headers structure.
We also have to scan medm or build files to list receivers when we remove an IPC sender.
The `.ini` reflects the state of the slow and fast data channels for a model, and IPCs/filters should emit a similar file.advligorts 5.2.0Ezekiel DohmenEzekiel Dohmenhttps://git.ligo.org/cds/software/advligorts/-/issues/592post_build_script.py fails the install when the `host=` parameter is not first.2023-09-20T16:57:30ZEzekiel Dohmenpost_build_script.py fails the install when the `host=` parameter is not first.```
...
Installing GDS node config file...
Installing auto-generated DAQ config file...
Running post-build script...
Traceback (most recent call last):
File "/usr/share/advligorts/src/src/epics/util/post_build_script.py", line 535, in...```
...
Installing GDS node config file...
Installing auto-generated DAQ config file...
Running post-build script...
Traceback (most recent call last):
File "/usr/share/advligorts/src/src/epics/util/post_build_script.py", line 535, in <module>
read_tree(root_block, (model_name[2:5].upper(),))
File "/usr/share/advligorts/src/src/epics/util/post_build_script.py", line 491, in read_tree
read_tree(node, name_so_far)
File "/usr/share/advligorts/src/src/epics/util/post_build_script.py", line 394, in read_tree
default_subs.append(["#DATA_RATE#", dict_of_params['rate']])
KeyError: 'rate'
make: *** [Makefile:161: install-x2huddlesei1] Error 1
1 of 1 models failed to install: x2huddlesei1
```https://git.ligo.org/cds/software/advligorts/-/issues/564Filter modules and filters integrated into parts have their specification spr...2023-04-13T17:03:57ZEzekiel DohmenFilter modules and filters integrated into parts have their specification spread over the model header.Instead, they should be consolidated into a single structure.Instead, they should be consolidated into a single structure.https://git.ligo.org/cds/software/advligorts/-/issues/458Sequencer issues2022-10-11T00:20:43ZJonathan HanksSequencer issuesThe 5.0 sequencer has issues.
* cannot select the table view (table selection)
* cannot select a wildcard pattern (show all/substring)
* empty fec.snap (is this an issue)?The 5.0 sequencer has issues.
* cannot select the table view (table selection)
* cannot select a wildcard pattern (show all/substring)
* empty fec.snap (is this an issue)?Jonathan HanksJonathan Hankshttps://git.ligo.org/cds/software/advligorts/-/issues/440RCG: cdsFunctionCall Needs to be more dynamic in how it searches for .c files2022-09-07T20:24:00ZEzekiel DohmenRCG: cdsFunctionCall Needs to be more dynamic in how it searches for .c files`cdsFunctionCall`s have an absolute path associated with finding the `.c` file.
Most of these `.c` files are prefixed with with variable path prefixes. Such as `$CDS_SRC/LOW_FREQ_DEMUX.c`
Some still have an absolute paths:
`./cal/comm...`cdsFunctionCall`s have an absolute path associated with finding the `.c` file.
Most of these `.c` files are prefixed with with variable path prefixes. Such as `$CDS_SRC/LOW_FREQ_DEMUX.c`
Some still have an absolute paths:
`./cal/common/models/CAL_FIR2_MASTER.mdl:890: Description "inline user_fir /opt/rtcds/userapps/release/cal/common/src/FIR_2H_INV_SENSING.c"`
We should probably move to a search path(s) method in finding `.c` files (or functions).
This might not work if we have multiple `.c` files with the same names.https://git.ligo.org/cds/software/advligorts/-/issues/424Control models should't need to know the card number for DACs/ADCs2023-01-04T20:51:15ZEzekiel DohmenControl models should't need to know the card number for DACs/ADCsWhen DAQ card types are changed (ex. 18 bit -> 20 bit) card numbers have to be updated across all control models. Forgetting one model could cause a model to write DAC output to unexpected cards.
One idea would be to have a string ID t...When DAQ card types are changed (ex. 18 bit -> 20 bit) card numbers have to be updated across all control models. Forgetting one model could cause a model to write DAC output to unexpected cards.
One idea would be to have a string ID that control models use, and the IOP maps it to actual HW. That way when a card is removed/replaced from the system, the build can fail a model trying to use a removed card.
![image](/uploads/e7f3ce398b4361fadfe1c29fb76c321c/image.png)advligorts 5.2.0https://git.ligo.org/cds/software/advligorts/-/issues/360RCG: Some problems with library links2022-02-18T01:06:56ZErik von ReisRCG: Some problems with library links1. There's no check if there are infinite library link loops.
2. When a deep link is used to subsystems which are not top systems, the RCG simply takes the first subsystem it finds with the right name. So if there are nested subsystems...1. There's no check if there are infinite library link loops.
2. When a deep link is used to subsystems which are not top systems, the RCG simply takes the first subsystem it finds with the right name. So if there are nested subsystems in a library with the same name, but different parent subsystems, the RCG might link to the wrong one, leading to an incorrect model.https://git.ligo.org/cds/software/advligorts/-/issues/347RCG: 'Matrix' part no longer compiles2022-04-14T16:34:14ZErik von ReisRCG: 'Matrix' part no longer compiles<partnamne>_mask variable is expected but not created. Either part should be dropped from library or fixed. It apparently isn't used at the sites anymore.<partnamne>_mask variable is expected but not created. Either part should be dropped from library or fixed. It apparently isn't used at the sites anymore.https://git.ligo.org/cds/software/advligorts/-/issues/346Default part names ought to compile2022-01-20T01:54:20ZErik von ReisDefault part names ought to compilePart names created when copying from CDS_PARTS ought to compile without being changed.Part names created when copying from CDS_PARTS ought to compile without being changed.https://git.ligo.org/cds/software/advligorts/-/issues/345User model running on top of virtual user iop does not get a cycle from mbuf2022-01-20T02:22:15ZErik von ReisUser model running on top of virtual user iop does not get a cycle from mbufUser model hangs on start looking for the cycle value for the first ADC to change
controllerAppUser.c:396
Apparently a virtual user mode IOP does not bother to write even fake IOP data?User model hangs on start looking for the cycle value for the first ADC to change
controllerAppUser.c:396
Apparently a virtual user mode IOP does not bother to write even fake IOP data?https://git.ligo.org/cds/software/advligorts/-/issues/339RCG: ADCs can't be directly linked to bus concentrator2023-02-09T04:33:11ZErik von ReisRCG: ADCs can't be directly linked to bus concentratorSee FRS here:
https://services1.ligo-la.caltech.edu/FRS/show_bug.cgi?id=11819See FRS here:
https://services1.ligo-la.caltech.edu/FRS/show_bug.cgi?id=11819Ezekiel DohmenEzekiel Dohmenhttps://git.ligo.org/cds/software/advligorts/-/issues/293Change models in src/rcgtest/models to MATLAB r2019a2022-04-14T16:34:15ZKeith ThorneChange models in src/rcgtest/models to MATLAB r2019aSome of the test models for the ATS in src/rcgtest/models were saved by Rolf on a laptop running MATLAB r2021a (or whatever has Simulink 10.3). We need to re-save these files under MATLAB r2019a so we can use them more widelySome of the test models for the ATS in src/rcgtest/models were saved by Rolf on a laptop running MATLAB r2021a (or whatever has Simulink 10.3). We need to re-save these files under MATLAB r2019a so we can use them more widelyKeith ThorneKeith Thornehttps://git.ligo.org/cds/software/advligorts/-/issues/286Investigate combining meta-data and data2023-11-20T21:51:17ZJonathan HanksInvestigate combining meta-data and dataWe should look at how to bring the meta-data into the main data stream. This issue is being opened to track some thoughts.We should look at how to bring the meta-data into the main data stream. This issue is being opened to track some thoughts.Jonathan HanksJonathan Hankshttps://git.ligo.org/cds/software/advligorts/-/issues/233Modify RCG model make, install to work with linux kernel 5.10 / Debian bullseye2021-08-23T21:00:51ZKeith ThorneModify RCG model make, install to work with linux kernel 5.10 / Debian bullseyeUpdate the RCG model make, make install to work with linux kernel 5.10
known items
- update src/fe/timing.g to support change to 64-bit timekeepingUpdate the RCG model make, make install to work with linux kernel 5.10
known items
- update src/fe/timing.g to support change to 64-bit timekeepingKeith ThorneKeith Thornehttps://git.ligo.org/cds/software/advligorts/-/issues/225Create initial /etc/advligorts/systemd_env file during install2022-04-14T16:34:17ZKeith ThorneCreate initial /etc/advligorts/systemd_env file during installThe systemd scripts for awgtpman, etc. do not use /etc/advligo/env but instead use /etc/advligo/systemd_env (and perhaps /etc/advligo/systemd_env_hostname ). Because of this, awgtpman will not run after a initial advligorts-cymac instal...The systemd scripts for awgtpman, etc. do not use /etc/advligo/env but instead use /etc/advligo/systemd_env (and perhaps /etc/advligo/systemd_env_hostname ). Because of this, awgtpman will not run after a initial advligorts-cymac install - see [TST log 14366](https://alog.ligo-la.caltech.edu/TST/index.php?callRep=14366).
The installer should create an initial /etc/advligorts/systemd_env with just SITE and IFO in ithttps://git.ligo.org/cds/software/advligorts/-/issues/180advligorts-cymac package needs dependency on fuser2022-04-14T16:34:19ZKeith Thorneadvligorts-cymac package needs dependency on fuserThe rts-epics systemd scripts use the 'fuser' command internally. However, this utility was not present after doing an advligorts-cymac package install. I subsequently did an 'apt-get install psmisc' to remedy itThe rts-epics systemd scripts use the 'fuser' command internally. However, this utility was not present after doing an advligorts-cymac package install. I subsequently did an 'apt-get install psmisc' to remedy itJameson Rollinsjameson.rollins@ligo.orgJonathan HanksJameson Rollinsjameson.rollins@ligo.orghttps://git.ligo.org/cds/software/advligorts/-/issues/152MATLAB files in RCG need to be accessible to users2023-04-07T02:00:15ZKeith ThorneMATLAB files in RCG need to be accessible to usersFor users to view/edit front-end models in MATLAB, all the MATLAB files in cds_user_apps and in the RCG need to be in the MATLABPATH
- The existing method is to call /opt/rtcds/rtscore/release/etc/rcg-user-env.sh at startup that adds sr...For users to view/edit front-end models in MATLAB, all the MATLAB files in cds_user_apps and in the RCG need to be in the MATLABPATH
- The existing method is to call /opt/rtcds/rtscore/release/etc/rcg-user-env.sh at startup that adds src/epics/simlink/lib and src/epics/simlink to MATLABPATH
This does not work at present because the RCG installation is buried locally on the boot server and DAQ machines.
--- The RCG install needs to be modified to place this files (or copies) to somewhere on /opt/rtcds/ so that can be seen from workstations. There is also the need to have the MATLABPATH modified. One way would be to create a smaller version of rcg-user-env.sh to only add the bits needed for users, and not the parts needed for RCG buildsJameson Rollinsjameson.rollins@ligo.orgJameson Rollinsjameson.rollins@ligo.orghttps://git.ligo.org/cds/software/advligorts/-/issues/148Models l1susetmx, l1susetmy fail to build with undeclared 'adc0' error2022-04-14T16:34:20ZKeith ThorneModels l1susetmx, l1susetmy fail to build with undeclared 'adc0' errorIn trying to build the L1 models, I have brought in all the updates to branch-L1, included the SUS models with all 20-bit DACs. These built and operate just fine on the old production RCG.
However, on the current one from buster-unstab...In trying to build the L1 models, I have brought in all the updates to branch-L1, included the SUS models with all 20-bit DACs. These built and operate just fine on the old production RCG.
However, on the current one from buster-unstable, both fail with errors like
```
/opt/rtcds/rtbuild/rcg-4.0.0/src/fe/l1susetmx/l1susetmx.c: In function ‘feCode’:
/opt/rtcds/rtbuild/rcg-4.0.0/src/fe/l1susetmx/l1susetmx.c:7476:20: error: ‘adc0’ undeclared (first use in this function)
ipcInfo[17].data = adc0;
^~~~
/opt/rtcds/rtbuild/rcg-4.0.0/src/fe/l1susetmx/l1susetmx.c:7476:20: note: each undeclared identifier is reported only once for each function it appears in
make[5]: *** [/usr/src/linux-headers-4.19.0-6-common-rtcds/scripts/Makefile.build:315: /opt/rtcds/rtbuild/rcg-4.0.0/src/fe/l1susetmx/l1susetmx.o] Error 1
make[4]: *** [/usr/src/linux-headers-4.19.0-6-common-rtcds/Makefile:1534: _module_/opt/rtcds/rtbuild/rcg-4.0.0/src/fe/l1susetmx] Error 2
make[3]: *** [Makefile:146: sub-make] Error 2
make[2]: *** [Makefile:8: all] Error 2
make[1]: *** [GNUmakefile:7: default] Error 2
make: *** [Makefile:53: l1susetmx] Error 1
```
This is also the files checked into cds_user_apps\trunkRolf BorkRolf Borkhttps://git.ligo.org/cds/software/advligorts/-/issues/53Mux and Buses Have Different Functionality Depending On Which Level They're D...2023-02-09T18:17:59ZErik von ReisMux and Buses Have Different Functionality Depending On Which Level They're Demuxed / SelectedFrom Bugzilla ticket #998
Jeff Kissell: 2016-03-28 15:01:52 PDT
While attempting to use a bus to cull together signals at the top level of the
model, tag them, then send the tag into the first-level sub-block of the model,
and separat...From Bugzilla ticket #998
Jeff Kissell: 2016-03-28 15:01:52 PDT
While attempting to use a bus to cull together signals at the top level of the
model, tag them, then send the tag into the first-level sub-block of the model,
and separate them in that level, I find different functionality between mux
parts and bus parts.
The bus has the advantage of being able name signals and reorder them as
necessary, so I started with using that. However, unbussing one level down
throws back connection errors (and those errors are difficult to parse).
Joe suggests if I just replace the but with a mux, it works. While this is an
OK band-aid, it means I lose the functionality of being able to name and
reorder signals.
What makes it further confusing:
- If you use a bus creator and selector system with an ADC part, you can unpack
the bus at an arbitrarily deep level. This is done, for example, in the
end-station PEM models.
- If you use a bus creator and selector system with any part, and unpack on the
same level as the signals were bus, all works well. This is done, for example,
in the top level of the SUS models, in the mid-levels of the ISI models, etc.
In summary,
- the bus and mux should either have exactly the same functionality (and
essentially become the exact same part, and one could remove on or the other),
- if we must retain different functionality, they should be MUCH more clearly
distinguishable (currently the only distinction is bus' little white bar),
- and the use-cases must be distinct and consistent given what parts can be /
are plugged into it
If none of the above is possible, then *at least* but in a doc block in the
CDS_PARTS library that explains the different uses, and make the RCG put out a
more useful error to the command line suggesting that the problem is the mux /
bus usage rather than some poorly connect / over written ADC channel.
Keith: 2016-03-29 14:15:33 PDT
Created attachment 186 [details]
common [ccodeio.h](/uploads/53904edaa419aa44a25758b5d9a01888/ccodeio.h)
Rolf: 2017-01-25 16:34:10 PST
Matlab uses different description fields for Muxes and Buses, so not a straight
forward 'make them work the same'. I am looking into how to have the RCG
connect buses between any/all levels of a model. I have developed a basic
scheme with a prototype Python parser. Now need to figure out how to fit this
schema into the RCG perl based parser.advligorts 5.2.0