cmsgemos merge requestshttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests2022-04-14T17:52:08+02:00https://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/257Provide systemd services for the JobControl and DIM DNS servers2022-04-14T17:52:08+02:00Laurent PetreProvide systemd services for the JobControl and DIM DNS servers## Description
<!-- Describe your changes in detail -->
As the title says, this MR aims at providing systemd units for the xDAQ JobControl and DIM DNS server. This is one of the last steps to clean up the p5 setup before Run-3.
Additio...## Description
<!-- Describe your changes in detail -->
As the title says, this MR aims at providing systemd units for the xDAQ JobControl and DIM DNS server. This is one of the last steps to clean up the p5 setup before Run-3.
Additionally, the `gemdaq` and `gem` folders/prefix have been unified in the client applications as it was the case for `gemharware` previously.
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
Fixes #115
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
The xDAQ executive started by `gem-start-xdaq` is working like usual, all resources are found. The files packaged in the RPM are the expected ones. Tests pending at p5.
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.Laurent PetreLaurent Petrehttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/256Update external dependencies (xDAQ, IPBus, AMC13 libraries)2022-04-14T12:44:28+02:00Laurent PetreUpdate external dependencies (xDAQ, IPBus, AMC13 libraries)## Description
<!-- Describe your changes in detail -->
This MR updates the external dependencies (xDAQ, IPBus, AMC13 libraries) following the desire to update the p5 system as described in #209.
Additionally, the internal `cereal` dep...## Description
<!-- Describe your changes in detail -->
This MR updates the external dependencies (xDAQ, IPBus, AMC13 libraries) following the desire to update the p5 system as described in #209.
Additionally, the internal `cereal` dependency has been updated to the last stable release (it used to be taken from the `master` branch).
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
Closes #209
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
The software can still be built (CI and `gem904daq04`) and taking a run is seamless on the GE1/1 integration setup.
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.Laurent PetreLaurent Petrehttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/255Draft: Misc local readout application updates2022-05-04T13:57:36+02:00Laurent PetreDraft: Misc local readout application updates## Description
<!-- Describe your changes in detail -->
WIP
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!...## Description
<!-- Describe your changes in detail -->
WIP
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
Closes #205, first work on #208.
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
WIP
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [x] My change requires a change to the documentation.
- [x] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.Laurent PetreLaurent Petrehttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/254Add the DPDK infrastructure for the local readout2022-04-08T18:16:43+02:00Laurent PetreAdd the DPDK infrastructure for the local readout## Description
<!-- Describe your changes in detail -->
This MR adds the DPDK framework as a dependency to `cmsgemos` along with instructions on how to install it and the appropriate Mellanox drivers. Additionally, an example local read...## Description
<!-- Describe your changes in detail -->
This MR adds the DPDK framework as a dependency to `cmsgemos` along with instructions on how to install it and the appropriate Mellanox drivers. Additionally, an example local readout application is provided and packaged to RPM to prove that the feature is working.
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
Implements #201.
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
The CI passes, data can be taken on the GE1/1 integration setup with a local installation as well as with the `gem-example-dpdk` application built by the CI and packaged in the `cmsgemos-local-readout` RPM.
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [x] My change requires a change to the documentation.
- [x] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.Laurent PetreLaurent Petrehttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/253Try to reset the non-initialized GE1/1 trigger links2022-04-04T18:59:41+02:00Laurent PetreTry to reset the non-initialized GE1/1 trigger links## Description
<!-- Describe your changes in detail -->
This MR aims at fixing the very long-lasting trigger links initialization issue by issuing MGT resets in software. The final solution will come from the firmware realm, but these r...## Description
<!-- Describe your changes in detail -->
This MR aims at fixing the very long-lasting trigger links initialization issue by issuing MGT resets in software. The final solution will come from the firmware realm, but these routines should give us a better grasp on what to implement.
This MR is divided into two commits:
1. The first commit ensures that the MGT TX send a valid 8b10b stream by looking at the data with the MGT RX in loopback mode. Failing to send a valid bitstream for all 4 OptoHybrid MGT will result in the whole OptoHybrid being excluded from data-taking.
2. The second commit ensures that only OptoHybrids that have both their 2 links to the GEM back-end working are enabled in the EMTF path. MGT RX resets are issued in order to try to recover links. Failing to do this, the OptoHybrid will only be masked from the trigger path to the EMTF.
This code should be no-op on non-GE1/1 flavors.
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
<!-- ## Screenshots (if appropriate): -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [x] My change requires a change to the documentation.
- [x] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.Laurent PetreLaurent Petrehttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/252Put OH information into monitorable table as a popover2022-04-07T10:54:51+02:00Dylan Oliver TeaguePut OH information into monitorable table as a popover## Description
<!-- Describe your changes in detail -->
As the title suggests, this MR puts useful information about a specific OH in the monitoring suite in a popover for the OH table headings. Specifically it puts the display name and ...## Description
<!-- Describe your changes in detail -->
As the title suggests, this MR puts useful information about a specific OH in the monitoring suite in a popover for the OH table headings. Specifically it puts the display name and UID as information in the table
### Possible points of change
- Current the xgi code is the AMCMonitor not AMCMonitorWeb class for convenience, but if the separation between the classes is wanted to be enforced, this can be accommodated
- More information may be wanted to be included in the popover, discussion on this may be fruitful
- Related to the previous point, the info in the popover is the best interpretation of the writer thus some of this may be incorrect
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
Closes #198
## Screenshots
![image](/uploads/655b228147583a7319ef7260f10bb8f9/image.png)
Example of what the popover currently looks like
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.https://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/251Convert Monitor tables into Vue.js Components2024-01-17T12:30:38+01:00Dylan Oliver TeagueConvert Monitor tables into Vue.js Components## Description
<!-- Describe your changes in detail -->
As has been discussed in previous Issues and MRs, a more robust and modern web framework could help in code development and maintainability. This MR implements VueJS in the monitori...## Description
<!-- Describe your changes in detail -->
As has been discussed in previous Issues and MRs, a more robust and modern web framework could help in code development and maintainability. This MR implements VueJS in the monitoring suite.
VueJS, along with components, allows for more automated html to be produced in self contained code snippets (with the `.vue` tag). These are notable for allowing individual styling and reuseability across the code base. As a proof of concept, the main monitoring tables in the monitoring suite have been split into 2 Vue objects defined in `oh-table.vue` and `main-table.vue`.
Currently the includes for the vue and vue component javascript are only the gemmonitor area, we may want to put these in the gemutils `webDefault` function so the api is visible to all projects
Also, because of the mixed javascript/html format of the vue files, if a linter is wanted, something more sophisticated might be needed.
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
Closes #128
This also is a new MR for !131. Because of the name change of DAQ -> FED as well as different framework (vue components) a new MR was thought to be prudent.
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
The code has been run with the 904 setup and it reproduces the old table's results
<!-- ## Screenshots (if appropriate): -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [ ] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [ ] All new and existing tests passed.Dylan Oliver TeagueDylan Oliver Teaguehttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/250Function manager rebooted2022-04-13T14:01:34+02:00Laurent PetreFunction manager rebooted## Description
<!-- Describe your changes in detail -->
This MR is basically a re-write of the GEM Level-1 Function Manager with the goal to make it more maintainable. More details about the changes are provided in the individual commit...## Description
<!-- Describe your changes in detail -->
This MR is basically a re-write of the GEM Level-1 Function Manager with the goal to make it more maintainable. More details about the changes are provided in the individual commit messages.
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
Used successfully at p5 during the last week, both in Global, MiniDAQ3, and Local runs.
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [x] My change requires a change to the documentation.
- [x] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.Laurent PetreLaurent Petrehttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/249Automatically mask OptoHybrids without any enabled VFATs2022-03-28T14:55:05+02:00Laurent PetreAutomatically mask OptoHybrids without any enabled VFATs## Description
<!-- Describe your changes in detail -->
Title says it all, more details in the commit message.
> It could happen that the automatic VFAT masking was disabling all VFATs
of a given OptoHybrid. The OptoHybrid itself was n...## Description
<!-- Describe your changes in detail -->
Title says it all, more details in the commit message.
> It could happen that the automatic VFAT masking was disabling all VFATs
of a given OptoHybrid. The OptoHybrid itself was never removed from the
input enable mask.
>
> As a consequence, the per-chamber event builder was never producing any
event (since no VFAT data was opening the event) and the per-AMC event
builder was timing out on the given chamber.
>
> When the L1A rate is high enough, this directly converts into deadtime.
>
> The temporary solution, while waiting for a firmware fix, is to mask any
Optohybrid in the input enable mask for which all VFATs are disabled.
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
OptoHybrids successfully removed from the input enable mask on the GE1/1 integration setup.
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [x] My change requires a change to the documentation.
- [x] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.Laurent PetreLaurent Petrehttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/248Add option to toggle VFAT run mode in sbit scan2022-03-29T13:47:48+02:00Camilla GalloniAdd option to toggle VFAT run mode in sbit scan## Description
<!-- Describe your changes in detail -->
This MR aims at including an option to don't toggle the run mode of the VFAT in the sbit scan.
A small change in the definition of the function to create the radio button allows sel...## Description
<!-- Describe your changes in detail -->
This MR aims at including an option to don't toggle the run mode of the VFAT in the sbit scan.
A small change in the definition of the function to create the radio button allows selecting correctly the default values.
Retrieval of parameters in the code was tested successfully. But I didn't take a s-bit rate scan.
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
<!-- ## Screenshots (if appropriate): -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [ ] All new and existing tests passed.Camilla GalloniCamilla Gallonihttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/247Layout tree updates (GE1/1 long chamber in b904int-ge11 + GE2/1 demonstrator ...2022-03-24T12:39:15+01:00Laurent PetreLayout tree updates (GE1/1 long chamber in b904int-ge11 + GE2/1 demonstrator in cms)## Description
<!-- Describe your changes in detail -->
This MR first aims at adding the GE1/1 long chamber in the `b904int-ge11` setup layout tree. As part of the layout tree updates, the GE2/1 demonstrator description has been added i...## Description
<!-- Describe your changes in detail -->
This MR first aims at adding the GE1/1 long chamber in the `b904int-ge11` setup layout tree. As part of the layout tree updates, the GE2/1 demonstrator description has been added in the `cms` setup.
During the commissioning of the GE1/1 long chamber, two bugs have been found and are fixed here:
* The GBT phase scan was never reporting as good as VFAT previously masked
* The cached ADC transactions used in the DAC scans could lead to data corruption in parallel transactions
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
* The GE1/1 long chamber in the integration is now seamlessly commissioned
* The GE2/1 demonstrator files were already tested at p5
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.Laurent PetreLaurent Petrehttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/246Basic configuration database support in C++2023-05-07T03:03:51+02:00Louis MoureauxBasic configuration database support in C++## Description
<!-- Describe your changes in detail -->
This is the C++ side of !223, !224, and !225. I'm planning to keep all management logic in Python, with C++ doing simple queries.
In addition to the database, the configuration ca...## Description
<!-- Describe your changes in detail -->
This is the C++ side of !223, !224, and !225. I'm planning to keep all management logic in Python, with C++ doing simple queries.
In addition to the database, the configuration can be constructed from a layout tree and configuration files. The naming convention looks like `fed-1468/backend_board-7/link-5/vfat-13.cfg`; missing files are simply ignored and the configuration will contain no data for the corresponding components.
## Related Issue
I see #121 is still open, let's use it for everything.
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
So far:
```cpp
auto conn = pqxx::connection("dbname=lmoureau user=*** password=***");
auto tx = pqxx::work(conn);
auto c = configuration(tx, 95);
std::cout << c.display_name() << std::endl;
c = configuration(tx, "cool");
std::cout << c.display_name() << std::endl;
c = configuration(tx, "cool", 3);
std::cout << c.display_name() << std::endl;
```
I also checked that the amount of data fetched from the database makes sense.
For the file-based constructor I checked the file names but didn't try to load any data.
<!-- ## Screenshots (if appropriate): -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [x] My change requires a change to the documentation.
- [x] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.Louis MoureauxLouis Moureauxhttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/245Add a tool to dump all SFP registers on the CTP72022-03-18T18:21:53+01:00Laurent PetreAdd a tool to dump all SFP registers on the CTP7## Description
<!-- Describe your changes in detail -->
Title says it all.
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an iss...## Description
<!-- Describe your changes in detail -->
Title says it all.
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
Tool needed to investigate https://gitlab.cern.ch/cmsgemonline/gem-daq/gem-daq-configs/-/issues/6.
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
All registers can be dumped on the GE1/1 integration area CTP7:
```
> Device: cxp0-rx (/dev/i2c-2 - 0x54)
x.000 - 0x00 .
x.001 - 0x00 .
x.002 - 0x02 .
x.003 - 0x00 .
x.004 - 0x00 .
x.005 - 0x00 .
x.006 - 0x40 @
x.007 - 0x0e .
x.008 - 0xff .
x.009 - 0x00 .
x.010 - 0x00 .
[...]
```
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [x] My change requires a change to the documentation.
- [x] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.Laurent PetreLaurent Petrehttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/244Fix the trigger links counters when the BXN offset is configured2022-03-10T20:32:07+01:00Laurent PetreFix the trigger links counters when the BXN offset is configured## Description
<!-- Describe your changes in detail -->
This MR fixes to small issues (re-)discovered at p5 with the trigger links monitoring:
* The BC0 misalignment counters are a precious tool to detect synchronization problems or tri...## Description
<!-- Describe your changes in detail -->
This MR fixes to small issues (re-)discovered at p5 with the trigger links monitoring:
* The BC0 misalignment counters are a precious tool to detect synchronization problems or trigger links issues
* Monitor it!
* If the BXN offset is changed in the OH FPGA firmware by a value not multiple than 4, the trigger link error marker counters max out
* One needs to re-align the trigger links comma/bunch counter marker FSM via a link reset
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
Working on the GE1/1 integration setup.
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [x] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.Laurent PetreLaurent Petrehttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/243Enhance the DAQ monitorables2022-03-09T19:47:36+01:00Laurent PetreEnhance the DAQ monitorables## Description
<!-- Describe your changes in detail -->
As the title says, this is a small MR to enhance the DAQ monitorable, preparing for the spy DAQ path integration. Minor additional clean-up/uniformization is also included.
## Rel...## Description
<!-- Describe your changes in detail -->
As the title says, this is a small MR to enhance the DAQ monitorable, preparing for the spy DAQ path integration. Minor additional clean-up/uniformization is also included.
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
Works like a charm on the GE1/1 integration setup in b904.
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.Laurent PetreLaurent Petrehttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/242Configure the front-end at configuration2022-03-07T18:06:10+01:00Laurent PetreConfigure the front-end at configuration## Description
<!-- Describe your changes in detail -->
This MR aims at configuring the front-end during configuration to avoid the unnecessary Start-Stop transitions to obtain the VFAT mask.
Additionally, implement per-component maski...## Description
<!-- Describe your changes in detail -->
This MR aims at configuring the front-end during configuration to avoid the unnecessary Start-Stop transitions to obtain the VFAT mask.
Additionally, implement per-component masking, both during configuration and running. A single GBT not locking should not prevent including the whole chamber in the run.
During the last `THR_ARM_DAC` scans at p5, a significant slow down was noticed. Trying to address the issue here by opening a second xHAL connection from the AMC manager to the back-end board.
See the commits for a complete description of the changes.
**Note the incompatibilities:**
* The LMDB address table path has changed!
* The last firmware builds must be used due to changes in the register names.
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
<!-- ## Screenshots (if appropriate): -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [x] My change requires a change to the documentation.
- [x] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.Laurent PetreLaurent Petrehttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/241Generalize GBT phases using GBT and elink numbers2022-06-09T18:46:28+02:00Antonello PellecchiaGeneralize GBT phases using GBT and elink numbers## Description
Generalizes the `writeGBTPhase` function to use GBT and elink as parameters instead of VFAT number. The GBT phase scan function is adjusted accordingly and the output format of the GBT phase scan contains now the gbt and e...## Description
Generalizes the `writeGBTPhase` function to use GBT and elink as parameters instead of VFAT number. The GBT phase scan function is adjusted accordingly and the output format of the GBT phase scan contains now the gbt and elink columns instead of the vfat column.
To be implemented:
- [x] Improve log message when invalid phase is set
- [x] Move default phase map from gemhardware to gemcore
- [x] Update cmsgemos-analysis to analyze GBT phase scan result with new format (see [MR 24](https://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos-analysis/-/merge_requests/24) in the analysis repository)
- [x] Use updated configuration file format in cmsgemos
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
## How Has This Been Tested?
Tested on GE2/1 integration stand in B904.
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
<!-- ## Screenshots (if appropriate): -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [ ] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [ ] All new and existing tests passed.Antonello PellecchiaAntonello Pellecchiahttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/240Publish the gemhardware build artifacts on cmgemos2022-02-18T16:52:52+01:00Laurent PetrePublish the gemhardware build artifacts on cmgemos## Description
<!-- Describe your changes in detail -->
After this MR, the `gemhardware` build artifacts will be published on https://cmsgemos.web.cern.ch/repos/builds/
Additionally:
* Fix a missing comma in memory_access_error what()...## Description
<!-- Describe your changes in detail -->
After this MR, the `gemhardware` build artifacts will be published on https://cmsgemos.web.cern.ch/repos/builds/
Additionally:
* Fix a missing comma in memory_access_error what() message
* Allow the GBT phases above 15 to carry user information
* Monitor the VFAT mask
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
The software is still fully functional; the first part of the CI passes; the publication test has to wait for the merge.
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.Laurent PetreLaurent Petrehttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/239Misc p5 operation fixes2022-02-17T18:39:13+01:00Laurent PetreMisc p5 operation fixes## Description
<!-- Describe your changes in detail -->
Implement the following changes to facilitate p5 operations:
* Show the OH VCC alarm counter values on the monitoring page (was a boolean)
* Increase the RPC calls timeout to 10 m...## Description
<!-- Describe your changes in detail -->
Implement the following changes to facilitate p5 operations:
* Show the OH VCC alarm counter values on the monitoring page (was a boolean)
* Increase the RPC calls timeout to 10 minutes
* Increase the OptoHybrid FPGA temperature resolution to 0.1 °C
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
Includes a fix for #197
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
:cry:
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [x] My change requires a change to the documentation.
- [x] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.Laurent PetreLaurent Petrehttps://gitlab.cern.ch/cmsgemonline/gem-daq/cmsgemos/-/merge_requests/238Add CTP7 TX optical power measurement2022-02-17T18:44:51+01:00Laurent PetreAdd CTP7 TX optical power measurement## Description
<!-- Describe your changes in detail -->
Title says it all! During some debugging, measuring the optical output power was deemed necessary. Let's merge those developments instead of losing them.
## Related Issue
<!-- Thi...## Description
<!-- Describe your changes in detail -->
Title says it all! During some debugging, measuring the optical output power was deemed necessary. Let's merge those developments instead of losing them.
## Related Issue
<!-- This project only accepts pull requests related to open issues -->
<!-- If suggesting a new feature or change, please discuss it in an issue first -->
<!-- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!-- If addressing multiple issues, comment on their relation if needed -->
<!-- Please link issues accordgin to the automation rules: -->
<!-- https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically -->
## How Has This Been Tested?
<!-- Please describe in detail how you tested your changes. -->
<!-- Include details of your testing environment, and the tests you ran to -->
<!-- see how your change affects other areas of the code, etc. -->
Optical output power can be measured on the b904 GE1/1 integration setup for all fibers.
```
0 1028
1 996
2 1014
3 1024
4 962
5 1068
6 1037
7 1041
8 1074
9 1080
10 1149
11 1079
12 973
13 1097
14 1057
15 980
16 938
17 1005
18 1034
19 1024
20 1041
21 1064
22 1119
23 937
24 882
25 915
26 1040
27 1005
28 901
29 959
30 1025
31 1004
32 1019
33 1063
34 977
35 944
48 1068
49 1172
50 1079
51 1180
52 1122
53 1181
54 1055
55 1095
56 1011
57 1213
58 1142
59 1283
```
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [x] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [x] My code follows the code style of this project.
- [x] My change requires a change to the documentation.
- [x] I have updated the documentation accordingly.
- [x] I have read the **CONTRIBUTING** document.
- [ ] I have added tests to cover my changes.
- [x] All new and existing tests passed.Laurent PetreLaurent Petre