Skip to content

Add an HTTP endpoint to read serial numbers from front-end

Laurent Petre requested to merge feature/read-detector-id-http into main

Description

To simplify, among others, chamber assembly, it is desirable to be able to retrieve all front-end serial numbers from external applications.

This MR takes an approach different from !344 (closed): rather than modifying (abusing?) the gem-check-layout-tree tool, a new HTTP endpoint is created in the AMCManager application, readDetectorIdentifiers. No attempt is made to compare values with the layout tree (very little is expected from the layout tree at this stage). Instead, the values are retrieved from the front-end and returned to the caller as JSON objects.

Additionally, the LpGBT chip ID is now read from the e-fuses in place of the registers. As the LpGBT are booted from ROM, this is the only way to retrieve the correct value (the registers always contain 0).

Related Issue

How Has This Been Tested?

Succesfully tested on the 904 integration setups, on both GE1/1 and ME0. Typical ME0:

{
    "0": {
        "fpga": null,
        "gbt": [
            3836386423,
            1278000249,
            1152039785,
            70036453,
            2888312822,
            1823063432,
            615253735,
            3836352362
        ],
        "vfat": [
            22059,
            22074,
            20888,
            20899,
            22058,
            20894,
            22060,
            22061,
            22073,
            20896,
            20893,
            20895,
            20903,
            20891,
            22076,
            22063,
            20897,
            22072,
            22075,
            20898,
            20900,
            22062,
            20890,
            22064
        ]
    }
}

Types of changes

  • 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:

  • 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.

Merge request reports

Loading