Skip to content

DetectorAssembler: go to ERROR if trying to match without geometry

David Hammer requested to merge detectorassembler-error-without-geometry into master

#48 (closed) this came up again recently, let's do something about it.

  • geometry is a property again, so if geometry device is up, we don't even need to wait for signal to get it
  • DRY a bit by putting utility to get property + connect to signal in calngUtils
  • start warning harder if no geometry

Options:

  1. stay in INIT until we get geometry
  2. go to ERROR after some timeout if we don't get geometry
  3. go to ERROR in match handler if we don't have geometry by the time we need it (current implementation)

As the diff shows, at least for option 3, we need to fight the TrainMatcher state logic a bit; it's going from PASSIVE to CHANGING to ACTIVE outside of the methods we're currently overriding. State transitions for an assembler started while geometry device is down and then geometry device comes up later:

2024-09-18T13_24_35.754475_image

Merge request reports