diff --git a/.github/workflows/build_documentation.yml b/.github/workflows/build_documentation.yml
index 083b548e6..64ef03451 100644
--- a/.github/workflows/build_documentation.yml
+++ b/.github/workflows/build_documentation.yml
@@ -6,6 +6,10 @@ on:
branches:
- developer
- main
+ push:
+ branches:
+ - developer
+ - main
release:
types:
- published
@@ -87,7 +91,7 @@ jobs:
- name: Copy documentation and Release notes to versioned folder
- if: github.event_name == 'release' || (github.event_name == 'pull_request' && github.event.pull_request.merged == true)
+ if: github.event_name == 'release' || (github.event_name == 'push')
run: |
VERSION="${{ steps.version.outputs.version }}"
mkdir -p "gh-pages/${VERSION}"
@@ -99,7 +103,7 @@ jobs:
fi
- name: Commit and Push changes to gh-pages
- if: github.event_name == 'release' || (github.event_name == 'pull_request' && github.event.pull_request.merged == true)
+ if: github.event_name == 'release' || (github.event_name == 'push')
run: |
cd gh-pages
git config --global user.name 'github-actions'
diff --git a/pyctbgui/pyctbgui/services/PowerSupplies.py b/pyctbgui/pyctbgui/services/PowerSupplies.py
index e5b402101..06c88fd64 100644
--- a/pyctbgui/pyctbgui/services/PowerSupplies.py
+++ b/pyctbgui/pyctbgui/services/PowerSupplies.py
@@ -4,7 +4,7 @@ from pathlib import Path
from PyQt5 import QtWidgets, uic
from pyctbgui.utils.defines import Defines
-from slsdet import dacIndex, detectorType
+from slsdet import powerIndex, detectorType
class PowerSuppliesTab(QtWidgets.QWidget):
@@ -16,120 +16,116 @@ class PowerSuppliesTab(QtWidgets.QWidget):
def refresh(self):
self.updateVoltageNames()
+ if self.det.type == detectorType.CHIPTESTBOARD:
+ self.getVChip()
for i in Defines.powerSupplies:
- self.getVoltage(i)
- if self.det.type == detectorType.CHIPTESTBOARD:
- self.getCurrent(i)
+ self.update(i)
+
+ def update(self, i):
+ self.getPowerEnable(i)
+ self.getVoltage(i)
+ if self.det.type == detectorType.CHIPTESTBOARD:
+ self.getMeasuredVoltage(i)
+ self.getMeasuredCurrent(i)
def connect_ui(self):
for i in Defines.powerSupplies:
spinBox = getattr(self.view, f"spinBoxV{i}")
checkBox = getattr(self.view, f"checkBoxV{i}")
spinBox.editingFinished.connect(partial(self.setVoltage, i))
- checkBox.stateChanged.connect(partial(self.setVoltage, i))
+ checkBox.stateChanged.connect(partial(self.setPowerEnable, i))
self.view.pushButtonPowerOff.clicked.connect(self.powerOff)
def setup_ui(self):
- for i in Defines.powerSupplies:
- dac = getattr(dacIndex, f"V_POWER_{i}")
- spinBox = getattr(self.view, f"spinBoxV{i}")
- checkBox = getattr(self.view, f"checkBoxV{i}")
- retval = self.det.getPower(dac)[0]
- spinBox.setValue(retval)
- if retval == 0:
- checkBox.setChecked(False)
- spinBox.setDisabled(True)
- if self.det.type == detectorType.XILINX_CHIPTESTBOARD:
- label = getattr(self.view, f"labelI{i}")
- label.setDisabled(True)
if self.det.type == detectorType.XILINX_CHIPTESTBOARD:
- self.view.spinBoxVChip.setDisabled(True)
-
+ self.view.labelVChip.setDisabled(True)
+ for i in Defines.powerSupplies:
+ labelV = getattr(self.view, f"labelV{i}")
+ labelV.setDisabled(True)
+ labelI = getattr(self.view, f"labelI{i}")
+ labelI.setDisabled(True)
def updateVoltageNames(self):
- retval = self.det.getPowerNames()
- getattr(self.view, "checkBoxVA").setText(retval[0])
- getattr(self.view, "checkBoxVB").setText(retval[1])
- getattr(self.view, "checkBoxVC").setText(retval[2])
- getattr(self.view, "checkBoxVD").setText(retval[3])
- getattr(self.view, "checkBoxVIO").setText(retval[4])
+ for i in Defines.powerSupplies:
+ checkBox = getattr(self.view, f"checkBoxV{i}")
+ dac = getattr(powerIndex, f"V_POWER_{i}")
+ retval = self.det.getPowerName(dac)
+ checkBox.setText(retval)
- def getVoltage(self, i):
- spinBox = getattr(self.view, f"spinBoxV{i}")
- checkBox = getattr(self.view, f"checkBoxV{i}")
- voltageIndex = getattr(dacIndex, f"V_POWER_{i}")
+ def getMeasuredVoltage(self, i):
label = getattr(self.view, f"labelV{i}")
-
- spinBox.editingFinished.disconnect()
- checkBox.stateChanged.disconnect()
-
- if self.det.type == detectorType.XILINX_CHIPTESTBOARD:
- retval = self.det.getPower(voltageIndex)[0]
- else:
- retval = self.det.getMeasuredPower(voltageIndex)[0]
- # spinBox.setValue(retval)
- if retval > 1:
- checkBox.setChecked(True)
- if checkBox.isChecked():
- spinBox.setEnabled(True)
- else:
- spinBox.setDisabled(True)
+ voltageIndex = getattr(powerIndex, f"V_POWER_{i}")
+ retval = self.det.getMeasuredPower(voltageIndex)
label.setText(f'{str(retval)} mV')
-
- spinBox.editingFinished.connect(partial(self.setVoltage, i))
- checkBox.stateChanged.connect(partial(self.setVoltage, i))
-
- if self.det.type == detectorType.CHIPTESTBOARD:
- self.getVChip()
-
- # TODO: handle multiple events when pressing enter (twice)
-
- def setVoltage(self, i):
- checkBox = getattr(self.view, f"checkBoxV{i}")
- spinBox = getattr(self.view, f"spinBoxV{i}")
- voltageIndex = getattr(dacIndex, f"V_POWER_{i}")
- spinBox.editingFinished.disconnect()
-
- value = 0
- if checkBox.isChecked():
- value = spinBox.value()
- try:
- self.det.setPower(voltageIndex, value)
- except Exception as e:
- QtWidgets.QMessageBox.warning(self.mainWindow, "Voltage Fail", str(e), QtWidgets.QMessageBox.Ok)
- pass
-
- # TODO: (properly) disconnecting and connecting to handle multiple events (out of focus and pressing enter).
- spinBox.editingFinished.connect(partial(self.setVoltage, i))
- self.getVoltage(i)
- if self.det.type == detectorType.CHIPTESTBOARD:
- self.getCurrent(i)
-
- def getCurrent(self, i):
+
+ def getMeasuredCurrent(self, i):
label = getattr(self.view, f"labelI{i}")
- currentIndex = getattr(dacIndex, f"I_POWER_{i}")
- retval = self.det.getMeasuredCurrent(currentIndex)[0]
+ currentIndex = getattr(powerIndex, f"I_POWER_{i}")
+ retval = self.det.getMeasuredCurrent(currentIndex)
label.setText(f'{str(retval)} mA')
def getVChip(self):
- self.view.spinBoxVChip.setValue(self.det.getPower(dacIndex.V_POWER_CHIP)[0])
+ self.view.labelVChip.setText(f"{str(self.det.getPowerDAC(powerIndex.V_POWER_CHIP))} mV")
+
+ def getVoltage(self, i):
+ spinBox = getattr(self.view, f"spinBoxV{i}")
+ spinBox.editingFinished.disconnect()
+ voltageIndex = getattr(powerIndex, f"V_POWER_{i}")
+ spinBox.setValue(self.det.getPowerDAC(voltageIndex))
+ spinBox.editingFinished.connect(partial(self.setVoltage, i))
+
+ def setVoltage(self, i):
+ spinBox = getattr(self.view, f"spinBoxV{i}")
+ spinBox.editingFinished.disconnect()
+ voltageIndex = getattr(powerIndex, f"V_POWER_{i}")
+ try:
+ self.det.setPowerDAC(voltageIndex, spinBox.value())
+ except Exception as e:
+ QtWidgets.QMessageBox.warning(self.mainWindow, "Voltage Fail", str(e), QtWidgets.QMessageBox.Ok)
+ pass
+ spinBox.editingFinished.connect(partial(self.setVoltage, i))
+ self.update(i)
+ if self.det.type == detectorType.CHIPTESTBOARD:
+ self.getVChip()
+
+ def getPowerEnable(self, i):
+ checkBox = getattr(self.view, f"checkBoxV{i}")
+ checkBox.stateChanged.disconnect()
+ voltageIndex = getattr(powerIndex, f"V_POWER_{i}")
+ retval = self.det.isPowerEnabled(voltageIndex)
+ checkBox.setChecked(retval)
+ checkBox.stateChanged.connect(partial(self.setPowerEnable, i))
+
+ def setPowerEnable(self, i):
+ checkBox = getattr(self.view, f"checkBoxV{i}")
+ checkBox.stateChanged.disconnect()
+ voltageIndex = getattr(powerIndex, f"V_POWER_{i}")
+ try:
+ self.det.setPowerEnabled([voltageIndex], checkBox.isChecked())
+ except Exception as e:
+ QtWidgets.QMessageBox.warning(self.mainWindow, "Voltage Fail", str(e), QtWidgets.QMessageBox.Ok)
+ pass
+ checkBox.stateChanged.connect(partial(self.setPowerEnable, i))
+ self.update(i)
+ if self.det.type == detectorType.CHIPTESTBOARD:
+ self.getVChip()
+
def powerOff(self):
- for i in Defines.powerSupplies:
- # set all voltages to 0
- checkBox = getattr(self.view, f"checkBoxV{i}")
- checkBox.stateChanged.disconnect()
- checkBox.setChecked(False)
- checkBox.stateChanged.connect(partial(self.setVoltage, i))
- self.setVoltage(i)
+ voltageIndices = [getattr(powerIndex, f"V_POWER_{i}") for i in Defines.powerSupplies]
+ try:
+ self.det.setPowerEnabled(voltageIndices, False)
+ except Exception as e:
+ QtWidgets.QMessageBox.warning(self.mainWindow, "Power Off Fail", str(e), QtWidgets.QMessageBox.Ok)
+ pass
+ finally:
+ self.refresh()
def saveParameters(self) -> list:
commands = []
for i in Defines.powerSupplies:
enabled = getattr(self.view, f"checkBoxV{i}").isChecked()
- if enabled:
- value = getattr(self.view, f"spinBoxV{i}").value()
- commands.append(f"v_{i.lower()} {value}")
- else:
- commands.append(f"v_{i.lower()} 0")
+ commands.append(f"power v_{i.lower()} {enabled}")
+ value = getattr(self.view, f"spinBoxV{i}").value()
+ commands.append(f"powerdac v_{i.lower()} {value}")
return commands
diff --git a/pyctbgui/pyctbgui/ui/powerSupplies.ui b/pyctbgui/pyctbgui/ui/powerSupplies.ui
index d8739957c..caa4f0cf7 100644
--- a/pyctbgui/pyctbgui/ui/powerSupplies.ui
+++ b/pyctbgui/pyctbgui/ui/powerSupplies.ui
@@ -53,7 +53,7 @@
mV
- 2468
+ 5000
@@ -100,7 +100,7 @@
0
- 2468
+ 5000
0
@@ -212,35 +212,7 @@ QPushButton:disabled{background-color: grey;}
mV
- 2468
-
-
-
- -
-
-
-
- 0
- 32
-
-
-
-
- 150
- 32
-
-
-
- Only accepts value range (1200 - 2468)
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
- mV
-
-
- 2468
+ 5000
@@ -372,7 +344,7 @@ QPushButton:disabled{background-color: grey;}
mV
- 2468
+ 5000
@@ -455,7 +427,7 @@ QPushButton:disabled{background-color: grey;}
mV
- 2468
+ 5000
@@ -475,6 +447,16 @@ QPushButton:disabled{background-color: grey;}
+ -
+
+
+ 0 mV
+
+
+ Qt::AlignCenter
+
+
+
diff --git a/python/slsdet/__init__.py b/python/slsdet/__init__.py
index 7af732cef..753267d81 100755
--- a/python/slsdet/__init__.py
+++ b/python/slsdet/__init__.py
@@ -3,8 +3,8 @@
# from .detector import Detector, DetectorError, free_shared_memory
from .eiger import Eiger
from .ctb import Ctb
-from .dacs import DetectorDacs, Dac
-from .powers import DetectorPowers, Power
+from .dacs import NamedDacs, DetectorDacs, Dac
+from .powers import NamedPowers, Power
from .detector import Detector
from .jungfrau import Jungfrau
from .mythen3 import Mythen3
diff --git a/python/slsdet/ctb.py b/python/slsdet/ctb.py
index 1295af9cb..eff315da3 100644
--- a/python/slsdet/ctb.py
+++ b/python/slsdet/ctb.py
@@ -2,12 +2,15 @@
# Copyright (C) 2021 Contributors to the SLS Detector Package
from .detector import Detector, freeze
from .utils import element_if_equal
-from .dacs import DetectorDacs, NamedDacs
-from .powers import DetectorPowers, NamedPowers
+from .dacs import NamedDacs
+from .powers import NamedPowers
+from .proxy import SlowAdcProxy
from . import _slsdet
dacIndex = _slsdet.slsDetectorDefs.dacIndex
from .detector_property import DetectorProperty
+import numpy as np
+
from .utils import element
@freeze
@@ -24,4 +27,66 @@ class Ctb(Detector):
@property
def powers(self):
- return self._powers
\ No newline at end of file
+ return self._powers
+
+ @property
+ def powerlist(self):
+ return self.getPowerNames()
+
+ @powerlist.setter
+ def powerlist(self, value):
+ self.setPowerNames(value)
+
+
+ @property
+ def adclist(self):
+ return self.getAdcNames()
+
+ @adclist.setter
+ def adclist(self, value):
+ self.setAdcNames(value)
+
+ @property
+ def signallist(self):
+ return self.getSignalNames()
+
+ @signallist.setter
+ def signallist(self, value):
+ self.setSignalNames(value)
+
+ @property
+ def slowadc(self):
+ """
+ [Ctb] Slow ADC channel in uV of all channels or specific ones from 0-7.
+
+ Example
+ -------
+ >>> d.slowadc
+ 0: 0 uV
+ 1: 0 uV
+ 2: 0 uV
+ 3: 0 uV
+ 4: 0 uV
+ 5: 0 uV
+ 6: 0 uV
+ 7: 0 uV
+ >>> d.slowadc[3]
+ 0
+ """
+ return SlowAdcProxy(self)
+
+ @property
+ def slowadclist(self):
+ return self.getSlowADCNames()
+
+ @slowadclist.setter
+ def slowadclist(self, value):
+ self.setSlowADCNames(value)
+
+ @property
+ def slowadcvalues(self):
+ """[Chiptestboard][Xilinx CTB] Gets the slow adc values for every slow adc for this detector."""
+ return {
+ slowadc.name.lower(): element_if_equal(np.array(self.getSlowADC(slowadc)))
+ for slowadc in self.getSlowADCList()
+ }
diff --git a/python/slsdet/dacs.py b/python/slsdet/dacs.py
index 547a43277..3dfbd662e 100755
--- a/python/slsdet/dacs.py
+++ b/python/slsdet/dacs.py
@@ -41,40 +41,33 @@ class NamedDacs:
New implementation of the detector dacs. Used at the moment for
Ctb but should replace the old one for all detectors
"""
- _frozen = False
- _direct_access = ['_detector', '_current', '_dacnames']
+ _direct_access = ['_detector', '_current']
+
def __init__(self, detector):
+ self._frozen = False
self._detector = detector
self._current = 0
-
- #only get the dacnames if we have modules attached
- if detector.size() == 0:
- self._dacnames = [f"dac{i}" for i in range(18)]
- else:
- self._dacnames = [n.replace(" ", "") for n in detector.getDacNames()]
-
- # Populate the dacs
- for i,name in enumerate(self._dacnames):
- #name, enum, low, high, default, detector
- setattr(self, name, Dac(name, dacIndex(i), 0, 4000, 1000, detector))
-
self._frozen = True
- # def __getattr__(self, name):
- # return self.__getattribute__('_' + name)
+ @property
+ def _dacnames(self):
+ if self._detector.size() == 0:
+ raise RuntimeError("No modules added")
+ return [n.replace(" ", "") for n in self._detector.daclist]
+
+ def __getattr__(self, name):
+ if name in self._dacnames:
+ idx = self._dacnames.index(name)
+ return Dac(name, dacIndex(idx), 0, 4096, -100, self._detector)
+ raise AttributeError(f'Dac not found: {name}')
def __setattr__(self, name, value):
- if not self._frozen:
- #durning init we need to be able to set up the class
+ if name in ('_detector', '_current', '_frozen'):
super().__setattr__(name, value)
+ elif name in self._dacnames:
+ return getattr(self, name).__setitem__(slice(None, None, None), value)
else:
- #Later we restrict us to manipulate dacs and a few fields
- if name in self._direct_access:
- super().__setattr__(name, value)
- elif name in self._dacnames:
- return self.__getattribute__(name).__setitem__(slice(None, None, None), value)
- else:
- raise AttributeError(f'Dac not found: {name}')
+ raise AttributeError(f'Dac not found: {name}')
def __next__(self):
if self._current >= len(self._dacnames):
@@ -82,10 +75,10 @@ class NamedDacs:
raise StopIteration
else:
self._current += 1
- return self.__getattribute__(self._dacnames[self._current-1])
- # return self.__getattr__(self._dacnames[self._current-1])
+ return getattr(self, self._dacnames[self._current-1])
def __iter__(self):
+ self._current = 0
return self
def __repr__(self):
diff --git a/python/slsdet/detector.py b/python/slsdet/detector.py
index a5e152988..af98c0d30 100755
--- a/python/slsdet/detector.py
+++ b/python/slsdet/detector.py
@@ -10,6 +10,7 @@ runStatus = slsDetectorDefs.runStatus
timingMode = slsDetectorDefs.timingMode
speedLevel = slsDetectorDefs.speedLevel
dacIndex = slsDetectorDefs.dacIndex
+powerIndex = slsDetectorDefs.powerIndex
detectorType = slsDetectorDefs.detectorType
streamingInterface = slsDetectorDefs.streamingInterface
@@ -20,7 +21,7 @@ from .utils import Geometry, to_geo, element, reduce_time, is_iterable, hostname
from ._slsdet import xy, freeSharedMemory, getUserDetails
from .gaincaps import Mythen3GainCapsWrapper
from . import utils as ut
-from .proxy import JsonProxy, SlowAdcProxy, ClkDivProxy, MaxPhaseProxy, ClkFreqProxy, PatLoopProxy, PatNLoopProxy, PatWaitProxy, PatWaitTimeProxy
+from .proxy import JsonProxy, ClkDivProxy, MaxPhaseProxy, ClkFreqProxy, PatLoopProxy, PatNLoopProxy, PatWaitProxy, PatWaitTimeProxy
from .registers import Register, Adc_register
import datetime as dt
@@ -516,13 +517,12 @@ class Detector(CppDetectorApi):
@element
def powerchip(self):
"""
- [Jungfrau][Moench][Mythen3][Gotthard2][Xilinx Ctb] Power the chip.
+ [Jungfrau][Moench][Mythen3][Gotthard2] Power the chip.
Note
----
[Jungfrau][Moench] Default is disabled. Get will return power status. Can be off if temperature event occured (temperature over temp_threshold with temp_control enabled. Will configure chip (only chip v1.1).\n
[Mythen3][Gotthard2] Default is 1. If module not connected or wrong module, powerchip will fail.
- [Xilinx Ctb] Default is 0. Also configures the chip if powered on.
"""
return self.getPowerChip()
@@ -1987,26 +1987,7 @@ class Detector(CppDetectorApi):
return super().getBit(resolved)
- @property
- def slowadc(self):
- """
- [Ctb] Slow ADC channel in uV of all channels or specific ones from 0-7.
-
- Example
- -------
- >>> d.slowadc
- 0: 0 uV
- 1: 0 uV
- 2: 0 uV
- 3: 0 uV
- 4: 0 uV
- 5: 0 uV
- 6: 0 uV
- 7: 0 uV
- >>> d.slowadc[3]
- 0
- """
- return SlowAdcProxy(self)
+
@property
def daclist(self):
@@ -2022,52 +2003,7 @@ class Detector(CppDetectorApi):
def daclist(self, value):
self.setDacNames(value)
- @property
- def adclist(self):
- """
- [Chiptestboard] List of names for every adc for this board. 32 adcs
- """
- return self.getAdcNames()
- @adclist.setter
- def adclist(self, value):
- self.setAdcNames(value)
-
- @property
- def signallist(self):
- """
- [Chiptestboard] List of names for every io signal for this board. 64 signals
- """
- return self.getSignalNames()
-
- @signallist.setter
- def signallist(self, value):
- self.setSignalNames(value)
-
- @property
- def powerlist(self):
- """
- [Chiptestboard] List of names for every power for this board. 5 power supply
-
- """
- return self.getPowerNames()
-
- @powerlist.setter
- def powerlist(self, value):
- self.setPowerNames(value)
-
- @property
- def slowadclist(self):
- """
- [Chiptestboard] List of names for every slowadc for this board. 8 slowadc
-
- """
- return self.getSlowADCNames()
-
- @slowadclist.setter
- def slowadclist(self, value):
- self.setSlowADCNames(value)
-
@property
def dacvalues(self):
"""Gets the dac values for every dac for this detector."""
@@ -2076,21 +2012,6 @@ class Detector(CppDetectorApi):
for dac in self.getDacList()
}
- @property
- def powervalues(self):
- """[Chiptestboard] Gets the power values for every power for this detector."""
- return {
- power.name.lower(): element_if_equal(np.array(self.getPower(power)))
- for power in self.getPowerList()
- }
-
- @property
- def slowadcvalues(self):
- """[Chiptestboard] Gets the slow adc values for every slow adc for this detector."""
- return {
- slowadc.name.lower(): element_if_equal(np.array(self.getSlowADC(slowadc)))
- for slowadc in self.getSlowADCList()
- }
@property
def timinglist(self):
@@ -4189,77 +4110,15 @@ class Detector(CppDetectorApi):
n = ut.merge_args(2, n)
ut.set_using_dict(self.setPatternLoopCycles, *n)
- @property
- @element
- def v_a(self):
- """[Ctb][Xilinx Ctb] Power supply a in mV."""
- return self.getPower(dacIndex.V_POWER_A)
-
- @v_a.setter
- def v_a(self, value):
- value = ut.merge_args(dacIndex.V_POWER_A, value)
- ut.set_using_dict(self.setPower, *value)
-
- @property
- @element
- def v_b(self):
- """[Ctb][Xilinx Ctb] Power supply b in mV."""
- return self.getPower(dacIndex.V_POWER_B)
-
- @v_b.setter
- def v_b(self, value):
- value = ut.merge_args(dacIndex.V_POWER_B, value)
- ut.set_using_dict(self.setPower, *value)
-
- @property
- @element
- def v_c(self):
- """[Ctb][Xilinx Ctb] Power supply c in mV."""
- return self.getPower(dacIndex.V_POWER_C)
-
- @v_c.setter
- def v_c(self, value):
- value = ut.merge_args(dacIndex.V_POWER_C, value)
- ut.set_using_dict(self.setPower, *value)
-
- @property
- @element
- def v_d(self):
- """[Ctb][Xilinx Ctb] Power supply d in mV."""
- return self.getPower(dacIndex.V_POWER_D)
-
- @v_d.setter
- def v_d(self, value):
- value = ut.merge_args(dacIndex.V_POWER_D, value)
- ut.set_using_dict(self.setPower, *value)
-
- @property
- @element
- def v_io(self):
- """[Ctb][Xilinx Ctb] Power supply io in mV. Minimum 1200 mV.
-
- Note
- ----
- Must be the first power regulator to be set after fpga reset (on-board detector server start up).
- """
- return self.getPower(dacIndex.V_POWER_IO)
-
- @v_io.setter
- def v_io(self, value):
- value = ut.merge_args(dacIndex.V_POWER_IO, value)
- ut.set_using_dict(self.setPower, *value)
-
@property
@element
def v_limit(self):
"""[Ctb][Xilinx Ctb] Soft limit for power supplies (ctb only) and DACS in mV."""
- return self.getPower(dacIndex.V_LIMIT)
+ return self.getVoltageLimit()
@v_limit.setter
def v_limit(self, value):
- value = ut.merge_args(dacIndex.V_LIMIT, value)
- ut.set_using_dict(self.setPower, *value)
-
+ ut.set_using_dict(self.setVoltageLimit, value)
@property
@element
@@ -4268,7 +4127,7 @@ class Detector(CppDetectorApi):
:setter: Not implemented
"""
- return self.getMeasuredCurrent(dacIndex.I_POWER_A)
+ return self.getMeasuredCurrent(powerIndex.I_POWER_A)
@property
@element
@@ -4277,7 +4136,7 @@ class Detector(CppDetectorApi):
:setter: Not implemented
"""
- return self.getMeasuredCurrent(dacIndex.I_POWER_B)
+ return self.getMeasuredCurrent(powerIndex.I_POWER_B)
@property
@element
@@ -4286,7 +4145,7 @@ class Detector(CppDetectorApi):
:setter: Not implemented
"""
- return self.getMeasuredCurrent(dacIndex.I_POWER_C)
+ return self.getMeasuredCurrent(powerIndex.I_POWER_C)
@property
@element
@@ -4295,7 +4154,7 @@ class Detector(CppDetectorApi):
:setter: Not implemented
"""
- return self.getMeasuredCurrent(dacIndex.I_POWER_D)
+ return self.getMeasuredCurrent(powerIndex.I_POWER_D)
@property
@element
@@ -4304,7 +4163,7 @@ class Detector(CppDetectorApi):
:setter: Not implemented
"""
- return self.getMeasuredCurrent(dacIndex.I_POWER_IO)
+ return self.getMeasuredCurrent(powerIndex.I_POWER_IO)
@property
def clkphase(self):
diff --git a/python/slsdet/powers.py b/python/slsdet/powers.py
index a513eedbe..9368f1786 100755
--- a/python/slsdet/powers.py
+++ b/python/slsdet/powers.py
@@ -1,77 +1,125 @@
# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
-from .detector_property import DetectorProperty
from functools import partial
import numpy as np
from . import _slsdet
from .detector import freeze
-dacIndex = _slsdet.slsDetectorDefs.dacIndex
-class Power(DetectorProperty):
+powerIndex = _slsdet.slsDetectorDefs.powerIndex
+class Power:
"""
- This class represents a power on the Chip Test Board. One instance handles all
- powers with the same name for a multi detector instance. (TODO: Not needed for CTB)
+ This class represents a power supply on the Chip Test Board.
.. note ::
- This class is used to build up DetectorPowers and is in general
+ This class is used to build up NamedPowers and is in general
not directly accessible to the user.
"""
+ _direct_access = ['_detector']
+
def __init__(self, name, enum, default, detector):
-
- super().__init__(partial(detector.getPower, enum),
- lambda x, y : detector.setPower(enum, x, y),
- detector.size,
- name)
-
+ self._frozen = False
+ self.__name__ = name
+ self.enum = enum
self.default = default
+ self.detector = detector
+ self._frozen = True
+ def enable(self):
+ " Enable this power supply."
+ self.detector.setPowerEnabled([self.enum], True)
+
+ def disable(self):
+ " Disable this power supply."
+ self.detector.setPowerEnabled([self.enum], False)
+
+ @property
+ def dac(self):
+ " Returns the dac value for this power supply in mV."
+ return self.detector.getPowerDAC(self.enum)
+
+ @property
+ def enabled(self):
+ " Returns whether this power supply is enabled."
+ return self.detector.isPowerEnabled(self.enum)
+
+ # prevent unknown attributes
+ def __setattr__(self, name, value):
+ if not getattr(self, "_frozen", False) or name in ("_frozen", "__name__", "enum", "default", "detector"):
+ super().__setattr__(name, value)
+ else:
+ raise AttributeError(f"Cannot set attribute '{name}' on Power.")
+
+ def __eq__(self, other):
+ if isinstance(other, Power):
+ return (
+ self.detector == other.detector and
+ self.enum == other.enum
+ )
+ if isinstance(other, int):
+ return self.dac == other
+ return NotImplemented
def __repr__(self):
- """String representation for a single power in all modules"""
- powerstr = ''.join([f'{item:5d}' for item in self.get()])
- return f'{self.__name__:15s}:{powerstr}'
+ "String representation for a single power supply"
+ return f'{self.__name__:15s}: {str(self.enabled):5s}, {self.dac:5d} mV'
+
class NamedPowers:
"""
- New implementation of the detector powers.
+ List implementation of the all the power supplies with its names.
+ d.powers gives you list of all powers with their DAC values and enables.
+
+ Example
+ --------
+ # print all powers with DAC and enables
+ d.powers
+ # set DAC or enables
+ d.powers.VA = 1200
+ d.powers.VA.enable()
+ d.powers.VA.disable()
+ # get
+ d.powers.VA.enabled
+ d.powers.VA.dac
+ d.powers.VA # print both enabled and dac
"""
- _frozen = False
- _direct_access = ['_detector', '_current', '_powernames']
+ _direct_access = ['_detector', '_current']
+
def __init__(self, detector):
+ self._frozen = False
self._detector = detector
self._current = 0
-
- #only get the powernames if we have modules attached
- if detector.size() == 0:
- self._powernames = ["VA", "VB", "VC", "VD", "VIO"]
- else:
- self._powernames = [n.replace(" ", "") for n in detector.getPowerNames()]
-
- # Populate the powers
- for i,name in enumerate(self._powernames):
- #name, enum, low, high, default, detector
- k = dacIndex(i + int(dacIndex.V_POWER_A))
- setattr(self, name, Power(name, k, 0, detector))
-
self._frozen = True
- # def __getattr__(self, name):
- # return self.__getattribute__('_' + name)
+
+ @property
+ def _powernames(self):
+ if self._detector.size() == 0:
+ raise RuntimeError("No modules added")
+ # always get the latest list
+ if hasattr(self._detector, 'powerlist'):
+ return [n.replace(" ", "") for n in self._detector.powerlist]
+ else:
+ raise RuntimeError("Detector does not have powerlist attribute")
+
+ def __getattr__(self, name):
+ if name in self._powernames:
+ idx = self._powernames.index(name)
+ return Power(name, powerIndex(idx), 0, self._detector)
+ raise AttributeError(f'Power not found: {name}')
def __setattr__(self, name, value):
- if not self._frozen:
- #durning init we need to be able to set up the class
+ if name in ("_detector", "_current", "_frozen"):
super().__setattr__(name, value)
- else:
- #Later we restrict us to manipulate powers and a few fields
- if name in self._direct_access:
- super().__setattr__(name, value)
- elif name in self._powernames:
- return self.__getattribute__(name).__setitem__(slice(None, None), value)
+ elif name in self._powernames:
+ if isinstance(value, int):
+ idx = self._powernames.index(name)
+ self._detector.setPowerDAC(powerIndex(idx), value)
else:
- raise AttributeError(f'Power not found: {name}')
+ raise AttributeError(f"Can only set DAC (int) for '{name}' on Power.")
+ else:
+ raise AttributeError(f'Power not found: {name}')
def __next__(self):
if self._current >= len(self._powernames):
@@ -79,83 +127,11 @@ class NamedPowers:
raise StopIteration
else:
self._current += 1
- return self.__getattribute__(self._powernames[self._current-1])
+ return getattr(self, self._powernames[self._current-1])
# return self.__getattr__(self._powernames[self._current-1])
def __iter__(self):
- return self
-
- def __repr__(self):
- r_str = ['========== POWERS =========']
- r_str += [repr(power) for power in self]
- return '\n'.join(r_str)
- def get_asarray(self):
- """
- Read the powers into a numpy array with dimensions [npowers, nmodules]
- """
- power_array = np.zeros((len(self._powernames), len(self._detector)))
- for i, _d in enumerate(self):
- power_array[i,:] = _d[:]
- return power_array
-
- def to_array(self):
- return self.get_asarray()
-
- def set_from_array(self, power_array):
- """
- Set the power from an numpy array with power values. [npowers, nmodules]
- """
- power_array = power_array.astype(np.int)
- for i, _d in enumerate(self):
- _d[:] = power_array[i]
-
- def from_array(self, power_array):
- self.set_from_array(power_array)
-
-class DetectorPowers:
- _powers = []
- _powernames = [_d[0] for _d in _powers]
- _allowed_attr = ['_detector', '_current']
- _frozen = False
-
- def __init__(self, detector):
- # We need to at least initially know which detector we are connected to
- self._detector = detector
-
- # Index to support iteration
self._current = 0
-
- # Name the attributes?
- for _d in self._powers:
- setattr(self, '_'+_d[0], Power(*_d, detector))
-
- self._frozen = True
-
- def __getattr__(self, name):
- return self.__getattribute__('_' + name)
-
- @property
- def powernames(self):
- return [_d[0] for _d in _powers]
-
- def __setattr__(self, name, value):
- if name in self._powernames:
- return self.__getattribute__('_' + name).__setitem__(slice(None, None), value)
- else:
- if self._frozen == True and name not in self._allowed_attr:
- raise AttributeError(f'Power not found: {name}')
- super().__setattr__(name, value)
-
-
- def __next__(self):
- if self._current >= len(self._powers):
- self._current = 0
- raise StopIteration
- else:
- self._current += 1
- return self.__getattr__(self._powernames[self._current-1])
-
- def __iter__(self):
return self
def __repr__(self):
@@ -163,33 +139,5 @@ class DetectorPowers:
r_str += [repr(power) for power in self]
return '\n'.join(r_str)
- def get_asarray(self):
- """
- Read the powers into a numpy array with dimensions [npowers, nmodules]
- """
- power_array = np.zeros((len(self._powers), len(self._detector)))
- for i, _d in enumerate(self):
- power_array[i,:] = _d[:]
- return power_array
-
- def to_array(self):
- return self.get_asarray()
-
- def set_from_array(self, power_array):
- """
- Set the powers from an numpy array with power values. [npowers, nmodules]
- """
- power_array = power_array.astype(np.int)
- for i, _d in enumerate(self):
- _d[:] = power_array[i]
-
- def from_array(self, power_array):
- self.set_from_array(power_array)
-
- def set_default(self):
- """
- Set all powers to their default values
- """
- for _d in self:
- _d[:] = _d.default
-
+ def __dir__(self):
+ return super().__dir__() + self._powernames
\ No newline at end of file
diff --git a/python/src/detector.cpp b/python/src/detector.cpp
index 7bad555c0..3d2b3a049 100644
--- a/python/src/detector.cpp
+++ b/python/src/detector.cpp
@@ -1549,21 +1549,46 @@ void init_det(py::module &m) {
Detector::getSYNCClock,
py::arg() = Positions{});
CppDetectorApi.def("getPowerList",
- (std::vector(Detector::*)() const) &
+ (std::vector(Detector::*)() const) &
Detector::getPowerList);
+ CppDetectorApi.def("getPowerDAC",
+ (int (Detector::*)(defs::powerIndex) const) &
+ Detector::getPowerDAC,
+ py::arg());
+ CppDetectorApi.def("setPowerDAC",
+ (void (Detector::*)(defs::powerIndex, int)) &
+ Detector::setPowerDAC,
+ py::arg(), py::arg());
+ CppDetectorApi.def("isPowerEnabled",
+ (bool (Detector::*)(defs::powerIndex) const) &
+ Detector::isPowerEnabled,
+ py::arg());
+ CppDetectorApi.def(
+ "setPowerEnabled",
+ (void (Detector::*)(const std::vector &, bool)) &
+ Detector::setPowerEnabled,
+ py::arg(), py::arg());
+ CppDetectorApi.def("getMeasuredPower",
+ (int (Detector::*)(defs::powerIndex) const) &
+ Detector::getMeasuredPower,
+ py::arg());
+ CppDetectorApi.def("getMeasuredCurrent",
+ (int (Detector::*)(defs::powerIndex) const) &
+ Detector::getMeasuredCurrent,
+ py::arg());
+ CppDetectorApi.def("getVoltageLimit",
+ (int (Detector::*)() const) & Detector::getVoltageLimit);
+ CppDetectorApi.def(
+ "setVoltageLimit",
+ (void (Detector::*)(const int)) & Detector::setVoltageLimit, py::arg());
CppDetectorApi.def("getSlowADCList",
(std::vector(Detector::*)() const) &
Detector::getSlowADCList);
CppDetectorApi.def(
- "getPower",
+ "getSlowADC",
(Result(Detector::*)(defs::dacIndex, sls::Positions) const) &
- Detector::getPower,
+ Detector::getSlowADC,
py::arg(), py::arg() = Positions{});
- CppDetectorApi.def(
- "setPower",
- (void (Detector::*)(defs::dacIndex, int, sls::Positions)) &
- Detector::setPower,
- py::arg(), py::arg(), py::arg() = Positions{});
CppDetectorApi.def("getADCVpp",
(Result(Detector::*)(bool, sls::Positions) const) &
Detector::getADCVpp,
@@ -1629,21 +1654,6 @@ void init_det(py::module &m) {
(void (Detector::*)(int, sls::Positions)) &
Detector::setDBITClock,
py::arg(), py::arg() = Positions{});
- CppDetectorApi.def(
- "getMeasuredPower",
- (Result(Detector::*)(defs::dacIndex, sls::Positions) const) &
- Detector::getMeasuredPower,
- py::arg(), py::arg() = Positions{});
- CppDetectorApi.def(
- "getMeasuredCurrent",
- (Result(Detector::*)(defs::dacIndex, sls::Positions) const) &
- Detector::getMeasuredCurrent,
- py::arg(), py::arg() = Positions{});
- CppDetectorApi.def(
- "getSlowADC",
- (Result(Detector::*)(defs::dacIndex, sls::Positions) const) &
- Detector::getSlowADC,
- py::arg(), py::arg() = Positions{});
CppDetectorApi.def("getExternalSamplingSource",
(Result(Detector::*)(sls::Positions) const) &
Detector::getExternalSamplingSource,
@@ -1766,18 +1776,19 @@ void init_det(py::module &m) {
Detector::getPowerNames);
CppDetectorApi.def(
"getPowerIndex",
- (defs::dacIndex(Detector::*)(const std::string &) const) &
+ (defs::powerIndex(Detector::*)(const std::string &) const) &
Detector::getPowerIndex,
py::arg());
CppDetectorApi.def(
"setPowerName",
- (void (Detector::*)(const defs::dacIndex, const std::string &)) &
+ (void (Detector::*)(const defs::powerIndex, const std::string &)) &
Detector::setPowerName,
py::arg(), py::arg());
- CppDetectorApi.def("getPowerName",
- (std::string(Detector::*)(const defs::dacIndex) const) &
- Detector::getPowerName,
- py::arg());
+ CppDetectorApi.def(
+ "getPowerName",
+ (std::string(Detector::*)(const defs::powerIndex) const) &
+ Detector::getPowerName,
+ py::arg());
CppDetectorApi.def("setSlowADCNames",
(void (Detector::*)(const std::vector)) &
Detector::setSlowADCNames,
diff --git a/python/src/enums.cpp b/python/src/enums.cpp
index f7302df80..f00b8105a 100644
--- a/python/src/enums.cpp
+++ b/python/src/enums.cpp
@@ -29,6 +29,12 @@ void init_enums(py::module &m) {
slsDetectorDefs::detectorType::XILINX_CHIPTESTBOARD)
.export_values();
+ py::enum_(Defs, "boolFormat")
+ .value("TrueFalse", slsDetectorDefs::boolFormat::TrueFalse)
+ .value("OnOff", slsDetectorDefs::boolFormat::OnOff)
+ .value("OneZero", slsDetectorDefs::boolFormat::OneZero)
+ .export_values();
+
py::enum_(Defs, "runStatus")
.value("IDLE", slsDetectorDefs::runStatus::IDLE)
.value("ERROR", slsDetectorDefs::runStatus::ERROR)
@@ -175,18 +181,6 @@ void init_enums(py::module &m) {
.value("TEMPERATURE_FPGA3",
slsDetectorDefs::dacIndex::TEMPERATURE_FPGA3)
.value("TRIMBIT_SCAN", slsDetectorDefs::dacIndex::TRIMBIT_SCAN)
- .value("V_POWER_A", slsDetectorDefs::dacIndex::V_POWER_A)
- .value("V_POWER_B", slsDetectorDefs::dacIndex::V_POWER_B)
- .value("V_POWER_C", slsDetectorDefs::dacIndex::V_POWER_C)
- .value("V_POWER_D", slsDetectorDefs::dacIndex::V_POWER_D)
- .value("V_POWER_IO", slsDetectorDefs::dacIndex::V_POWER_IO)
- .value("V_POWER_CHIP", slsDetectorDefs::dacIndex::V_POWER_CHIP)
- .value("I_POWER_A", slsDetectorDefs::dacIndex::I_POWER_A)
- .value("I_POWER_B", slsDetectorDefs::dacIndex::I_POWER_B)
- .value("I_POWER_C", slsDetectorDefs::dacIndex::I_POWER_C)
- .value("I_POWER_D", slsDetectorDefs::dacIndex::I_POWER_D)
- .value("I_POWER_IO", slsDetectorDefs::dacIndex::I_POWER_IO)
- .value("V_LIMIT", slsDetectorDefs::dacIndex::V_LIMIT)
.value("SLOW_ADC0", slsDetectorDefs::dacIndex::SLOW_ADC0)
.value("SLOW_ADC1", slsDetectorDefs::dacIndex::SLOW_ADC1)
.value("SLOW_ADC2", slsDetectorDefs::dacIndex::SLOW_ADC2)
@@ -198,6 +192,20 @@ void init_enums(py::module &m) {
.value("SLOW_ADC_TEMP", slsDetectorDefs::dacIndex::SLOW_ADC_TEMP)
.export_values();
+ py::enum_(Defs, "powerIndex")
+ .value("V_POWER_A", slsDetectorDefs::powerIndex::V_POWER_A)
+ .value("V_POWER_B", slsDetectorDefs::powerIndex::V_POWER_B)
+ .value("V_POWER_C", slsDetectorDefs::powerIndex::V_POWER_C)
+ .value("V_POWER_D", slsDetectorDefs::powerIndex::V_POWER_D)
+ .value("V_POWER_IO", slsDetectorDefs::powerIndex::V_POWER_IO)
+ .value("V_POWER_CHIP", slsDetectorDefs::powerIndex::V_POWER_CHIP)
+ .value("I_POWER_A", slsDetectorDefs::powerIndex::I_POWER_A)
+ .value("I_POWER_B", slsDetectorDefs::powerIndex::I_POWER_B)
+ .value("I_POWER_C", slsDetectorDefs::powerIndex::I_POWER_C)
+ .value("I_POWER_D", slsDetectorDefs::powerIndex::I_POWER_D)
+ .value("I_POWER_IO", slsDetectorDefs::powerIndex::I_POWER_IO)
+ .export_values();
+
py::enum_(Defs, "detectorSettings")
.value("STANDARD", slsDetectorDefs::detectorSettings::STANDARD)
.value("FAST", slsDetectorDefs::detectorSettings::FAST)
diff --git a/python/tests/test_det_api.py b/python/tests/test_det_api.py
index 6db456a34..e8d89560b 100644
--- a/python/tests/test_det_api.py
+++ b/python/tests/test_det_api.py
@@ -394,3 +394,324 @@ def test_patternstart(session_simulator, request):
assert "not implemented" in str(exc_info.value)
Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed")
+
+
+@pytest.mark.detectorintegration
+def test_v_limit(session_simulator, request):
+ """Test v_limit."""
+ det_type, num_interfaces, num_mods, d = session_simulator
+ assert d is not None
+
+ if det_type in ['ctb', 'xilinx_ctb']:
+
+ # save previous value
+ prev_val = d.getVoltageLimit()
+ from slsdet import dacIndex, powerIndex
+ prev_dac_val = d.getDAC(dacIndex.DAC_0, False)
+ prev_power_dac_val = d.getPowerDAC(powerIndex.V_POWER_A)
+
+ with pytest.raises(Exception):
+ d.v_limit = (1200, 'mV') #mV unit not supported, should be 'no unit'
+
+ with pytest.raises(Exception):
+ d.v_limit = -100 # previously worked but not allowing now
+
+ # setting dac and power dac with no vlimit should work
+ d.v_limit = 0
+ assert d.v_limit == 0
+ d.setDAC(dacIndex.DAC_0, 1200, True, [0])
+ d.setPowerDAC(powerIndex.V_POWER_A, 1200)
+
+ # setting vlimit should throw setting values above vlimit
+ d.v_limit = 1500
+ assert d.v_limit == 1500
+
+ with pytest.raises(Exception):
+ d.setDAC(dacIndex.DAC_0, 1501, True, [0])
+
+ with pytest.raises(Exception):
+ d.setPowerDAC(powerIndex.V_POWER_A, 1501)
+
+ # setting dac and power dac below vlimit should still work
+ d.setDAC(dacIndex.DAC_0, 1210, True, [0])
+ d.setPowerDAC(powerIndex.V_POWER_A, 1210)
+
+ # restore previous value
+ d.setVoltageLimit(prev_val)
+ d.setPowerDAC(powerIndex.V_POWER_A, prev_power_dac_val)
+ for i in range(len(d)):
+ d.setDAC(dacIndex.DAC_0, prev_dac_val[i], False, [i])
+
+ else:
+ with pytest.raises(Exception) as exc_info:
+ d.v_limit
+ assert "not implemented" in str(exc_info.value)
+
+ Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed")
+
+
+@pytest.mark.detectorintegration
+def test_v_abcd(session_simulator, request):
+ """Test v_a, v_b, v_c, v_d, v_io are deprecated comands."""
+ det_type, num_interfaces, num_mods, d = session_simulator
+ assert d is not None
+
+
+ with pytest.raises(Exception):
+ d.v_a
+
+ with pytest.raises(Exception):
+ d.v_b
+
+ with pytest.raises(Exception):
+ d.v_c
+
+ with pytest.raises(Exception):
+ d.v_d
+
+ with pytest.raises(Exception):
+ d.v_io
+
+ Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed")
+
+
+
+@pytest.mark.detectorintegration
+def test_powers(session_simulator, request):
+ """Test powers and powerlist."""
+ det_type, num_interfaces, num_mods, d = session_simulator
+ assert d is not None
+
+ from slsdet import Ctb
+ c = Ctb()
+
+ if det_type in ['ctb', 'xilinx_ctb']:
+
+ c.powerlist
+
+ # save previous value
+ from slsdet import powerIndex
+ prev_val_dac = {power: c.getPowerDAC(power) for power in c.getPowerList()}
+ prev_val = {power: c.isPowerEnabled(power) for power in c.getPowerList()}
+
+ # invalid
+ invalid_assignments = [
+ (c.powers, "random", True), # set random power
+ (c.powers, "random", True), # set random attribute of power
+ (c.powers.VA, "dac", "1200"),
+ (c.powers.VA, "enabled", "True"),
+ (c.powers, "VA", "-100"),
+ (c.powers, "VA", "-1"),
+ (c.powers, "VA", "4096")
+ ]
+ for obj, attr, value in invalid_assignments:
+ with pytest.raises(Exception):
+ setattr(obj, attr, value)
+ # vchip power can only be accessed via pybindings because it cannot be enabled/disabled
+ with pytest.raises(Exception):
+ c.powers.VCHIP
+
+ # valid
+ c.powers
+ c.powers.VA = 1200
+ assert c.powers.VA == 1200
+ assert c.powers.VA.dac == 1200
+
+ c.powers.VA.enable()
+ assert c.powers.VA.enabled == True
+
+ c.setPowerEnabled([powerIndex.V_POWER_B, powerIndex.V_POWER_C], True)
+ assert c.powers.VB.enabled == True
+ assert c.powers.VC.enabled == True
+
+ c.powers.VA = 1500
+ assert c.powers.VA == 1500
+ assert c.powers.VA.dac == 1500
+
+ # change power name and test same value
+ temp = c.powers.VB
+ c.powerlist = ["VA", "m_VB", "VC", "VD", "VIO"]
+ assert c.powers.m_VB.enabled == True
+ assert c.powers.m_VB == temp
+
+ # restore previous value
+ for power in c.getPowerList():
+ c.setPowerDAC(power, prev_val_dac[power])
+ c.setPowerEnabled([power], prev_val[power])
+ else:
+ with pytest.raises(Exception) as exc_info:
+ c.powerlist
+ assert "only for CTB" in str(exc_info.value)
+
+ Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed")
+
+
+@pytest.mark.detectorintegration
+def test_adclist(session_simulator, request):
+ """Test ADC list."""
+ det_type, num_interfaces, num_mods, d = session_simulator
+ assert d is not None
+
+ from slsdet import Ctb
+ c = Ctb()
+
+ if det_type in ['ctb', 'xilinx_ctb']:
+ c.adclist
+ c.adclist = ["1", "2", "3", "test", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32"]
+ c.adclist
+
+ else:
+ with pytest.raises(Exception) as exc_info:
+ c.adclist
+ assert "only for CTB" in str(exc_info.value)
+
+ Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed")
+
+
+@pytest.mark.detectorintegration
+def test_signallist(session_simulator, request):
+ """Test signal list."""
+ det_type, num_interfaces, num_mods, d = session_simulator
+ assert d is not None
+
+ from slsdet import Ctb
+ c = Ctb()
+
+ if det_type in ['ctb', 'xilinx_ctb']:
+ c.signallist
+ c.signallist = ["1", "2", "3", "test", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64"]
+ c.signallist
+
+ else:
+ with pytest.raises(Exception) as exc_info:
+ c.signallist
+ assert "only for CTB" in str(exc_info.value)
+
+ Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed")
+
+
+@pytest.mark.detectorintegration
+def test_slowadc(session_simulator, request):
+ """Test slow ADC and slow adc list."""
+ det_type, num_interfaces, num_mods, d = session_simulator
+ assert d is not None
+
+ from slsdet import Ctb
+ c = Ctb()
+
+ if det_type in ['ctb', 'xilinx_ctb']:
+ c.slowadc
+ c.slowadc.SLOWADC5
+ c.slowadclist = ["1", "2", "3", "test", "5", "6", "7", "8"]
+ c.slowadc.test
+
+ else:
+ with pytest.raises(Exception) as exc_info:
+ c.signallist
+ assert "only for CTB" in str(exc_info.value)
+
+ Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed")
+
+
+
+
+@pytest.mark.detectorintegration
+def test_dac(session_simulator, request):
+ """Test dac."""
+ det_type, num_interfaces, num_mods, d = session_simulator
+ assert d is not None
+ from slsdet import dacIndex
+
+ if det_type in ['ctb', 'xilinx_ctb']:
+
+ from slsdet import Ctb
+ c = Ctb()
+
+ # valid
+ c.daclist
+ c.dacvalues
+
+ # save previous value
+ prev_val = {dac: c.getDAC(dac, False) for dac in c.getDacList()}
+ prev_dac_list = c.daclist
+
+ # invalid
+ invalid_assignments = [
+ (c.dacs, "vb_comp", "1200"), # set random dac
+ (c.dacs, "DAC18", "1200"), # set dac 18
+ (c.dacs, "DAC0", "-1"),
+ (c.dacs, "DAC0", "4096")
+ ]
+ for obj, attr, value in invalid_assignments:
+ with pytest.raises(Exception):
+ setattr(obj, attr, value)
+
+ # valid
+ c.dacs.DAC0 = 1200
+ assert c.getDAC(dacIndex.DAC_0, False)[0] == 1200
+
+ c.dacs.DAC0 = 0
+ assert c.dacs.DAC0[0] == 0
+
+ # restore previous value
+ for dac in c.getDacList():
+ c.setDAC(dac, prev_val[dac][0], False)
+ c.daclist = prev_dac_list
+
+ else:
+ with pytest.raises(Exception):
+ d.dacs.DAC0
+
+ # valid
+ d.daclist
+ d.dacvalues
+
+ # remember first dac name and index to test later
+ dacname = d.daclist[0]
+ assert dacname
+ dacIndex = d.getDacList()[0]
+
+ # save previous value
+ prev_val = d.getDAC(dacIndex, False)
+
+ if det_type == 'eiger':
+ from slsdet import Eiger
+ c = Eiger()
+ elif det_type == 'jungfrau':
+ from slsdet import Jungfrau
+ c = Jungfrau()
+ elif det_type == 'gotthard2':
+ from slsdet import Gotthard2
+ c = Gotthard2()
+ elif det_type == 'mythen3':
+ from slsdet import Mythen3
+ c = Mythen3()
+ elif det_type == 'moench':
+ from slsdet import Moench
+ c = Moench()
+ else:
+ raise RuntimeError("Unknown detector type to test dac: " + det_type)
+ # invalid checks
+ invalid_assignments = [
+ (c.dacs, "random", "1200"), # set random dac
+ (c.dacs, "DAC0", "1200"), # set random dac
+ (c.dacs, dacname, "-1"),
+ (c.dacs, dacname, "4096")
+ ]
+ for obj, attr, value in invalid_assignments:
+ with pytest.raises(Exception):
+ setattr(obj, attr, value)
+
+ # valid, have to use setattr because c is different for each detector
+ # and we cannot hardcode the dac name
+ setattr(c.dacs, dacname, 1200)
+ assert c.getDAC(dacIndex, False)[0] == 1200
+ setattr(c.dacs, dacname, 0)
+ assert getattr(c.dacs, dacname)[0] == 0
+
+ # restore previous value
+ for i in range(len(d)):
+ d.setDAC(dacIndex, prev_val[i], False, [i])
+
+
+ Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed")
diff --git a/slsDetectorServers/ctbDetectorServer/RegisterDefs.h b/slsDetectorServers/ctbDetectorServer/RegisterDefs.h
index 418a2f94f..4e0b54028 100644
--- a/slsDetectorServers/ctbDetectorServer/RegisterDefs.h
+++ b/slsDetectorServers/ctbDetectorServer/RegisterDefs.h
@@ -631,6 +631,14 @@
/* Clock Measurement base reg */
#define PLL_FREQ_MEASURE_REG (0x44 << MEM_MAP_SHIFT)
+/* SPI */
+#define SPI_CTRL_REG (0x48 << MEM_MAP_SHIFT)
+#define SPI_CTRL_RX_EMPTY_BIT 2
+#define SPI_CTRL_CHIPSELECT_BIT 4
+#define SPI_CTRL_NBIT_OFST 16
+#define SPI_WRITEDATA_REG (0x49 << MEM_MAP_SHIFT)
+#define SPI_READDATA_REG (0x4A << MEM_MAP_SHIFT)
+
/** I2C Control register */
#define I2C_TRANSFER_COMMAND_FIFO_REG (0x100 << MEM_MAP_SHIFT)
#define I2C_RX_DATA_FIFO_REG (0x101 << MEM_MAP_SHIFT)
diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer
index a2370acc2..07c0556cd 100755
Binary files a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer and b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer differ
diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c
index 46b1fde51..89338fa54 100644
--- a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c
+++ b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c
@@ -67,7 +67,9 @@ uint32_t transceiverMask = DEFAULT_TRANSCEIVER_MASK;
int32_t clkPhase[NUM_CLOCKS] = {};
uint32_t clkFrequency[NUM_CLOCKS] = {DEFAULT_RUN_CLK, DEFAULT_ADC_CLK, DEFAULT_SYNC_CLK, DEFAULT_DBIT_CLK};
-int dacValues[NDAC] = {};
+int dacValues[NDAC_ONLY] = {};
+int powerValues[NPWR] = {}; // powerIndex (A->IO, Chip)
+
// software limit that depends on the current chip on the ctb
int vLimit = 0;
int highvoltage = 0;
@@ -524,8 +526,10 @@ void setupDetector() {
clkFrequency[ADC_CLK] = DEFAULT_ADC_CLK;
clkFrequency[SYNC_CLK] = DEFAULT_SYNC_CLK;
clkFrequency[DBIT_CLK] = DEFAULT_DBIT_CLK;
- for (int i = 0; i < NDAC; ++i)
+ for (int i = 0; i != NDAC_ONLY; ++i)
dacValues[i] = -1;
+ for (int i = 0; i != NPWR; ++i)
+ powerValues[i] = 0; // to calculate vchip
}
vLimit = DEFAULT_VLIMIT;
highvoltage = 0;
@@ -572,7 +576,7 @@ void setupDetector() {
if (initError == FAIL)
return;
- // power off voltage regulators
+ // power regulators
powerOff();
// adcs
@@ -601,11 +605,11 @@ void setupDetector() {
// power regulators
LOG(logINFOBLUE,
("Setting power dacs to min dac value (power disabled)\n"));
- for (int idac = NDAC_ONLY; idac < NDAC; ++idac) {
- if (idac == D_PWR_CHIP)
+ for (int iPower = 0; iPower != NPWR; ++iPower) {
+ if (iPower == (int)V_POWER_CHIP)
continue;
- int min = (idac == D_PWR_IO) ? VIO_MIN_MV : POWER_RGLTR_MIN;
- initError = setDAC(idac, min, true, initErrorMessage);
+ int min = (iPower == (int)V_POWER_IO) ? VIO_MIN_MV : POWER_RGLTR_MIN;
+ initError = setPowerDAC(iPower, min, initErrorMessage);
if (initError == FAIL)
return;
}
@@ -1262,9 +1266,22 @@ int getADCVpp(int mV, int *retval, char *mess) {
return OK;
}
+int getVLimit() { return vLimit; }
+
+int setVLimit(int val, char *mess) {
+ if (val < 0) {
+ sprintf(mess, "Could not set vlimit. Invalid value %d\n", val);
+ LOG(logERROR, (mess));
+ return FAIL;
+ }
+ LOG(logINFO, ("Setting vlimit to %d mV\n", val));
+ vLimit = val;
+ return OK;
+}
+
int validateDACIndex(enum DACINDEX ind, char *mess) {
- if (ind < 0 || ind >= NDAC) {
- sprintf(mess, "Could not set DAC. Invalid index %d\n", ind);
+ if (ind < 0 || ind >= NDAC_ONLY) {
+ sprintf(mess, "Could not set/get DAC. Invalid index %d\n", ind);
LOG(logERROR, (mess));
return FAIL;
}
@@ -1300,84 +1317,26 @@ int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess) {
return OK;
}
-int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval,
- char *mess) {
+int convertVoltageToDAC(enum DACINDEX ind, int voltage, int *retval_dacval,
+ char *mess) {
*retval_dacval = -1;
- // normal dacs
- if (ind < NDAC_ONLY) {
- if (LTC2620_VoltageToDac(voltage, retval_dacval) == FAIL) {
- sprintf(
- mess,
- "Could not set DAC %d. Could not convert %d mV to dac units.\n",
- ind, voltage);
- LOG(logERROR, (mess));
- return FAIL;
- }
- return OK;
- }
- // vchip
- if (ind == D_PWR_CHIP) {
- if (ConvertToDifferentRange(
- VCHIP_MIN_MV, VCHIP_MAX_MV, LTC2620_GetMaxInput(),
- LTC2620_GetMinInput(), voltage, retval_dacval) == FAIL) {
- sprintf(mess,
- "Could not set DAC %d (vchip). Could not convert %d mV to "
- "dac units.\n",
- ind, voltage);
- LOG(logERROR, (mess));
- return FAIL;
- }
- return OK;
- }
- // power dacs
- if (ConvertToDifferentRange(POWER_RGLTR_MIN, POWER_RGLTR_MAX,
- LTC2620_GetMaxInput(), LTC2620_GetMinInput(),
- voltage, retval_dacval) == FAIL) {
+ if (LTC2620_VoltageToDac(voltage, retval_dacval) == FAIL) {
sprintf(mess,
"Could not set DAC %d. Could not convert %d mV to dac units.\n",
- ind, voltage);
+ (int)ind, voltage);
LOG(logERROR, (mess));
return FAIL;
}
return OK;
}
-int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage,
- char *mess) {
+int convertDACToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage,
+ char *mess) {
*retval_voltage = -1;
- // normal dacs
- if (ind < NDAC_ONLY) {
- if (LTC2620_DacToVoltage(dacval, retval_voltage) == FAIL) {
- sprintf(
- mess,
- "Could not get DAC %d. Could not convert %d dac units to mV\n",
- ind, dacval);
- LOG(logERROR, (mess));
- return FAIL;
- }
- return OK;
- }
- // vchip
- if (ind == D_PWR_CHIP) {
- if (ConvertToDifferentRange(
- LTC2620_GetMaxInput(), LTC2620_GetMinInput(), VCHIP_MIN_MV,
- VCHIP_MAX_MV, dacval, retval_voltage) == FAIL) {
- sprintf(mess,
- "Could not get DAC %d (vchip). Could not convert %d dac "
- "units to mV\n",
- ind, dacval);
- LOG(logERROR, (mess));
- return FAIL;
- }
- return OK;
- }
- // power dacs
- if (ConvertToDifferentRange(LTC2620_GetMaxInput(), LTC2620_GetMinInput(),
- POWER_RGLTR_MIN, POWER_RGLTR_MAX, dacval,
- retval_voltage) == FAIL) {
+ if (LTC2620_DacToVoltage(dacval, retval_voltage) == FAIL) {
sprintf(mess,
"Could not get DAC %d. Could not convert %d dac units to mV\n",
- ind, dacval);
+ (int)ind, dacval);
LOG(logERROR, (mess));
return FAIL;
}
@@ -1397,7 +1356,7 @@ int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess) {
}
if (mV) {
- if (convertDACValueToVoltage(ind, dacval, retval, mess) == FAIL)
+ if (convertDACToVoltage(ind, dacval, retval, mess) == FAIL)
return FAIL;
return OK;
}
@@ -1414,40 +1373,318 @@ int setDAC(enum DACINDEX ind, int val, bool mV, char *mess) {
int dacval = val;
if (mV) {
- if (ind < NDAC_ONLY) {
- if (validateDACVoltage(ind, val, mess) == FAIL)
- return FAIL;
- }
- if (convertVoltageToDACValue(ind, val, &dacval, mess) == FAIL)
- return FAIL;
- }
- {
- char dacName[20] = {0};
- snprintf(dacName, sizeof(dacName), "dac %d", ind);
- if (LTC2620_SetDacValue((int)ind, dacval, dacName, mess) == FAIL)
+ if (validateDACVoltage(ind, val, mess) == FAIL)
+ return FAIL;
+
+ if (convertVoltageToDAC(ind, val, &dacval, mess) == FAIL)
return FAIL;
}
+
+ char dacName[20] = {0};
+ snprintf(dacName, sizeof(dacName), "dac %d", ind);
+ if (LTC2620_SetDacValue((int)ind, dacval, dacName, mess) == FAIL)
+ return FAIL;
dacValues[ind] = dacval;
return OK;
}
-int getVLimit() { return vLimit; }
-
-int setVLimit(int val, char *mess) {
- if (val < 0) {
- sprintf(mess, "Could not set vlimit. Invalid value %d\n", val);
+int validatePowerDACIndex(enum powerIndex ind, char *mess) {
+ if (ind < 0 || ind > V_POWER_IO) {
+ sprintf(mess, "Could not set/get Power DAC. Invalid index %d\n", ind);
LOG(logERROR, (mess));
return FAIL;
}
- vLimit = val;
+
return OK;
}
-int validateVchip(int val, char *mess) {
- if (val < VCHIP_MIN_MV || val > VCHIP_MAX_MV) {
+int validatePower(enum powerIndex ind, int voltage, char *mess) {
+ char *powerNames[] = {PWR_NAMES};
+
+ // validate min value
+ int min = (ind == V_POWER_IO) ? VIO_MIN_MV : POWER_RGLTR_MIN;
+ if (voltage < min && voltage != 0) {
+ sprintf(
+ mess,
+ "Could not set %s. Input value %d mV must be greater than %d mV.\n",
+ powerNames[ind], voltage, min);
+ LOG(logERROR, (mess));
+ return FAIL;
+ }
+ // validate max value
+ int max = (VCHIP_MAX_MV - VCHIP_POWER_INCRMNT);
+ if (voltage > max) {
+ sprintf(
+ mess,
+ "Could not set %s. Input value %d mV must be less than %d mV.\n",
+ powerNames[ind], voltage, max);
+ LOG(logERROR, (mess));
+ return FAIL;
+ }
+ // validate vlimit
+ if (vLimit > 0 && voltage > vLimit) {
+ sprintf(mess, "Could not set %s. Input %d mV exceeds vLimit %d mV\n",
+ powerNames[ind], voltage, vLimit);
+ LOG(logERROR, (mess))
+ return FAIL;
+ }
+ return OK;
+}
+
+int convertVoltageToPowerDAC(enum powerIndex ind, int voltage,
+ int *retval_dacval, char *mess) {
+ *retval_dacval = -1;
+ if (ConvertToDifferentRange(POWER_RGLTR_MIN, POWER_RGLTR_MAX,
+ LTC2620_GetMaxInput(), LTC2620_GetMinInput(),
+ voltage, retval_dacval) == FAIL) {
+ char *powerNames[] = {PWR_NAMES};
+ sprintf(mess,
+ "Could not set %s. Could not convert %d mV to dac units.\n",
+ powerNames[ind], voltage);
+ LOG(logERROR, (mess));
+ return FAIL;
+ }
+ return OK;
+}
+
+int convertPowerDACToVoltage(enum powerIndex ind, int dacval,
+ int *retval_voltage, char *mess) {
+ *retval_voltage = -1;
+ if (ConvertToDifferentRange(LTC2620_GetMaxInput(), LTC2620_GetMinInput(),
+ POWER_RGLTR_MIN, POWER_RGLTR_MAX, dacval,
+ retval_voltage) == FAIL) {
+ char *powerNames[] = {PWR_NAMES};
+ sprintf(mess,
+ "Could not get %s. Could not convert %d dac units to mV\n",
+ powerNames[ind], dacval);
+ LOG(logERROR, (mess));
+ return FAIL;
+ }
+ return OK;
+}
+
+int getPowerDAC(enum powerIndex ind, int *retval, char *mess) {
+ if (ind == V_POWER_CHIP) {
+ return getVchip(retval, mess);
+ }
+
+ *retval = -1;
+ if (validatePowerDACIndex(ind, mess) == FAIL)
+ return FAIL;
+
+ int dacval = powerValues[ind];
+ if (convertPowerDACToVoltage(ind, dacval, retval, mess) == FAIL)
+ return FAIL;
+
+ return OK;
+}
+
+int setPowerDAC(enum powerIndex ind, int voltage, char *mess) {
+ if (ind == V_POWER_CHIP) {
+ snprintf(mess, MAX_STR_LENGTH,
+ "Cannot set power dac for vchip. It is automatically "
+ "controlled when setting the other power rails (+200mV from "
+ "highest power regulator voltage).\n");
+ LOG(logERROR, (mess));
+ return FAIL;
+ }
+
+ if (validatePowerDACIndex(ind, mess) == FAIL)
+ return FAIL;
+
+ char *powerNames[] = {PWR_NAMES};
+ LOG(logINFO, ("Setting DAC %s: %d mV\n", powerNames[ind], voltage));
+
+ if (validatePower(ind, voltage, mess) == FAIL)
+ return FAIL;
+
+ // to be values
+ bool pwrEnables[NPWR - 1] = {0};
+ int pwrValues[NPWR - 1] = {0};
+ if (getAllPowerValues(pwrEnables, pwrValues, mess) == FAIL)
+ return FAIL;
+ // update with current command
+ pwrValues[ind] = voltage;
+
+ // set vchip accordingly
+ {
+ int vchip = 0;
+ if (computeVchip(&vchip, pwrEnables, pwrValues, mess) == FAIL)
+ return FAIL;
+ if (setVchip(vchip, mess) == FAIL)
+ return FAIL;
+ }
+
+ int dacval = -1;
+ if (convertVoltageToPowerDAC(ind, voltage, &dacval, mess) == FAIL)
+ return FAIL;
+
+ {
+ enum DACINDEX dacIndex = D_PWR_IO;
+ if (getDACIndexForPower(ind, &dacIndex, mess) == FAIL) {
+ return FAIL;
+ }
+
+ if (LTC2620_SetDacValue(dacIndex, dacval, powerNames[ind], mess) ==
+ FAIL)
+ return FAIL;
+ }
+
+ powerValues[ind] = dacval;
+ return OK;
+}
+
+int getDACIndexForPower(enum powerIndex pind, enum DACINDEX *dacIndex,
+ char *mess) {
+ switch (pind) {
+ case V_POWER_IO:
+ *dacIndex = D_PWR_IO;
+ break;
+ case V_POWER_A:
+ *dacIndex = D_PWR_A;
+ break;
+ case V_POWER_B:
+ *dacIndex = D_PWR_B;
+ break;
+ case V_POWER_C:
+ *dacIndex = D_PWR_C;
+ break;
+ case V_POWER_D:
+ *dacIndex = D_PWR_D;
+ break;
+ default:
+ *dacIndex = -1;
+ sprintf(mess, "Power index %d has no corresponding dac index\n", pind);
+ LOG(logERROR, (mess));
+ return FAIL;
+ }
+ return OK;
+}
+
+int getPowerMask(enum powerIndex index, uint32_t *mask, char *mess) {
+ switch (index) {
+ case V_POWER_IO:
+ *mask |= POWER_ENBL_VIO_MSK;
+ break;
+ case V_POWER_A:
+ *mask |= POWER_ENBL_VA_MSK;
+ break;
+ case V_POWER_B:
+ *mask |= POWER_ENBL_VB_MSK;
+ break;
+ case V_POWER_C:
+ *mask |= POWER_ENBL_VC_MSK;
+ break;
+ case V_POWER_D:
+ *mask |= POWER_ENBL_VD_MSK;
+ break;
+ default:
+ sprintf(mess, "Index %d has no power rail index\n", index);
+ LOG(logERROR, (mess));
+ return FAIL;
+ }
+ return OK;
+}
+
+void powerOff() {
+ LOG(logINFOBLUE, ("Powering OFF all rails\n"));
+ // cannot call setPowerRailEnabled because of vchip dependency
+ uint32_t mask = POWER_ENBL_VLTG_RGLTR_MSK;
+ bus_w(POWER_REG, bus_r(POWER_REG) & ~(mask));
+}
+
+int setPowerEnabled(enum powerIndex indices[], int count, bool enable,
+ char *mess) {
+ uint32_t mask = 0;
+ for (int i = 0; i != count; ++i) {
+ if (getPowerMask(indices[i], &mask, mess) == FAIL)
+ return FAIL;
+ }
+ // log message
+ {
+ char *powerNames[] = {PWR_NAMES};
+ char message[256] = {0};
+ sprintf(message, "Switching %s power for [", enable ? "on" : "off");
+ for (int i = 0; i != count; ++i) {
+ strcat(message, powerNames[indices[i]]);
+ strcat(message, ", ");
+ }
+ strcat(message, "]\n");
+ LOG(logINFO, ("%s", message));
+ }
+
+ // to be values
+ bool pwrEnables[NPWR - 1] = {0};
+ int pwrValues[NPWR - 1] = {0};
+ if (getAllPowerValues(pwrEnables, pwrValues, mess) == FAIL)
+ return FAIL;
+ // update with current command
+ for (int i = 0; i != count; ++i) {
+ pwrEnables[indices[i]] = enable;
+ }
+
+ // set vchip accordingly
+ {
+ int vchip = 0;
+ if (computeVchip(&vchip, pwrEnables, pwrValues, mess) == FAIL)
+ return FAIL;
+ if (setVchip(vchip, mess) == FAIL)
+ return FAIL;
+ }
+
+ // enable/disable power rails
+ uint32_t addr = POWER_REG;
+ if (enable) {
+ bus_w(addr, bus_r(addr) | mask);
+ } else {
+ bus_w(addr, bus_r(addr) & ~(mask));
+ }
+ return OK;
+}
+
+int isPowerEnabled(enum powerIndex ind, bool *retval, char *mess) {
+ uint32_t mask = 0;
+ if (getPowerMask(ind, &mask, mess) == FAIL)
+ return FAIL;
+
+ *retval = (bus_r(POWER_REG) & mask) != 0;
+ LOG(logDEBUG1, ("get power %d:%d\n", ind, *retval));
+ return OK;
+}
+
+int validateVchip(int voltage, char *mess) {
+ if (voltage < VCHIP_MIN_MV || voltage > VCHIP_MAX_MV) {
sprintf(mess,
"Invalid vchip value %d mV. Must be between %d and %d mV\n",
- val, VCHIP_MIN_MV, VCHIP_MAX_MV);
+ voltage, VCHIP_MIN_MV, VCHIP_MAX_MV);
+ LOG(logERROR, (mess));
+ return FAIL;
+ }
+ return OK;
+}
+
+int convertVchipDACToVoltage(int dacval, int *retval_voltage, char *mess) {
+ *retval_voltage = -1;
+ if (ConvertToDifferentRange(LTC2620_GetMaxInput(), LTC2620_GetMinInput(),
+ VCHIP_MIN_MV, VCHIP_MAX_MV, dacval,
+ retval_voltage) == FAIL) {
+ sprintf(mess,
+ "Could not get vchip. Could not convert %d dac units to mV\n",
+ dacval);
+ LOG(logERROR, (mess));
+ return FAIL;
+ }
+ return OK;
+}
+
+int convertVoltageToVchipDAC(int voltage, int *retval_dacval, char *mess) {
+ *retval_dacval = -1;
+ if (ConvertToDifferentRange(VCHIP_MIN_MV, VCHIP_MAX_MV,
+ LTC2620_GetMaxInput(), LTC2620_GetMinInput(),
+ voltage, retval_dacval) == FAIL) {
+ sprintf(mess,
+ "Could not set vchip. Could not convert %d mV to dac units.\n",
+ voltage);
LOG(logERROR, (mess));
return FAIL;
}
@@ -1455,38 +1692,53 @@ int validateVchip(int val, char *mess) {
}
int getVchip(int *retval, char *mess) {
- if (getDAC(D_PWR_CHIP, true, retval, mess) == FAIL)
+ *retval = -1;
+ int dacval = powerValues[V_POWER_CHIP];
+ if (convertVchipDACToVoltage(dacval, retval, mess) == FAIL)
return FAIL;
- LOG(logDEBUG1, ("Vchip: %d\n", *retval));
return OK;
}
-int setVchip(int val, char *mess) {
- LOG(logINFOBLUE, ("Setting Vchip to %d mV\n", val));
- if (validateVchip(val, mess) == FAIL)
+int setVchip(int voltage, char *mess) {
+ LOG(logDEBUG, ("\tSetting Vchip to %d mV\n", voltage));
+
+ if (validateVchip(voltage, mess) == FAIL)
return FAIL;
- if (setDAC(D_PWR_CHIP, val, true, mess) == FAIL)
+ int dacval = -1;
+ if (convertVoltageToVchipDAC(voltage, &dacval, mess) == FAIL)
return FAIL;
+ {
+ int dacIndex = D_PWR_CHIP;
+ char dacName[20] = {0};
+ snprintf(dacName, sizeof(dacName), "vchip");
+ if (LTC2620_SetDacValue(dacIndex, dacval, dacName, mess) == FAIL)
+ return FAIL;
+ }
+ powerValues[V_POWER_CHIP] = dacval;
return OK;
}
-int getVchipToSet(enum DACINDEX ind, int pwr_val, int *retval_vchip,
- char *mess) {
+int getAllPowerValues(bool *pwrEnables, int *pwrValues, char *mess) {
+ for (int ipwr = 0; ipwr != (NPWR - 1); ++ipwr) {
+ if (isPowerEnabled((enum powerIndex)ipwr, &pwrEnables[ipwr], mess) ==
+ FAIL)
+ return FAIL;
+ if (getPowerDAC((enum powerIndex)ipwr, &pwrValues[ipwr], mess) == FAIL)
+ return FAIL;
+ }
+ return OK;
+}
+
+int computeVchip(int *retval_vchip, bool *pwrEnables, int *pwrValues,
+ char *mess) {
// get the max of all the power regulators
int max = 0;
- for (int ipwr = NDAC_ONLY; ipwr <= NDAC; ++ipwr) {
- if (ipwr == D_PWR_CHIP)
- continue;
+ for (int ipwr = 0; ipwr != 5; ++ipwr) {
int val = 0;
- // current index, use the value to be set
- if (ipwr == (int)ind) {
- val = pwr_val;
- } else {
- if (getPower(ind, &val, mess) == FAIL)
- return FAIL;
- }
+ if (pwrEnables[ipwr])
+ val = pwrValues[ipwr];
if (val > max)
max = val;
}
@@ -1498,14 +1750,10 @@ int getVchipToSet(enum DACINDEX ind, int pwr_val, int *retval_vchip,
retval = VCHIP_MIN_MV;
// max checked earlier, should not happen
if (retval > VCHIP_MAX_MV) {
- enum PWRINDEX pwrIndex = PWR_IO;
- if (getPowerIndexFromDACIndex(ind, &pwrIndex, mess) == FAIL)
- return FAIL;
- char *powerNames[] = {PWR_NAMES};
- sprintf(
- mess,
- "Could not set %s. Vchip value to set %d is beyond itsmaximum %d\n",
- powerNames[pwrIndex], retval, VCHIP_MAX_MV);
+ sprintf(mess,
+ "Could not set power enable. Vchip value to set %d is beyond "
+ "its maximum %d\n",
+ retval, VCHIP_MAX_MV);
LOG(logERROR, (mess));
return FAIL;
}
@@ -1515,209 +1763,60 @@ int getVchipToSet(enum DACINDEX ind, int pwr_val, int *retval_vchip,
return OK;
}
-int validatePower(enum PWRINDEX ind, int val, char *mess) {
- char *powerNames[] = {PWR_NAMES};
- // validate min value
- int min = (ind == PWR_IO) ? VIO_MIN_MV : POWER_RGLTR_MIN;
- if (val < min && val != 0) {
- sprintf(
- mess,
- "Could not set %s. Input value %d mV must be greater than %d mV.\n",
- powerNames[ind], val, min);
- LOG(logERROR, (mess));
- return FAIL;
- }
- // validate max value
- int max = (VCHIP_MAX_MV - VCHIP_POWER_INCRMNT);
- if (val > max) {
- sprintf(
- mess,
- "Could not set %s. Input value %d mV must be less than %d mV.\n",
- powerNames[ind], val, max);
- LOG(logERROR, (mess));
- return FAIL;
- }
- // validate vlimit
- if (vLimit > 0 && val > vLimit) {
- sprintf(mess, "Could not set %s. Input %d mV exceeds vLimit %d mV\n",
- powerNames[ind], val, vLimit);
- LOG(logERROR, (mess))
- return FAIL;
- }
- return OK;
-}
+int getPowerADC(enum powerIndex index, int *retval, char *mess) {
+ *retval = -1;
-// for power rail index and name debugging
-int getPowerIndexFromDACIndex(enum DACINDEX ind, enum PWRINDEX *pwrIndex,
- char *mess) {
- *pwrIndex = PWR_IO;
- switch (ind) {
- case D_PWR_IO:
- *pwrIndex = PWR_IO;
+ enum ADCINDEX adcIndex = V_PWR_IO;
+ switch (index) {
+ case V_POWER_A:
+ case I_POWER_A:
+ adcIndex = V_PWR_A;
break;
- case D_PWR_A:
- *pwrIndex = PWR_A;
+ case V_POWER_B:
+ case I_POWER_B:
+ adcIndex = V_PWR_B;
break;
- case D_PWR_B:
- *pwrIndex = PWR_B;
+ case V_POWER_C:
+ case I_POWER_C:
+ adcIndex = V_PWR_C;
break;
- case D_PWR_C:
- *pwrIndex = PWR_C;
+ case V_POWER_D:
+ case I_POWER_D:
+ adcIndex = V_PWR_D;
break;
- case D_PWR_D:
- *pwrIndex = PWR_D;
+ case V_POWER_IO:
+ case I_POWER_IO:
+ adcIndex = V_PWR_IO;
break;
+
default:
- sprintf(mess, "Index %d has no power index\n", ind);
+ sprintf(mess, "Could not get Power ADC. Invalid index %d\n", index);
LOG(logERROR, (mess));
return FAIL;
}
- return OK;
-}
-int getPowerRailMask(enum PWRINDEX ind, uint32_t *mask, char *mess) {
- *mask = 0;
- switch (ind) {
- case PWR_IO:
- *mask = POWER_ENBL_VIO_MSK;
- break;
- case PWR_A:
- *mask = POWER_ENBL_VA_MSK;
- break;
- case PWR_B:
- *mask = POWER_ENBL_VB_MSK;
- break;
- case PWR_C:
- *mask = POWER_ENBL_VC_MSK;
- break;
- case PWR_D:
- *mask = POWER_ENBL_VD_MSK;
- break;
- default:
- sprintf(mess, "Index %d has no power rail index\n", ind);
- LOG(logERROR, (mess));
- return FAIL;
- }
- return OK;
-}
-
-int EnablePowerRail(enum PWRINDEX ind, char *mess) {
- char *powerNames[] = {PWR_NAMES};
- uint32_t addr = POWER_REG;
- uint32_t mask = 0;
-
- if (getPowerRailMask(ind, &mask, mess) == FAIL)
- return FAIL;
-
- LOG(logINFO, ("\tSwitching on power for %s\n", powerNames[ind]));
- bus_w(addr, bus_r(addr) | mask);
- return OK;
-}
-
-int DisablePowerRail(enum PWRINDEX ind, char *mess) {
- char *powerNames[] = {PWR_NAMES};
- uint32_t addr = POWER_REG;
- uint32_t mask = 0;
-
- if (getPowerRailMask(ind, &mask, mess) == FAIL)
- return FAIL;
-
- LOG(logINFO, ("\tSwitching off power for %s\n", powerNames[ind]));
- bus_w(addr, bus_r(addr) & ~(mask));
- return OK;
-}
-
-int getPowerRail(enum PWRINDEX ind, int *retval, char *mess) {
- char *powerNames[] = {PWR_NAMES};
- uint32_t addr = POWER_REG;
- uint32_t mask = 0;
-
- if (getPowerRailMask(ind, &mask, mess) == FAIL)
- return FAIL;
-
- *retval = (bus_r(addr) & mask);
- LOG(logDEBUG1, ("Power rail retval for %s: %s\n", powerNames[ind],
- ((*retval > 0) ? "Enabled" : "Disabled")));
-
- return OK;
-}
-
-int getPower(enum DACINDEX ind, int *retval, char *mess) {
- enum PWRINDEX pwrIndex = PWR_IO;
- if (getPowerIndexFromDACIndex(ind, &pwrIndex, mess) == FAIL)
- return FAIL;
-
- // if powered off, return 0
- if (getPowerRail(pwrIndex, retval, mess) == FAIL)
- return FAIL;
- if (*retval == 0) {
+#ifdef VIRTUAL
+ return 0;
+#endif
+ int deviceId = I2C_POWER_VIO_DEVICE_ID + (int)adcIndex;
+ // adc voltage
+ if (index < I_POWER_A) {
+ LOG(logDEBUG1, ("Reading I2C Voltage for device Id: %d\n", deviceId));
+ *retval = INA226_ReadVoltage(deviceId);
return OK;
}
- if (getDAC(ind, true, retval, mess) == FAIL)
- return FAIL;
+ // adc current
+ LOG(logDEBUG1, ("Reading I2C Current for device Id: %d\n", deviceId));
+ *retval = INA226_ReadCurrent(deviceId);
return OK;
}
-int setPower(enum DACINDEX ind, int val, char *mess) {
- enum PWRINDEX pwrIndex = PWR_IO;
- if (getPowerIndexFromDACIndex(ind, &pwrIndex, mess) == FAIL)
- return FAIL;
-
- char *powerNames[] = {PWR_NAMES};
- LOG(logINFOBLUE, ("Setting %s to %d mV\n", powerNames[pwrIndex], val));
-
- if (validatePower(pwrIndex, val, mess) == FAIL)
- return FAIL;
-
- // compute vchip to set before powering off
- int vchip = 0;
- if (getVchipToSet(ind, val, &vchip, mess) == FAIL)
- return FAIL;
-
- if (DisablePowerRail(pwrIndex, mess) == FAIL)
- return FAIL;
-
- if (setVchip(vchip, mess) == FAIL)
- return FAIL;
-
- if (val != 0) {
- if (setDAC(ind, val, true, mess) == FAIL)
- return FAIL;
-
- if (EnablePowerRail(pwrIndex, mess) == FAIL)
- return FAIL;
- }
- return OK;
-}
-
-void powerOff() {
- uint32_t addr = POWER_REG;
- LOG(logINFO, ("Powering off all voltage regulators\n"));
- bus_w(addr, bus_r(addr) & (~POWER_ENBL_VLTG_RGLTR_MSK));
-}
-
int getADC(enum ADCINDEX ind) {
#ifdef VIRTUAL
return 0;
#endif
switch (ind) {
- case V_PWR_IO:
- case V_PWR_A:
- case V_PWR_B:
- case V_PWR_C:
- case V_PWR_D:
- LOG(logDEBUG1, ("Reading I2C Voltage for device Id: %d\n", (int)ind));
- return INA226_ReadVoltage(I2C_POWER_VIO_DEVICE_ID + (int)ind);
- case I_PWR_IO:
- case I_PWR_A:
- case I_PWR_B:
- case I_PWR_C:
- case I_PWR_D:
- LOG(logDEBUG1, ("Reading I2C Current for device Id: %d\n", (int)ind));
- return INA226_ReadCurrent(I2C_POWER_VIO_DEVICE_ID +
- (int)(ind - I_PWR_IO));
-
// slow adcs
case S_TMP:
LOG(logDEBUG1, ("Reading Slow ADC Temperature\n"));
diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.h
index 7b2a30716..3dccdf8c1 100644
--- a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.h
+++ b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.h
@@ -124,38 +124,50 @@ enum detectorSettings getSettings();
// parameters - threshold
// parameters - dac, adc, hv
-int setADCVpp(int val, int mV, char *mess);
-int getADCVpp(int mV, int *retval, char *mess);
+int getVLimit();
+int setVLimit(int val, char *mess);
int validateDACIndex(enum DACINDEX ind, char *mess);
int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess);
-int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval,
- char *mess);
-int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage,
- char *mess);
+int convertVoltageToDAC(enum DACINDEX ind, int voltage, int *retval_dacval,
+ char *mess);
+int convertDACToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage,
+ char *mess);
int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess);
/** @param val value can be in mV or dac units */
int setDAC(enum DACINDEX ind, int val, bool mV, char *mess);
-int getVLimit();
-int setVLimit(int val, char *mess);
+int setADCVpp(int val, int mV, char *mess);
+int getADCVpp(int mV, int *retval, char *mess);
+
+int validatePowerDACIndex(enum powerIndex ind, char *mess);
+int validatePower(enum powerIndex ind, int val, char *mess);
+int convertVoltageToPowerDAC(enum powerIndex ind, int voltage,
+ int *retval_dacval, char *mess);
+int convertPowerDACToVoltage(enum powerIndex ind, int dacval,
+ int *retval_voltage, char *mess);
+int getPowerDAC(enum powerIndex ind, int *retval, char *mess);
+int setPowerDAC(enum powerIndex ind, int voltage, char *mess);
+int getDACIndexForPower(enum powerIndex pind, enum DACINDEX *dacIndex,
+ char *mess);
+
+int getPowerMask(enum powerIndex ind, uint32_t *mask, char *mess);
+void powerOff();
+int setPowerEnabled(enum powerIndex indices[], int count, bool enable,
+ char *mess);
+int isPowerEnabled(enum powerIndex ind, bool *retval, char *mess);
int validateVchip(int val, char *mess);
int getVchip(int *retval, char *mess);
int setVchip(int val, char *mess);
-int getVchipToSet(enum DACINDEX ind, int pwr_val, int *retval_vchip,
- char *mess);
+int getAllPowerValues(bool *pwrEnable, int *pwrValues, char *mess);
+/** pwrEnable and pwrValues are current values
+ * updated with the current command
+ * (current cmd: eg. power enable all or only set one power dac) */
+int computeVchip(int *retval_vchip, bool *pwrEnable, int *pwrValues,
+ char *mess);
-int validatePower(enum PWRINDEX ind, int val, char *mess);
-int getPowerIndexFromDACIndex(enum DACINDEX ind, enum PWRINDEX *pwrIndex,
- char *mess);
-int getPowerRailMask(enum PWRINDEX ind, uint32_t *mask, char *mess);
-int EnablePowerRail(enum PWRINDEX ind, char *mess);
-int DisablePowerRail(enum PWRINDEX ind, char *mess);
-int getPowerRail(enum PWRINDEX ind, int *retval, char *mess);
-int getPower(enum DACINDEX ind, int *retval, char *mess);
-int setPower(enum DACINDEX ind, int val, char *mess);
-void powerOff();
+int getPowerADC(enum powerIndex index, int *retval, char *mess);
int getADC(enum ADCINDEX ind);
int getSlowADC(int ichan);
diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h
index 8ebe24b42..0fa1b534b 100644
--- a/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h
+++ b/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h
@@ -47,7 +47,7 @@
#define DEFAULT_PERIOD (1 * 1000 * 1000) // ns
#define DEFAULT_DELAY (0)
#define DEFAULT_HIGH_VOLTAGE (0)
-#define DEFAULT_VLIMIT (-100)
+#define DEFAULT_VLIMIT (0)
#define DEFAULT_TIMING_MODE (AUTO_TIMING)
#define DEFAULT_TX_UDP_PORT (0x7e9a)
#define DEFAULT_RUN_CLK (80000000) // 80
@@ -174,8 +174,7 @@ enum DACINDEX {
D_PWR_IO
};
-enum PWRINDEX { PWR_IO, PWR_A, PWR_B, PWR_C, PWR_D };
-#define PWR_NAMES "VIO", "VA", "VB", "VC", "VD"
+#define PWR_NAMES "VA", "VB", "VC", "VD", "VIO"
enum CLKINDEX { RUN_CLK, ADC_CLK, SYNC_CLK, DBIT_CLK, NUM_CLOCKS };
#define CLK_NAMES "run", "adc", "sync", "dbit"
diff --git a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer
index 6bfcff974..21c2be1a2 100755
Binary files a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer and b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer differ
diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c
index b1896607f..c204a1221 100644
--- a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c
+++ b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c
@@ -302,8 +302,8 @@ u_int64_t getDetectorMAC() {
char output[255];
#ifdef VIRTUAL
FILE *sysFile =
- popen("cat /sys/class/net/$(ip route show default | grep -v vpn | awk "
- "'/default/ {print $5}')/address",
+ popen("ip link show $(ip route show default | grep -v vpn | awk "
+ "'/default/ {print $5}') | grep link/ether | awk '{print $2}'",
"r");
#else
FILE *sysFile = popen("more /sys/class/net/eth0/address", "r");
diff --git a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer
index 0086d8737..e00d36522 100755
Binary files a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer and b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer differ
diff --git a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c
index 15af49ac2..39761d91f 100644
--- a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c
+++ b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c
@@ -497,7 +497,7 @@ void setupDetector() {
}
// power on chip
- initError = powerChip(1, initErrorMessage);
+ initError = powerChip(true, initErrorMessage);
if (initError == FAIL)
return;
@@ -2352,7 +2352,7 @@ int checkDetectorType(char *mess) {
return OK;
}
-int powerChip(int on, char *mess) {
+int powerChip(bool on, char *mess) {
if (on) {
LOG(logINFO, ("Powering chip: on\n"));
bus_w(CONTROL_REG, bus_r(CONTROL_REG) | CONTROL_PWR_CHIP_MSK);
diff --git a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.h
index 96b9f7d0e..124a058f8 100644
--- a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.h
+++ b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.h
@@ -153,7 +153,7 @@ int *getDetectorPosition();
// very detector specific
int checkDetectorType(char *mess);
-int powerChip(int on, char *mess);
+int powerChip(bool on, char *mess);
int getPowerChip();
int isChipConfigured();
int configureChip(char *mess);
diff --git a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer
index e9d362f54..116598760 100755
Binary files a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer and b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer differ
diff --git a/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer b/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer
index 5f7877f33..7b7a4c34b 100755
Binary files a/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer and b/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer differ
diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer
index 42dcef1d9..6a94723aa 100755
Binary files a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer and b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer differ
diff --git a/slsDetectorServers/slsDetectorServer/include/blackfin.h b/slsDetectorServers/slsDetectorServer/include/blackfin.h
index 672f58c57..f08bd1b1b 100644
--- a/slsDetectorServers/slsDetectorServer/include/blackfin.h
+++ b/slsDetectorServers/slsDetectorServer/include/blackfin.h
@@ -122,3 +122,6 @@ uint32_t *Blackfin_getBaseAddress();
* Map FPGA
*/
int mapCSP0(void);
+
+/** sleep for only usecs */
+void usleep_bf(uint64_t i);
diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h
index 493b1638f..ea45b682e 100644
--- a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h
+++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h
@@ -6,8 +6,9 @@
#include "sls/sls_detector_defs.h"
#include
-#define GOODBYE (-200)
-#define REBOOT (-400)
+#define GOODBYE (-200)
+#define REBOOT (-400)
+#define BFIN_SPI_WAIT_uSECONDS 25
// initialization functions
int updateModeAllowedFunction(int file_des);
@@ -341,3 +342,10 @@ int get_pattern_wait_interval(int);
int set_pattern_wait_interval(int);
int spi_read(int);
int spi_write(int);
+int get_power(int);
+int set_power(int);
+int get_power_dac(int);
+int set_power_dac(int);
+int get_power_adc(int);
+int get_voltage_limit(int);
+int set_voltage_limit(int);
diff --git a/slsDetectorServers/slsDetectorServer/src/LTC2620.c b/slsDetectorServers/slsDetectorServer/src/LTC2620.c
index 2a62fa982..d7ed35dd6 100644
--- a/slsDetectorServers/slsDetectorServer/src/LTC2620.c
+++ b/slsDetectorServers/slsDetectorServer/src/LTC2620.c
@@ -250,7 +250,7 @@ int LTC2620_SetDacValue(int dacnum, int val, char *dacname, char *mess) {
LOG(logERROR, (mess));
return FAIL;
}
- LOG(logINFO, ("\tSetting DAC %s [%d]: %d dac\n", dacname, dacnum, val));
+ LOG(logINFOBLUE, ("\tSetting DAC %s [%d]: %d dac\n", dacname, dacnum, val));
#ifndef VIRTUAL
LTC2620_SetDAC(dacnum, val);
#endif
diff --git a/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c b/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c
index e08a98caf..ee76c5e64 100644
--- a/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c
+++ b/slsDetectorServers/slsDetectorServer/src/LTC2620_Driver.c
@@ -86,7 +86,7 @@ int LTC2620_D_SetDacValue(int dacnum, int val, char *dacname, char *mess) {
LOG(logERROR, (mess));
return FAIL;
}
- LOG(logINFO, ("\tSetting DAC %s [%d]: %d dac\n", dacname, dacnum, val));
+ LOG(logINFOBLUE, ("\tSetting DAC %s [%d]: %d dac\n", dacname, dacnum, val));
#ifdef VIRTUAL
return OK;
diff --git a/slsDetectorServers/slsDetectorServer/src/blackfin.c b/slsDetectorServers/slsDetectorServer/src/blackfin.c
index 06322de6d..eb70d3164 100644
--- a/slsDetectorServers/slsDetectorServer/src/blackfin.c
+++ b/slsDetectorServers/slsDetectorServer/src/blackfin.c
@@ -11,12 +11,13 @@
#include // mmap
/* global variables */
+const uint64_t BFIN_CYCLES_1uSECOND = 20;
u_int32_t *csp0base = 0;
+
#define CSP0 0x20200000
#define MEM_SIZE 0x100000
#ifdef JUNGFRAUD
-
extern void configureChip();
#endif
@@ -131,3 +132,11 @@ int mapCSP0(void) {
}
uint32_t *Blackfin_getBaseAddress() { return csp0base; }
+
+// usleep is not viable on blackfin
+void usleep_bf(uint64_t i) {
+ uint64_t j = i * BFIN_CYCLES_1uSECOND;
+ while (--j) {
+ asm volatile("");
+ }
+}
\ No newline at end of file
diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c
index bb00c00fa..cfdc933b5 100644
--- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c
+++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c
@@ -523,6 +523,14 @@ void function_table() {
flist[F_SET_PATTERN_WAIT_INTERVAL] = &set_pattern_wait_interval;
flist[F_SPI_READ] = &spi_read;
flist[F_SPI_WRITE] = &spi_write;
+ flist[F_GET_POWER] = &get_power;
+ flist[F_SET_POWER] = &set_power;
+ flist[F_GET_POWER_DAC] = &get_power_dac;
+ flist[F_SET_POWER_DAC] = &set_power_dac;
+ flist[F_GET_POWER_ADC] = &get_power_adc;
+ flist[F_GET_VOLTAGE_LIMIT] = &get_voltage_limit;
+ flist[F_SET_VOLTAGE_LIMIT] = &set_voltage_limit;
+
// check
if (NUM_DET_FUNCTIONS >= RECEIVER_ENUM_START) {
LOG(logERROR, ("The last detector function enum has reached its "
@@ -957,41 +965,6 @@ enum DACINDEX getDACIndex(enum dacIndex ind) {
case VISHAPER:
serverDacIndex = E_VISHAPER;
break;
-#elif CHIPTESTBOARDD
- case V_POWER_A:
- serverDacIndex = D_PWR_A;
- break;
- case V_POWER_B:
- serverDacIndex = D_PWR_B;
- break;
- case V_POWER_C:
- serverDacIndex = D_PWR_C;
- break;
- case V_POWER_D:
- serverDacIndex = D_PWR_D;
- break;
- case V_POWER_IO:
- serverDacIndex = D_PWR_IO;
- break;
- case V_POWER_CHIP:
- serverDacIndex = D_PWR_CHIP;
- break;
-#elif XILINX_CHIPTESTBOARDD
- case V_POWER_A:
- serverDacIndex = D_PWR_A;
- break;
- case V_POWER_B:
- serverDacIndex = D_PWR_B;
- break;
- case V_POWER_C:
- serverDacIndex = D_PWR_C;
- break;
- case V_POWER_D:
- serverDacIndex = D_PWR_D;
- break;
- case V_POWER_IO:
- serverDacIndex = D_PWR_IO;
- break;
#elif MYTHEN3D
case VCASSH:
serverDacIndex = M_VCASSH;
@@ -1353,61 +1326,11 @@ int processDACEnums(enum dacIndex ind, int val, bool mV) {
ret = getHighVoltage(&retval, mess);
return retval;
- case V_POWER_CHIP:
- if (val != GET_FLAG) {
- ret = FAIL;
- sprintf(
- mess,
- "Can not set Vchip. Can only be set automatically in the "
- "background (+200mV from highest power regulator voltage).\n");
- LOG(logERROR, (mess));
- return retval;
- }
- ret = getVchip(&retval, mess);
- return retval;
-
- case V_LIMIT:
- if (val != GET_FLAG) {
- if (!mV) {
- ret = FAIL;
- strcpy(mess, "Could not set vlimit. VLimit should be in "
- "mV and not dac units.\n");
- LOG(logERROR, (mess));
- return retval;
- }
- ret = setVLimit(val, mess);
- } else
- retval = getVLimit();
- return retval;
-
- case V_POWER_A:
- case V_POWER_B:
- case V_POWER_C:
- case V_POWER_D:
- case V_POWER_IO:
- serverDacIndex = getDACIndex(ind);
- if (ret == FAIL)
- return retval;
- if (val != GET_FLAG) {
- if (!mV) {
- ret = FAIL;
- sprintf(mess,
- "Could not set power. Power regulator %d should be in "
- "mV and not dac units.\n",
- ind);
- LOG(logERROR, (mess));
- return retval;
- }
- ret = setPower(serverDacIndex, val, mess);
- } else
- ret = getPower(serverDacIndex, &retval, mess);
- return retval;
-
- // actual dacs
default:
serverDacIndex = getDACIndex(ind);
if (ret == FAIL)
return retval;
+
if (val != GET_FLAG)
ret = setDAC(serverDacIndex, val, mV, mess);
else
@@ -1420,57 +1343,16 @@ int processDACEnums(enum dacIndex ind, int val, bool mV) {
#if XILINX_CHIPTESTBOARDD
int processDACEnums(enum dacIndex ind, int val, bool mV) {
int retval = -1;
- enum DACINDEX serverDacIndex = 0;
- switch (ind) {
- case V_LIMIT:
- if (val != GET_FLAG) {
- if (!mV) {
- ret = FAIL;
- strcpy(mess, "Could not set vlimit. VLimit should be in "
- "mV and not dac units.\n");
- LOG(logERROR, (mess));
- return retval;
- }
- ret = setVLimit(val, mess);
- } else
- retval = getVLimit();
+ enum DACINDEX serverDacIndex = getDACIndex(ind);
+ if (ret == FAIL)
return retval;
- case V_POWER_A:
- case V_POWER_B:
- case V_POWER_C:
- case V_POWER_D:
- case V_POWER_IO:
- serverDacIndex = getDACIndex(ind);
- if (ret == FAIL)
- return retval;
- if (val != GET_FLAG) {
- if (!mV) {
- ret = FAIL;
- sprintf(mess,
- "Could not set power. Power regulator %d should be in "
- "mV and not dac units.\n",
- ind);
- LOG(logERROR, (mess));
- return retval;
- }
- ret = setPower(serverDacIndex, val, mess);
- } else
- ret = getPower(serverDacIndex, &retval, mess);
- return retval;
-
- // actual dacs
- default:
- serverDacIndex = getDACIndex(ind);
- if (ret == FAIL)
- return retval;
- if (val != GET_FLAG)
- ret = setDAC(serverDacIndex, val, mV, mess);
- else
- ret = getDAC(serverDacIndex, mV, &retval, mess);
- return retval;
- }
+ if (val != GET_FLAG)
+ ret = setDAC(serverDacIndex, val, mV, mess);
+ else
+ ret = getDAC(serverDacIndex, mV, &retval, mess);
+ return retval;
}
#endif
@@ -1547,36 +1429,6 @@ int get_adc(int file_des) {
serverAdcIndex = TEMP_FPGAFEBR;
break;
#elif CHIPTESTBOARDD
- case V_POWER_A:
- serverAdcIndex = V_PWR_A;
- break;
- case V_POWER_B:
- serverAdcIndex = V_PWR_B;
- break;
- case V_POWER_C:
- serverAdcIndex = V_PWR_C;
- break;
- case V_POWER_D:
- serverAdcIndex = V_PWR_D;
- break;
- case V_POWER_IO:
- serverAdcIndex = V_PWR_IO;
- break;
- case I_POWER_A:
- serverAdcIndex = I_PWR_A;
- break;
- case I_POWER_B:
- serverAdcIndex = I_PWR_B;
- break;
- case I_POWER_C:
- serverAdcIndex = I_PWR_C;
- break;
- case I_POWER_D:
- serverAdcIndex = I_PWR_D;
- break;
- case I_POWER_IO:
- serverAdcIndex = I_PWR_IO;
- break;
case SLOW_ADC0:
serverAdcIndex = S_ADC0;
break;
@@ -1960,7 +1812,7 @@ int acquire(int blocking, int file_des) {
}
// only set
if (Server_VerifyLock() == OK) {
-#if defined(XILINX_CHIPTESTBOARDD) || defined(GOTTHARD2D)
+#if defined(GOTTHARD2D)
if (!isChipConfigured()) {
ret = FAIL;
strcpy(mess, "Could not start acquisition. Chip is not configured. "
@@ -4009,7 +3861,7 @@ int power_chip(int file_des) {
LOG(logDEBUG1, ("Powering chip to %d\n", arg));
#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(MYTHEN3D) && \
- !defined(GOTTHARD2D) && !defined(XILINX_CHIPTESTBOARDD)
+ !defined(GOTTHARD2D)
functionNotImplemented();
#else
// set & get
@@ -4028,7 +3880,7 @@ int power_chip(int file_des) {
}
}
#endif
-#if defined(XILINX_CHIPTESTBOARDD) || defined(GOTTHARD2D)
+#if defined(GOTTHARD2D)
if (ret == OK) {
if (arg != -1) {
if (arg != 0 && arg != 1) {
@@ -4041,7 +3893,6 @@ int power_chip(int file_des) {
}
if (ret == OK) {
retval = getPowerChip();
- LOG(logDEBUG1, ("Power chip: %d\n", retval));
validate(&ret, mess, arg, retval, "power on/off chip", DEC);
}
}
@@ -10853,17 +10704,9 @@ int config_transceiver(int file_des) {
ret = OK;
memset(mess, 0, sizeof(mess));
-#if !defined(XILINX_CHIPTESTBOARDD)
+ // currently not implemented anymore.
functionNotImplemented();
-#else
- if (Server_VerifyLock() == OK) {
- LOG(logINFO, ("Configuring Transceiver\n"));
- ret = configureTransceiver(mess);
- if (ret == FAIL) {
- LOG(logERROR, (mess));
- }
- }
-#endif
+
return Server_SendResult(file_des, INT32, NULL, 0);
}
@@ -11056,7 +10899,7 @@ int set_pattern_wait_interval(int file_des) {
*/
int spi_read(int file_des) {
-#if !defined(XILINX_CHIPTESTBOARDD)
+#if !defined(XILINX_CHIPTESTBOARDD) && !defined(CHIPTESTBOARDD)
functionNotImplemented();
return sendError(file_des);
#endif
@@ -11106,7 +10949,7 @@ int spi_read(int file_des) {
for (int i = 0; i < n_bytes; i++) {
fake_register[i] = (uint8_t)((i * 2) % 256);
}
-#else
+#elif defined(XILINX_CHIPTESTBOARDD)
int spifd = open("/dev/spidev2.0", O_RDWR);
LOG(logINFO, ("SPI Read: opened spidev2.0 with fd=%d\n", spifd));
if (spifd < 0) {
@@ -11115,7 +10958,7 @@ int spi_read(int file_des) {
}
#endif
- // Allocate dummy data to shif in, we keep a copy of this
+ // Allocate dummy data to shift in, we keep a copy of this
// to double check that we access a register of the correct size
uint8_t *dummy_data = malloc(n_bytes);
if (dummy_data == NULL) {
@@ -11182,7 +11025,7 @@ int spi_read(int file_des) {
fake_register[i] = local_tx[i + 1];
}
-#else
+#elif defined(XILINX_CHIPTESTBOARDD)
// For the real detector we do the transfer here
if (ioctl(spifd, SPI_IOC_MESSAGE(1), &send_cmd) < 0) {
// cleanup since we return early
@@ -11196,6 +11039,17 @@ int spi_read(int file_des) {
sprintf(mess, "SPI write failed with %d:%s\n", errno, strerror(errno));
return sendError(file_des);
}
+#elif defined(CHIPTESTBOARDD)
+ // set spi to 8 bit per word (-1 comes from the firmware), set chipselect
+ bus_w(SPI_CTRL_REG,
+ ((8 - 1) << SPI_CTRL_NBIT_OFST) + (1 << SPI_CTRL_CHIPSELECT_BIT));
+ for (int i = 0; i < n_bytes + 1; ++i) {
+ // TODO: should we make bus_w to this address blocking in the firmware
+ // to remove usleep ?
+ bus_w(SPI_WRITEDATA_REG, local_tx[i]);
+ usleep_bf(BFIN_SPI_WAIT_uSECONDS);
+ local_rx[i] = (uint8_t)bus_r(SPI_READDATA_REG);
+ }
#endif
// Copy everything but the first received byte to the user. First byte
@@ -11216,7 +11070,7 @@ int spi_read(int file_des) {
local_rx[i + 1] = fake_register[i];
}
free(fake_register); // we are done with the fake register
-#else
+#elif defined(XILINX_CHIPTESTBOARDD)
if (ioctl(spifd, SPI_IOC_MESSAGE(1), &send_cmd) < 0) {
// cleanup since we return early
close(spifd);
@@ -11230,6 +11084,13 @@ int spi_read(int file_des) {
return sendError(file_des);
}
close(spifd);
+#elif defined(CHIPTESTBOARDD)
+ for (int i = 0; i < n_bytes + 1; ++i) {
+ bus_w(SPI_WRITEDATA_REG, local_tx[i]);
+ usleep_bf(BFIN_SPI_WAIT_uSECONDS);
+ local_rx[i] = (uint8_t)bus_r(SPI_READDATA_REG);
+ }
+ bus_w(SPI_CTRL_REG, (8 - 1) << SPI_CTRL_NBIT_OFST); // remove chip-select
#endif
ret = OK;
LOG(logDEBUG1, ("SPI Read Complete\n"));
@@ -11247,7 +11108,7 @@ int spi_read(int file_des) {
* Write to SPI register.
*/
int spi_write(int file_des) {
-#if !defined(XILINX_CHIPTESTBOARDD)
+#if !defined(XILINX_CHIPTESTBOARDD) && !defined(CHIPTESTBOARDD)
functionNotImplemented();
return Server_SendResult(file_des, INT32, NULL, 0);
#endif
@@ -11328,7 +11189,7 @@ int spi_write(int file_des) {
for (int i = 0; i < n_bytes + 1; i++) {
local_rx[i] = local_tx[i];
}
-#else
+#elif defined(XILINX_CHIPTESTBOARDD)
int spifd = open("/dev/spidev2.0", O_RDWR);
LOG(logINFO, ("SPI Read: opened spidev2.0 with fd=%d\n", spifd));
if (spifd < 0) {
@@ -11347,6 +11208,16 @@ int spi_write(int file_des) {
return sendError(file_des);
}
close(spifd);
+#elif defined(CHIPTESTBOARDD)
+ // set spi to 8 bit per word (-1 comes from firmware), set chip-select
+ bus_w(SPI_CTRL_REG,
+ ((8 - 1) << SPI_CTRL_NBIT_OFST) + (1 << SPI_CTRL_CHIPSELECT_BIT));
+ for (int i = 0; i < n_bytes + 1; ++i) {
+ bus_w(SPI_WRITEDATA_REG, local_tx[i]);
+ usleep_bf(BFIN_SPI_WAIT_uSECONDS);
+ local_rx[i] = (uint8_t)bus_r(SPI_READDATA_REG);
+ }
+ bus_w(SPI_CTRL_REG, (8 - 1) << SPI_CTRL_NBIT_OFST); // remove chip-select
#endif
ret = OK;
@@ -11358,4 +11229,144 @@ int spi_write(int file_des) {
free(local_tx);
free(local_rx);
return ret;
-}
\ No newline at end of file
+}
+
+int get_power(int file_des) {
+ ret = OK;
+ memset(mess, 0, sizeof(mess));
+ int retval = -1;
+
+#if !defined(CHIPTESTBOARDD) && !defined(XILINX_CHIPTESTBOARDD)
+ functionNotImplemented();
+#else
+ // index
+ int arg = -1;
+ if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0)
+ return printSocketReadError();
+
+ LOG(logDEBUG1, ("Getting power enable for power %d\n", arg));
+ enum powerIndex index = (enum powerIndex)arg;
+
+ bool b_retval = false;
+ ret = isPowerEnabled(index, &b_retval, mess);
+ retval = (int)b_retval;
+#endif
+ return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
+}
+
+int set_power(int file_des) {
+ ret = OK;
+ memset(mess, 0, sizeof(mess));
+
+#if !defined(CHIPTESTBOARDD) && !defined(XILINX_CHIPTESTBOARDD)
+ functionNotImplemented();
+#else
+ int count = 0;
+ if (receiveData(file_des, &count, sizeof(count), INT32) < 0)
+ return printSocketReadError();
+
+ int args[count];
+ if (receiveData(file_des, args, sizeof(args), INT32) < 0)
+ return printSocketReadError();
+
+ int arg = 0;
+ if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0)
+ return printSocketReadError();
+ bool enable = (arg != 0);
+
+ LOG(logDEBUG1, ("Setting %d Power rails to %d\n", count, enable));
+
+ if (Server_VerifyLock() == OK) {
+ enum powerIndex indices[count];
+ for (int iPower = 0; iPower != count; ++iPower) {
+ indices[iPower] = (enum powerIndex)args[iPower];
+ }
+ ret = setPowerEnabled(indices, count, enable, mess);
+ }
+#endif
+ return Server_SendResult(file_des, INT32, NULL, 0);
+}
+
+int get_power_dac(int file_des) {
+ ret = OK;
+ memset(mess, 0, sizeof(mess));
+ int retval = -1;
+#if !defined(CHIPTESTBOARDD) && !defined(XILINX_CHIPTESTBOARDD)
+ functionNotImplemented();
+#else
+ // index
+ int arg = -1;
+ if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0)
+ return printSocketReadError();
+ LOG(logDEBUG1, ("Getting power DAC value for DAC %d\n", arg));
+
+ ret = getPowerDAC((enum powerIndex)arg, &retval, mess);
+#endif
+ return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
+}
+
+int set_power_dac(int file_des) {
+ ret = OK;
+ memset(mess, 0, sizeof(mess));
+#if !defined(CHIPTESTBOARDD) && !defined(XILINX_CHIPTESTBOARDD)
+ functionNotImplemented();
+#else
+ int args[2] = {-1, -1};
+ if (receiveData(file_des, args, sizeof(args), INT32) < 0)
+ return printSocketReadError();
+ // index
+ enum powerIndex ind = (enum powerIndex)args[0];
+ int value = args[1];
+ LOG(logDEBUG1, ("Setting power DAC value for DAC %d to %d\n", ind, value));
+ if (Server_VerifyLock() == OK) {
+ ret = setPowerDAC(ind, value, mess);
+ }
+#endif
+ return Server_SendResult(file_des, INT32, NULL, 0);
+}
+
+int get_power_adc(int file_des) {
+ ret = OK;
+ memset(mess, 0, sizeof(mess));
+ int retval = -1;
+#if !defined(CHIPTESTBOARDD)
+ functionNotImplemented();
+#else
+ // index
+ int arg = -1;
+ if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0)
+ return printSocketReadError();
+ LOG(logDEBUG1, ("Getting ADC value for ADC %d\n", arg));
+ ret = getPowerADC((enum powerIndex)arg, &retval, mess);
+#endif
+ return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
+}
+
+int get_voltage_limit(int file_des) {
+ ret = OK;
+ memset(mess, 0, sizeof(mess));
+ int retval = -1;
+#if !defined(CHIPTESTBOARDD) && !defined(XILINX_CHIPTESTBOARDD)
+ functionNotImplemented();
+#else
+ retval = getVLimit();
+#endif
+ return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
+}
+
+int set_voltage_limit(int file_des) {
+ ret = OK;
+ memset(mess, 0, sizeof(mess));
+#if !defined(CHIPTESTBOARDD) && !defined(XILINX_CHIPTESTBOARDD)
+ functionNotImplemented();
+#else
+ int arg = -1;
+ if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0)
+ return printSocketReadError();
+ LOG(logDEBUG1, ("Setting voltage limit to %d mV\n", arg));
+ if (Server_VerifyLock() == OK) {
+ ret = setVLimit(arg, mess);
+ }
+#endif
+ return Server_SendResult(file_des, INT32, NULL, 0);
+}
diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer b/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer
index 16f976b73..bbceb193a 100755
Binary files a/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer and b/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer differ
diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c
index c33542260..6a218780d 100644
--- a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c
+++ b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c
@@ -41,11 +41,11 @@ char initErrorMessage[MAX_STR_LENGTH];
int detPos[2] = {0, 0};
uint32_t clkFrequency[NUM_CLOCKS] = {};
-int chipConfigured = 0;
int analogEnable = 0;
int digitalEnable = 0;
int transceiverEnable = 0;
-int dacValues[NDAC] = {};
+int dacValues[NDAC_ONLY] = {};
+int powerValues[NPWR - 1] = {}; // powerIndex (A->IO)
// software limit that depends on the current chip on the ctb
int vLimit = 0;
@@ -379,12 +379,13 @@ void setupDetector() {
clkFrequency[ADC_CLK] = DEFAULT_ADC_CLK;
clkFrequency[SYNC_CLK] = DEFAULT_SYNC_CLK;
clkFrequency[DBIT_CLK] = DEFAULT_DBIT_CLK;
- chipConfigured = 0;
analogEnable = 0;
digitalEnable = 0;
transceiverEnable = 0;
- for (int i = 0; i < NDAC; ++i)
+ for (int i = 0; i != NDAC_ONLY; ++i)
dacValues[i] = -1;
+ for (int i = 0; i != NPWR - 1; ++i)
+ powerValues[i] = -1;
vLimit = DEFAULT_VLIMIT;
#ifdef VIRTUAL
@@ -397,11 +398,8 @@ void setupDetector() {
if (initError == FAIL) {
return;
}
- // power off chip
- initError = powerChip(0, initErrorMessage);
- if (initError == FAIL) {
- return;
- }
+
+ powerOff();
LTC2620_D_SetDefines(DAC_MIN_MV, DAC_MAX_MV, DAC_DRIVER_FILE_NAME, NDAC,
NPWR, DAC_POWERDOWN_DRIVER_FILE_NAME);
@@ -422,11 +420,9 @@ void setupDetector() {
// power regulators
LOG(logINFOBLUE,
("Setting power dacs to min dac value (power disabled)\n"));
- for (int idac = NDAC_ONLY; idac < NDAC; ++idac) {
- if (idac == D_PWR_EMPTY)
- continue;
- int min = (idac == D_PWR_IO) ? VIO_MIN_MV : POWER_RGLTR_MIN;
- initError = setDAC(idac, min, true, initErrorMessage);
+ for (int iPower = 0; iPower != (NPWR - 1); ++iPower) {
+ int min = (iPower == (int)V_POWER_IO) ? VIO_MIN_MV : POWER_RGLTR_MIN;
+ initError = setPowerDAC(iPower, min, initErrorMessage);
if (initError == FAIL)
return;
}
@@ -510,18 +506,6 @@ int waitTransceiverReset(char *mess) {
return OK;
}
-#ifdef VIRTUAL
-void setTransceiverAlignment(int align) {
- if (align) {
- bus_w(TRANSCEIVERSTATUS,
- (bus_r(TRANSCEIVERSTATUS) | RXBYTEISALIGNED_MSK));
- } else {
- bus_w(TRANSCEIVERSTATUS,
- (bus_r(TRANSCEIVERSTATUS) & ~RXBYTEISALIGNED_MSK));
- }
-}
-#endif
-
int isTransceiverAligned() {
#ifdef VIRTUAL
return 1;
@@ -538,276 +522,6 @@ int isTransceiverAligned() {
return retval;
}
-int waitTransceiverAligned(char *mess) {
-#ifdef VIRTUAL
- setTransceiverAlignment(1);
-#else
-
- // no module: transceiver will never get aligned
- if (!checkModuleFlag) {
- LOG(logWARNING, ("No module: Transceiver will never get aligned. "
- "Ignoring alignment check.\n"));
- return OK;
- }
-
- int transceiverWordAligned = isTransceiverAligned();
- int times = 0;
- while (transceiverWordAligned == 0) {
- if (times++ > WAIT_TIME_OUT_0US_TIMES) {
- sprintf(mess, "Transceiver alignment timed out. Check connection, "
- "p-n inversions, LSB-MSB inversions, link error "
- "counters and channel enable settings\n");
- LOG(logERROR, (mess));
- return FAIL;
- }
- usleep(0);
- transceiverWordAligned = isTransceiverAligned();
- }
-#endif
- LOG(logINFOBLUE, ("Transceiver alignment done\n"));
- return OK;
-}
-
-int configureTransceiver(char *mess) {
- LOG(logINFOBLUE, ("\tConfiguring transceiver\n"));
-
- if (chipConfigured == 0) {
- sprintf(mess,
- "Chip not configured. Use powerchip to power on chip first.\n");
- LOG(logERROR, (mess));
- return FAIL;
- }
- return waitTransceiverAligned(mess);
-}
-
-int isChipConfigured() { return chipConfigured; }
-
-// TODO powerchip and configurechip should be separate commands (not
-// requirement) in the future
-// TODO differentiate between power on board (va, vb, vc, vd, vio) and power
-// chip (only chip with voltage vchip)?
-int powerChip(int on, char *mess) {
- uint32_t addr = CTRL_REG;
- uint32_t mask = POWER_VIO_MSK | POWER_VCC_A_MSK | POWER_VCC_B_MSK |
- POWER_VCC_C_MSK | POWER_VCC_D_MSK;
- if (on) {
- LOG(logINFOBLUE, ("Powering chip: on\n"));
- bus_w(addr, bus_r(addr) | mask);
-
- if (configureChip(mess) == FAIL)
- return FAIL;
-
- } else {
- LOG(logINFOBLUE, ("Powering chip: off\n"));
- bus_w(addr, bus_r(addr) & ~mask);
- chipConfigured = 0;
- }
- return OK;
-}
-
-int getPowerChip() {
- uint32_t addr = CTRL_REG;
- uint32_t mask = POWER_VIO_MSK | POWER_VCC_A_MSK | POWER_VCC_B_MSK |
- POWER_VCC_C_MSK | POWER_VCC_D_MSK;
- return (((bus_r(addr) & mask) == mask) ? 1 : 0);
-}
-
-int configureChip(char *mess) {
- LOG(logINFOBLUE, ("\tConfiguring chip\n"));
- chipConfigured = 0;
- if (readConfigFile(mess, CONFIG_CHIP_FILE, "chip config") == FAIL) {
- return FAIL;
- }
- if (readConfigFile(mess, RESET_CHIP_FILE, "reset chip") == FAIL) {
- return FAIL;
- }
- LOG(logINFOBLUE, ("Chip configured.\n"));
- chipConfigured = 1;
- return OK;
-}
-
-int readConfigFile(char *mess, char *fileName, char *fileType) {
- const int fileNameSize = 128;
- char fname[fileNameSize];
- if (getAbsPath(fname, fileNameSize, fileName) == FAIL) {
- sprintf(mess, "Could not get full path for %s file [%s].\n", fileType,
- fname);
- LOG(logERROR, (mess));
- return FAIL;
- }
- if (access(fname, F_OK) != 0) {
- sprintf(mess, "Could not find %s file [%s].\n", fileType, fname);
- LOG(logERROR, (mess));
- return FAIL;
- }
- FILE *fd = fopen(fname, "r");
- if (fd == NULL) {
- sprintf(mess, "Could not open on-board detector server %s file [%s].\n",
- fileType, fname);
- LOG(logERROR, (mess));
- return FAIL;
- }
- LOG(logINFOBLUE, ("Reading %s file %s\n", fileType, fname));
-
- const size_t LZ = 256;
- char line[LZ];
- memset(line, 0, LZ);
- char command[LZ];
-
- // keep reading a line
- while (fgets(line, LZ, fd)) {
-
- // ignore comments
- if (line[0] == '#') {
- LOG(logDEBUG1, ("Ignoring Comment\n"));
- continue;
- }
-
- // ignore empty lines
- if (strlen(line) <= 1) {
- LOG(logDEBUG1, ("Ignoring Empty line\n"));
- continue;
- }
-
- // removing leading spaces
- if (line[0] == ' ' || line[0] == '\t') {
- int len = strlen(line);
- // find first valid character
- int i = 0;
- for (i = 0; i < len; ++i) {
- if (line[i] != ' ' && line[i] != '\t') {
- break;
- }
- }
- // ignore the line full of spaces (last char \n)
- if (i >= len - 1) {
- LOG(logDEBUG1, ("Ignoring line full of spaces\n"));
- continue;
- }
- // copying only valid char
- char temp[LZ];
- memset(temp, 0, LZ);
- memcpy(temp, line + i, strlen(line) - i);
- memset(line, 0, LZ);
- memcpy(line, temp, strlen(temp));
- LOG(logDEBUG1, ("Removing leading spaces.\n"));
- }
-
- LOG(logDEBUG1, ("Command to process: (size:%d) %.*s\n", strlen(line),
- strlen(line) - 1, line));
- memset(command, 0, LZ);
-
- // reg command
- if (!strncmp(line, "reg", strlen("reg"))) {
- uint32_t addr = 0;
- uint32_t val = 0;
- if (sscanf(line, "%s %x %x", command, &addr, &val) != 3) {
- sprintf(mess, "Could not scan reg command. Line:[%s].\n", line);
- LOG(logERROR, (mess));
- return FAIL;
- }
- bus_w(addr, val);
- LOG(logINFOBLUE, ("Wrote 0x%x to 0x%x\n", val, addr));
- }
-
- // setbit command
- else if (!strncmp(line, "setbit", strlen("setbit"))) {
- uint32_t addr = 0;
- uint32_t bit = 0;
- if (sscanf(line, "%s %x %d", command, &addr, &bit) != 3) {
- sprintf(mess, "Could not scan setbit command. Line:[%s].\n",
- line);
- LOG(logERROR, (mess));
- return FAIL;
- }
- bus_w(addr, bus_r(addr) | (1 << bit));
- LOG(logINFOBLUE, ("Set bit %d in 0x%x\n", bit, addr));
- }
-
- // clearbit command
- else if (!strncmp(line, "clearbit", strlen("clearbit"))) {
- uint32_t addr = 0;
- uint32_t bit = 0;
- if (sscanf(line, "%s %x %d", command, &addr, &bit) != 3) {
- sprintf(mess, "Could not scan clearbit command. Line:[%s].\n",
- line);
- LOG(logERROR, (mess));
- return FAIL;
- }
- bus_w(addr, bus_r(addr) & ~(1 << bit));
- LOG(logINFOBLUE, ("Cleared bit %d in 0x%x\n", bit, addr));
- }
-
- // pollbit command
- else if (!strncmp(line, "pollbit", strlen("pollbit"))) {
- uint32_t addr = 0;
- uint32_t bit = 0;
- uint32_t val = 0;
- if (sscanf(line, "%s %x %d %d", command, &addr, &bit, &val) != 4) {
- sprintf(mess, "Could not scan pollbit command. Line:[%s].\n",
- line);
- LOG(logERROR, (mess));
- return FAIL;
- }
-#ifndef VIRTUAL
- int times = 0;
- while (((bus_r(addr) >> bit) & 0x1) != val) {
- if (times++ > WAIT_TIME_OUT_0US_TIMES) {
- sprintf(mess, "Polling bit %d in 0x%x timed out\n", bit,
- addr);
- LOG(logERROR, (mess));
- return FAIL;
- }
- usleep(0);
- }
-#endif
- LOG(logINFOBLUE, ("Polled bit %d in 0x%x\n", bit, addr));
- }
-
- // pattern command
- else if (!strncmp(line, "pattern", strlen("pattern"))) {
- // take a file name and call loadPatterFile
- char patternFileName[LZ];
- if (sscanf(line, "%s %s", command, patternFileName) != 2) {
- sprintf(mess, "Could not scan pattern command. Line:[%s].\n",
- line);
- LOG(logERROR, (mess));
- return FAIL;
- }
- if (loadPatternFile(patternFileName, mess) == FAIL) {
- return FAIL;
- }
- LOG(logINFOBLUE, ("loaded pattern [%s].\n", patternFileName));
- }
-
- // sleep command
- else if (!strncmp(line, "sleep", strlen("sleep"))) {
- int time = 0;
- if (sscanf(line, "%s %d", command, &time) != 2) {
- sprintf(mess, "Could not scan sleep command. Line:[%s].\n",
- line);
- LOG(logERROR, (mess));
- return FAIL;
- }
- usleep(time * 1000 * 1000);
- LOG(logINFOBLUE, ("Slept for %d s\n", time));
- }
-
- // other commands
- else {
- sprintf(mess,
- "Could not scan command from on-board server "
- "%s file. Line:[%s].\n",
- fileType, line);
- break;
- }
- memset(line, 0, LZ);
- }
- fclose(fd);
- LOG(logINFOBLUE, ("Successfully read %s file.\n", fileType));
- return OK;
-}
-
/* set parameters - dr */
int setDynamicRange(int dr) {
@@ -1147,8 +861,22 @@ int64_t getMeasurementTime() {
}
/* parameters - dac, adc, hv */
+
+int getVLimit() { return vLimit; }
+
+int setVLimit(int val, char *mess) {
+ if (val < 0) {
+ sprintf(mess, "Could not set vlimit. Invalid value %d\n", val);
+ LOG(logERROR, (mess));
+ return FAIL;
+ }
+ LOG(logINFO, ("Setting vlimit to %d mV\n", val));
+ vLimit = val;
+ return OK;
+}
+
int validateDACIndex(enum DACINDEX ind, char *mess) {
- if (ind < 0 || ind >= NDAC) {
+ if (ind < 0 || ind >= NDAC_ONLY) {
sprintf(mess, "Could not set DAC. Invalid index %d\n", ind);
LOG(logERROR, (mess));
return FAIL;
@@ -1185,56 +913,26 @@ int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess) {
return OK;
}
-int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval,
- char *mess) {
+int convertVoltageToDAC(enum DACINDEX ind, int voltage, int *retval_dacval,
+ char *mess) {
*retval_dacval = -1;
- // normal dacs
- if (ind < NDAC_ONLY) {
- if (LTC2620_D_VoltageToDac(voltage, retval_dacval) == FAIL) {
- sprintf(
- mess,
- "Could not set DAC %d. Could not convert %d mV to dac units.\n",
- ind, voltage);
- LOG(logERROR, (mess));
- return FAIL;
- }
- return OK;
- }
- // power dacs
- if (ConvertToDifferentRange(
- POWER_RGLTR_MIN, POWER_RGLTR_MAX, LTC2620_D_GetMaxInput(),
- LTC2620_D_GetMinInput(), voltage, retval_dacval) == FAIL) {
+ if (LTC2620_D_VoltageToDac(voltage, retval_dacval) == FAIL) {
sprintf(mess,
"Could not set DAC %d. Could not convert %d mV to dac units.\n",
- ind, voltage);
+ (int)ind, voltage);
LOG(logERROR, (mess));
return FAIL;
}
return OK;
}
-int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage,
- char *mess) {
+int convertDACToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage,
+ char *mess) {
*retval_voltage = -1;
- // normal dacs
- if (ind < NDAC_ONLY) {
- if (LTC2620_D_DacToVoltage(dacval, retval_voltage) == FAIL) {
- sprintf(
- mess,
- "Could not get DAC %d. Could not convert %d dac units to mV\n",
- ind, dacval);
- LOG(logERROR, (mess));
- return FAIL;
- }
- return OK;
- }
- // power dacs
- if (ConvertToDifferentRange(
- LTC2620_D_GetMaxInput(), LTC2620_D_GetMinInput(), POWER_RGLTR_MIN,
- POWER_RGLTR_MAX, dacval, retval_voltage) == FAIL) {
+ if (LTC2620_D_DacToVoltage(dacval, retval_voltage) == FAIL) {
sprintf(mess,
"Could not get DAC %d. Could not convert %d dac units to mV\n",
- ind, dacval);
+ (int)ind, dacval);
LOG(logERROR, (mess));
return FAIL;
}
@@ -1254,7 +952,7 @@ int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess) {
}
if (mV) {
- if (convertDACValueToVoltage(ind, dacval, retval, mess) == FAIL)
+ if (convertDACToVoltage(ind, dacval, retval, mess) == FAIL)
return FAIL;
return OK;
}
@@ -1266,18 +964,19 @@ int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess) {
int setDAC(enum DACINDEX ind, int val, bool mV, char *mess) {
LOG(logINFO,
("Setting DAC %d: %d %s \n", ind, val, (mV ? "mV" : "dac units")));
+
if (validateDACIndex(ind, mess) == FAIL)
return FAIL;
int dacval = val;
if (mV) {
- if (ind < NDAC_ONLY) {
- if (validateDACVoltage(ind, val, mess) == FAIL)
- return FAIL;
- }
- if (convertVoltageToDACValue(ind, val, &dacval, mess) == FAIL)
+ if (validateDACVoltage(ind, val, mess) == FAIL)
+ return FAIL;
+
+ if (convertVoltageToDAC(ind, val, &dacval, mess) == FAIL)
return FAIL;
}
+
{
char dacName[20] = {0};
snprintf(dacName, sizeof(dacName), "dac %d", ind);
@@ -1288,179 +987,216 @@ int setDAC(enum DACINDEX ind, int val, bool mV, char *mess) {
return OK;
}
-int getVLimit() { return vLimit; }
-
-int setVLimit(int val, char *mess) {
- if (val < 0) {
- sprintf(mess, "Could not set vlimit. Invalid value %d\n", val);
+int validatePowerDACIndex(enum powerIndex ind, char *mess) {
+ if (ind < 0 || ind > V_POWER_IO) {
+ sprintf(mess, "Could not set Power DAC. Invalid index %d\n", ind);
LOG(logERROR, (mess));
return FAIL;
}
- vLimit = val;
+
return OK;
}
-int validatePower(enum PWRINDEX ind, int val, char *mess) {
+int validatePower(enum powerIndex ind, int voltage, char *mess) {
char *powerNames[] = {PWR_NAMES};
+
// validate min value
- int min = (ind == PWR_IO) ? VIO_MIN_MV : POWER_RGLTR_MIN;
- if (val < min && val != 0) {
+ int min = (ind == V_POWER_IO) ? VIO_MIN_MV : POWER_RGLTR_MIN;
+ if (voltage < min && voltage != 0) {
sprintf(
mess,
"Could not set %s. Input value %d mV must be greater than %d mV.\n",
- powerNames[ind], val, min);
+ powerNames[ind], voltage, min);
LOG(logERROR, (mess));
return FAIL;
}
// validate max value
- if (val > POWER_RGLTR_MAX) {
+ if (voltage > POWER_RGLTR_MAX) {
sprintf(
mess,
"Could not set %s. Input value %d mV must be less than %d mV.\n",
- powerNames[ind], val, POWER_RGLTR_MAX);
+ powerNames[ind], voltage, POWER_RGLTR_MAX);
LOG(logERROR, (mess));
return FAIL;
}
// validate vlimit
- if (vLimit > 0 && val > vLimit) {
+ if (vLimit > 0 && voltage > vLimit) {
sprintf(mess, "Could not set %s. Input %d mV exceeds vLimit %d mV\n",
- powerNames[ind], val, vLimit);
+ powerNames[ind], voltage, vLimit);
LOG(logERROR, (mess))
return FAIL;
}
return OK;
}
-// for power rail index and name debugging
-int getPowerIndexFromDACIndex(enum DACINDEX ind, enum PWRINDEX *pwrIndex,
- char *mess) {
- *pwrIndex = PWR_IO;
- switch (ind) {
- case D_PWR_IO:
- *pwrIndex = PWR_IO;
- break;
- case D_PWR_A:
- *pwrIndex = PWR_A;
- break;
- case D_PWR_B:
- *pwrIndex = PWR_B;
- break;
- case D_PWR_C:
- *pwrIndex = PWR_C;
- break;
- case D_PWR_D:
- *pwrIndex = PWR_D;
- break;
- default:
- sprintf(mess, "Index %d has no power index\n", ind);
+int convertVoltageToPowerDAC(enum powerIndex ind, int voltage,
+ int *retval_dacval, char *mess) {
+ *retval_dacval = -1;
+ if (ConvertToDifferentRange(
+ POWER_RGLTR_MIN, POWER_RGLTR_MAX, LTC2620_D_GetMaxInput(),
+ LTC2620_D_GetMinInput(), voltage, retval_dacval) == FAIL) {
+ char *powerNames[] = {PWR_NAMES};
+ sprintf(mess,
+ "Could not set %s. Could not convert %d mV to dac units.\n",
+ powerNames[ind], voltage);
LOG(logERROR, (mess));
return FAIL;
}
return OK;
}
-int getPowerRailMask(enum PWRINDEX ind, uint32_t *mask, char *mess) {
- *mask = 0;
- switch (ind) {
- case PWR_IO:
- *mask = POWER_VIO_MSK;
- break;
- case PWR_A:
- *mask = POWER_VCC_A_MSK;
- break;
- case PWR_B:
- *mask = POWER_VCC_B_MSK;
- break;
- case PWR_C:
- *mask = POWER_VCC_C_MSK;
- break;
- case PWR_D:
- *mask = POWER_VCC_D_MSK;
- break;
- default:
- sprintf(mess, "Index %d has no power rail index\n", ind);
+int convertPowerDACToVoltage(enum powerIndex ind, int dacval,
+ int *retval_voltage, char *mess) {
+ *retval_voltage = -1;
+ if (ConvertToDifferentRange(
+ LTC2620_D_GetMaxInput(), LTC2620_D_GetMinInput(), POWER_RGLTR_MIN,
+ POWER_RGLTR_MAX, dacval, retval_voltage) == FAIL) {
+ char *powerNames[] = {PWR_NAMES};
+ sprintf(mess,
+ "Could not get %s. Could not convert %d dac units to mV\n",
+ powerNames[ind], dacval);
LOG(logERROR, (mess));
return FAIL;
}
return OK;
}
-int EnablePowerRail(enum PWRINDEX ind, char *mess) {
- char *powerNames[] = {PWR_NAMES};
- uint32_t addr = CTRL_REG;
- uint32_t mask = 0;
-
- if (getPowerRailMask(ind, &mask, mess) == FAIL)
+int getPowerDAC(enum powerIndex ind, int *retval, char *mess) {
+ *retval = -1;
+ if (validatePowerDACIndex(ind, mess) == FAIL)
return FAIL;
- LOG(logINFO, ("\tSwitching on power for %s\n", powerNames[ind]));
- bus_w(addr, bus_r(addr) | mask);
- return OK;
-}
-
-int DisablePowerRail(enum PWRINDEX ind, char *mess) {
- char *powerNames[] = {PWR_NAMES};
- uint32_t addr = CTRL_REG;
- uint32_t mask = 0;
-
- if (getPowerRailMask(ind, &mask, mess) == FAIL)
+ int dacval = powerValues[ind];
+ if (convertPowerDACToVoltage(ind, dacval, retval, mess) == FAIL)
return FAIL;
- LOG(logINFO, ("\tSwitching off power for %s\n", powerNames[ind]));
- bus_w(addr, bus_r(addr) & ~(mask));
- return OK;
-}
-
-int getPowerRail(enum PWRINDEX ind, int *retval, char *mess) {
- char *powerNames[] = {PWR_NAMES};
- uint32_t addr = CTRL_REG;
- uint32_t mask = 0;
-
- if (getPowerRailMask(ind, &mask, mess) == FAIL)
- return FAIL;
-
- *retval = (bus_r(addr) & mask);
- LOG(logDEBUG1, ("Power rail retval for %s: %s\n", powerNames[ind],
- ((*retval > 0) ? "Enabled" : "Disabled")));
-
return OK;
}
-int getPower(enum DACINDEX ind, int *retval, char *mess) {
- enum PWRINDEX pwrIndex = PWR_IO;
- if (getPowerIndexFromDACIndex(ind, &pwrIndex, mess) == FAIL)
- return FAIL;
-
- // if powered off, return 0
- if (getPowerRail(pwrIndex, retval, mess) == FAIL)
- return FAIL;
- if (*retval == 0) {
- return OK;
- }
-
- if (getDAC(ind, true, retval, mess) == FAIL)
- return FAIL;
- return OK;
-}
-
-int setPower(enum DACINDEX ind, int val, char *mess) {
- enum PWRINDEX pwrIndex = PWR_IO;
- if (getPowerIndexFromDACIndex(ind, &pwrIndex, mess) == FAIL)
+int setPowerDAC(enum powerIndex ind, int voltage, char *mess) {
+ if (validatePowerDACIndex(ind, mess) == FAIL)
return FAIL;
char *powerNames[] = {PWR_NAMES};
- LOG(logINFOBLUE, ("Setting %s to %d mV\n", powerNames[pwrIndex], val));
+ LOG(logINFO, ("Setting DAC %s: %d mV\n", powerNames[ind], voltage));
- if (validatePower(pwrIndex, val, mess) == FAIL)
+ if (validatePower(ind, voltage, mess) == FAIL)
return FAIL;
- if (DisablePowerRail(pwrIndex, mess) == FAIL)
+
+ int dacval = -1;
+ if (convertVoltageToPowerDAC(ind, voltage, &dacval, mess) == FAIL)
return FAIL;
- if (val != 0) {
- if (setDAC(ind, val, true, mess) == FAIL)
+
+ {
+ enum DACINDEX dacIndex = D_PWR_IO;
+ if (getDACIndexForPower(ind, &dacIndex, mess) == FAIL) {
return FAIL;
- if (EnablePowerRail(pwrIndex, mess) == FAIL)
+ }
+
+ if (LTC2620_D_SetDacValue(dacIndex, dacval, powerNames[ind], mess) ==
+ FAIL)
return FAIL;
}
+
+ powerValues[ind] = dacval;
+ return OK;
+}
+
+int getDACIndexForPower(enum powerIndex pind, enum DACINDEX *dacIndex,
+ char *mess) {
+ switch (pind) {
+ case V_POWER_IO:
+ *dacIndex = D_PWR_IO;
+ break;
+ case V_POWER_A:
+ *dacIndex = D_PWR_A;
+ break;
+ case V_POWER_B:
+ *dacIndex = D_PWR_B;
+ break;
+ case V_POWER_C:
+ *dacIndex = D_PWR_C;
+ break;
+ case V_POWER_D:
+ *dacIndex = D_PWR_D;
+ break;
+ default:
+ *dacIndex = -1;
+ sprintf(mess, "Power index %d has no corresponding dac index\n", pind);
+ LOG(logERROR, (mess));
+ return FAIL;
+ }
+ return OK;
+}
+
+int getPowerMask(enum powerIndex index, uint32_t *mask, char *mess) {
+ switch (index) {
+ case V_POWER_IO:
+ *mask |= POWER_VIO_MSK;
+ break;
+ case V_POWER_A:
+ *mask |= POWER_VCC_A_MSK;
+ break;
+ case V_POWER_B:
+ *mask |= POWER_VCC_B_MSK;
+ break;
+ case V_POWER_C:
+ *mask |= POWER_VCC_C_MSK;
+ break;
+ case V_POWER_D:
+ *mask |= POWER_VCC_D_MSK;
+ break;
+ default:
+ sprintf(mess, "Index %d has no power rail index\n", index);
+ LOG(logERROR, (mess));
+ return FAIL;
+ }
+ return OK;
+}
+
+void powerOff() {
+ LOG(logINFOBLUE, ("Powering OFF all rails\n"));
+ uint32_t mask = POWER_VIO_MSK | POWER_VCC_A_MSK | POWER_VCC_B_MSK |
+ POWER_VCC_C_MSK | POWER_VCC_D_MSK;
+ bus_w(CTRL_REG, bus_r(CTRL_REG) & ~(mask));
+}
+
+int setPowerEnabled(enum powerIndex indices[], int count, bool enable,
+ char *mess) {
+ uint32_t mask = 0;
+ for (int i = 0; i != count; ++i) {
+ if (getPowerMask(indices[i], &mask, mess) == FAIL)
+ return FAIL;
+ }
+ // log message
+ {
+ char *powerNames[] = {PWR_NAMES};
+ char message[256] = {0};
+ sprintf(message, "Switching %s power for [", enable ? "on" : "off");
+ for (int i = 0; i != count; ++i) {
+ strcat(message, powerNames[indices[i]]);
+ strcat(message, ", ");
+ }
+ strcat(message, "]\n");
+ LOG(logINFO, ("%s", message));
+ }
+ // enable/disable power rails
+ uint32_t addr = CTRL_REG;
+ if (enable) {
+ bus_w(addr, bus_r(addr) | mask);
+ } else {
+ bus_w(addr, bus_r(addr) & ~(mask));
+ }
+ return OK;
+}
+
+int isPowerEnabled(enum powerIndex ind, bool *retval, char *mess) {
+ uint32_t mask = 0;
+ if (getPowerMask(ind, &mask, mess) == FAIL)
+ return FAIL;
+
+ *retval = (bus_r(CTRL_REG) & mask) != 0;
+ LOG(logDEBUG1, ("get power %d:%d\n", ind, *retval));
return OK;
}
diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.h
index 8ccea05b8..4d1ce9889 100644
--- a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.h
+++ b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.h
@@ -63,18 +63,7 @@ void setupDetector();
void cleanFifos();
void resetFlow();
int waitTransceiverReset(char *mess);
-#ifdef VIRTUAL
-void setTransceiverAlignment(int align);
-#endif
int isTransceiverAligned();
-int waitTransceiverAligned(char *mess);
-int configureTransceiver(char *mess);
-int isChipConfigured();
-int powerChip(int on, char *mess);
-int getPowerChip();
-int configureChip(char *mess);
-int readConfigFile(char *mess, char *fileName, char *fileType);
-int resetChip(char *mess);
// parameters - dr, roi
int setDynamicRange(int dr);
@@ -120,28 +109,35 @@ int64_t getMeasurementTime();
int setModule(sls_detector_module myMod, char *mess);
// parameters - dac, adc, hv
+int getVLimit();
+int setVLimit(int val, char *mess);
+
int validateDACIndex(enum DACINDEX ind, char *mess);
int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess);
-int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval,
- char *mess);
-int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage,
- char *mess);
+int convertVoltageToDAC(enum DACINDEX ind, int voltage, int *retval_dacval,
+ char *mess);
+int convertDACToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage,
+ char *mess);
int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess);
/** @param val value can be in mV or dac units */
int setDAC(enum DACINDEX ind, int val, bool mV, char *mess);
-int getVLimit();
-int setVLimit(int val, char *mess);
+int validatePowerDACIndex(enum powerIndex ind, char *mess);
+int validatePower(enum powerIndex ind, int val, char *mess);
+int convertVoltageToPowerDAC(enum powerIndex ind, int voltage,
+ int *retval_dacval, char *mess);
+int convertPowerDACToVoltage(enum powerIndex ind, int dacval,
+ int *retval_voltage, char *mess);
+int getPowerDAC(enum powerIndex ind, int *retval, char *mess);
+int setPowerDAC(enum powerIndex ind, int voltage, char *mess);
+int getDACIndexForPower(enum powerIndex pind, enum DACINDEX *dacIndex,
+ char *mess);
-int validatePower(enum PWRINDEX ind, int val, char *mess);
-int getPowerIndexFromDACIndex(enum DACINDEX ind, enum PWRINDEX *pwrIndex,
- char *mess);
-int getPowerRailMask(enum PWRINDEX ind, uint32_t *mask, char *mess);
-int EnablePowerRail(enum PWRINDEX ind, char *mess);
-int DisablePowerRail(enum PWRINDEX ind, char *mess);
-int getPowerRail(enum PWRINDEX ind, int *retval, char *mess);
-int getPower(enum DACINDEX ind, int *retval, char *mess);
-int setPower(enum DACINDEX ind, int val, char *mess);
+int getPowerMask(enum powerIndex ind, uint32_t *mask, char *mess);
+void powerOff();
+int setPowerEnabled(enum powerIndex indices[], int count, bool enable,
+ char *mess);
+int isPowerEnabled(enum powerIndex ind, bool *retval, char *mess);
int getADC(enum ADCINDEX ind, int *value, char *mess);
int getSlowADC(int ichan, int *retval, char *mess);
diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h
index 2e2ee58a0..6399bc93a 100644
--- a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h
+++ b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h
@@ -56,7 +56,7 @@
#define DEFAULT_NUM_DSAMPLES (1)
#define DEFAULT_NUM_TSAMPLES (200)
#define DEFAULT_STARTING_FRAME_NUMBER (1)
-#define DEFAULT_VLIMIT (-100)
+#define DEFAULT_VLIMIT (0)
#define DEFAULT_DELAY (0)
#define MAX_TRANSCEIVER_MASK (0xF)
@@ -121,8 +121,7 @@ enum DACINDEX {
D_PWR_C
};
-enum PWRINDEX { PWR_IO, PWR_A, PWR_B, PWR_C, PWR_D };
-#define PWR_NAMES "VIO", "VA", "VB", "VC", "VD"
+#define PWR_NAMES "VA", "VB", "VC", "VD", "VIO"
/* Struct Definitions */
// For arm has to be multiple of 16
diff --git a/slsDetectorSoftware/generator/Caller.in.h b/slsDetectorSoftware/generator/Caller.in.h
index 14dfb22d6..f7128620e 100644
--- a/slsDetectorSoftware/generator/Caller.in.h
+++ b/slsDetectorSoftware/generator/Caller.in.h
@@ -5,6 +5,7 @@
#include "sls/Detector.h"
#include
+#include
#include
#include
namespace sls {
@@ -67,6 +68,7 @@ class Caller {
private:
bool ReplaceIfDeprecated(std::string &command);
+ void SuggestIfRemoved(const std::string &command);
using FunctionMap = std::map;
using StringMap = std::map;
Detector *ptr; // pointer to the detector that executes the command
@@ -91,6 +93,9 @@ class Caller {
// applicable
RegisterAddress getRegisterAddress(const std::string &saddr) const;
BitAddress getBitAddress() const;
+ defs::dacIndex parseDacIndex(int argIndex, bool isCtb);
+ bool parseMV(int argIndex);
+ defs::powerIndex parsePowerIndex(int argIndex);
FunctionMap functions{
{"list", &Caller::list},
@@ -104,6 +109,12 @@ class Caller {
// THIS COMMENT TO BE REPLACED BY THE ACTUAL CODE (3)
};
+
+ StringMap removed_functions{
+
+ // THIS COMMENT TO BE REPLACED BY THE ACTUAL CODE (4)
+
+ };
};
} // namespace sls
\ No newline at end of file
diff --git a/slsDetectorSoftware/generator/autocomplete/bash_autocomplete.sh b/slsDetectorSoftware/generator/autocomplete/bash_autocomplete.sh
index 4234674d7..ff46a218a 100644
--- a/slsDetectorSoftware/generator/autocomplete/bash_autocomplete.sh
+++ b/slsDetectorSoftware/generator/autocomplete/bash_autocomplete.sh
@@ -80,7 +80,7 @@ _sd() {
local IS_PATH=0
-local SLS_COMMANDS=" acquire activate adcclk adcenable adcenable10g adcindex adcinvert adclist adcname adcphase adcpipeline adcreg adcvpp apulse asamples autocompdisable badchannels blockingtrigger burstmode burstperiod bursts burstsl bustest cdsgain chipversion clearbit clearbusy clientversion clkdiv clkfreq clkphase collectionmode column compdisabletime confadc config configtransceiver counters currentsource dac dacindex daclist dacname dacvalues datastream dbitclk dbitphase dbitpipeline defaultdac defaultpattern define_bit define_reg definelist_bit definelist_reg delay delayl detectorserverversion detsize diodelay dpulse dr drlist dsamples execcommand exptime exptime1 exptime2 exptime3 extrastoragecells extsampling extsamplingsrc extsig fformat filtercells filterresistor findex firmwaretest firmwareversion fliprows flowcontrol10g fmaster fname foverwrite fpath framecounter frames framesl frametime free fwrite gaincaps gainmode gappixels gatedelay gatedelay1 gatedelay2 gatedelay3 gates getbit hardwareversion highvoltage hostname im_a im_b im_c im_d im_io imagetest include initialchecks inj_ch interpolation interruptsubframe kernelversion lastclient led lock master maxadcphaseshift maxclkphaseshift maxdbitphaseshift measuredperiod measuredsubperiod moduleid nextframenumber nmod numinterfaces overflow packageversion parallel parameters partialreset patfname patioctrl patlimits patloop patloop0 patloop1 patloop2 patmask patnloop patnloop0 patnloop1 patnloop2 patsetbit pattern patternstart patwait patwait0 patwait1 patwait2 patwaittime patwaittime0 patwaittime1 patwaittime2 patword pedestalmode period periodl polarity port powerchip powerindex powerlist powername powervalues programfpga pulse pulsechip pulsenmove pumpprobe quad ratecorr readnrows readout readoutspeed readoutspeedlist rebootcontroller reg resetdacs resetfpga romode row runclk runtime rx_arping rx_clearroi rx_dbitlist rx_dbitoffset rx_dbitreorder rx_discardpolicy rx_fifodepth rx_frameindex rx_framescaught rx_framesperfile rx_hostname rx_jsonaddheader rx_jsonpara rx_lastclient rx_lock rx_missingpackets rx_padding rx_printconfig rx_realudpsocksize rx_roi rx_silent rx_start rx_status rx_stop rx_tcpport rx_threads rx_udpsocksize rx_version rx_zmqfreq rx_zmqhwm rx_zmqip rx_zmqport rx_zmqstartfnum rx_zmqstream samples savepattern scan scanerrmsg selinterface serialnumber setbit settings settingslist settingspath signalindex signallist signalname sleep slowadc slowadcindex slowadclist slowadcname slowadcvalues start status stop stopport storagecell_delay storagecell_start subdeadtime subexptime sync syncclk temp_10ge temp_adc temp_control temp_dcdc temp_event temp_fpga temp_fpgaext temp_fpgafl temp_fpgafr temp_slowadc temp_sodl temp_sodr temp_threshold templist tempvalues tengiga threshold thresholdnotb timing timing_info_decoder timinglist timingsource top transceiverenable trigger triggers triggersl trimbits trimen trimval tsamples txdelay txdelay_frame txdelay_left txdelay_right type udp_cleardst udp_dstip udp_dstip2 udp_dstlist udp_dstmac udp_dstmac2 udp_dstport udp_dstport2 udp_firstdst udp_numdst udp_reconfigure udp_srcip udp_srcip2 udp_srcmac udp_srcmac2 udp_validate update updatedetectorserver updatekernel updatemode user v_a v_b v_c v_chip v_d v_io v_limit vchip_comp_adc vchip_comp_fe vchip_cs vchip_opa_1st vchip_opa_fd vchip_ref_comp_fe versions veto vetoalg vetofile vetophoton vetoref vetostream virtual vm_a vm_b vm_c vm_d vm_io zmqhwm zmqip zmqport "
+local SLS_COMMANDS=" acquire activate adcclk adcenable adcenable10g adcindex adcinvert adclist adcname adcphase adcpipeline adcreg adcvpp apulse asamples autocompdisable badchannels blockingtrigger burstmode burstperiod bursts burstsl bustest cdsgain chipversion clearbit clearbusy clientversion clkdiv clkfreq clkphase collectionmode column compdisabletime confadc config configtransceiver counters currentsource dac dacindex daclist dacname dacvalues datastream dbitclk dbitphase dbitpipeline defaultdac defaultpattern define_bit define_reg definelist_bit definelist_reg delay delayl detectorserverversion detsize diodelay dpulse dr drlist dsamples execcommand exptime exptime1 exptime2 exptime3 extrastoragecells extsampling extsamplingsrc extsig fformat filtercells filterresistor findex firmwaretest firmwareversion fliprows flowcontrol10g fmaster fname foverwrite fpath framecounter frames framesl frametime free fwrite gaincaps gainmode gappixels gatedelay gatedelay1 gatedelay2 gatedelay3 gates getbit hardwareversion highvoltage hostname im_a im_b im_c im_d im_io imagetest include initialchecks inj_ch interpolation interruptsubframe kernelversion lastclient led lock master maxadcphaseshift maxclkphaseshift maxdbitphaseshift measuredperiod measuredsubperiod moduleid nextframenumber nmod numinterfaces overflow packageversion parallel parameters partialreset patfname patioctrl patlimits patloop patloop0 patloop1 patloop2 patmask patnloop patnloop0 patnloop1 patnloop2 patsetbit pattern patternstart patwait patwait0 patwait1 patwait2 patwaittime patwaittime0 patwaittime1 patwaittime2 patword pedestalmode period periodl polarity port power powerchip powerdac powerindex powerlist powername powervalues programfpga pulse pulsechip pulsenmove pumpprobe quad ratecorr readnrows readout readoutspeed readoutspeedlist rebootcontroller reg resetdacs resetfpga romode row runclk runtime rx_arping rx_clearroi rx_dbitlist rx_dbitoffset rx_dbitreorder rx_discardpolicy rx_fifodepth rx_frameindex rx_framescaught rx_framesperfile rx_hostname rx_jsonaddheader rx_jsonpara rx_lastclient rx_lock rx_missingpackets rx_padding rx_printconfig rx_realudpsocksize rx_roi rx_silent rx_start rx_status rx_stop rx_tcpport rx_threads rx_udpsocksize rx_version rx_zmqfreq rx_zmqhwm rx_zmqip rx_zmqport rx_zmqstartfnum rx_zmqstream samples savepattern scan scanerrmsg selinterface serialnumber setbit settings settingslist settingspath signalindex signallist signalname sleep slowadc slowadcindex slowadclist slowadcname slowadcvalues start status stop stopport storagecell_delay storagecell_start subdeadtime subexptime sync syncclk temp_10ge temp_adc temp_control temp_dcdc temp_event temp_fpga temp_fpgaext temp_fpgafl temp_fpgafr temp_slowadc temp_sodl temp_sodr temp_threshold templist tempvalues tengiga threshold thresholdnotb timing timing_info_decoder timinglist timingsource top transceiverenable trigger triggers triggersl trimbits trimen trimval tsamples txdelay txdelay_frame txdelay_left txdelay_right type udp_cleardst udp_dstip udp_dstip2 udp_dstlist udp_dstmac udp_dstmac2 udp_dstport udp_dstport2 udp_firstdst udp_numdst udp_reconfigure udp_srcip udp_srcip2 udp_srcmac udp_srcmac2 udp_validate update updatedetectorserver updatekernel updatemode user v_limit vchip_comp_adc vchip_comp_fe vchip_cs vchip_opa_1st vchip_opa_fd vchip_ref_comp_fe versions veto vetoalg vetofile vetophoton vetoref vetostream virtual vm_a vm_b vm_c vm_d vm_io zmqhwm zmqip zmqport "
__acquire() {
FCN_RETURN=""
return 0
@@ -524,21 +524,21 @@ __dac() {
FCN_RETURN=""
if [[ ${IS_GET} -eq 1 ]]; then
if [[ "${cword}" == "2" ]]; then
-FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`"
+FCN_RETURN=""
fi
if [[ "${cword}" == "3" ]]; then
-FCN_RETURN="mV mv"
+FCN_RETURN="0 1"
fi
fi
if [[ ${IS_GET} -eq 0 ]]; then
if [[ "${cword}" == "2" ]]; then
-FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`"
+FCN_RETURN=""
fi
if [[ "${cword}" == "3" ]]; then
FCN_RETURN=""
fi
if [[ "${cword}" == "4" ]]; then
-FCN_RETURN="mV mv"
+FCN_RETURN="0 1"
fi
fi
return 0
@@ -1843,6 +1843,10 @@ fi
fi
return 0
}
+__power() {
+FCN_RETURN=""
+return 0
+}
__powerchip() {
FCN_RETURN=""
if [[ ${IS_GET} -eq 0 ]]; then
@@ -1852,6 +1856,23 @@ fi
fi
return 0
}
+__powerdac() {
+FCN_RETURN=""
+if [[ ${IS_GET} -eq 1 ]]; then
+if [[ "${cword}" == "2" ]]; then
+FCN_RETURN=""
+fi
+fi
+if [[ ${IS_GET} -eq 0 ]]; then
+if [[ "${cword}" == "2" ]]; then
+FCN_RETURN=""
+fi
+if [[ "${cword}" == "3" ]]; then
+FCN_RETURN=""
+fi
+fi
+return 0
+}
__powerindex() {
FCN_RETURN=""
if [[ ${IS_GET} -eq 1 ]]; then
@@ -1874,12 +1895,12 @@ __powername() {
FCN_RETURN=""
if [[ ${IS_GET} -eq 1 ]]; then
if [[ "${cword}" == "2" ]]; then
-FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`"
+FCN_RETURN="v_a v_b v_c v_chip v_d v_io"
fi
fi
if [[ ${IS_GET} -eq 0 ]]; then
if [[ "${cword}" == "2" ]]; then
-FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`"
+FCN_RETURN="v_a v_b v_c v_chip v_d v_io"
fi
if [[ "${cword}" == "3" ]]; then
FCN_RETURN=""
@@ -3117,60 +3138,6 @@ __user() {
FCN_RETURN=""
return 0
}
-__v_a() {
-FCN_RETURN=""
-if [[ ${IS_GET} -eq 0 ]]; then
-if [[ "${cword}" == "2" ]]; then
-FCN_RETURN=""
-fi
-fi
-return 0
-}
-__v_b() {
-FCN_RETURN=""
-if [[ ${IS_GET} -eq 0 ]]; then
-if [[ "${cword}" == "2" ]]; then
-FCN_RETURN=""
-fi
-fi
-return 0
-}
-__v_c() {
-FCN_RETURN=""
-if [[ ${IS_GET} -eq 0 ]]; then
-if [[ "${cword}" == "2" ]]; then
-FCN_RETURN=""
-fi
-fi
-return 0
-}
-__v_chip() {
-FCN_RETURN=""
-if [[ ${IS_GET} -eq 0 ]]; then
-if [[ "${cword}" == "2" ]]; then
-FCN_RETURN=""
-fi
-fi
-return 0
-}
-__v_d() {
-FCN_RETURN=""
-if [[ ${IS_GET} -eq 0 ]]; then
-if [[ "${cword}" == "2" ]]; then
-FCN_RETURN=""
-fi
-fi
-return 0
-}
-__v_io() {
-FCN_RETURN=""
-if [[ ${IS_GET} -eq 0 ]]; then
-if [[ "${cword}" == "2" ]]; then
-FCN_RETURN=""
-fi
-fi
-return 0
-}
__v_limit() {
FCN_RETURN=""
if [[ ${IS_GET} -eq 0 ]]; then
diff --git a/slsDetectorSoftware/generator/autocomplete/dump.json b/slsDetectorSoftware/generator/autocomplete/dump.json
index 289b6fcc1..3a804cf47 100644
--- a/slsDetectorSoftware/generator/autocomplete/dump.json
+++ b/slsDetectorSoftware/generator/autocomplete/dump.json
@@ -1,10 +1,10 @@
{
- "id": "0x3856fae0",
+ "id": "0x564d8e36fb48",
"kind": "FunctionTemplateDecl",
"loc": {
- "offset": 8829,
+ "offset": 9063,
"file": "../include/sls/ToString.h",
- "line": 276,
+ "line": 283,
"col": 3,
"tokLen": 8,
"includedFrom": {
@@ -13,8 +13,8 @@
},
"range": {
"begin": {
- "offset": 8805,
- "line": 275,
+ "offset": 9039,
+ "line": 282,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -22,8 +22,8 @@
}
},
"end": {
- "offset": 9670,
- "line": 298,
+ "offset": 9904,
+ "line": 305,
"col": 1,
"tokLen": 1,
"includedFrom": {
@@ -34,11 +34,11 @@
"name": "StringTo",
"inner": [
{
- "id": "0x3856f778",
+ "id": "0x564d8e36f7d0",
"kind": "TemplateTypeParmDecl",
"loc": {
- "offset": 8824,
- "line": 275,
+ "offset": 9058,
+ "line": 282,
"col": 20,
"tokLen": 1,
"includedFrom": {
@@ -47,7 +47,7 @@
},
"range": {
"begin": {
- "offset": 8815,
+ "offset": 9049,
"col": 11,
"tokLen": 8,
"includedFrom": {
@@ -55,7 +55,7 @@
}
},
"end": {
- "offset": 8824,
+ "offset": 9058,
"col": 20,
"tokLen": 1,
"includedFrom": {
@@ -70,11 +70,11 @@
"index": 0
},
{
- "id": "0x3856fa38",
+ "id": "0x564d8e36faa0",
"kind": "FunctionDecl",
"loc": {
- "offset": 8829,
- "line": 276,
+ "offset": 9063,
+ "line": 283,
"col": 3,
"tokLen": 8,
"includedFrom": {
@@ -83,7 +83,7 @@
},
"range": {
"begin": {
- "offset": 8827,
+ "offset": 9061,
"col": 1,
"tokLen": 1,
"includedFrom": {
@@ -91,8 +91,8 @@
}
},
"end": {
- "offset": 9670,
- "line": 298,
+ "offset": 9904,
+ "line": 305,
"col": 1,
"tokLen": 1,
"includedFrom": {
@@ -106,11 +106,11 @@
},
"inner": [
{
- "id": "0x3856f868",
+ "id": "0x564d8e36f8c8",
"kind": "ParmVarDecl",
"loc": {
- "offset": 8857,
- "line": 276,
+ "offset": 9091,
+ "line": 283,
"col": 31,
"tokLen": 1,
"includedFrom": {
@@ -119,7 +119,7 @@
},
"range": {
"begin": {
- "offset": 8838,
+ "offset": 9072,
"col": 12,
"tokLen": 5,
"includedFrom": {
@@ -127,7 +127,7 @@
}
},
"end": {
- "offset": 8857,
+ "offset": 9091,
"col": 31,
"tokLen": 1,
"includedFrom": {
@@ -142,10 +142,10 @@
}
},
{
- "id": "0x3856f928",
+ "id": "0x564d8e36f988",
"kind": "ParmVarDecl",
"loc": {
- "offset": 8879,
+ "offset": 9113,
"col": 53,
"tokLen": 4,
"includedFrom": {
@@ -154,7 +154,7 @@
},
"range": {
"begin": {
- "offset": 8860,
+ "offset": 9094,
"col": 34,
"tokLen": 5,
"includedFrom": {
@@ -162,7 +162,7 @@
}
},
"end": {
- "offset": 8879,
+ "offset": 9113,
"col": 53,
"tokLen": 4,
"includedFrom": {
@@ -177,11 +177,11 @@
}
},
{
- "id": "0x385a5418",
+ "id": "0x564d8e3a49e8",
"kind": "CompoundStmt",
"range": {
"begin": {
- "offset": 8885,
+ "offset": 9119,
"col": 59,
"tokLen": 1,
"includedFrom": {
@@ -189,8 +189,8 @@
}
},
"end": {
- "offset": 9670,
- "line": 298,
+ "offset": 9904,
+ "line": 305,
"col": 1,
"tokLen": 1,
"includedFrom": {
@@ -200,12 +200,12 @@
},
"inner": [
{
- "id": "0x3856fd18",
+ "id": "0x564d8e36fd70",
"kind": "DeclStmt",
"range": {
"begin": {
- "offset": 8891,
- "line": 277,
+ "offset": 9125,
+ "line": 284,
"col": 5,
"tokLen": 6,
"includedFrom": {
@@ -213,7 +213,7 @@
}
},
"end": {
- "offset": 8905,
+ "offset": 9139,
"col": 19,
"tokLen": 1,
"includedFrom": {
@@ -223,10 +223,10 @@
},
"inner": [
{
- "id": "0x3856fbd8",
+ "id": "0x564d8e36fc30",
"kind": "VarDecl",
"loc": {
- "offset": 8898,
+ "offset": 9132,
"col": 12,
"tokLen": 4,
"includedFrom": {
@@ -235,7 +235,7 @@
},
"range": {
"begin": {
- "offset": 8891,
+ "offset": 9125,
"col": 5,
"tokLen": 6,
"includedFrom": {
@@ -243,7 +243,7 @@
}
},
"end": {
- "offset": 8904,
+ "offset": 9138,
"col": 18,
"tokLen": 1,
"includedFrom": {
@@ -259,11 +259,11 @@
"init": "list",
"inner": [
{
- "id": "0x3856fcb8",
+ "id": "0x564d8e36fd10",
"kind": "InitListExpr",
"range": {
"begin": {
- "offset": 8902,
+ "offset": 9136,
"col": 16,
"tokLen": 1,
"includedFrom": {
@@ -271,7 +271,7 @@
}
},
"end": {
- "offset": 8904,
+ "offset": 9138,
"col": 18,
"tokLen": 1,
"includedFrom": {
@@ -285,11 +285,11 @@
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x3856fcf8",
+ "id": "0x564d8e36fd50",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 8903,
+ "offset": 9137,
"col": 17,
"tokLen": 1,
"includedFrom": {
@@ -297,7 +297,7 @@
}
},
"end": {
- "offset": 8903,
+ "offset": 9137,
"col": 17,
"tokLen": 1,
"includedFrom": {
@@ -312,11 +312,11 @@
"castKind": "IntegralToFloating",
"inner": [
{
- "id": "0x3856fc40",
+ "id": "0x564d8e36fc98",
"kind": "IntegerLiteral",
"range": {
"begin": {
- "offset": 8903,
+ "offset": 9137,
"col": 17,
"tokLen": 1,
"includedFrom": {
@@ -324,7 +324,7 @@
}
},
"end": {
- "offset": 8903,
+ "offset": 9137,
"col": 17,
"tokLen": 1,
"includedFrom": {
@@ -347,12 +347,12 @@
]
},
{
- "id": "0x38570268",
+ "id": "0x564d8e3702a8",
"kind": "CXXTryStmt",
"range": {
"begin": {
- "offset": 8911,
- "line": 278,
+ "offset": 9145,
+ "line": 285,
"col": 5,
"tokLen": 3,
"includedFrom": {
@@ -360,8 +360,8 @@
}
},
"end": {
- "offset": 9061,
- "line": 282,
+ "offset": 9295,
+ "line": 289,
"col": 5,
"tokLen": 1,
"includedFrom": {
@@ -371,12 +371,12 @@
},
"inner": [
{
- "id": "0x3856fef0",
+ "id": "0x564d8e36ff58",
"kind": "CompoundStmt",
"range": {
"begin": {
- "offset": 8915,
- "line": 278,
+ "offset": 9149,
+ "line": 285,
"col": 9,
"tokLen": 1,
"includedFrom": {
@@ -384,8 +384,8 @@
}
},
"end": {
- "offset": 8950,
- "line": 280,
+ "offset": 9184,
+ "line": 287,
"col": 5,
"tokLen": 1,
"includedFrom": {
@@ -395,12 +395,12 @@
},
"inner": [
{
- "id": "0x3856fed0",
+ "id": "0x564d8e36ff38",
"kind": "BinaryOperator",
"range": {
"begin": {
- "offset": 8925,
- "line": 279,
+ "offset": 9159,
+ "line": 286,
"col": 9,
"tokLen": 4,
"includedFrom": {
@@ -408,7 +408,7 @@
}
},
"end": {
- "offset": 8943,
+ "offset": 9177,
"col": 27,
"tokLen": 1,
"includedFrom": {
@@ -423,11 +423,11 @@
"opcode": "=",
"inner": [
{
- "id": "0x3856fd30",
+ "id": "0x564d8e36fd88",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 8925,
+ "offset": 9159,
"col": 9,
"tokLen": 4,
"includedFrom": {
@@ -435,7 +435,7 @@
}
},
"end": {
- "offset": 8925,
+ "offset": 9159,
"col": 9,
"tokLen": 4,
"includedFrom": {
@@ -448,7 +448,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x3856fbd8",
+ "id": "0x564d8e36fc30",
"kind": "VarDecl",
"name": "tval",
"type": {
@@ -457,11 +457,11 @@
}
},
{
- "id": "0x3856fe80",
+ "id": "0x564d8e36fee8",
"kind": "CallExpr",
"range": {
"begin": {
- "offset": 8932,
+ "offset": 9166,
"col": 16,
"tokLen": 3,
"includedFrom": {
@@ -469,7 +469,7 @@
}
},
"end": {
- "offset": 8943,
+ "offset": 9177,
"col": 27,
"tokLen": 1,
"includedFrom": {
@@ -483,11 +483,11 @@
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x3856fe68",
+ "id": "0x564d8e36fed0",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 8932,
+ "offset": 9166,
"col": 16,
"tokLen": 3,
"includedFrom": {
@@ -495,7 +495,7 @@
}
},
"end": {
- "offset": 8937,
+ "offset": 9171,
"col": 21,
"tokLen": 4,
"includedFrom": {
@@ -510,11 +510,11 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x3856fde0",
+ "id": "0x564d8e36fe38",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 8932,
+ "offset": 9166,
"col": 16,
"tokLen": 3,
"includedFrom": {
@@ -522,7 +522,7 @@
}
},
"end": {
- "offset": 8937,
+ "offset": 9171,
"col": 21,
"tokLen": 4,
"includedFrom": {
@@ -535,7 +535,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x37b08ff0",
+ "id": "0x564d8d6ca7f8",
"kind": "FunctionDecl",
"name": "stod",
"type": {
@@ -546,11 +546,11 @@
]
},
{
- "id": "0x3856fdc0",
+ "id": "0x564d8e36fe18",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 8942,
+ "offset": 9176,
"col": 26,
"tokLen": 1,
"includedFrom": {
@@ -558,7 +558,7 @@
}
},
"end": {
- "offset": 8942,
+ "offset": 9176,
"col": 26,
"tokLen": 1,
"includedFrom": {
@@ -569,11 +569,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x3856f868",
+ "id": "0x564d8e36f8c8",
"kind": "ParmVarDecl",
"name": "t",
"type": {
@@ -582,7 +582,7 @@
}
},
{
- "id": "0x3856feb0",
+ "id": "0x564d8e36ff18",
"kind": "CXXDefaultArgExpr",
"range": {
"begin": {},
@@ -591,7 +591,67 @@
"type": {
"qualType": "size_t *"
},
- "valueCategory": "prvalue"
+ "valueCategory": "prvalue",
+ "inner": [
+ {
+ "id": "0x564d8d6ca728",
+ "kind": "ImplicitCastExpr",
+ "range": {
+ "begin": {
+ "offset": 159105,
+ "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/bits/basic_string.h",
+ "line": 4489,
+ "col": 45,
+ "tokLen": 1,
+ "includedFrom": {
+ "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string"
+ }
+ },
+ "end": {
+ "offset": 159105,
+ "col": 45,
+ "tokLen": 1,
+ "includedFrom": {
+ "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string"
+ }
+ }
+ },
+ "type": {
+ "qualType": "size_t *"
+ },
+ "valueCategory": "prvalue",
+ "castKind": "NullToPointer",
+ "inner": [
+ {
+ "id": "0x564d8d6ca708",
+ "kind": "IntegerLiteral",
+ "range": {
+ "begin": {
+ "offset": 159105,
+ "col": 45,
+ "tokLen": 1,
+ "includedFrom": {
+ "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string"
+ }
+ },
+ "end": {
+ "offset": 159105,
+ "col": 45,
+ "tokLen": 1,
+ "includedFrom": {
+ "file": "/usr/bin/../lib/gcc/x86_64-redhat-linux/15/../../../../include/c++/15/string"
+ }
+ }
+ },
+ "type": {
+ "qualType": "int"
+ },
+ "valueCategory": "prvalue",
+ "value": "0"
+ }
+ ]
+ }
+ ]
}
]
}
@@ -600,12 +660,13 @@
]
},
{
- "id": "0x38570248",
+ "id": "0x564d8e370288",
"kind": "CXXCatchStmt",
"range": {
"begin": {
- "offset": 8952,
- "line": 280,
+ "offset": 9186,
+ "file": "../include/sls/ToString.h",
+ "line": 287,
"col": 7,
"tokLen": 5,
"includedFrom": {
@@ -613,8 +674,8 @@
}
},
"end": {
- "offset": 9061,
- "line": 282,
+ "offset": 9295,
+ "line": 289,
"col": 5,
"tokLen": 1,
"includedFrom": {
@@ -624,11 +685,11 @@
},
"inner": [
{
- "id": "0x3856ffc0",
+ "id": "0x564d8e370028",
"kind": "VarDecl",
"loc": {
- "offset": 8988,
- "line": 280,
+ "offset": 9222,
+ "line": 287,
"col": 43,
"tokLen": 1,
"includedFrom": {
@@ -637,7 +698,7 @@
},
"range": {
"begin": {
- "offset": 8959,
+ "offset": 9193,
"col": 14,
"tokLen": 5,
"includedFrom": {
@@ -645,7 +706,7 @@
}
},
"end": {
- "offset": 8988,
+ "offset": 9222,
"col": 43,
"tokLen": 1,
"includedFrom": {
@@ -659,11 +720,11 @@
}
},
{
- "id": "0x38570230",
+ "id": "0x564d8e370270",
"kind": "CompoundStmt",
"range": {
"begin": {
- "offset": 8991,
+ "offset": 9225,
"col": 46,
"tokLen": 1,
"includedFrom": {
@@ -671,8 +732,8 @@
}
},
"end": {
- "offset": 9061,
- "line": 282,
+ "offset": 9295,
+ "line": 289,
"col": 5,
"tokLen": 1,
"includedFrom": {
@@ -682,12 +743,12 @@
},
"inner": [
{
- "id": "0x38570218",
+ "id": "0x564d8e370258",
"kind": "ExprWithCleanups",
"range": {
"begin": {
- "offset": 9001,
- "line": 281,
+ "offset": 9235,
+ "line": 288,
"col": 9,
"tokLen": 5,
"includedFrom": {
@@ -695,7 +756,7 @@
}
},
"end": {
- "offset": 9054,
+ "offset": 9288,
"col": 62,
"tokLen": 1,
"includedFrom": {
@@ -710,11 +771,11 @@
"cleanupsHaveSideEffects": true,
"inner": [
{
- "id": "0x38570200",
+ "id": "0x564d8e370240",
"kind": "CXXThrowExpr",
"range": {
"begin": {
- "offset": 9001,
+ "offset": 9235,
"col": 9,
"tokLen": 5,
"includedFrom": {
@@ -722,7 +783,7 @@
}
},
"end": {
- "offset": 9054,
+ "offset": 9288,
"col": 62,
"tokLen": 1,
"includedFrom": {
@@ -736,11 +797,11 @@
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x385701d0",
- "kind": "CXXConstructExpr",
+ "id": "0x564d8e370218",
+ "kind": "CXXFunctionalCastExpr",
"range": {
"begin": {
- "offset": 9007,
+ "offset": 9241,
"col": 15,
"tokLen": 12,
"includedFrom": {
@@ -748,7 +809,7 @@
}
},
"end": {
- "offset": 9054,
+ "offset": 9288,
"col": 62,
"tokLen": 1,
"includedFrom": {
@@ -761,19 +822,22 @@
"qualType": "RuntimeError"
},
"valueCategory": "prvalue",
- "ctorType": {
- "qualType": "void (RuntimeError &&) noexcept"
+ "castKind": "ConstructorConversion",
+ "conversionFunc": {
+ "id": "0x564d8d916e90",
+ "kind": "CXXConstructorDecl",
+ "name": "RuntimeError",
+ "type": {
+ "qualType": "void (const char *)"
+ }
},
- "elidable": true,
- "hadMultipleCandidates": true,
- "constructionKind": "complete",
"inner": [
{
- "id": "0x385701b8",
- "kind": "MaterializeTemporaryExpr",
+ "id": "0x564d8e3701f8",
+ "kind": "CXXBindTemporaryExpr",
"range": {
"begin": {
- "offset": 9007,
+ "offset": 9241,
"col": 15,
"tokLen": 12,
"includedFrom": {
@@ -781,7 +845,7 @@
}
},
"end": {
- "offset": 9054,
+ "offset": 9288,
"col": 62,
"tokLen": 1,
"includedFrom": {
@@ -793,15 +857,23 @@
"desugaredQualType": "sls::RuntimeError",
"qualType": "RuntimeError"
},
- "valueCategory": "xvalue",
- "storageDuration": "full expression",
+ "valueCategory": "prvalue",
+ "temp": "0x564d8e3701f0",
+ "dtor": {
+ "id": "0x564d8d917778",
+ "kind": "CXXDestructorDecl",
+ "name": "~RuntimeError",
+ "type": {
+ "qualType": "void () noexcept"
+ }
+ },
"inner": [
{
- "id": "0x38570190",
- "kind": "CXXFunctionalCastExpr",
+ "id": "0x564d8e3701c0",
+ "kind": "CXXConstructExpr",
"range": {
"begin": {
- "offset": 9007,
+ "offset": 9241,
"col": 15,
"tokLen": 12,
"includedFrom": {
@@ -809,7 +881,7 @@
}
},
"end": {
- "offset": 9054,
+ "offset": 9288,
"col": 62,
"tokLen": 1,
"includedFrom": {
@@ -822,141 +894,65 @@
"qualType": "RuntimeError"
},
"valueCategory": "prvalue",
- "castKind": "ConstructorConversion",
- "conversionFunc": {
- "id": "0x37b9a6a8",
- "kind": "CXXConstructorDecl",
- "name": "RuntimeError",
- "type": {
- "qualType": "void (const char *)"
- }
+ "ctorType": {
+ "qualType": "void (const char *)"
},
+ "hadMultipleCandidates": true,
+ "constructionKind": "complete",
"inner": [
{
- "id": "0x38570170",
- "kind": "CXXBindTemporaryExpr",
+ "id": "0x564d8e370178",
+ "kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 9007,
- "col": 15,
- "tokLen": 12,
+ "offset": 9254,
+ "col": 28,
+ "tokLen": 34,
"includedFrom": {
"file": "ToString.cpp"
}
},
"end": {
- "offset": 9054,
- "col": 62,
- "tokLen": 1,
+ "offset": 9254,
+ "col": 28,
+ "tokLen": 34,
"includedFrom": {
"file": "ToString.cpp"
}
}
},
"type": {
- "desugaredQualType": "sls::RuntimeError",
- "qualType": "RuntimeError"
+ "qualType": "const char *"
},
"valueCategory": "prvalue",
- "temp": "0x38570168",
- "dtor": {
- "id": "0x37b9af20",
- "kind": "CXXDestructorDecl",
- "name": "~RuntimeError",
- "type": {
- "qualType": "void () noexcept"
- }
- },
+ "castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x38570138",
- "kind": "CXXConstructExpr",
+ "id": "0x564d8e370100",
+ "kind": "StringLiteral",
"range": {
"begin": {
- "offset": 9007,
- "col": 15,
- "tokLen": 12,
+ "offset": 9254,
+ "col": 28,
+ "tokLen": 34,
"includedFrom": {
"file": "ToString.cpp"
}
},
"end": {
- "offset": 9054,
- "col": 62,
- "tokLen": 1,
+ "offset": 9254,
+ "col": 28,
+ "tokLen": 34,
"includedFrom": {
"file": "ToString.cpp"
}
}
},
"type": {
- "desugaredQualType": "sls::RuntimeError",
- "qualType": "RuntimeError"
+ "qualType": "const char[33]"
},
- "valueCategory": "prvalue",
- "ctorType": {
- "qualType": "void (const char *)"
- },
- "hadMultipleCandidates": true,
- "constructionKind": "complete",
- "inner": [
- {
- "id": "0x385700f0",
- "kind": "ImplicitCastExpr",
- "range": {
- "begin": {
- "offset": 9020,
- "col": 28,
- "tokLen": 34,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- },
- "end": {
- "offset": 9020,
- "col": 28,
- "tokLen": 34,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- }
- },
- "type": {
- "qualType": "const char *"
- },
- "valueCategory": "prvalue",
- "castKind": "ArrayToPointerDecay",
- "inner": [
- {
- "id": "0x385700b8",
- "kind": "StringLiteral",
- "range": {
- "begin": {
- "offset": 9020,
- "col": 28,
- "tokLen": 34,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- },
- "end": {
- "offset": 9020,
- "col": 28,
- "tokLen": 34,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- }
- },
- "type": {
- "qualType": "const char[33]"
- },
- "valueCategory": "lvalue",
- "value": "\"Could not convert string to time\""
- }
- ]
- }
- ]
+ "valueCategory": "lvalue",
+ "value": "\"Could not convert string to time\""
}
]
}
@@ -977,12 +973,12 @@
]
},
{
- "id": "0x38570340",
+ "id": "0x564d8e370380",
"kind": "DeclStmt",
"range": {
"begin": {
- "offset": 9068,
- "line": 284,
+ "offset": 9302,
+ "line": 291,
"col": 5,
"tokLen": 5,
"includedFrom": {
@@ -990,7 +986,7 @@
}
},
"end": {
- "offset": 9095,
+ "offset": 9329,
"col": 32,
"tokLen": 1,
"includedFrom": {
@@ -1000,10 +996,10 @@
},
"inner": [
{
- "id": "0x38570298",
+ "id": "0x564d8e3702d8",
"kind": "UsingDecl",
"loc": {
- "offset": 9087,
+ "offset": 9321,
"col": 24,
"tokLen": 8,
"includedFrom": {
@@ -1012,7 +1008,7 @@
},
"range": {
"begin": {
- "offset": 9068,
+ "offset": 9302,
"col": 5,
"tokLen": 5,
"includedFrom": {
@@ -1020,7 +1016,7 @@
}
},
"end": {
- "offset": 9087,
+ "offset": 9321,
"col": 24,
"tokLen": 8,
"includedFrom": {
@@ -1033,12 +1029,12 @@
]
},
{
- "id": "0x38570410",
+ "id": "0x564d8e370450",
"kind": "DeclStmt",
"range": {
"begin": {
- "offset": 9101,
- "line": 285,
+ "offset": 9335,
+ "line": 292,
"col": 5,
"tokLen": 5,
"includedFrom": {
@@ -1046,7 +1042,7 @@
}
},
"end": {
- "offset": 9133,
+ "offset": 9367,
"col": 37,
"tokLen": 1,
"includedFrom": {
@@ -1056,10 +1052,10 @@
},
"inner": [
{
- "id": "0x38570368",
+ "id": "0x564d8e3703a8",
"kind": "UsingDecl",
"loc": {
- "offset": 9120,
+ "offset": 9354,
"col": 24,
"tokLen": 13,
"includedFrom": {
@@ -1068,7 +1064,7 @@
},
"range": {
"begin": {
- "offset": 9101,
+ "offset": 9335,
"col": 5,
"tokLen": 5,
"includedFrom": {
@@ -1076,7 +1072,7 @@
}
},
"end": {
- "offset": 9120,
+ "offset": 9354,
"col": 24,
"tokLen": 13,
"includedFrom": {
@@ -1089,12 +1085,12 @@
]
},
{
- "id": "0x385a53e8",
+ "id": "0x564d8e3a49b8",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 9139,
- "line": 286,
+ "offset": 9373,
+ "line": 293,
"col": 5,
"tokLen": 2,
"includedFrom": {
@@ -1102,8 +1098,8 @@
}
},
"end": {
- "offset": 9668,
- "line": 297,
+ "offset": 9902,
+ "line": 304,
"col": 5,
"tokLen": 1,
"includedFrom": {
@@ -1114,12 +1110,12 @@
"hasElse": true,
"inner": [
{
- "id": "0x38571688",
+ "id": "0x564d8e3717c0",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 9143,
- "line": 286,
+ "offset": 9377,
+ "line": 293,
"col": 9,
"tokLen": 4,
"includedFrom": {
@@ -1127,7 +1123,7 @@
}
},
"end": {
- "offset": 9151,
+ "offset": 9385,
"col": 17,
"tokLen": 4,
"includedFrom": {
@@ -1142,11 +1138,11 @@
"adl": true,
"inner": [
{
- "id": "0x38571670",
+ "id": "0x564d8e3717a8",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 9148,
+ "offset": 9382,
"col": 14,
"tokLen": 2,
"includedFrom": {
@@ -1154,7 +1150,7 @@
}
},
"end": {
- "offset": 9148,
+ "offset": 9382,
"col": 14,
"tokLen": 2,
"includedFrom": {
@@ -1169,11 +1165,11 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x38571650",
+ "id": "0x564d8e371788",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 9148,
+ "offset": 9382,
"col": 14,
"tokLen": 2,
"includedFrom": {
@@ -1181,7 +1177,7 @@
}
},
"end": {
- "offset": 9148,
+ "offset": 9382,
"col": 14,
"tokLen": 2,
"includedFrom": {
@@ -1194,7 +1190,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -1205,11 +1201,11 @@
]
},
{
- "id": "0x38570428",
+ "id": "0x564d8e370468",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 9143,
+ "offset": 9377,
"col": 9,
"tokLen": 4,
"includedFrom": {
@@ -1217,7 +1213,7 @@
}
},
"end": {
- "offset": 9143,
+ "offset": 9377,
"col": 9,
"tokLen": 4,
"includedFrom": {
@@ -1228,11 +1224,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x3856f928",
+ "id": "0x564d8e36f988",
"kind": "ParmVarDecl",
"name": "unit",
"type": {
@@ -1241,11 +1237,11 @@
}
},
{
- "id": "0x38571638",
+ "id": "0x564d8e371770",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 9151,
+ "offset": 9385,
"col": 17,
"tokLen": 4,
"includedFrom": {
@@ -1253,7 +1249,7 @@
}
},
"end": {
- "offset": 9151,
+ "offset": 9385,
"col": 17,
"tokLen": 4,
"includedFrom": {
@@ -1268,11 +1264,11 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x38570448",
+ "id": "0x564d8e370488",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 9151,
+ "offset": 9385,
"col": 17,
"tokLen": 4,
"includedFrom": {
@@ -1280,7 +1276,7 @@
}
},
"end": {
- "offset": 9151,
+ "offset": 9385,
"col": 17,
"tokLen": 4,
"includedFrom": {
@@ -1299,11 +1295,11 @@
]
},
{
- "id": "0x38585a60",
+ "id": "0x564d8e384d38",
"kind": "CompoundStmt",
"range": {
"begin": {
- "offset": 9157,
+ "offset": 9391,
"col": 23,
"tokLen": 1,
"includedFrom": {
@@ -1311,8 +1307,8 @@
}
},
"end": {
- "offset": 9231,
- "line": 288,
+ "offset": 9465,
+ "line": 295,
"col": 5,
"tokLen": 1,
"includedFrom": {
@@ -1322,12 +1318,12 @@
},
"inner": [
{
- "id": "0x38585a50",
+ "id": "0x564d8e384d28",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 9167,
- "line": 287,
+ "offset": 9401,
+ "line": 294,
"col": 9,
"tokLen": 6,
"includedFrom": {
@@ -1335,7 +1331,7 @@
}
},
"end": {
- "offset": 9224,
+ "offset": 9458,
"col": 66,
"tokLen": 1,
"includedFrom": {
@@ -1345,11 +1341,11 @@
},
"inner": [
{
- "id": "0x38585a28",
+ "id": "0x564d8e384d00",
"kind": "CallExpr",
"range": {
"begin": {
- "offset": 9174,
+ "offset": 9408,
"col": 16,
"tokLen": 13,
"includedFrom": {
@@ -1357,7 +1353,7 @@
}
},
"end": {
- "offset": 9224,
+ "offset": 9458,
"col": 66,
"tokLen": 1,
"includedFrom": {
@@ -1371,11 +1367,11 @@
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x385716d0",
+ "id": "0x564d8e371820",
"kind": "UnresolvedLookupExpr",
"range": {
"begin": {
- "offset": 9174,
+ "offset": 9408,
"col": 16,
"tokLen": 13,
"includedFrom": {
@@ -1383,7 +1379,7 @@
}
},
"end": {
- "offset": 9189,
+ "offset": 9423,
"col": 31,
"tokLen": 1,
"includedFrom": {
@@ -1399,18 +1395,44 @@
"name": "duration_cast",
"lookups": [
{
- "id": "0x385703c0",
+ "id": "0x564d8e370400",
"kind": "UsingShadowDecl",
"name": "duration_cast"
}
+ ],
+ "inner": [
+ {
+ "kind": "TemplateArgument",
+ "type": {
+ "qualType": "T"
+ },
+ "inner": [
+ {
+ "id": "0x564d8e36f820",
+ "kind": "TemplateTypeParmType",
+ "type": {
+ "qualType": "T"
+ },
+ "isDependent": true,
+ "isInstantiationDependent": true,
+ "depth": 0,
+ "index": 0,
+ "decl": {
+ "id": "0x564d8e36f7d0",
+ "kind": "TemplateTypeParmDecl",
+ "name": "T"
+ }
+ }
+ ]
+ }
]
},
{
- "id": "0x38585a00",
+ "id": "0x564d8e384cd8",
"kind": "CXXFunctionalCastExpr",
"range": {
"begin": {
- "offset": 9191,
+ "offset": 9425,
"col": 33,
"tokLen": 8,
"includedFrom": {
@@ -1418,7 +1440,7 @@
}
},
"end": {
- "offset": 9223,
+ "offset": 9457,
"col": 65,
"tokLen": 1,
"includedFrom": {
@@ -1433,7 +1455,7 @@
"valueCategory": "prvalue",
"castKind": "ConstructorConversion",
"conversionFunc": {
- "id": "0x385856a8",
+ "id": "0x564d8e384980",
"kind": "CXXConstructorDecl",
"name": "duration",
"type": {
@@ -1442,11 +1464,11 @@
},
"inner": [
{
- "id": "0x385859d0",
+ "id": "0x564d8e384ca8",
"kind": "CXXConstructExpr",
"range": {
"begin": {
- "offset": 9191,
+ "offset": 9425,
"col": 33,
"tokLen": 8,
"includedFrom": {
@@ -1454,7 +1476,7 @@
}
},
"end": {
- "offset": 9223,
+ "offset": 9457,
"col": 65,
"tokLen": 1,
"includedFrom": {
@@ -1474,11 +1496,11 @@
"constructionKind": "complete",
"inner": [
{
- "id": "0x38585800",
+ "id": "0x564d8e384ad0",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 9219,
+ "offset": 9453,
"col": 61,
"tokLen": 4,
"includedFrom": {
@@ -1486,7 +1508,7 @@
}
},
"end": {
- "offset": 9219,
+ "offset": 9453,
"col": 61,
"tokLen": 4,
"includedFrom": {
@@ -1495,18 +1517,17 @@
}
},
"type": {
- "desugaredQualType": "const double",
"qualType": "const double"
},
"valueCategory": "lvalue",
"castKind": "NoOp",
"inner": [
{
- "id": "0x385719a0",
+ "id": "0x564d8e371b00",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 9219,
+ "offset": 9453,
"col": 61,
"tokLen": 4,
"includedFrom": {
@@ -1514,7 +1535,7 @@
}
},
"end": {
- "offset": 9219,
+ "offset": 9453,
"col": 61,
"tokLen": 4,
"includedFrom": {
@@ -1527,7 +1548,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x3856fbd8",
+ "id": "0x564d8e36fc30",
"kind": "VarDecl",
"name": "tval",
"type": {
@@ -1548,12 +1569,12 @@
]
},
{
- "id": "0x385a53b8",
+ "id": "0x564d8e3a4988",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 9238,
- "line": 288,
+ "offset": 9472,
+ "line": 295,
"col": 12,
"tokLen": 2,
"includedFrom": {
@@ -1561,8 +1582,8 @@
}
},
"end": {
- "offset": 9668,
- "line": 297,
+ "offset": 9902,
+ "line": 304,
"col": 5,
"tokLen": 1,
"includedFrom": {
@@ -1573,12 +1594,12 @@
"hasElse": true,
"inner": [
{
- "id": "0x38586cd8",
+ "id": "0x564d8e3860b0",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 9242,
- "line": 288,
+ "offset": 9476,
+ "line": 295,
"col": 16,
"tokLen": 4,
"includedFrom": {
@@ -1586,7 +1607,7 @@
}
},
"end": {
- "offset": 9250,
+ "offset": 9484,
"col": 24,
"tokLen": 4,
"includedFrom": {
@@ -1601,11 +1622,11 @@
"adl": true,
"inner": [
{
- "id": "0x38586cc0",
+ "id": "0x564d8e386098",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 9247,
+ "offset": 9481,
"col": 21,
"tokLen": 2,
"includedFrom": {
@@ -1613,7 +1634,7 @@
}
},
"end": {
- "offset": 9247,
+ "offset": 9481,
"col": 21,
"tokLen": 2,
"includedFrom": {
@@ -1628,11 +1649,11 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x38586ca0",
+ "id": "0x564d8e386078",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 9247,
+ "offset": 9481,
"col": 21,
"tokLen": 2,
"includedFrom": {
@@ -1640,7 +1661,7 @@
}
},
"end": {
- "offset": 9247,
+ "offset": 9481,
"col": 21,
"tokLen": 2,
"includedFrom": {
@@ -1653,7 +1674,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -1664,11 +1685,11 @@
]
},
{
- "id": "0x38585a78",
+ "id": "0x564d8e384d50",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 9242,
+ "offset": 9476,
"col": 16,
"tokLen": 4,
"includedFrom": {
@@ -1676,7 +1697,7 @@
}
},
"end": {
- "offset": 9242,
+ "offset": 9476,
"col": 16,
"tokLen": 4,
"includedFrom": {
@@ -1687,11 +1708,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x3856f928",
+ "id": "0x564d8e36f988",
"kind": "ParmVarDecl",
"name": "unit",
"type": {
@@ -1700,11 +1721,11 @@
}
},
{
- "id": "0x38586c88",
+ "id": "0x564d8e386060",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 9250,
+ "offset": 9484,
"col": 24,
"tokLen": 4,
"includedFrom": {
@@ -1712,7 +1733,7 @@
}
},
"end": {
- "offset": 9250,
+ "offset": 9484,
"col": 24,
"tokLen": 4,
"includedFrom": {
@@ -1727,11 +1748,11 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x38585a98",
+ "id": "0x564d8e384d70",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 9250,
+ "offset": 9484,
"col": 24,
"tokLen": 4,
"includedFrom": {
@@ -1739,7 +1760,7 @@
}
},
"end": {
- "offset": 9250,
+ "offset": 9484,
"col": 24,
"tokLen": 4,
"includedFrom": {
@@ -1758,11 +1779,11 @@
]
},
{
- "id": "0x3858fe60",
+ "id": "0x564d8e38f5c8",
"kind": "CompoundStmt",
"range": {
"begin": {
- "offset": 9256,
+ "offset": 9490,
"col": 30,
"tokLen": 1,
"includedFrom": {
@@ -1770,8 +1791,8 @@
}
},
"end": {
- "offset": 9331,
- "line": 290,
+ "offset": 9565,
+ "line": 297,
"col": 5,
"tokLen": 1,
"includedFrom": {
@@ -1781,12 +1802,12 @@
},
"inner": [
{
- "id": "0x3858fe50",
+ "id": "0x564d8e38f5b8",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 9266,
- "line": 289,
+ "offset": 9500,
+ "line": 296,
"col": 9,
"tokLen": 6,
"includedFrom": {
@@ -1794,7 +1815,7 @@
}
},
"end": {
- "offset": 9324,
+ "offset": 9558,
"col": 67,
"tokLen": 1,
"includedFrom": {
@@ -1804,11 +1825,11 @@
},
"inner": [
{
- "id": "0x3858fe28",
+ "id": "0x564d8e38f590",
"kind": "CallExpr",
"range": {
"begin": {
- "offset": 9273,
+ "offset": 9507,
"col": 16,
"tokLen": 13,
"includedFrom": {
@@ -1816,7 +1837,7 @@
}
},
"end": {
- "offset": 9324,
+ "offset": 9558,
"col": 67,
"tokLen": 1,
"includedFrom": {
@@ -1830,11 +1851,11 @@
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x38586d20",
+ "id": "0x564d8e3860f8",
"kind": "UnresolvedLookupExpr",
"range": {
"begin": {
- "offset": 9273,
+ "offset": 9507,
"col": 16,
"tokLen": 13,
"includedFrom": {
@@ -1842,7 +1863,7 @@
}
},
"end": {
- "offset": 9288,
+ "offset": 9522,
"col": 31,
"tokLen": 1,
"includedFrom": {
@@ -1858,18 +1879,44 @@
"name": "duration_cast",
"lookups": [
{
- "id": "0x385703c0",
+ "id": "0x564d8e370400",
"kind": "UsingShadowDecl",
"name": "duration_cast"
}
+ ],
+ "inner": [
+ {
+ "kind": "TemplateArgument",
+ "type": {
+ "qualType": "T"
+ },
+ "inner": [
+ {
+ "id": "0x564d8e36f820",
+ "kind": "TemplateTypeParmType",
+ "type": {
+ "qualType": "T"
+ },
+ "isDependent": true,
+ "isInstantiationDependent": true,
+ "depth": 0,
+ "index": 0,
+ "decl": {
+ "id": "0x564d8e36f7d0",
+ "kind": "TemplateTypeParmDecl",
+ "name": "T"
+ }
+ }
+ ]
+ }
]
},
{
- "id": "0x3858fe00",
+ "id": "0x564d8e38f568",
"kind": "CXXFunctionalCastExpr",
"range": {
"begin": {
- "offset": 9290,
+ "offset": 9524,
"col": 33,
"tokLen": 8,
"includedFrom": {
@@ -1877,7 +1924,7 @@
}
},
"end": {
- "offset": 9323,
+ "offset": 9557,
"col": 66,
"tokLen": 1,
"includedFrom": {
@@ -1892,7 +1939,7 @@
"valueCategory": "prvalue",
"castKind": "ConstructorConversion",
"conversionFunc": {
- "id": "0x3858faa8",
+ "id": "0x564d8e38f210",
"kind": "CXXConstructorDecl",
"name": "duration",
"type": {
@@ -1901,11 +1948,11 @@
},
"inner": [
{
- "id": "0x3858fdd0",
+ "id": "0x564d8e38f538",
"kind": "CXXConstructExpr",
"range": {
"begin": {
- "offset": 9290,
+ "offset": 9524,
"col": 33,
"tokLen": 8,
"includedFrom": {
@@ -1913,7 +1960,7 @@
}
},
"end": {
- "offset": 9323,
+ "offset": 9557,
"col": 66,
"tokLen": 1,
"includedFrom": {
@@ -1933,11 +1980,11 @@
"constructionKind": "complete",
"inner": [
{
- "id": "0x3858fc00",
+ "id": "0x564d8e38f360",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 9319,
+ "offset": 9553,
"col": 62,
"tokLen": 4,
"includedFrom": {
@@ -1945,7 +1992,7 @@
}
},
"end": {
- "offset": 9319,
+ "offset": 9553,
"col": 62,
"tokLen": 4,
"includedFrom": {
@@ -1954,18 +2001,17 @@
}
},
"type": {
- "desugaredQualType": "const double",
"qualType": "const double"
},
"valueCategory": "lvalue",
"castKind": "NoOp",
"inner": [
{
- "id": "0x38586ff0",
+ "id": "0x564d8e3863c0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 9319,
+ "offset": 9553,
"col": 62,
"tokLen": 4,
"includedFrom": {
@@ -1973,7 +2019,7 @@
}
},
"end": {
- "offset": 9319,
+ "offset": 9553,
"col": 62,
"tokLen": 4,
"includedFrom": {
@@ -1986,7 +2032,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x3856fbd8",
+ "id": "0x564d8e36fc30",
"kind": "VarDecl",
"name": "tval",
"type": {
@@ -2007,12 +2053,12 @@
]
},
{
- "id": "0x385a5388",
+ "id": "0x564d8e3a4958",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 9338,
- "line": 290,
+ "offset": 9572,
+ "line": 297,
"col": 12,
"tokLen": 2,
"includedFrom": {
@@ -2020,8 +2066,8 @@
}
},
"end": {
- "offset": 9668,
- "line": 297,
+ "offset": 9902,
+ "line": 304,
"col": 5,
"tokLen": 1,
"includedFrom": {
@@ -2032,12 +2078,12 @@
"hasElse": true,
"inner": [
{
- "id": "0x385910d8",
+ "id": "0x564d8e390940",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 9342,
- "line": 290,
+ "offset": 9576,
+ "line": 297,
"col": 16,
"tokLen": 4,
"includedFrom": {
@@ -2045,7 +2091,7 @@
}
},
"end": {
- "offset": 9350,
+ "offset": 9584,
"col": 24,
"tokLen": 4,
"includedFrom": {
@@ -2060,11 +2106,11 @@
"adl": true,
"inner": [
{
- "id": "0x385910c0",
+ "id": "0x564d8e390928",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 9347,
+ "offset": 9581,
"col": 21,
"tokLen": 2,
"includedFrom": {
@@ -2072,7 +2118,7 @@
}
},
"end": {
- "offset": 9347,
+ "offset": 9581,
"col": 21,
"tokLen": 2,
"includedFrom": {
@@ -2087,11 +2133,11 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x385910a0",
+ "id": "0x564d8e390908",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 9347,
+ "offset": 9581,
"col": 21,
"tokLen": 2,
"includedFrom": {
@@ -2099,7 +2145,7 @@
}
},
"end": {
- "offset": 9347,
+ "offset": 9581,
"col": 21,
"tokLen": 2,
"includedFrom": {
@@ -2112,7 +2158,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -2123,11 +2169,11 @@
]
},
{
- "id": "0x3858fe78",
+ "id": "0x564d8e38f5e0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 9342,
+ "offset": 9576,
"col": 16,
"tokLen": 4,
"includedFrom": {
@@ -2135,7 +2181,7 @@
}
},
"end": {
- "offset": 9342,
+ "offset": 9576,
"col": 16,
"tokLen": 4,
"includedFrom": {
@@ -2146,11 +2192,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x3856f928",
+ "id": "0x564d8e36f988",
"kind": "ParmVarDecl",
"name": "unit",
"type": {
@@ -2159,11 +2205,11 @@
}
},
{
- "id": "0x38591088",
+ "id": "0x564d8e3908f0",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 9350,
+ "offset": 9584,
"col": 24,
"tokLen": 4,
"includedFrom": {
@@ -2171,7 +2217,7 @@
}
},
"end": {
- "offset": 9350,
+ "offset": 9584,
"col": 24,
"tokLen": 4,
"includedFrom": {
@@ -2186,11 +2232,11 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x3858fe98",
+ "id": "0x564d8e38f600",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 9350,
+ "offset": 9584,
"col": 24,
"tokLen": 4,
"includedFrom": {
@@ -2198,7 +2244,7 @@
}
},
"end": {
- "offset": 9350,
+ "offset": 9584,
"col": 24,
"tokLen": 4,
"includedFrom": {
@@ -2217,11 +2263,11 @@
]
},
{
- "id": "0x3859a270",
+ "id": "0x564d8e399e38",
"kind": "CompoundStmt",
"range": {
"begin": {
- "offset": 9356,
+ "offset": 9590,
"col": 30,
"tokLen": 1,
"includedFrom": {
@@ -2229,8 +2275,8 @@
}
},
"end": {
- "offset": 9431,
- "line": 292,
+ "offset": 9665,
+ "line": 299,
"col": 5,
"tokLen": 1,
"includedFrom": {
@@ -2240,12 +2286,12 @@
},
"inner": [
{
- "id": "0x3859a260",
+ "id": "0x564d8e399e28",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 9366,
- "line": 291,
+ "offset": 9600,
+ "line": 298,
"col": 9,
"tokLen": 6,
"includedFrom": {
@@ -2253,7 +2299,7 @@
}
},
"end": {
- "offset": 9424,
+ "offset": 9658,
"col": 67,
"tokLen": 1,
"includedFrom": {
@@ -2263,11 +2309,11 @@
},
"inner": [
{
- "id": "0x3859a238",
+ "id": "0x564d8e399e00",
"kind": "CallExpr",
"range": {
"begin": {
- "offset": 9373,
+ "offset": 9607,
"col": 16,
"tokLen": 13,
"includedFrom": {
@@ -2275,7 +2321,7 @@
}
},
"end": {
- "offset": 9424,
+ "offset": 9658,
"col": 67,
"tokLen": 1,
"includedFrom": {
@@ -2289,11 +2335,11 @@
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x38591120",
+ "id": "0x564d8e390988",
"kind": "UnresolvedLookupExpr",
"range": {
"begin": {
- "offset": 9373,
+ "offset": 9607,
"col": 16,
"tokLen": 13,
"includedFrom": {
@@ -2301,7 +2347,7 @@
}
},
"end": {
- "offset": 9388,
+ "offset": 9622,
"col": 31,
"tokLen": 1,
"includedFrom": {
@@ -2317,18 +2363,44 @@
"name": "duration_cast",
"lookups": [
{
- "id": "0x385703c0",
+ "id": "0x564d8e370400",
"kind": "UsingShadowDecl",
"name": "duration_cast"
}
+ ],
+ "inner": [
+ {
+ "kind": "TemplateArgument",
+ "type": {
+ "qualType": "T"
+ },
+ "inner": [
+ {
+ "id": "0x564d8e36f820",
+ "kind": "TemplateTypeParmType",
+ "type": {
+ "qualType": "T"
+ },
+ "isDependent": true,
+ "isInstantiationDependent": true,
+ "depth": 0,
+ "index": 0,
+ "decl": {
+ "id": "0x564d8e36f7d0",
+ "kind": "TemplateTypeParmDecl",
+ "name": "T"
+ }
+ }
+ ]
+ }
]
},
{
- "id": "0x3859a210",
+ "id": "0x564d8e399dd8",
"kind": "CXXFunctionalCastExpr",
"range": {
"begin": {
- "offset": 9390,
+ "offset": 9624,
"col": 33,
"tokLen": 8,
"includedFrom": {
@@ -2336,7 +2408,7 @@
}
},
"end": {
- "offset": 9423,
+ "offset": 9657,
"col": 66,
"tokLen": 1,
"includedFrom": {
@@ -2351,7 +2423,7 @@
"valueCategory": "prvalue",
"castKind": "ConstructorConversion",
"conversionFunc": {
- "id": "0x38599eb8",
+ "id": "0x564d8e399a80",
"kind": "CXXConstructorDecl",
"name": "duration",
"type": {
@@ -2360,11 +2432,11 @@
},
"inner": [
{
- "id": "0x3859a1e0",
+ "id": "0x564d8e399da8",
"kind": "CXXConstructExpr",
"range": {
"begin": {
- "offset": 9390,
+ "offset": 9624,
"col": 33,
"tokLen": 8,
"includedFrom": {
@@ -2372,7 +2444,7 @@
}
},
"end": {
- "offset": 9423,
+ "offset": 9657,
"col": 66,
"tokLen": 1,
"includedFrom": {
@@ -2392,11 +2464,11 @@
"constructionKind": "complete",
"inner": [
{
- "id": "0x3859a010",
+ "id": "0x564d8e399bd0",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 9419,
+ "offset": 9653,
"col": 62,
"tokLen": 4,
"includedFrom": {
@@ -2404,7 +2476,7 @@
}
},
"end": {
- "offset": 9419,
+ "offset": 9653,
"col": 62,
"tokLen": 4,
"includedFrom": {
@@ -2413,18 +2485,17 @@
}
},
"type": {
- "desugaredQualType": "const double",
"qualType": "const double"
},
"valueCategory": "lvalue",
"castKind": "NoOp",
"inner": [
{
- "id": "0x385913f0",
+ "id": "0x564d8e390c50",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 9419,
+ "offset": 9653,
"col": 62,
"tokLen": 4,
"includedFrom": {
@@ -2432,7 +2503,7 @@
}
},
"end": {
- "offset": 9419,
+ "offset": 9653,
"col": 62,
"tokLen": 4,
"includedFrom": {
@@ -2445,7 +2516,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x3856fbd8",
+ "id": "0x564d8e36fc30",
"kind": "VarDecl",
"name": "tval",
"type": {
@@ -2466,12 +2537,12 @@
]
},
{
- "id": "0x385a5358",
+ "id": "0x564d8e3a4928",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 9438,
- "line": 292,
+ "offset": 9672,
+ "line": 299,
"col": 12,
"tokLen": 2,
"includedFrom": {
@@ -2479,8 +2550,8 @@
}
},
"end": {
- "offset": 9668,
- "line": 297,
+ "offset": 9902,
+ "line": 304,
"col": 5,
"tokLen": 1,
"includedFrom": {
@@ -2491,12 +2562,12 @@
"hasElse": true,
"inner": [
{
- "id": "0x3859b5b8",
+ "id": "0x564d8e39b290",
"kind": "BinaryOperator",
"range": {
"begin": {
- "offset": 9442,
- "line": 292,
+ "offset": 9676,
+ "line": 299,
"col": 16,
"tokLen": 4,
"includedFrom": {
@@ -2504,7 +2575,7 @@
}
},
"end": {
- "offset": 9468,
+ "offset": 9702,
"col": 42,
"tokLen": 1,
"includedFrom": {
@@ -2519,11 +2590,11 @@
"opcode": "||",
"inner": [
{
- "id": "0x3859b4e8",
+ "id": "0x564d8e39b1b0",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 9442,
+ "offset": 9676,
"col": 16,
"tokLen": 4,
"includedFrom": {
@@ -2531,7 +2602,7 @@
}
},
"end": {
- "offset": 9450,
+ "offset": 9684,
"col": 24,
"tokLen": 3,
"includedFrom": {
@@ -2546,11 +2617,11 @@
"adl": true,
"inner": [
{
- "id": "0x3859b4d0",
+ "id": "0x564d8e39b198",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 9447,
+ "offset": 9681,
"col": 21,
"tokLen": 2,
"includedFrom": {
@@ -2558,7 +2629,7 @@
}
},
"end": {
- "offset": 9447,
+ "offset": 9681,
"col": 21,
"tokLen": 2,
"includedFrom": {
@@ -2573,11 +2644,11 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x3859b4b0",
+ "id": "0x564d8e39b178",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 9447,
+ "offset": 9681,
"col": 21,
"tokLen": 2,
"includedFrom": {
@@ -2585,7 +2656,7 @@
}
},
"end": {
- "offset": 9447,
+ "offset": 9681,
"col": 21,
"tokLen": 2,
"includedFrom": {
@@ -2598,7 +2669,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -2609,11 +2680,11 @@
]
},
{
- "id": "0x3859a288",
+ "id": "0x564d8e399e50",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 9442,
+ "offset": 9676,
"col": 16,
"tokLen": 4,
"includedFrom": {
@@ -2621,7 +2692,7 @@
}
},
"end": {
- "offset": 9442,
+ "offset": 9676,
"col": 16,
"tokLen": 4,
"includedFrom": {
@@ -2632,11 +2703,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x3856f928",
+ "id": "0x564d8e36f988",
"kind": "ParmVarDecl",
"name": "unit",
"type": {
@@ -2645,11 +2716,11 @@
}
},
{
- "id": "0x3859b498",
+ "id": "0x564d8e39b160",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 9450,
+ "offset": 9684,
"col": 24,
"tokLen": 3,
"includedFrom": {
@@ -2657,7 +2728,7 @@
}
},
"end": {
- "offset": 9450,
+ "offset": 9684,
"col": 24,
"tokLen": 3,
"includedFrom": {
@@ -2672,11 +2743,11 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x3859a2a8",
+ "id": "0x564d8e399e70",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 9450,
+ "offset": 9684,
"col": 24,
"tokLen": 3,
"includedFrom": {
@@ -2684,7 +2755,7 @@
}
},
"end": {
- "offset": 9450,
+ "offset": 9684,
"col": 24,
"tokLen": 3,
"includedFrom": {
@@ -2703,11 +2774,11 @@
]
},
{
- "id": "0x3859b570",
+ "id": "0x564d8e39b238",
"kind": "CXXMemberCallExpr",
"range": {
"begin": {
- "offset": 9457,
+ "offset": 9691,
"col": 31,
"tokLen": 4,
"includedFrom": {
@@ -2715,7 +2786,7 @@
}
},
"end": {
- "offset": 9468,
+ "offset": 9702,
"col": 42,
"tokLen": 1,
"includedFrom": {
@@ -2729,11 +2800,11 @@
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x3859b540",
+ "id": "0x564d8e39b208",
"kind": "MemberExpr",
"range": {
"begin": {
- "offset": 9457,
+ "offset": 9691,
"col": 31,
"tokLen": 4,
"includedFrom": {
@@ -2741,7 +2812,7 @@
}
},
"end": {
- "offset": 9462,
+ "offset": 9696,
"col": 36,
"tokLen": 5,
"includedFrom": {
@@ -2755,14 +2826,14 @@
"valueCategory": "prvalue",
"name": "empty",
"isArrow": false,
- "referencedMemberDecl": "0x37aee0b8",
+ "referencedMemberDecl": "0x564d8d69dff8",
"inner": [
{
- "id": "0x3859b520",
+ "id": "0x564d8e39b1e8",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 9457,
+ "offset": 9691,
"col": 31,
"tokLen": 4,
"includedFrom": {
@@ -2770,7 +2841,7 @@
}
},
"end": {
- "offset": 9457,
+ "offset": 9691,
"col": 31,
"tokLen": 4,
"includedFrom": {
@@ -2781,11 +2852,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x3856f928",
+ "id": "0x564d8e36f988",
"kind": "ParmVarDecl",
"name": "unit",
"type": {
@@ -2800,11 +2871,11 @@
]
},
{
- "id": "0x385a5170",
+ "id": "0x564d8e3a4758",
"kind": "CompoundStmt",
"range": {
"begin": {
- "offset": 9471,
+ "offset": 9705,
"col": 45,
"tokLen": 1,
"includedFrom": {
@@ -2812,8 +2883,8 @@
}
},
"end": {
- "offset": 9547,
- "line": 294,
+ "offset": 9781,
+ "line": 301,
"col": 5,
"tokLen": 1,
"includedFrom": {
@@ -2823,12 +2894,12 @@
},
"inner": [
{
- "id": "0x385a5160",
+ "id": "0x564d8e3a4748",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 9481,
- "line": 293,
+ "offset": 9715,
+ "line": 300,
"col": 9,
"tokLen": 6,
"includedFrom": {
@@ -2836,7 +2907,7 @@
}
},
"end": {
- "offset": 9540,
+ "offset": 9774,
"col": 68,
"tokLen": 1,
"includedFrom": {
@@ -2846,11 +2917,11 @@
},
"inner": [
{
- "id": "0x385a5138",
+ "id": "0x564d8e3a4720",
"kind": "CallExpr",
"range": {
"begin": {
- "offset": 9488,
+ "offset": 9722,
"col": 16,
"tokLen": 13,
"includedFrom": {
@@ -2858,7 +2929,7 @@
}
},
"end": {
- "offset": 9540,
+ "offset": 9774,
"col": 68,
"tokLen": 1,
"includedFrom": {
@@ -2872,11 +2943,11 @@
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x3859b5e8",
+ "id": "0x564d8e39b2c0",
"kind": "UnresolvedLookupExpr",
"range": {
"begin": {
- "offset": 9488,
+ "offset": 9722,
"col": 16,
"tokLen": 13,
"includedFrom": {
@@ -2884,7 +2955,7 @@
}
},
"end": {
- "offset": 9503,
+ "offset": 9737,
"col": 31,
"tokLen": 1,
"includedFrom": {
@@ -2900,18 +2971,44 @@
"name": "duration_cast",
"lookups": [
{
- "id": "0x385703c0",
+ "id": "0x564d8e370400",
"kind": "UsingShadowDecl",
"name": "duration_cast"
}
+ ],
+ "inner": [
+ {
+ "kind": "TemplateArgument",
+ "type": {
+ "qualType": "T"
+ },
+ "inner": [
+ {
+ "id": "0x564d8e36f820",
+ "kind": "TemplateTypeParmType",
+ "type": {
+ "qualType": "T"
+ },
+ "isDependent": true,
+ "isInstantiationDependent": true,
+ "depth": 0,
+ "index": 0,
+ "decl": {
+ "id": "0x564d8e36f7d0",
+ "kind": "TemplateTypeParmDecl",
+ "name": "T"
+ }
+ }
+ ]
+ }
]
},
{
- "id": "0x385a5110",
+ "id": "0x564d8e3a46f8",
"kind": "CXXFunctionalCastExpr",
"range": {
"begin": {
- "offset": 9505,
+ "offset": 9739,
"col": 33,
"tokLen": 3,
"includedFrom": {
@@ -2919,7 +3016,7 @@
}
},
"end": {
- "offset": 9539,
+ "offset": 9773,
"col": 67,
"tokLen": 1,
"includedFrom": {
@@ -2928,13 +3025,12 @@
}
},
"type": {
- "desugaredQualType": "std::chrono::duration",
"qualType": "std::chrono::duration"
},
"valueCategory": "prvalue",
"castKind": "ConstructorConversion",
"conversionFunc": {
- "id": "0x385a4db8",
+ "id": "0x564d8e3a43a0",
"kind": "CXXConstructorDecl",
"name": "duration",
"type": {
@@ -2943,11 +3039,11 @@
},
"inner": [
{
- "id": "0x385a50e0",
+ "id": "0x564d8e3a46c8",
"kind": "CXXConstructExpr",
"range": {
"begin": {
- "offset": 9505,
+ "offset": 9739,
"col": 33,
"tokLen": 3,
"includedFrom": {
@@ -2955,7 +3051,7 @@
}
},
"end": {
- "offset": 9539,
+ "offset": 9773,
"col": 67,
"tokLen": 1,
"includedFrom": {
@@ -2964,7 +3060,6 @@
}
},
"type": {
- "desugaredQualType": "std::chrono::duration",
"qualType": "std::chrono::duration"
},
"valueCategory": "prvalue",
@@ -2975,11 +3070,11 @@
"constructionKind": "complete",
"inner": [
{
- "id": "0x385a4f10",
+ "id": "0x564d8e3a44f0",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 9535,
+ "offset": 9769,
"col": 63,
"tokLen": 4,
"includedFrom": {
@@ -2987,7 +3082,7 @@
}
},
"end": {
- "offset": 9535,
+ "offset": 9769,
"col": 63,
"tokLen": 4,
"includedFrom": {
@@ -2996,18 +3091,17 @@
}
},
"type": {
- "desugaredQualType": "const double",
"qualType": "const double"
},
"valueCategory": "lvalue",
"castKind": "NoOp",
"inner": [
{
- "id": "0x3859b890",
+ "id": "0x564d8e39b570",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 9535,
+ "offset": 9769,
"col": 63,
"tokLen": 4,
"includedFrom": {
@@ -3015,7 +3109,7 @@
}
},
"end": {
- "offset": 9535,
+ "offset": 9769,
"col": 63,
"tokLen": 4,
"includedFrom": {
@@ -3028,7 +3122,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x3856fbd8",
+ "id": "0x564d8e36fc30",
"kind": "VarDecl",
"name": "tval",
"type": {
@@ -3049,12 +3143,12 @@
]
},
{
- "id": "0x385a5340",
+ "id": "0x564d8e3a4910",
"kind": "CompoundStmt",
"range": {
"begin": {
- "offset": 9554,
- "line": 294,
+ "offset": 9788,
+ "line": 301,
"col": 12,
"tokLen": 1,
"includedFrom": {
@@ -3062,8 +3156,8 @@
}
},
"end": {
- "offset": 9668,
- "line": 297,
+ "offset": 9902,
+ "line": 304,
"col": 5,
"tokLen": 1,
"includedFrom": {
@@ -3073,12 +3167,12 @@
},
"inner": [
{
- "id": "0x385a5328",
+ "id": "0x564d8e3a48f8",
"kind": "ExprWithCleanups",
"range": {
"begin": {
- "offset": 9564,
- "line": 295,
+ "offset": 9798,
+ "line": 302,
"col": 9,
"tokLen": 5,
"includedFrom": {
@@ -3086,8 +3180,8 @@
}
},
"end": {
- "offset": 9661,
- "line": 296,
+ "offset": 9895,
+ "line": 303,
"col": 78,
"tokLen": 1,
"includedFrom": {
@@ -3102,12 +3196,12 @@
"cleanupsHaveSideEffects": true,
"inner": [
{
- "id": "0x385a5310",
+ "id": "0x564d8e3a48e0",
"kind": "CXXThrowExpr",
"range": {
"begin": {
- "offset": 9564,
- "line": 295,
+ "offset": 9798,
+ "line": 302,
"col": 9,
"tokLen": 5,
"includedFrom": {
@@ -3115,8 +3209,8 @@
}
},
"end": {
- "offset": 9661,
- "line": 296,
+ "offset": 9895,
+ "line": 303,
"col": 78,
"tokLen": 1,
"includedFrom": {
@@ -3130,12 +3224,12 @@
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x385a52e0",
- "kind": "CXXConstructExpr",
+ "id": "0x564d8e3a48b8",
+ "kind": "CXXFunctionalCastExpr",
"range": {
"begin": {
- "offset": 9570,
- "line": 295,
+ "offset": 9804,
+ "line": 302,
"col": 15,
"tokLen": 12,
"includedFrom": {
@@ -3143,8 +3237,8 @@
}
},
"end": {
- "offset": 9661,
- "line": 296,
+ "offset": 9895,
+ "line": 303,
"col": 78,
"tokLen": 1,
"includedFrom": {
@@ -3157,20 +3251,23 @@
"qualType": "RuntimeError"
},
"valueCategory": "prvalue",
- "ctorType": {
- "qualType": "void (RuntimeError &&) noexcept"
+ "castKind": "ConstructorConversion",
+ "conversionFunc": {
+ "id": "0x564d8d916e90",
+ "kind": "CXXConstructorDecl",
+ "name": "RuntimeError",
+ "type": {
+ "qualType": "void (const char *)"
+ }
},
- "elidable": true,
- "hadMultipleCandidates": true,
- "constructionKind": "complete",
"inner": [
{
- "id": "0x385a52c8",
- "kind": "MaterializeTemporaryExpr",
+ "id": "0x564d8e3a4898",
+ "kind": "CXXBindTemporaryExpr",
"range": {
"begin": {
- "offset": 9570,
- "line": 295,
+ "offset": 9804,
+ "line": 302,
"col": 15,
"tokLen": 12,
"includedFrom": {
@@ -3178,8 +3275,8 @@
}
},
"end": {
- "offset": 9661,
- "line": 296,
+ "offset": 9895,
+ "line": 303,
"col": 78,
"tokLen": 1,
"includedFrom": {
@@ -3191,16 +3288,24 @@
"desugaredQualType": "sls::RuntimeError",
"qualType": "RuntimeError"
},
- "valueCategory": "xvalue",
- "storageDuration": "full expression",
+ "valueCategory": "prvalue",
+ "temp": "0x564d8e3a4890",
+ "dtor": {
+ "id": "0x564d8d917778",
+ "kind": "CXXDestructorDecl",
+ "name": "~RuntimeError",
+ "type": {
+ "qualType": "void () noexcept"
+ }
+ },
"inner": [
{
- "id": "0x385a52a0",
- "kind": "CXXFunctionalCastExpr",
+ "id": "0x564d8e3a4860",
+ "kind": "CXXConstructExpr",
"range": {
"begin": {
- "offset": 9570,
- "line": 295,
+ "offset": 9804,
+ "line": 302,
"col": 15,
"tokLen": 12,
"includedFrom": {
@@ -3208,8 +3313,8 @@
}
},
"end": {
- "offset": 9661,
- "line": 296,
+ "offset": 9895,
+ "line": 303,
"col": 78,
"tokLen": 1,
"includedFrom": {
@@ -3222,145 +3327,65 @@
"qualType": "RuntimeError"
},
"valueCategory": "prvalue",
- "castKind": "ConstructorConversion",
- "conversionFunc": {
- "id": "0x37b9a6a8",
- "kind": "CXXConstructorDecl",
- "name": "RuntimeError",
- "type": {
- "qualType": "void (const char *)"
- }
+ "ctorType": {
+ "qualType": "void (const char *)"
},
+ "hadMultipleCandidates": true,
+ "constructionKind": "complete",
"inner": [
{
- "id": "0x385a5280",
- "kind": "CXXBindTemporaryExpr",
+ "id": "0x564d8e3a4848",
+ "kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 9570,
- "line": 295,
- "col": 15,
- "tokLen": 12,
+ "offset": 9830,
+ "col": 13,
+ "tokLen": 65,
"includedFrom": {
"file": "ToString.cpp"
}
},
"end": {
- "offset": 9661,
- "line": 296,
- "col": 78,
- "tokLen": 1,
+ "offset": 9830,
+ "col": 13,
+ "tokLen": 65,
"includedFrom": {
"file": "ToString.cpp"
}
}
},
"type": {
- "desugaredQualType": "sls::RuntimeError",
- "qualType": "RuntimeError"
+ "qualType": "const char *"
},
"valueCategory": "prvalue",
- "temp": "0x385a5278",
- "dtor": {
- "id": "0x37b9af20",
- "kind": "CXXDestructorDecl",
- "name": "~RuntimeError",
- "type": {
- "qualType": "void () noexcept"
- }
- },
+ "castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x385a5248",
- "kind": "CXXConstructExpr",
+ "id": "0x564d8e3a47b0",
+ "kind": "StringLiteral",
"range": {
"begin": {
- "offset": 9570,
- "line": 295,
- "col": 15,
- "tokLen": 12,
+ "offset": 9830,
+ "col": 13,
+ "tokLen": 65,
"includedFrom": {
"file": "ToString.cpp"
}
},
"end": {
- "offset": 9661,
- "line": 296,
- "col": 78,
- "tokLen": 1,
+ "offset": 9830,
+ "col": 13,
+ "tokLen": 65,
"includedFrom": {
"file": "ToString.cpp"
}
}
},
"type": {
- "desugaredQualType": "sls::RuntimeError",
- "qualType": "RuntimeError"
+ "qualType": "const char[64]"
},
- "valueCategory": "prvalue",
- "ctorType": {
- "qualType": "void (const char *)"
- },
- "hadMultipleCandidates": true,
- "constructionKind": "complete",
- "inner": [
- {
- "id": "0x385a5230",
- "kind": "ImplicitCastExpr",
- "range": {
- "begin": {
- "offset": 9596,
- "col": 13,
- "tokLen": 65,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- },
- "end": {
- "offset": 9596,
- "col": 13,
- "tokLen": 65,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- }
- },
- "type": {
- "qualType": "const char *"
- },
- "valueCategory": "prvalue",
- "castKind": "ArrayToPointerDecay",
- "inner": [
- {
- "id": "0x385a51d8",
- "kind": "StringLiteral",
- "range": {
- "begin": {
- "offset": 9596,
- "col": 13,
- "tokLen": 65,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- },
- "end": {
- "offset": 9596,
- "col": 13,
- "tokLen": 65,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- }
- },
- "type": {
- "qualType": "const char[64]"
- },
- "valueCategory": "lvalue",
- "value": "\"Invalid unit in conversion from string to std::chrono::duration\""
- }
- ]
- }
- ]
+ "valueCategory": "lvalue",
+ "value": "\"Invalid unit in conversion from string to std::chrono::duration\""
}
]
}
@@ -3391,12 +3416,12 @@
]
}
{
- "id": "0x385a56d0",
+ "id": "0x564d8e3a4cc8",
"kind": "FunctionTemplateDecl",
"loc": {
- "offset": 9697,
+ "offset": 9931,
"file": "../include/sls/ToString.h",
- "line": 300,
+ "line": 307,
"col": 25,
"tokLen": 8,
"includedFrom": {
@@ -3405,7 +3430,7 @@
},
"range": {
"begin": {
- "offset": 9673,
+ "offset": 9907,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -3413,8 +3438,8 @@
}
},
"end": {
- "offset": 9822,
- "line": 304,
+ "offset": 10056,
+ "line": 311,
"col": 1,
"tokLen": 1,
"includedFrom": {
@@ -3425,11 +3450,11 @@
"name": "StringTo",
"inner": [
{
- "id": "0x385a5450",
+ "id": "0x564d8e3a4a20",
"kind": "TemplateTypeParmDecl",
"loc": {
- "offset": 9692,
- "line": 300,
+ "offset": 9926,
+ "line": 307,
"col": 20,
"tokLen": 1,
"includedFrom": {
@@ -3438,7 +3463,7 @@
},
"range": {
"begin": {
- "offset": 9683,
+ "offset": 9917,
"col": 11,
"tokLen": 8,
"includedFrom": {
@@ -3446,7 +3471,7 @@
}
},
"end": {
- "offset": 9692,
+ "offset": 9926,
"col": 20,
"tokLen": 1,
"includedFrom": {
@@ -3461,10 +3486,10 @@
"index": 0
},
{
- "id": "0x385a5628",
+ "id": "0x564d8e3a4c20",
"kind": "FunctionDecl",
"loc": {
- "offset": 9697,
+ "offset": 9931,
"col": 25,
"tokLen": 8,
"includedFrom": {
@@ -3473,7 +3498,7 @@
},
"range": {
"begin": {
- "offset": 9695,
+ "offset": 9929,
"col": 23,
"tokLen": 1,
"includedFrom": {
@@ -3481,8 +3506,8 @@
}
},
"end": {
- "offset": 9822,
- "line": 304,
+ "offset": 10056,
+ "line": 311,
"col": 1,
"tokLen": 1,
"includedFrom": {
@@ -3496,11 +3521,11 @@
},
"inner": [
{
- "id": "0x385a5538",
+ "id": "0x564d8e3a4b18",
"kind": "ParmVarDecl",
"loc": {
- "offset": 9725,
- "line": 300,
+ "offset": 9959,
+ "line": 307,
"col": 53,
"tokLen": 1,
"includedFrom": {
@@ -3509,7 +3534,7 @@
},
"range": {
"begin": {
- "offset": 9706,
+ "offset": 9940,
"col": 34,
"tokLen": 5,
"includedFrom": {
@@ -3517,7 +3542,7 @@
}
},
"end": {
- "offset": 9725,
+ "offset": 9959,
"col": 53,
"tokLen": 1,
"includedFrom": {
@@ -3532,11 +3557,11 @@
}
},
{
- "id": "0x385a5e00",
+ "id": "0x564d8e3a5bd8",
"kind": "CompoundStmt",
"range": {
"begin": {
- "offset": 9728,
+ "offset": 9962,
"col": 56,
"tokLen": 1,
"includedFrom": {
@@ -3544,8 +3569,8 @@
}
},
"end": {
- "offset": 9822,
- "line": 304,
+ "offset": 10056,
+ "line": 311,
"col": 1,
"tokLen": 1,
"includedFrom": {
@@ -3555,12 +3580,12 @@
},
"inner": [
{
- "id": "0x385a5930",
+ "id": "0x564d8e3a57b0",
"kind": "DeclStmt",
"range": {
"begin": {
- "offset": 9734,
- "line": 301,
+ "offset": 9968,
+ "line": 308,
"col": 5,
"tokLen": 3,
"includedFrom": {
@@ -3568,7 +3593,7 @@
}
},
"end": {
- "offset": 9752,
+ "offset": 9986,
"col": 23,
"tokLen": 1,
"includedFrom": {
@@ -3578,10 +3603,10 @@
},
"inner": [
{
- "id": "0x385a5800",
+ "id": "0x564d8e3a4de8",
"kind": "VarDecl",
"loc": {
- "offset": 9746,
+ "offset": 9980,
"col": 17,
"tokLen": 3,
"includedFrom": {
@@ -3590,7 +3615,7 @@
},
"range": {
"begin": {
- "offset": 9734,
+ "offset": 9968,
"col": 5,
"tokLen": 3,
"includedFrom": {
@@ -3598,7 +3623,7 @@
}
},
"end": {
- "offset": 9751,
+ "offset": 9985,
"col": 22,
"tokLen": 1,
"includedFrom": {
@@ -3611,16 +3636,16 @@
"type": {
"desugaredQualType": "std::basic_string",
"qualType": "std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"init": "list",
"inner": [
{
- "id": "0x385a5900",
+ "id": "0x564d8e3a5780",
"kind": "CXXConstructExpr",
"range": {
"begin": {
- "offset": 9746,
+ "offset": 9980,
"col": 17,
"tokLen": 3,
"includedFrom": {
@@ -3628,7 +3653,7 @@
}
},
"end": {
- "offset": 9751,
+ "offset": 9985,
"col": 22,
"tokLen": 1,
"includedFrom": {
@@ -3639,7 +3664,7 @@
"type": {
"desugaredQualType": "std::basic_string",
"qualType": "std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "prvalue",
"ctorType": {
@@ -3650,11 +3675,11 @@
"constructionKind": "complete",
"inner": [
{
- "id": "0x385a5868",
+ "id": "0x564d8e3a4e50",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 9750,
+ "offset": 9984,
"col": 21,
"tokLen": 1,
"includedFrom": {
@@ -3662,7 +3687,7 @@
}
},
"end": {
- "offset": 9750,
+ "offset": 9984,
"col": 21,
"tokLen": 1,
"includedFrom": {
@@ -3673,11 +3698,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x385a5538",
+ "id": "0x564d8e3a4b18",
"kind": "ParmVarDecl",
"name": "t",
"type": {
@@ -3692,12 +3717,12 @@
]
},
{
- "id": "0x385a5cc0",
+ "id": "0x564d8e3a5a98",
"kind": "DeclStmt",
"range": {
"begin": {
- "offset": 9758,
- "line": 302,
+ "offset": 9992,
+ "line": 309,
"col": 5,
"tokLen": 4,
"includedFrom": {
@@ -3705,7 +3730,7 @@
}
},
"end": {
- "offset": 9785,
+ "offset": 10019,
"col": 32,
"tokLen": 1,
"includedFrom": {
@@ -3715,10 +3740,10 @@
},
"inner": [
{
- "id": "0x385a5988",
+ "id": "0x564d8e3a57e0",
"kind": "VarDecl",
"loc": {
- "offset": 9763,
+ "offset": 9997,
"col": 10,
"tokLen": 4,
"includedFrom": {
@@ -3727,7 +3752,7 @@
},
"range": {
"begin": {
- "offset": 9758,
+ "offset": 9992,
"col": 5,
"tokLen": 4,
"includedFrom": {
@@ -3735,7 +3760,7 @@
}
},
"end": {
- "offset": 9784,
+ "offset": 10018,
"col": 31,
"tokLen": 1,
"includedFrom": {
@@ -3748,16 +3773,16 @@
"type": {
"desugaredQualType": "std::basic_string",
"qualType": "std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"init": "c",
"inner": [
{
- "id": "0x385a5ca8",
+ "id": "0x564d8e3a5a80",
"kind": "ExprWithCleanups",
"range": {
"begin": {
- "offset": 9770,
+ "offset": 10004,
"col": 17,
"tokLen": 10,
"includedFrom": {
@@ -3765,7 +3790,7 @@
}
},
"end": {
- "offset": 9784,
+ "offset": 10018,
"col": 31,
"tokLen": 1,
"includedFrom": {
@@ -3776,17 +3801,17 @@
"type": {
"desugaredQualType": "std::basic_string",
"qualType": "std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "prvalue",
"cleanupsHaveSideEffects": true,
"inner": [
{
- "id": "0x385a5c78",
- "kind": "CXXConstructExpr",
+ "id": "0x564d8e3a5978",
+ "kind": "CXXBindTemporaryExpr",
"range": {
"begin": {
- "offset": 9770,
+ "offset": 10004,
"col": 17,
"tokLen": 10,
"includedFrom": {
@@ -3794,7 +3819,7 @@
}
},
"end": {
- "offset": 9784,
+ "offset": 10018,
"col": 31,
"tokLen": 1,
"includedFrom": {
@@ -3805,22 +3830,25 @@
"type": {
"desugaredQualType": "std::basic_string",
"qualType": "std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "prvalue",
- "ctorType": {
- "qualType": "void (basic_string &&) noexcept"
+ "temp": "0x564d8e3a5970",
+ "dtor": {
+ "id": "0x564d8d69a348",
+ "kind": "CXXDestructorDecl",
+ "name": "~basic_string",
+ "type": {
+ "qualType": "void () noexcept"
+ }
},
- "elidable": true,
- "hadMultipleCandidates": true,
- "constructionKind": "complete",
"inner": [
{
- "id": "0x385a5c30",
- "kind": "MaterializeTemporaryExpr",
+ "id": "0x564d8e3a5948",
+ "kind": "CallExpr",
"range": {
"begin": {
- "offset": 9770,
+ "offset": 10004,
"col": 17,
"tokLen": 10,
"includedFrom": {
@@ -3828,7 +3856,7 @@
}
},
"end": {
- "offset": 9784,
+ "offset": 10018,
"col": 31,
"tokLen": 1,
"includedFrom": {
@@ -3839,17 +3867,16 @@
"type": {
"desugaredQualType": "std::basic_string",
"qualType": "std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
- "valueCategory": "xvalue",
- "storageDuration": "full expression",
+ "valueCategory": "prvalue",
"inner": [
{
- "id": "0x385a5b20",
- "kind": "CXXBindTemporaryExpr",
+ "id": "0x564d8e3a5930",
+ "kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 9770,
+ "offset": 10004,
"col": 17,
"tokLen": 10,
"includedFrom": {
@@ -3857,9 +3884,72 @@
}
},
"end": {
- "offset": 9784,
- "col": 31,
- "tokLen": 1,
+ "offset": 10004,
+ "col": 17,
+ "tokLen": 10,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ }
+ },
+ "type": {
+ "qualType": "std::string (*)(std::string &)"
+ },
+ "valueCategory": "prvalue",
+ "castKind": "FunctionToPointerDecay",
+ "inner": [
+ {
+ "id": "0x564d8e3a58b0",
+ "kind": "DeclRefExpr",
+ "range": {
+ "begin": {
+ "offset": 10004,
+ "col": 17,
+ "tokLen": 10,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "end": {
+ "offset": 10004,
+ "col": 17,
+ "tokLen": 10,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ }
+ },
+ "type": {
+ "qualType": "std::string (std::string &)"
+ },
+ "valueCategory": "lvalue",
+ "referencedDecl": {
+ "id": "0x564d8ddb34e0",
+ "kind": "FunctionDecl",
+ "name": "RemoveUnit",
+ "type": {
+ "qualType": "std::string (std::string &)"
+ }
+ }
+ }
+ ]
+ },
+ {
+ "id": "0x564d8e3a5890",
+ "kind": "DeclRefExpr",
+ "range": {
+ "begin": {
+ "offset": 10015,
+ "col": 28,
+ "tokLen": 3,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "end": {
+ "offset": 10015,
+ "col": 28,
+ "tokLen": 3,
"includedFrom": {
"file": "ToString.cpp"
}
@@ -3868,151 +3958,19 @@
"type": {
"desugaredQualType": "std::basic_string",
"qualType": "std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
- "valueCategory": "prvalue",
- "temp": "0x385a5b18",
- "dtor": {
- "id": "0x37aebda8",
- "kind": "CXXDestructorDecl",
- "name": "~basic_string",
+ "valueCategory": "lvalue",
+ "referencedDecl": {
+ "id": "0x564d8e3a4de8",
+ "kind": "VarDecl",
+ "name": "tmp",
"type": {
- "qualType": "void () noexcept"
+ "desugaredQualType": "std::basic_string",
+ "qualType": "std::string",
+ "typeAliasDeclId": "0x564d8d3fbb20"
}
- },
- "inner": [
- {
- "id": "0x385a5af0",
- "kind": "CallExpr",
- "range": {
- "begin": {
- "offset": 9770,
- "col": 17,
- "tokLen": 10,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- },
- "end": {
- "offset": 9784,
- "col": 31,
- "tokLen": 1,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- }
- },
- "type": {
- "desugaredQualType": "std::basic_string",
- "qualType": "std::string",
- "typeAliasDeclId": "0x378f28c0"
- },
- "valueCategory": "prvalue",
- "inner": [
- {
- "id": "0x385a5ad8",
- "kind": "ImplicitCastExpr",
- "range": {
- "begin": {
- "offset": 9770,
- "col": 17,
- "tokLen": 10,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- },
- "end": {
- "offset": 9770,
- "col": 17,
- "tokLen": 10,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- }
- },
- "type": {
- "qualType": "std::string (*)(std::string &)"
- },
- "valueCategory": "prvalue",
- "castKind": "FunctionToPointerDecay",
- "inner": [
- {
- "id": "0x385a5a58",
- "kind": "DeclRefExpr",
- "range": {
- "begin": {
- "offset": 9770,
- "col": 17,
- "tokLen": 10,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- },
- "end": {
- "offset": 9770,
- "col": 17,
- "tokLen": 10,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- }
- },
- "type": {
- "qualType": "std::string (std::string &)"
- },
- "valueCategory": "lvalue",
- "referencedDecl": {
- "id": "0x3804f538",
- "kind": "FunctionDecl",
- "name": "RemoveUnit",
- "type": {
- "qualType": "std::string (std::string &)"
- }
- }
- }
- ]
- },
- {
- "id": "0x385a5a38",
- "kind": "DeclRefExpr",
- "range": {
- "begin": {
- "offset": 9781,
- "col": 28,
- "tokLen": 3,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- },
- "end": {
- "offset": 9781,
- "col": 28,
- "tokLen": 3,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- }
- },
- "type": {
- "desugaredQualType": "std::basic_string",
- "qualType": "std::string",
- "typeAliasDeclId": "0x378f28c0"
- },
- "valueCategory": "lvalue",
- "referencedDecl": {
- "id": "0x385a5800",
- "kind": "VarDecl",
- "name": "tmp",
- "type": {
- "desugaredQualType": "std::basic_string",
- "qualType": "std::string",
- "typeAliasDeclId": "0x378f28c0"
- }
- }
- }
- ]
- }
- ]
+ }
}
]
}
@@ -4025,12 +3983,12 @@
]
},
{
- "id": "0x385a5df0",
+ "id": "0x564d8e3a5bc8",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 9791,
- "line": 303,
+ "offset": 10025,
+ "line": 310,
"col": 5,
"tokLen": 6,
"includedFrom": {
@@ -4038,7 +3996,7 @@
}
},
"end": {
- "offset": 9819,
+ "offset": 10053,
"col": 33,
"tokLen": 1,
"includedFrom": {
@@ -4048,11 +4006,11 @@
},
"inner": [
{
- "id": "0x385a5dc0",
+ "id": "0x564d8e3a5b98",
"kind": "CallExpr",
"range": {
"begin": {
- "offset": 9798,
+ "offset": 10032,
"col": 12,
"tokLen": 8,
"includedFrom": {
@@ -4060,7 +4018,7 @@
}
},
"end": {
- "offset": 9819,
+ "offset": 10053,
"col": 33,
"tokLen": 1,
"includedFrom": {
@@ -4074,11 +4032,11 @@
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x385a5d00",
+ "id": "0x564d8e3a5ad8",
"kind": "UnresolvedLookupExpr",
"range": {
"begin": {
- "offset": 9798,
+ "offset": 10032,
"col": 12,
"tokLen": 8,
"includedFrom": {
@@ -4086,7 +4044,7 @@
}
},
"end": {
- "offset": 9808,
+ "offset": 10042,
"col": 22,
"tokLen": 1,
"includedFrom": {
@@ -4102,23 +4060,49 @@
"name": "StringTo",
"lookups": [
{
- "id": "0x385a56d0",
+ "id": "0x564d8e3a4cc8",
"kind": "FunctionTemplateDecl",
"name": "StringTo"
},
{
- "id": "0x3856fae0",
+ "id": "0x564d8e36fb48",
"kind": "FunctionTemplateDecl",
"name": "StringTo"
}
+ ],
+ "inner": [
+ {
+ "kind": "TemplateArgument",
+ "type": {
+ "qualType": "T"
+ },
+ "inner": [
+ {
+ "id": "0x564d8e3a4a70",
+ "kind": "TemplateTypeParmType",
+ "type": {
+ "qualType": "T"
+ },
+ "isDependent": true,
+ "isInstantiationDependent": true,
+ "depth": 0,
+ "index": 0,
+ "decl": {
+ "id": "0x564d8e3a4a20",
+ "kind": "TemplateTypeParmDecl",
+ "name": "T"
+ }
+ }
+ ]
+ }
]
},
{
- "id": "0x385a5d80",
+ "id": "0x564d8e3a5b58",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 9810,
+ "offset": 10044,
"col": 24,
"tokLen": 3,
"includedFrom": {
@@ -4126,7 +4110,7 @@
}
},
"end": {
- "offset": 9810,
+ "offset": 10044,
"col": 24,
"tokLen": 3,
"includedFrom": {
@@ -4137,26 +4121,26 @@
"type": {
"desugaredQualType": "std::basic_string",
"qualType": "std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x385a5800",
+ "id": "0x564d8e3a4de8",
"kind": "VarDecl",
"name": "tmp",
"type": {
"desugaredQualType": "std::basic_string",
"qualType": "std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
}
}
},
{
- "id": "0x385a5da0",
+ "id": "0x564d8e3a5b78",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 9815,
+ "offset": 10049,
"col": 29,
"tokLen": 4,
"includedFrom": {
@@ -4164,7 +4148,7 @@
}
},
"end": {
- "offset": 9815,
+ "offset": 10049,
"col": 29,
"tokLen": 4,
"includedFrom": {
@@ -4175,17 +4159,17 @@
"type": {
"desugaredQualType": "std::basic_string",
"qualType": "std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x385a5988",
+ "id": "0x564d8e3a57e0",
"kind": "VarDecl",
"name": "unit",
"type": {
"desugaredQualType": "std::basic_string",
"qualType": "std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
}
}
}
@@ -4198,7 +4182,7 @@
]
},
{
- "id": "0x7feb10ea9db8",
+ "id": "0x564d8e6e5410",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4206,7 +4190,7 @@
}
},
{
- "id": "0x7feb10eb41e8",
+ "id": "0x564d8e6effb0",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4214,7 +4198,7 @@
}
},
{
- "id": "0x38727ab8",
+ "id": "0x564d8e709dc0",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4222,7 +4206,7 @@
}
},
{
- "id": "0x38731e78",
+ "id": "0x564d8e714930",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4230,7 +4214,7 @@
}
},
{
- "id": "0x7feb10e7ca18",
+ "id": "0x564d8e71b800",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4238,7 +4222,7 @@
}
},
{
- "id": "0x7feb10e80e08",
+ "id": "0x564d8e71fea0",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4246,7 +4230,7 @@
}
},
{
- "id": "0x7feb10e83e78",
+ "id": "0x564d8e7230b0",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4254,7 +4238,7 @@
}
},
{
- "id": "0x7feb10e89578",
+ "id": "0x564d8e728b60",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4262,7 +4246,7 @@
}
},
{
- "id": "0x7feb10e8ffd8",
+ "id": "0x564d8e72fa60",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4270,7 +4254,15 @@
}
},
{
- "id": "0x7feb10e0b598",
+ "id": "0x564d8e7b5a50",
+ "kind": "FunctionDecl",
+ "name": "StringTo",
+ "type": {
+ "qualType": "defs::powerIndex (const std::string &)"
+ }
+ },
+ {
+ "id": "0x564d8e7bdd60",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4278,7 +4270,7 @@
}
},
{
- "id": "0x7feb10e10c88",
+ "id": "0x564d8e7c37f0",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4286,7 +4278,7 @@
}
},
{
- "id": "0x7feb10e13d28",
+ "id": "0x564d8e7c6a40",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4294,7 +4286,7 @@
}
},
{
- "id": "0x3873b8f8",
+ "id": "0x564d8e7ced30",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4302,7 +4294,7 @@
}
},
{
- "id": "0x38740fd8",
+ "id": "0x564d8e7d47b0",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4310,7 +4302,7 @@
}
},
{
- "id": "0x38745ac8",
+ "id": "0x564d8e7da5c0",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4318,7 +4310,7 @@
}
},
{
- "id": "0x38748b38",
+ "id": "0x564d8e7dd7f0",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4326,7 +4318,7 @@
}
},
{
- "id": "0x38750888",
+ "id": "0x564d8e7e5ae0",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4334,7 +4326,7 @@
}
},
{
- "id": "0x387538f8",
+ "id": "0x564d8e7e8cf0",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4342,7 +4334,7 @@
}
},
{
- "id": "0x38756998",
+ "id": "0x564d8e7ebf40",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4350,7 +4342,23 @@
}
},
{
- "id": "0x7feb10dd8ba8",
+ "id": "0x564d8e3acd20",
+ "kind": "FunctionDecl",
+ "name": "StringTo",
+ "type": {
+ "qualType": "RegisterAddress (const std::string &)"
+ }
+ },
+ {
+ "id": "0x564d8e3ad230",
+ "kind": "FunctionDecl",
+ "name": "StringTo",
+ "type": {
+ "qualType": "RegisterValue (const std::string &)"
+ }
+ },
+ {
+ "id": "0x564d8e7ef130",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4358,7 +4366,7 @@
}
},
{
- "id": "0x7feb10ddb138",
+ "id": "0x564d8e7f42a0",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4366,7 +4374,7 @@
}
},
{
- "id": "0x7feb10ddc9e8",
+ "id": "0x564d8e7f6320",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4374,7 +4382,7 @@
}
},
{
- "id": "0x7feb10ddd208",
+ "id": "0x564d8e7f7390",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4382,7 +4390,7 @@
}
},
{
- "id": "0x7feb10ddda30",
+ "id": "0x564d8e7f8408",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4390,7 +4398,7 @@
}
},
{
- "id": "0x7feb10dde1e8",
+ "id": "0x564d8e7f9410",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4398,7 +4406,7 @@
}
},
{
- "id": "0x7feb10dde9f8",
+ "id": "0x564d8e7ff890",
"kind": "FunctionDecl",
"name": "StringTo",
"type": {
@@ -4408,12 +4416,12 @@
]
}
{
- "id": "0x385a5fd8",
+ "id": "0x564d8e3a5dd0",
"kind": "FunctionDecl",
"loc": {
- "offset": 9856,
+ "offset": 10090,
"file": "../include/sls/ToString.h",
- "line": 306,
+ "line": 313,
"col": 32,
"tokLen": 8,
"includedFrom": {
@@ -4422,7 +4430,7 @@
},
"range": {
"begin": {
- "offset": 9825,
+ "offset": 10059,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -4430,7 +4438,7 @@
}
},
"end": {
- "offset": 9885,
+ "offset": 10119,
"col": 61,
"tokLen": 1,
"includedFrom": {
@@ -4438,7 +4446,7 @@
}
}
},
- "previousDecl": "0x385a6238",
+ "previousDecl": "0x564d8e3a6040",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12detectorTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -4452,13 +4460,13 @@
},
"inner": [
{
- "id": "0x37f35630",
+ "id": "0x564d8dc74900",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::detectorType"
},
"decl": {
- "id": "0x37f35590",
+ "id": "0x564d8dc74860",
"kind": "EnumDecl",
"name": "detectorType"
}
@@ -4466,10 +4474,10 @@
]
},
{
- "id": "0x385a5ed0",
+ "id": "0x564d8e3a5cb0",
"kind": "ParmVarDecl",
"loc": {
- "offset": 9884,
+ "offset": 10118,
"col": 60,
"tokLen": 1,
"includedFrom": {
@@ -4478,7 +4486,7 @@
},
"range": {
"begin": {
- "offset": 9865,
+ "offset": 10099,
"col": 41,
"tokLen": 5,
"includedFrom": {
@@ -4486,7 +4494,7 @@
}
},
"end": {
- "offset": 9884,
+ "offset": 10118,
"col": 60,
"tokLen": 1,
"includedFrom": {
@@ -4502,12 +4510,12 @@
]
}
{
- "id": "0x385a6528",
+ "id": "0x564d8e3a6360",
"kind": "FunctionDecl",
"loc": {
- "offset": 9923,
+ "offset": 10157,
"file": "../include/sls/ToString.h",
- "line": 307,
+ "line": 314,
"col": 36,
"tokLen": 8,
"includedFrom": {
@@ -4516,7 +4524,7 @@
},
"range": {
"begin": {
- "offset": 9888,
+ "offset": 10122,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -4524,7 +4532,7 @@
}
},
"end": {
- "offset": 9952,
+ "offset": 10186,
"col": 65,
"tokLen": 1,
"includedFrom": {
@@ -4532,7 +4540,7 @@
}
}
},
- "previousDecl": "0x385a6788",
+ "previousDecl": "0x564d8e3a65d0",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16detectorSettingsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -4546,13 +4554,13 @@
},
"inner": [
{
- "id": "0x37ff0eb0",
+ "id": "0x564d8dd58ab0",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::detectorSettings"
},
"decl": {
- "id": "0x37ff0e08",
+ "id": "0x564d8dd58a08",
"kind": "EnumDecl",
"name": "detectorSettings"
}
@@ -4560,10 +4568,10 @@
]
},
{
- "id": "0x385a6428",
+ "id": "0x564d8e3a6240",
"kind": "ParmVarDecl",
"loc": {
- "offset": 9951,
+ "offset": 10185,
"col": 64,
"tokLen": 1,
"includedFrom": {
@@ -4572,7 +4580,7 @@
},
"range": {
"begin": {
- "offset": 9932,
+ "offset": 10166,
"col": 45,
"tokLen": 5,
"includedFrom": {
@@ -4580,7 +4588,7 @@
}
},
"end": {
- "offset": 9951,
+ "offset": 10185,
"col": 64,
"tokLen": 1,
"includedFrom": {
@@ -4596,12 +4604,12 @@
]
}
{
- "id": "0x385a6a78",
+ "id": "0x564d8e3a68f0",
"kind": "FunctionDecl",
"loc": {
- "offset": 9984,
+ "offset": 10218,
"file": "../include/sls/ToString.h",
- "line": 308,
+ "line": 315,
"col": 30,
"tokLen": 8,
"includedFrom": {
@@ -4610,7 +4618,7 @@
},
"range": {
"begin": {
- "offset": 9955,
+ "offset": 10189,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -4618,7 +4626,7 @@
}
},
"end": {
- "offset": 10013,
+ "offset": 10247,
"col": 59,
"tokLen": 1,
"includedFrom": {
@@ -4626,7 +4634,7 @@
}
}
},
- "previousDecl": "0x385a6cd8",
+ "previousDecl": "0x564d8e3a6b60",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10speedLevelEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -4640,13 +4648,13 @@
},
"inner": [
{
- "id": "0x37ff1b60",
+ "id": "0x564d8dd59860",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::speedLevel"
},
"decl": {
- "id": "0x37ff1ab8",
+ "id": "0x564d8dd597b8",
"kind": "EnumDecl",
"name": "speedLevel"
}
@@ -4654,10 +4662,10 @@
]
},
{
- "id": "0x385a6978",
+ "id": "0x564d8e3a67d0",
"kind": "ParmVarDecl",
"loc": {
- "offset": 10012,
+ "offset": 10246,
"col": 58,
"tokLen": 1,
"includedFrom": {
@@ -4666,7 +4674,7 @@
},
"range": {
"begin": {
- "offset": 9993,
+ "offset": 10227,
"col": 39,
"tokLen": 5,
"includedFrom": {
@@ -4674,7 +4682,7 @@
}
},
"end": {
- "offset": 10012,
+ "offset": 10246,
"col": 58,
"tokLen": 1,
"includedFrom": {
@@ -4690,12 +4698,12 @@
]
}
{
- "id": "0x385a6fc8",
+ "id": "0x564d8e3a6e80",
"kind": "FunctionDecl",
"loc": {
- "offset": 10045,
+ "offset": 10279,
"file": "../include/sls/ToString.h",
- "line": 309,
+ "line": 316,
"col": 30,
"tokLen": 8,
"includedFrom": {
@@ -4704,7 +4712,7 @@
},
"range": {
"begin": {
- "offset": 10016,
+ "offset": 10250,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -4712,7 +4720,7 @@
}
},
"end": {
- "offset": 10074,
+ "offset": 10308,
"col": 59,
"tokLen": 1,
"includedFrom": {
@@ -4720,7 +4728,7 @@
}
}
},
- "previousDecl": "0x385a7228",
+ "previousDecl": "0x564d8e3a70f0",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10timingModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -4734,13 +4742,13 @@
},
"inner": [
{
- "id": "0x37fee460",
+ "id": "0x564d8dd56080",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::timingMode"
},
"decl": {
- "id": "0x37fee3b8",
+ "id": "0x564d8dd55fd8",
"kind": "EnumDecl",
"name": "timingMode"
}
@@ -4748,10 +4756,10 @@
]
},
{
- "id": "0x385a6ec8",
+ "id": "0x564d8e3a6d60",
"kind": "ParmVarDecl",
"loc": {
- "offset": 10073,
+ "offset": 10307,
"col": 58,
"tokLen": 1,
"includedFrom": {
@@ -4760,7 +4768,7 @@
},
"range": {
"begin": {
- "offset": 10054,
+ "offset": 10288,
"col": 39,
"tokLen": 5,
"includedFrom": {
@@ -4768,7 +4776,7 @@
}
},
"end": {
- "offset": 10073,
+ "offset": 10307,
"col": 58,
"tokLen": 1,
"includedFrom": {
@@ -4784,12 +4792,12 @@
]
}
{
- "id": "0x385a7518",
+ "id": "0x564d8e3a7410",
"kind": "FunctionDecl",
"loc": {
- "offset": 10114,
+ "offset": 10348,
"file": "../include/sls/ToString.h",
- "line": 310,
+ "line": 317,
"col": 38,
"tokLen": 8,
"includedFrom": {
@@ -4798,7 +4806,7 @@
},
"range": {
"begin": {
- "offset": 10077,
+ "offset": 10311,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -4806,7 +4814,7 @@
}
},
"end": {
- "offset": 10143,
+ "offset": 10377,
"col": 67,
"tokLen": 1,
"includedFrom": {
@@ -4814,7 +4822,7 @@
}
}
},
- "previousDecl": "0x385a7778",
+ "previousDecl": "0x564d8e3a7680",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18frameDiscardPolicyEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -4828,13 +4836,13 @@
},
"inner": [
{
- "id": "0x37fe94c0",
+ "id": "0x564d8dd540b0",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::frameDiscardPolicy"
},
"decl": {
- "id": "0x37fe9420",
+ "id": "0x564d8dd54008",
"kind": "EnumDecl",
"name": "frameDiscardPolicy"
}
@@ -4842,10 +4850,10 @@
]
},
{
- "id": "0x385a7418",
+ "id": "0x564d8e3a72f0",
"kind": "ParmVarDecl",
"loc": {
- "offset": 10142,
+ "offset": 10376,
"col": 66,
"tokLen": 1,
"includedFrom": {
@@ -4854,7 +4862,7 @@
},
"range": {
"begin": {
- "offset": 10123,
+ "offset": 10357,
"col": 47,
"tokLen": 5,
"includedFrom": {
@@ -4862,7 +4870,7 @@
}
},
"end": {
- "offset": 10142,
+ "offset": 10376,
"col": 66,
"tokLen": 1,
"includedFrom": {
@@ -4878,12 +4886,12 @@
]
}
{
- "id": "0x385a7a68",
+ "id": "0x564d8e3a79a0",
"kind": "FunctionDecl",
"loc": {
- "offset": 10175,
+ "offset": 10409,
"file": "../include/sls/ToString.h",
- "line": 311,
+ "line": 318,
"col": 30,
"tokLen": 8,
"includedFrom": {
@@ -4892,7 +4900,7 @@
},
"range": {
"begin": {
- "offset": 10146,
+ "offset": 10380,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -4900,7 +4908,7 @@
}
},
"end": {
- "offset": 10204,
+ "offset": 10438,
"col": 59,
"tokLen": 1,
"includedFrom": {
@@ -4908,7 +4916,7 @@
}
}
},
- "previousDecl": "0x385a7cc8",
+ "previousDecl": "0x564d8e3a7c10",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10fileFormatEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -4922,13 +4930,13 @@
},
"inner": [
{
- "id": "0x37feca90",
+ "id": "0x564d8dd542d0",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::fileFormat"
},
"decl": {
- "id": "0x37fec9f0",
+ "id": "0x564d8dd54230",
"kind": "EnumDecl",
"name": "fileFormat"
}
@@ -4936,10 +4944,10 @@
]
},
{
- "id": "0x385a7968",
+ "id": "0x564d8e3a7880",
"kind": "ParmVarDecl",
"loc": {
- "offset": 10203,
+ "offset": 10437,
"col": 58,
"tokLen": 1,
"includedFrom": {
@@ -4948,7 +4956,7 @@
},
"range": {
"begin": {
- "offset": 10184,
+ "offset": 10418,
"col": 39,
"tokLen": 5,
"includedFrom": {
@@ -4956,7 +4964,7 @@
}
},
"end": {
- "offset": 10203,
+ "offset": 10437,
"col": 58,
"tokLen": 1,
"includedFrom": {
@@ -4972,12 +4980,12 @@
]
}
{
- "id": "0x385a7fb8",
+ "id": "0x564d8e3a7f30",
"kind": "FunctionDecl",
"loc": {
- "offset": 10244,
+ "offset": 10478,
"file": "../include/sls/ToString.h",
- "line": 312,
+ "line": 319,
"col": 38,
"tokLen": 8,
"includedFrom": {
@@ -4986,7 +4994,7 @@
},
"range": {
"begin": {
- "offset": 10207,
+ "offset": 10441,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -4994,7 +5002,7 @@
}
},
"end": {
- "offset": 10273,
+ "offset": 10507,
"col": 67,
"tokLen": 1,
"includedFrom": {
@@ -5002,7 +5010,7 @@
}
}
},
- "previousDecl": "0x385a8218",
+ "previousDecl": "0x564d8e3a81a0",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18externalSignalFlagEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -5016,13 +5024,13 @@
},
"inner": [
{
- "id": "0x37fee230",
+ "id": "0x564d8dd55e30",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::externalSignalFlag"
},
"decl": {
- "id": "0x37fee188",
+ "id": "0x564d8dd55d88",
"kind": "EnumDecl",
"name": "externalSignalFlag"
}
@@ -5030,10 +5038,10 @@
]
},
{
- "id": "0x385a7eb8",
+ "id": "0x564d8e3a7e10",
"kind": "ParmVarDecl",
"loc": {
- "offset": 10272,
+ "offset": 10506,
"col": 66,
"tokLen": 1,
"includedFrom": {
@@ -5042,7 +5050,7 @@
},
"range": {
"begin": {
- "offset": 10253,
+ "offset": 10487,
"col": 47,
"tokLen": 5,
"includedFrom": {
@@ -5050,7 +5058,7 @@
}
},
"end": {
- "offset": 10272,
+ "offset": 10506,
"col": 66,
"tokLen": 1,
"includedFrom": {
@@ -5066,12 +5074,12 @@
]
}
{
- "id": "0x385a8508",
+ "id": "0x564d8e3a84c0",
"kind": "FunctionDecl",
"loc": {
- "offset": 10306,
+ "offset": 10540,
"file": "../include/sls/ToString.h",
- "line": 313,
+ "line": 320,
"col": 31,
"tokLen": 8,
"includedFrom": {
@@ -5080,7 +5088,7 @@
},
"range": {
"begin": {
- "offset": 10276,
+ "offset": 10510,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -5088,7 +5096,7 @@
}
},
"end": {
- "offset": 10335,
+ "offset": 10569,
"col": 60,
"tokLen": 1,
"includedFrom": {
@@ -5096,7 +5104,7 @@
}
}
},
- "previousDecl": "0x385a8768",
+ "previousDecl": "0x564d8e3a8730",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11readoutModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -5110,13 +5118,13 @@
},
"inner": [
{
- "id": "0x37ff18e0",
+ "id": "0x564d8dd595b0",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::readoutMode"
},
"decl": {
- "id": "0x37ff1838",
+ "id": "0x564d8dd59508",
"kind": "EnumDecl",
"name": "readoutMode"
}
@@ -5124,10 +5132,10 @@
]
},
{
- "id": "0x385a8408",
+ "id": "0x564d8e3a83a0",
"kind": "ParmVarDecl",
"loc": {
- "offset": 10334,
+ "offset": 10568,
"col": 59,
"tokLen": 1,
"includedFrom": {
@@ -5136,7 +5144,7 @@
},
"range": {
"begin": {
- "offset": 10315,
+ "offset": 10549,
"col": 40,
"tokLen": 5,
"includedFrom": {
@@ -5144,7 +5152,7 @@
}
},
"end": {
- "offset": 10334,
+ "offset": 10568,
"col": 59,
"tokLen": 1,
"includedFrom": {
@@ -5160,12 +5168,12 @@
]
}
{
- "id": "0x385a8a58",
+ "id": "0x564d8e3a8a50",
"kind": "FunctionDecl",
"loc": {
- "offset": 10365,
+ "offset": 10599,
"file": "../include/sls/ToString.h",
- "line": 314,
+ "line": 321,
"col": 28,
"tokLen": 8,
"includedFrom": {
@@ -5174,7 +5182,7 @@
},
"range": {
"begin": {
- "offset": 10338,
+ "offset": 10572,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -5182,7 +5190,7 @@
}
},
"end": {
- "offset": 10394,
+ "offset": 10628,
"col": 57,
"tokLen": 1,
"includedFrom": {
@@ -5190,7 +5198,7 @@
}
}
},
- "previousDecl": "0x385a8cb8",
+ "previousDecl": "0x564d8e3a8cc0",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8dacIndexEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -5204,13 +5212,13 @@
},
"inner": [
{
- "id": "0x37fee730",
+ "id": "0x564d8dd56380",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::dacIndex"
},
"decl": {
- "id": "0x37fee688",
+ "id": "0x564d8dd562d8",
"kind": "EnumDecl",
"name": "dacIndex"
}
@@ -5218,10 +5226,10 @@
]
},
{
- "id": "0x385a8958",
+ "id": "0x564d8e3a8930",
"kind": "ParmVarDecl",
"loc": {
- "offset": 10393,
+ "offset": 10627,
"col": 56,
"tokLen": 1,
"includedFrom": {
@@ -5230,7 +5238,7 @@
},
"range": {
"begin": {
- "offset": 10374,
+ "offset": 10608,
"col": 37,
"tokLen": 5,
"includedFrom": {
@@ -5238,7 +5246,7 @@
}
},
"end": {
- "offset": 10393,
+ "offset": 10627,
"col": 56,
"tokLen": 1,
"includedFrom": {
@@ -5254,12 +5262,106 @@
]
}
{
- "id": "0x385a8fa8",
+ "id": "0x564d8e3a8fe0",
"kind": "FunctionDecl",
"loc": {
- "offset": 10425,
+ "offset": 10660,
"file": "../include/sls/ToString.h",
- "line": 315,
+ "line": 322,
+ "col": 30,
+ "tokLen": 8,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "range": {
+ "begin": {
+ "offset": 10631,
+ "col": 1,
+ "tokLen": 8,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "end": {
+ "offset": 10689,
+ "col": 59,
+ "tokLen": 1,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ }
+ },
+ "previousDecl": "0x564d8e3a9250",
+ "name": "StringTo",
+ "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10powerIndexEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
+ "type": {
+ "qualType": "defs::powerIndex (const std::string &)"
+ },
+ "inner": [
+ {
+ "kind": "TemplateArgument",
+ "type": {
+ "qualType": "slsDetectorDefs::powerIndex"
+ },
+ "inner": [
+ {
+ "id": "0x564d8dd585f0",
+ "kind": "EnumType",
+ "type": {
+ "qualType": "slsDetectorDefs::powerIndex"
+ },
+ "decl": {
+ "id": "0x564d8dd58550",
+ "kind": "EnumDecl",
+ "name": "powerIndex"
+ }
+ }
+ ]
+ },
+ {
+ "id": "0x564d8e3a8ec0",
+ "kind": "ParmVarDecl",
+ "loc": {
+ "offset": 10688,
+ "col": 58,
+ "tokLen": 1,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "range": {
+ "begin": {
+ "offset": 10669,
+ "col": 39,
+ "tokLen": 5,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "end": {
+ "offset": 10688,
+ "col": 58,
+ "tokLen": 1,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ }
+ },
+ "name": "s",
+ "type": {
+ "qualType": "const std::string &"
+ }
+ }
+ ]
+}
+{
+ "id": "0x564d8e3a9570",
+ "kind": "FunctionDecl",
+ "loc": {
+ "offset": 10720,
+ "file": "../include/sls/ToString.h",
+ "line": 323,
"col": 29,
"tokLen": 8,
"includedFrom": {
@@ -5268,7 +5370,7 @@
},
"range": {
"begin": {
- "offset": 10397,
+ "offset": 10692,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -5276,7 +5378,7 @@
}
},
"end": {
- "offset": 10454,
+ "offset": 10749,
"col": 58,
"tokLen": 1,
"includedFrom": {
@@ -5284,7 +5386,7 @@
}
}
},
- "previousDecl": "0x385a9208",
+ "previousDecl": "0x564d8e3a9840",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs9burstModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -5298,13 +5400,13 @@
},
"inner": [
{
- "id": "0x37ff1de0",
+ "id": "0x564d8dd59b10",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::burstMode"
},
"decl": {
- "id": "0x37ff1d38",
+ "id": "0x564d8dd59a68",
"kind": "EnumDecl",
"name": "burstMode"
}
@@ -5312,10 +5414,10 @@
]
},
{
- "id": "0x385a8ea8",
+ "id": "0x564d8e3a9450",
"kind": "ParmVarDecl",
"loc": {
- "offset": 10453,
+ "offset": 10748,
"col": 57,
"tokLen": 1,
"includedFrom": {
@@ -5324,7 +5426,7 @@
},
"range": {
"begin": {
- "offset": 10434,
+ "offset": 10729,
"col": 38,
"tokLen": 5,
"includedFrom": {
@@ -5332,7 +5434,7 @@
}
},
"end": {
- "offset": 10453,
+ "offset": 10748,
"col": 57,
"tokLen": 1,
"includedFrom": {
@@ -5348,12 +5450,12 @@
]
}
{
- "id": "0x385a94f8",
+ "id": "0x564d8e3a9b60",
"kind": "FunctionDecl",
"loc": {
- "offset": 10492,
+ "offset": 10787,
"file": "../include/sls/ToString.h",
- "line": 316,
+ "line": 324,
"col": 36,
"tokLen": 8,
"includedFrom": {
@@ -5362,7 +5464,7 @@
},
"range": {
"begin": {
- "offset": 10457,
+ "offset": 10752,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -5370,7 +5472,7 @@
}
},
"end": {
- "offset": 10521,
+ "offset": 10816,
"col": 65,
"tokLen": 1,
"includedFrom": {
@@ -5378,7 +5480,7 @@
}
}
},
- "previousDecl": "0x385a9758",
+ "previousDecl": "0x564d8e3a9dd0",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16timingSourceTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -5392,13 +5494,13 @@
},
"inner": [
{
- "id": "0x37ff2060",
+ "id": "0x564d8dd59dc0",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::timingSourceType"
},
"decl": {
- "id": "0x37ff1fb8",
+ "id": "0x564d8dd59d18",
"kind": "EnumDecl",
"name": "timingSourceType"
}
@@ -5406,10 +5508,10 @@
]
},
{
- "id": "0x385a93f8",
+ "id": "0x564d8e3a9a40",
"kind": "ParmVarDecl",
"loc": {
- "offset": 10520,
+ "offset": 10815,
"col": 64,
"tokLen": 1,
"includedFrom": {
@@ -5418,7 +5520,7 @@
},
"range": {
"begin": {
- "offset": 10501,
+ "offset": 10796,
"col": 45,
"tokLen": 5,
"includedFrom": {
@@ -5426,7 +5528,7 @@
}
},
"end": {
- "offset": 10520,
+ "offset": 10815,
"col": 64,
"tokLen": 1,
"includedFrom": {
@@ -5442,12 +5544,12 @@
]
}
{
- "id": "0x385a9a48",
+ "id": "0x564d8e3aa0f0",
"kind": "FunctionDecl",
"loc": {
- "offset": 10554,
+ "offset": 10849,
"file": "../include/sls/ToString.h",
- "line": 317,
+ "line": 325,
"col": 31,
"tokLen": 8,
"includedFrom": {
@@ -5456,7 +5558,7 @@
},
"range": {
"begin": {
- "offset": 10524,
+ "offset": 10819,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -5464,7 +5566,7 @@
}
},
"end": {
- "offset": 10583,
+ "offset": 10878,
"col": 60,
"tokLen": 1,
"includedFrom": {
@@ -5472,7 +5574,7 @@
}
}
},
- "previousDecl": "0x385a9ca8",
+ "previousDecl": "0x564d8e3aa360",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11M3_GainCapsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -5486,13 +5588,13 @@
},
"inner": [
{
- "id": "0x37ff21c0",
+ "id": "0x564d8dd59f30",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::M3_GainCaps"
},
"decl": {
- "id": "0x37ff2120",
+ "id": "0x564d8dd59e90",
"kind": "EnumDecl",
"name": "M3_GainCaps"
}
@@ -5500,10 +5602,10 @@
]
},
{
- "id": "0x385a9948",
+ "id": "0x564d8e3a9fd0",
"kind": "ParmVarDecl",
"loc": {
- "offset": 10582,
+ "offset": 10877,
"col": 59,
"tokLen": 1,
"includedFrom": {
@@ -5512,7 +5614,7 @@
},
"range": {
"begin": {
- "offset": 10563,
+ "offset": 10858,
"col": 40,
"tokLen": 5,
"includedFrom": {
@@ -5520,7 +5622,7 @@
}
},
"end": {
- "offset": 10582,
+ "offset": 10877,
"col": 59,
"tokLen": 1,
"includedFrom": {
@@ -5536,12 +5638,12 @@
]
}
{
- "id": "0x385a9f98",
+ "id": "0x564d8e3aa680",
"kind": "FunctionDecl",
"loc": {
- "offset": 10617,
+ "offset": 10912,
"file": "../include/sls/ToString.h",
- "line": 318,
+ "line": 326,
"col": 32,
"tokLen": 8,
"includedFrom": {
@@ -5550,7 +5652,7 @@
},
"range": {
"begin": {
- "offset": 10586,
+ "offset": 10881,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -5558,7 +5660,7 @@
}
},
"end": {
- "offset": 10646,
+ "offset": 10941,
"col": 61,
"tokLen": 1,
"includedFrom": {
@@ -5566,7 +5668,7 @@
}
}
},
- "previousDecl": "0x385aa1f8",
+ "previousDecl": "0x564d8e3aa8f0",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12portPositionEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -5580,13 +5682,13 @@
},
"inner": [
{
- "id": "0x37ff27f0",
+ "id": "0x564d8dd5a590",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::portPosition"
},
"decl": {
- "id": "0x37ff2750",
+ "id": "0x564d8dd5a4f0",
"kind": "EnumDecl",
"name": "portPosition"
}
@@ -5594,10 +5696,10 @@
]
},
{
- "id": "0x385a9e98",
+ "id": "0x564d8e3aa560",
"kind": "ParmVarDecl",
"loc": {
- "offset": 10645,
+ "offset": 10940,
"col": 60,
"tokLen": 1,
"includedFrom": {
@@ -5606,7 +5708,7 @@
},
"range": {
"begin": {
- "offset": 10626,
+ "offset": 10921,
"col": 41,
"tokLen": 5,
"includedFrom": {
@@ -5614,7 +5716,7 @@
}
},
"end": {
- "offset": 10645,
+ "offset": 10940,
"col": 60,
"tokLen": 1,
"includedFrom": {
@@ -5630,12 +5732,12 @@
]
}
{
- "id": "0x385aa4e8",
+ "id": "0x564d8e3aac10",
"kind": "FunctionDecl",
"loc": {
- "offset": 10686,
+ "offset": 10981,
"file": "../include/sls/ToString.h",
- "line": 319,
+ "line": 327,
"col": 38,
"tokLen": 8,
"includedFrom": {
@@ -5644,7 +5746,7 @@
},
"range": {
"begin": {
- "offset": 10649,
+ "offset": 10944,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -5652,7 +5754,7 @@
}
},
"end": {
- "offset": 10715,
+ "offset": 11010,
"col": 67,
"tokLen": 1,
"includedFrom": {
@@ -5660,7 +5762,7 @@
}
}
},
- "previousDecl": "0x385aa748",
+ "previousDecl": "0x564d8e3aae80",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18streamingInterfaceEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -5674,13 +5776,13 @@
},
"inner": [
{
- "id": "0x37ff2b80",
+ "id": "0x564d8dd5a950",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::streamingInterface"
},
"decl": {
- "id": "0x37ff2ae0",
+ "id": "0x564d8dd5a8b0",
"kind": "EnumDecl",
"name": "streamingInterface"
}
@@ -5688,10 +5790,10 @@
]
},
{
- "id": "0x385aa3e8",
+ "id": "0x564d8e3aaaf0",
"kind": "ParmVarDecl",
"loc": {
- "offset": 10714,
+ "offset": 11009,
"col": 66,
"tokLen": 1,
"includedFrom": {
@@ -5700,7 +5802,7 @@
},
"range": {
"begin": {
- "offset": 10695,
+ "offset": 10990,
"col": 47,
"tokLen": 5,
"includedFrom": {
@@ -5708,7 +5810,7 @@
}
},
"end": {
- "offset": 10714,
+ "offset": 11009,
"col": 66,
"tokLen": 1,
"includedFrom": {
@@ -5724,12 +5826,12 @@
]
}
{
- "id": "0x385aaa38",
+ "id": "0x564d8e3ab1a0",
"kind": "FunctionDecl",
"loc": {
- "offset": 10750,
+ "offset": 11045,
"file": "../include/sls/ToString.h",
- "line": 320,
+ "line": 328,
"col": 33,
"tokLen": 8,
"includedFrom": {
@@ -5738,7 +5840,7 @@
},
"range": {
"begin": {
- "offset": 10718,
+ "offset": 11013,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -5746,7 +5848,7 @@
}
},
"end": {
- "offset": 10779,
+ "offset": 11074,
"col": 62,
"tokLen": 1,
"includedFrom": {
@@ -5754,7 +5856,7 @@
}
}
},
- "previousDecl": "0x385aac98",
+ "previousDecl": "0x564d8e3ab410",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs13vetoAlgorithmEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -5768,13 +5870,13 @@
},
"inner": [
{
- "id": "0x37ff2f40",
+ "id": "0x564d8dd5ad30",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::vetoAlgorithm"
},
"decl": {
- "id": "0x37ff2ea0",
+ "id": "0x564d8dd5ac90",
"kind": "EnumDecl",
"name": "vetoAlgorithm"
}
@@ -5782,10 +5884,10 @@
]
},
{
- "id": "0x385aa938",
+ "id": "0x564d8e3ab080",
"kind": "ParmVarDecl",
"loc": {
- "offset": 10778,
+ "offset": 11073,
"col": 61,
"tokLen": 1,
"includedFrom": {
@@ -5794,7 +5896,7 @@
},
"range": {
"begin": {
- "offset": 10759,
+ "offset": 11054,
"col": 42,
"tokLen": 5,
"includedFrom": {
@@ -5802,7 +5904,7 @@
}
},
"end": {
- "offset": 10778,
+ "offset": 11073,
"col": 61,
"tokLen": 1,
"includedFrom": {
@@ -5818,12 +5920,12 @@
]
}
{
- "id": "0x385aaf88",
+ "id": "0x564d8e3ab730",
"kind": "FunctionDecl",
"loc": {
- "offset": 10809,
+ "offset": 11104,
"file": "../include/sls/ToString.h",
- "line": 321,
+ "line": 329,
"col": 28,
"tokLen": 8,
"includedFrom": {
@@ -5832,7 +5934,7 @@
},
"range": {
"begin": {
- "offset": 10782,
+ "offset": 11077,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -5840,7 +5942,7 @@
}
},
"end": {
- "offset": 10838,
+ "offset": 11133,
"col": 57,
"tokLen": 1,
"includedFrom": {
@@ -5848,7 +5950,7 @@
}
}
},
- "previousDecl": "0x385ab1e8",
+ "previousDecl": "0x564d8e3ab9a0",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8gainModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -5862,13 +5964,13 @@
},
"inner": [
{
- "id": "0x37ff30a0",
+ "id": "0x564d8dd5aea0",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::gainMode"
},
"decl": {
- "id": "0x37ff3000",
+ "id": "0x564d8dd5ae00",
"kind": "EnumDecl",
"name": "gainMode"
}
@@ -5876,10 +5978,10 @@
]
},
{
- "id": "0x385aae88",
+ "id": "0x564d8e3ab610",
"kind": "ParmVarDecl",
"loc": {
- "offset": 10837,
+ "offset": 11132,
"col": 56,
"tokLen": 1,
"includedFrom": {
@@ -5888,7 +5990,7 @@
},
"range": {
"begin": {
- "offset": 10818,
+ "offset": 11113,
"col": 37,
"tokLen": 5,
"includedFrom": {
@@ -5896,7 +5998,7 @@
}
},
"end": {
- "offset": 10837,
+ "offset": 11132,
"col": 56,
"tokLen": 1,
"includedFrom": {
@@ -5912,12 +6014,12 @@
]
}
{
- "id": "0x385ab4d8",
+ "id": "0x564d8e3abcc0",
"kind": "FunctionDecl",
"loc": {
- "offset": 10868,
+ "offset": 11163,
"file": "../include/sls/ToString.h",
- "line": 322,
+ "line": 330,
"col": 28,
"tokLen": 8,
"includedFrom": {
@@ -5926,7 +6028,7 @@
},
"range": {
"begin": {
- "offset": 10841,
+ "offset": 11136,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -5934,7 +6036,7 @@
}
},
"end": {
- "offset": 10897,
+ "offset": 11192,
"col": 57,
"tokLen": 1,
"includedFrom": {
@@ -5942,7 +6044,7 @@
}
}
},
- "previousDecl": "0x385ab738",
+ "previousDecl": "0x564d8e3abf30",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8polarityEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -5956,13 +6058,13 @@
},
"inner": [
{
- "id": "0x37ff3340",
+ "id": "0x564d8dd5b170",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::polarity"
},
"decl": {
- "id": "0x37ff32a0",
+ "id": "0x564d8dd5b0d0",
"kind": "EnumDecl",
"name": "polarity"
}
@@ -5970,10 +6072,10 @@
]
},
{
- "id": "0x385ab3d8",
+ "id": "0x564d8e3abba0",
"kind": "ParmVarDecl",
"loc": {
- "offset": 10896,
+ "offset": 11191,
"col": 56,
"tokLen": 1,
"includedFrom": {
@@ -5982,7 +6084,7 @@
},
"range": {
"begin": {
- "offset": 10877,
+ "offset": 11172,
"col": 37,
"tokLen": 5,
"includedFrom": {
@@ -5990,7 +6092,7 @@
}
},
"end": {
- "offset": 10896,
+ "offset": 11191,
"col": 56,
"tokLen": 1,
"includedFrom": {
@@ -6006,12 +6108,12 @@
]
}
{
- "id": "0x385aba28",
+ "id": "0x564d8e3ac250",
"kind": "FunctionDecl",
"loc": {
- "offset": 10936,
+ "offset": 11231,
"file": "../include/sls/ToString.h",
- "line": 323,
+ "line": 331,
"col": 37,
"tokLen": 8,
"includedFrom": {
@@ -6020,7 +6122,7 @@
},
"range": {
"begin": {
- "offset": 10900,
+ "offset": 11195,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -6028,7 +6130,7 @@
}
},
"end": {
- "offset": 10965,
+ "offset": 11260,
"col": 66,
"tokLen": 1,
"includedFrom": {
@@ -6036,7 +6138,7 @@
}
}
},
- "previousDecl": "0x385abc88",
+ "previousDecl": "0x564d8e3ac4c0",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs17timingInfoDecoderEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -6050,13 +6152,13 @@
},
"inner": [
{
- "id": "0x37ff34a0",
+ "id": "0x564d8dd5b2e0",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::timingInfoDecoder"
},
"decl": {
- "id": "0x37ff3400",
+ "id": "0x564d8dd5b240",
"kind": "EnumDecl",
"name": "timingInfoDecoder"
}
@@ -6064,10 +6166,10 @@
]
},
{
- "id": "0x385ab928",
+ "id": "0x564d8e3ac130",
"kind": "ParmVarDecl",
"loc": {
- "offset": 10964,
+ "offset": 11259,
"col": 65,
"tokLen": 1,
"includedFrom": {
@@ -6076,7 +6178,7 @@
},
"range": {
"begin": {
- "offset": 10945,
+ "offset": 11240,
"col": 46,
"tokLen": 5,
"includedFrom": {
@@ -6084,7 +6186,7 @@
}
},
"end": {
- "offset": 10964,
+ "offset": 11259,
"col": 65,
"tokLen": 1,
"includedFrom": {
@@ -6100,12 +6202,12 @@
]
}
{
- "id": "0x385abf78",
+ "id": "0x564d8e3ac7e0",
"kind": "FunctionDecl",
"loc": {
- "offset": 11001,
+ "offset": 11296,
"file": "../include/sls/ToString.h",
- "line": 324,
+ "line": 332,
"col": 34,
"tokLen": 8,
"includedFrom": {
@@ -6114,7 +6216,7 @@
},
"range": {
"begin": {
- "offset": 10968,
+ "offset": 11263,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -6122,7 +6224,7 @@
}
},
"end": {
- "offset": 11030,
+ "offset": 11325,
"col": 63,
"tokLen": 1,
"includedFrom": {
@@ -6130,7 +6232,7 @@
}
}
},
- "previousDecl": "0x385ac1d8",
+ "previousDecl": "0x564d8e3aca50",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs14collectionModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -6144,13 +6246,13 @@
},
"inner": [
{
- "id": "0x37ff3600",
+ "id": "0x564d8dd5b450",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::collectionMode"
},
"decl": {
- "id": "0x37ff3560",
+ "id": "0x564d8dd5b3b0",
"kind": "EnumDecl",
"name": "collectionMode"
}
@@ -6158,10 +6260,10 @@
]
},
{
- "id": "0x385abe78",
+ "id": "0x564d8e3ac6c0",
"kind": "ParmVarDecl",
"loc": {
- "offset": 11029,
+ "offset": 11324,
"col": 62,
"tokLen": 1,
"includedFrom": {
@@ -6170,7 +6272,7 @@
},
"range": {
"begin": {
- "offset": 11010,
+ "offset": 11305,
"col": 43,
"tokLen": 5,
"includedFrom": {
@@ -6178,7 +6280,7 @@
}
},
"end": {
- "offset": 11029,
+ "offset": 11324,
"col": 62,
"tokLen": 1,
"includedFrom": {
@@ -6194,12 +6296,200 @@
]
}
{
- "id": "0x385ac478",
+ "id": "0x564d8e3acd20",
"kind": "FunctionDecl",
"loc": {
- "offset": 11054,
+ "offset": 11356,
"file": "../include/sls/ToString.h",
- "line": 326,
+ "line": 333,
+ "col": 29,
+ "tokLen": 8,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "range": {
+ "begin": {
+ "offset": 11328,
+ "col": 1,
+ "tokLen": 8,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "end": {
+ "offset": 11385,
+ "col": 58,
+ "tokLen": 1,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ }
+ },
+ "previousDecl": "0x564d8e3acf60",
+ "name": "StringTo",
+ "mangledName": "_ZN3sls8StringToINS_15RegisterAddressEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
+ "type": {
+ "qualType": "RegisterAddress (const std::string &)"
+ },
+ "inner": [
+ {
+ "kind": "TemplateArgument",
+ "type": {
+ "qualType": "sls::RegisterAddress"
+ },
+ "inner": [
+ {
+ "id": "0x564d8d8f3f60",
+ "kind": "RecordType",
+ "type": {
+ "qualType": "sls::RegisterAddress"
+ },
+ "decl": {
+ "id": "0x564d8d8f3ed0",
+ "kind": "CXXRecordDecl",
+ "name": "RegisterAddress"
+ }
+ }
+ ]
+ },
+ {
+ "id": "0x564d8e3acc10",
+ "kind": "ParmVarDecl",
+ "loc": {
+ "offset": 11384,
+ "col": 57,
+ "tokLen": 1,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "range": {
+ "begin": {
+ "offset": 11365,
+ "col": 38,
+ "tokLen": 5,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "end": {
+ "offset": 11384,
+ "col": 57,
+ "tokLen": 1,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ }
+ },
+ "name": "s",
+ "type": {
+ "qualType": "const std::string &"
+ }
+ }
+ ]
+}
+{
+ "id": "0x564d8e3ad230",
+ "kind": "FunctionDecl",
+ "loc": {
+ "offset": 11414,
+ "file": "../include/sls/ToString.h",
+ "line": 334,
+ "col": 27,
+ "tokLen": 8,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "range": {
+ "begin": {
+ "offset": 11388,
+ "col": 1,
+ "tokLen": 8,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "end": {
+ "offset": 11443,
+ "col": 56,
+ "tokLen": 1,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ }
+ },
+ "previousDecl": "0x564d8e3ad470",
+ "name": "StringTo",
+ "mangledName": "_ZN3sls8StringToINS_13RegisterValueEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
+ "type": {
+ "qualType": "RegisterValue (const std::string &)"
+ },
+ "inner": [
+ {
+ "kind": "TemplateArgument",
+ "type": {
+ "qualType": "sls::RegisterValue"
+ },
+ "inner": [
+ {
+ "id": "0x564d8d8f7650",
+ "kind": "RecordType",
+ "type": {
+ "qualType": "sls::RegisterValue"
+ },
+ "decl": {
+ "id": "0x564d8d8f75c0",
+ "kind": "CXXRecordDecl",
+ "name": "RegisterValue"
+ }
+ }
+ ]
+ },
+ {
+ "id": "0x564d8e3ad120",
+ "kind": "ParmVarDecl",
+ "loc": {
+ "offset": 11442,
+ "col": 55,
+ "tokLen": 1,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "range": {
+ "begin": {
+ "offset": 11423,
+ "col": 36,
+ "tokLen": 5,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "end": {
+ "offset": 11442,
+ "col": 55,
+ "tokLen": 1,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ }
+ },
+ "name": "s",
+ "type": {
+ "qualType": "const std::string &"
+ }
+ }
+ ]
+}
+{
+ "id": "0x564d8e3ad740",
+ "kind": "FunctionDecl",
+ "loc": {
+ "offset": 11467,
+ "file": "../include/sls/ToString.h",
+ "line": 336,
"col": 21,
"tokLen": 8,
"includedFrom": {
@@ -6208,7 +6498,7 @@
},
"range": {
"begin": {
- "offset": 11034,
+ "offset": 11447,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -6216,7 +6506,7 @@
}
},
"end": {
- "offset": 11083,
+ "offset": 11496,
"col": 50,
"tokLen": 1,
"includedFrom": {
@@ -6224,7 +6514,7 @@
}
}
},
- "previousDecl": "0x385ac6a8",
+ "previousDecl": "0x564d8e3ad980",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIhEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -6238,7 +6528,7 @@
},
"inner": [
{
- "id": "0x3713ad30",
+ "id": "0x564d8c93dc50",
"kind": "BuiltinType",
"type": {
"qualType": "unsigned char"
@@ -6247,10 +6537,10 @@
]
},
{
- "id": "0x385ac388",
+ "id": "0x564d8e3ad630",
"kind": "ParmVarDecl",
"loc": {
- "offset": 11082,
+ "offset": 11495,
"col": 49,
"tokLen": 1,
"includedFrom": {
@@ -6259,7 +6549,7 @@
},
"range": {
"begin": {
- "offset": 11063,
+ "offset": 11476,
"col": 30,
"tokLen": 5,
"includedFrom": {
@@ -6267,7 +6557,7 @@
}
},
"end": {
- "offset": 11082,
+ "offset": 11495,
"col": 49,
"tokLen": 1,
"includedFrom": {
@@ -6283,12 +6573,12 @@
]
}
{
- "id": "0x385ac948",
+ "id": "0x564d8e3adc50",
"kind": "FunctionDecl",
"loc": {
- "offset": 11107,
+ "offset": 11520,
"file": "../include/sls/ToString.h",
- "line": 327,
+ "line": 337,
"col": 22,
"tokLen": 8,
"includedFrom": {
@@ -6297,7 +6587,7 @@
},
"range": {
"begin": {
- "offset": 11086,
+ "offset": 11499,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -6305,7 +6595,7 @@
}
},
"end": {
- "offset": 11136,
+ "offset": 11549,
"col": 51,
"tokLen": 1,
"includedFrom": {
@@ -6313,7 +6603,7 @@
}
}
},
- "previousDecl": "0x385acb78",
+ "previousDecl": "0x564d8e3ade90",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToItEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -6327,7 +6617,7 @@
},
"inner": [
{
- "id": "0x3713ad50",
+ "id": "0x564d8c93dc70",
"kind": "BuiltinType",
"type": {
"qualType": "unsigned short"
@@ -6336,10 +6626,10 @@
]
},
{
- "id": "0x385ac858",
+ "id": "0x564d8e3adb40",
"kind": "ParmVarDecl",
"loc": {
- "offset": 11135,
+ "offset": 11548,
"col": 50,
"tokLen": 1,
"includedFrom": {
@@ -6348,7 +6638,7 @@
},
"range": {
"begin": {
- "offset": 11116,
+ "offset": 11529,
"col": 31,
"tokLen": 5,
"includedFrom": {
@@ -6356,7 +6646,7 @@
}
},
"end": {
- "offset": 11135,
+ "offset": 11548,
"col": 50,
"tokLen": 1,
"includedFrom": {
@@ -6372,12 +6662,12 @@
]
}
{
- "id": "0x385ace18",
+ "id": "0x564d8e3ae160",
"kind": "FunctionDecl",
"loc": {
- "offset": 11160,
+ "offset": 11573,
"file": "../include/sls/ToString.h",
- "line": 328,
+ "line": 338,
"col": 22,
"tokLen": 8,
"includedFrom": {
@@ -6386,7 +6676,7 @@
},
"range": {
"begin": {
- "offset": 11139,
+ "offset": 11552,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -6394,7 +6684,7 @@
}
},
"end": {
- "offset": 11189,
+ "offset": 11602,
"col": 51,
"tokLen": 1,
"includedFrom": {
@@ -6402,7 +6692,7 @@
}
}
},
- "previousDecl": "0x385ad048",
+ "previousDecl": "0x564d8e3ae3a0",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIjEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -6416,7 +6706,7 @@
},
"inner": [
{
- "id": "0x3713ad70",
+ "id": "0x564d8c93dc90",
"kind": "BuiltinType",
"type": {
"qualType": "unsigned int"
@@ -6425,10 +6715,10 @@
]
},
{
- "id": "0x385acd28",
+ "id": "0x564d8e3ae050",
"kind": "ParmVarDecl",
"loc": {
- "offset": 11188,
+ "offset": 11601,
"col": 50,
"tokLen": 1,
"includedFrom": {
@@ -6437,7 +6727,7 @@
},
"range": {
"begin": {
- "offset": 11169,
+ "offset": 11582,
"col": 31,
"tokLen": 5,
"includedFrom": {
@@ -6445,7 +6735,7 @@
}
},
"end": {
- "offset": 11188,
+ "offset": 11601,
"col": 50,
"tokLen": 1,
"includedFrom": {
@@ -6461,12 +6751,12 @@
]
}
{
- "id": "0x385ad2b8",
+ "id": "0x564d8e3ae630",
"kind": "FunctionDecl",
"loc": {
- "offset": 11213,
+ "offset": 11626,
"file": "../include/sls/ToString.h",
- "line": 329,
+ "line": 339,
"col": 22,
"tokLen": 8,
"includedFrom": {
@@ -6475,7 +6765,7 @@
},
"range": {
"begin": {
- "offset": 11192,
+ "offset": 11605,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -6483,7 +6773,7 @@
}
},
"end": {
- "offset": 11242,
+ "offset": 11655,
"col": 51,
"tokLen": 1,
"includedFrom": {
@@ -6491,7 +6781,7 @@
}
}
},
- "previousDecl": "0x385ad4e8",
+ "previousDecl": "0x564d8e3ae870",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToImEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -6505,7 +6795,7 @@
},
"inner": [
{
- "id": "0x3713ad90",
+ "id": "0x564d8c93dcb0",
"kind": "BuiltinType",
"type": {
"qualType": "unsigned long"
@@ -6514,10 +6804,10 @@
]
},
{
- "id": "0x385ad1f8",
+ "id": "0x564d8e3ae560",
"kind": "ParmVarDecl",
"loc": {
- "offset": 11241,
+ "offset": 11654,
"col": 50,
"tokLen": 1,
"includedFrom": {
@@ -6526,7 +6816,7 @@
},
"range": {
"begin": {
- "offset": 11222,
+ "offset": 11635,
"col": 31,
"tokLen": 5,
"includedFrom": {
@@ -6534,7 +6824,7 @@
}
},
"end": {
- "offset": 11241,
+ "offset": 11654,
"col": 50,
"tokLen": 1,
"includedFrom": {
@@ -6550,12 +6840,12 @@
]
}
{
- "id": "0x385ad790",
+ "id": "0x564d8e3aeb48",
"kind": "FunctionDecl",
"loc": {
- "offset": 11261,
+ "offset": 11674,
"file": "../include/sls/ToString.h",
- "line": 330,
+ "line": 340,
"col": 17,
"tokLen": 8,
"includedFrom": {
@@ -6564,7 +6854,7 @@
},
"range": {
"begin": {
- "offset": 11245,
+ "offset": 11658,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -6572,7 +6862,7 @@
}
},
"end": {
- "offset": 11290,
+ "offset": 11703,
"col": 46,
"tokLen": 1,
"includedFrom": {
@@ -6580,7 +6870,7 @@
}
}
},
- "previousDecl": "0x385ad9c8",
+ "previousDecl": "0x564d8e3aed90",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIiEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -6594,7 +6884,7 @@
},
"inner": [
{
- "id": "0x3713acd0",
+ "id": "0x564d8c93dbf0",
"kind": "BuiltinType",
"type": {
"qualType": "int"
@@ -6603,10 +6893,10 @@
]
},
{
- "id": "0x385ad698",
+ "id": "0x564d8e3aea30",
"kind": "ParmVarDecl",
"loc": {
- "offset": 11289,
+ "offset": 11702,
"col": 45,
"tokLen": 1,
"includedFrom": {
@@ -6615,7 +6905,7 @@
},
"range": {
"begin": {
- "offset": 11270,
+ "offset": 11683,
"col": 26,
"tokLen": 5,
"includedFrom": {
@@ -6623,7 +6913,7 @@
}
},
"end": {
- "offset": 11289,
+ "offset": 11702,
"col": 45,
"tokLen": 1,
"includedFrom": {
@@ -6639,12 +6929,12 @@
]
}
{
- "id": "0x385adc38",
+ "id": "0x564d8e3af020",
"kind": "FunctionDecl",
"loc": {
- "offset": 11310,
+ "offset": 11723,
"file": "../include/sls/ToString.h",
- "line": 331,
+ "line": 341,
"col": 18,
"tokLen": 8,
"includedFrom": {
@@ -6653,7 +6943,7 @@
},
"range": {
"begin": {
- "offset": 11293,
+ "offset": 11706,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -6661,7 +6951,7 @@
}
},
"end": {
- "offset": 11339,
+ "offset": 11752,
"col": 47,
"tokLen": 1,
"includedFrom": {
@@ -6669,7 +6959,7 @@
}
}
},
- "previousDecl": "0x385ade68",
+ "previousDecl": "0x564d8e3af260",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIbEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -6683,7 +6973,7 @@
},
"inner": [
{
- "id": "0x3713ac50",
+ "id": "0x564d8c93db70",
"kind": "BuiltinType",
"type": {
"qualType": "bool"
@@ -6692,10 +6982,10 @@
]
},
{
- "id": "0x385adb78",
+ "id": "0x564d8e3aef50",
"kind": "ParmVarDecl",
"loc": {
- "offset": 11338,
+ "offset": 11751,
"col": 46,
"tokLen": 1,
"includedFrom": {
@@ -6704,7 +6994,7 @@
},
"range": {
"begin": {
- "offset": 11319,
+ "offset": 11732,
"col": 27,
"tokLen": 5,
"includedFrom": {
@@ -6712,7 +7002,7 @@
}
},
"end": {
- "offset": 11338,
+ "offset": 11751,
"col": 46,
"tokLen": 1,
"includedFrom": {
@@ -6728,12 +7018,121 @@
]
}
{
- "id": "0x385ae108",
+ "id": "0x564d8e3af5f0",
"kind": "FunctionDecl",
"loc": {
- "offset": 11362,
+ "offset": 11760,
"file": "../include/sls/ToString.h",
- "line": 332,
+ "line": 342,
+ "col": 6,
+ "tokLen": 8,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "range": {
+ "begin": {
+ "offset": 11755,
+ "col": 1,
+ "tokLen": 4,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "end": {
+ "offset": 11814,
+ "col": 60,
+ "tokLen": 1,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ }
+ },
+ "isUsed": true,
+ "name": "StringTo",
+ "mangledName": "_ZN3sls8StringToERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN15slsDetectorDefs10boolFormatE",
+ "type": {
+ "qualType": "bool (const std::string &, defs::boolFormat)"
+ },
+ "inner": [
+ {
+ "id": "0x564d8e3af408",
+ "kind": "ParmVarDecl",
+ "loc": {
+ "offset": 11788,
+ "col": 34,
+ "tokLen": 1,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "range": {
+ "begin": {
+ "offset": 11769,
+ "col": 15,
+ "tokLen": 5,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "end": {
+ "offset": 11788,
+ "col": 34,
+ "tokLen": 1,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ }
+ },
+ "name": "s",
+ "type": {
+ "qualType": "const std::string &"
+ }
+ },
+ {
+ "id": "0x564d8e3af4d0",
+ "kind": "ParmVarDecl",
+ "loc": {
+ "offset": 11808,
+ "col": 54,
+ "tokLen": 6,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "range": {
+ "begin": {
+ "offset": 11791,
+ "col": 37,
+ "tokLen": 4,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ },
+ "end": {
+ "offset": 11808,
+ "col": 54,
+ "tokLen": 6,
+ "includedFrom": {
+ "file": "ToString.cpp"
+ }
+ }
+ },
+ "name": "format",
+ "type": {
+ "desugaredQualType": "slsDetectorDefs::boolFormat",
+ "qualType": "defs::boolFormat"
+ }
+ }
+ ]
+}
+{
+ "id": "0x564d8e3af830",
+ "kind": "FunctionDecl",
+ "loc": {
+ "offset": 11837,
+ "file": "../include/sls/ToString.h",
+ "line": 343,
"col": 21,
"tokLen": 8,
"includedFrom": {
@@ -6742,7 +7141,7 @@
},
"range": {
"begin": {
- "offset": 11342,
+ "offset": 11817,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -6750,7 +7149,7 @@
}
},
"end": {
- "offset": 11391,
+ "offset": 11866,
"col": 50,
"tokLen": 1,
"includedFrom": {
@@ -6758,7 +7157,7 @@
}
}
},
- "previousDecl": "0x385ae338",
+ "previousDecl": "0x564d8e3afa70",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIlEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -6772,7 +7171,7 @@
},
"inner": [
{
- "id": "0x3713acf0",
+ "id": "0x564d8c93dc10",
"kind": "BuiltinType",
"type": {
"qualType": "long"
@@ -6781,10 +7180,10 @@
]
},
{
- "id": "0x385ae018",
+ "id": "0x564d8e3af728",
"kind": "ParmVarDecl",
"loc": {
- "offset": 11390,
+ "offset": 11865,
"col": 49,
"tokLen": 1,
"includedFrom": {
@@ -6793,7 +7192,7 @@
},
"range": {
"begin": {
- "offset": 11371,
+ "offset": 11846,
"col": 30,
"tokLen": 5,
"includedFrom": {
@@ -6801,7 +7200,7 @@
}
},
"end": {
- "offset": 11390,
+ "offset": 11865,
"col": 49,
"tokLen": 1,
"includedFrom": {
@@ -6817,12 +7216,12 @@
]
}
{
- "id": "0x385af250",
+ "id": "0x564d8e3b0a28",
"kind": "FunctionTemplateDecl",
"loc": {
- "offset": 11628,
+ "offset": 12103,
"file": "../include/sls/ToString.h",
- "line": 342,
+ "line": 353,
"col": 16,
"tokLen": 8,
"includedFrom": {
@@ -6831,8 +7230,8 @@
},
"range": {
"begin": {
- "offset": 11591,
- "line": 341,
+ "offset": 12066,
+ "line": 352,
"col": 1,
"tokLen": 8,
"includedFrom": {
@@ -6840,8 +7239,8 @@
}
},
"end": {
- "offset": 11838,
- "line": 348,
+ "offset": 12313,
+ "line": 359,
"col": 1,
"tokLen": 1,
"includedFrom": {
@@ -6852,11 +7251,11 @@
"name": "StringTo",
"inner": [
{
- "id": "0x385aec38",
+ "id": "0x564d8e3b03b0",
"kind": "TemplateTypeParmDecl",
"loc": {
- "offset": 11610,
- "line": 341,
+ "offset": 12085,
+ "line": 352,
"col": 20,
"tokLen": 1,
"includedFrom": {
@@ -6865,7 +7264,7 @@
},
"range": {
"begin": {
- "offset": 11601,
+ "offset": 12076,
"col": 11,
"tokLen": 8,
"includedFrom": {
@@ -6873,7 +7272,7 @@
}
},
"end": {
- "offset": 11610,
+ "offset": 12085,
"col": 20,
"tokLen": 1,
"includedFrom": {
@@ -6888,11 +7287,11 @@
"index": 0
},
{
- "id": "0x385af1a8",
+ "id": "0x564d8e3b0980",
"kind": "FunctionDecl",
"loc": {
- "offset": 11628,
- "line": 342,
+ "offset": 12103,
+ "line": 353,
"col": 16,
"tokLen": 8,
"includedFrom": {
@@ -6901,7 +7300,7 @@
},
"range": {
"begin": {
- "offset": 11613,
+ "offset": 12088,
"col": 1,
"tokLen": 3,
"includedFrom": {
@@ -6909,8 +7308,8 @@
}
},
"end": {
- "offset": 11838,
- "line": 348,
+ "offset": 12313,
+ "line": 359,
"col": 1,
"tokLen": 1,
"includedFrom": {
@@ -6924,11 +7323,11 @@
},
"inner": [
{
- "id": "0x385af090",
+ "id": "0x564d8e3b0858",
"kind": "ParmVarDecl",
"loc": {
- "offset": 11669,
- "line": 342,
+ "offset": 12144,
+ "line": 353,
"col": 57,
"tokLen": 7,
"includedFrom": {
@@ -6937,7 +7336,7 @@
},
"range": {
"begin": {
- "offset": 11637,
+ "offset": 12112,
"col": 25,
"tokLen": 5,
"includedFrom": {
@@ -6945,7 +7344,7 @@
}
},
"end": {
- "offset": 11669,
+ "offset": 12144,
"col": 57,
"tokLen": 7,
"includedFrom": {
@@ -6960,11 +7359,11 @@
}
},
{
- "id": "0x385e6c58",
+ "id": "0x564d8e3e1eb0",
"kind": "CompoundStmt",
"range": {
"begin": {
- "offset": 11678,
+ "offset": 12153,
"col": 66,
"tokLen": 1,
"includedFrom": {
@@ -6972,8 +7371,8 @@
}
},
"end": {
- "offset": 11838,
- "line": 348,
+ "offset": 12313,
+ "line": 359,
"col": 1,
"tokLen": 1,
"includedFrom": {
@@ -6983,12 +7382,12 @@
},
"inner": [
{
- "id": "0x385af540",
+ "id": "0x564d8e3b0d20",
"kind": "DeclStmt",
"range": {
"begin": {
- "offset": 11684,
- "line": 343,
+ "offset": 12159,
+ "line": 354,
"col": 5,
"tokLen": 3,
"includedFrom": {
@@ -6996,7 +7395,7 @@
}
},
"end": {
- "offset": 11705,
+ "offset": 12180,
"col": 26,
"tokLen": 1,
"includedFrom": {
@@ -7006,10 +7405,10 @@
},
"inner": [
{
- "id": "0x385af4d8",
+ "id": "0x564d8e3b0cb8",
"kind": "VarDecl",
"loc": {
- "offset": 11699,
+ "offset": 12174,
"col": 20,
"tokLen": 6,
"includedFrom": {
@@ -7018,7 +7417,7 @@
},
"range": {
"begin": {
- "offset": 11684,
+ "offset": 12159,
"col": 5,
"tokLen": 3,
"includedFrom": {
@@ -7026,7 +7425,7 @@
}
},
"end": {
- "offset": 11699,
+ "offset": 12174,
"col": 20,
"tokLen": 6,
"includedFrom": {
@@ -7045,12 +7444,12 @@
]
},
{
- "id": "0x385d98f8",
+ "id": "0x564d8e3da3e0",
"kind": "CallExpr",
"range": {
"begin": {
- "offset": 11711,
- "line": 344,
+ "offset": 12186,
+ "line": 355,
"col": 5,
"tokLen": 6,
"includedFrom": {
@@ -7058,7 +7457,7 @@
}
},
"end": {
- "offset": 11740,
+ "offset": 12215,
"col": 34,
"tokLen": 1,
"includedFrom": {
@@ -7072,11 +7471,11 @@
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x385af578",
+ "id": "0x564d8e3b0d58",
"kind": "CXXDependentScopeMemberExpr",
"range": {
"begin": {
- "offset": 11711,
+ "offset": 12186,
"col": 5,
"tokLen": 6,
"includedFrom": {
@@ -7084,7 +7483,7 @@
}
},
"end": {
- "offset": 11718,
+ "offset": 12193,
"col": 12,
"tokLen": 7,
"includedFrom": {
@@ -7100,11 +7499,11 @@
"member": "reserve",
"inner": [
{
- "id": "0x385af558",
+ "id": "0x564d8e3b0d38",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 11711,
+ "offset": 12186,
"col": 5,
"tokLen": 6,
"includedFrom": {
@@ -7112,7 +7511,7 @@
}
},
"end": {
- "offset": 11711,
+ "offset": 12186,
"col": 5,
"tokLen": 6,
"includedFrom": {
@@ -7126,7 +7525,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x385af4d8",
+ "id": "0x564d8e3b0cb8",
"kind": "VarDecl",
"name": "result",
"type": {
@@ -7138,11 +7537,11 @@
]
},
{
- "id": "0x385d93e0",
+ "id": "0x564d8e3d9eb8",
"kind": "CXXMemberCallExpr",
"range": {
"begin": {
- "offset": 11726,
+ "offset": 12201,
"col": 20,
"tokLen": 7,
"includedFrom": {
@@ -7150,7 +7549,7 @@
}
},
"end": {
- "offset": 11739,
+ "offset": 12214,
"col": 33,
"tokLen": 1,
"includedFrom": {
@@ -7161,16 +7560,16 @@
"type": {
"desugaredQualType": "unsigned long",
"qualType": "size_type",
- "typeAliasDeclId": "0x37763e08"
+ "typeAliasDeclId": "0x564d8d0a5778"
},
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x385d93b0",
+ "id": "0x564d8e3d9e88",
"kind": "MemberExpr",
"range": {
"begin": {
- "offset": 11726,
+ "offset": 12201,
"col": 20,
"tokLen": 7,
"includedFrom": {
@@ -7178,7 +7577,7 @@
}
},
"end": {
- "offset": 11734,
+ "offset": 12209,
"col": 28,
"tokLen": 4,
"includedFrom": {
@@ -7192,14 +7591,14 @@
"valueCategory": "prvalue",
"name": "size",
"isArrow": false,
- "referencedMemberDecl": "0x385cef28",
+ "referencedMemberDecl": "0x564d8e3ce890",
"inner": [
{
- "id": "0x385af5c0",
+ "id": "0x564d8e3b0da0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 11726,
+ "offset": 12201,
"col": 20,
"tokLen": 7,
"includedFrom": {
@@ -7207,7 +7606,7 @@
}
},
"end": {
- "offset": 11726,
+ "offset": 12201,
"col": 20,
"tokLen": 7,
"includedFrom": {
@@ -7221,7 +7620,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x385af090",
+ "id": "0x564d8e3b0858",
"kind": "ParmVarDecl",
"name": "strings",
"type": {
@@ -7236,12 +7635,12 @@
]
},
{
- "id": "0x385e6a30",
+ "id": "0x564d8e3e1c88",
"kind": "CXXForRangeStmt",
"range": {
"begin": {
- "offset": 11747,
- "line": 345,
+ "offset": 12222,
+ "line": 356,
"col": 5,
"tokLen": 3,
"includedFrom": {
@@ -7249,8 +7648,8 @@
}
},
"end": {
- "offset": 11816,
- "line": 346,
+ "offset": 12291,
+ "line": 357,
"col": 40,
"tokLen": 1,
"includedFrom": {
@@ -7261,12 +7660,12 @@
"inner": [
{},
{
- "id": "0x385d9ca0",
+ "id": "0x564d8e3da718",
"kind": "DeclStmt",
"range": {
"begin": {
- "offset": 11768,
- "line": 345,
+ "offset": 12243,
+ "line": 356,
"col": 26,
"tokLen": 7,
"includedFrom": {
@@ -7274,7 +7673,7 @@
}
},
"end": {
- "offset": 11768,
+ "offset": 12243,
"col": 26,
"tokLen": 7,
"includedFrom": {
@@ -7284,10 +7683,10 @@
},
"inner": [
{
- "id": "0x385d9aa0",
+ "id": "0x564d8e3da520",
"kind": "VarDecl",
"loc": {
- "offset": 11768,
+ "offset": 12243,
"col": 26,
"tokLen": 7,
"includedFrom": {
@@ -7296,7 +7695,7 @@
},
"range": {
"begin": {
- "offset": 11768,
+ "offset": 12243,
"col": 26,
"tokLen": 7,
"includedFrom": {
@@ -7304,7 +7703,7 @@
}
},
"end": {
- "offset": 11768,
+ "offset": 12243,
"col": 26,
"tokLen": 7,
"includedFrom": {
@@ -7321,11 +7720,11 @@
"init": "c",
"inner": [
{
- "id": "0x385d9920",
+ "id": "0x564d8e3da408",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 11768,
+ "offset": 12243,
"col": 26,
"tokLen": 7,
"includedFrom": {
@@ -7333,7 +7732,7 @@
}
},
"end": {
- "offset": 11768,
+ "offset": 12243,
"col": 26,
"tokLen": 7,
"includedFrom": {
@@ -7347,7 +7746,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x385af090",
+ "id": "0x564d8e3b0858",
"kind": "ParmVarDecl",
"name": "strings",
"type": {
@@ -7360,11 +7759,11 @@
]
},
{
- "id": "0x385e4240",
+ "id": "0x564d8e3de940",
"kind": "DeclStmt",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7372,7 +7771,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7382,10 +7781,10 @@
},
"inner": [
{
- "id": "0x385d9d38",
+ "id": "0x564d8e3da788",
"kind": "VarDecl",
"loc": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7394,7 +7793,7 @@
},
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7402,7 +7801,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7416,16 +7815,16 @@
"type": {
"desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
"qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
+ "typeAliasDeclId": "0x564d8e3c3ed8"
},
"init": "c",
"inner": [
{
- "id": "0x385e3b00",
- "kind": "ExprWithCleanups",
+ "id": "0x564d8e3da900",
+ "kind": "CXXMemberCallExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7433,7 +7832,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7444,16 +7843,16 @@
"type": {
"desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
"qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
+ "typeAliasDeclId": "0x564d8e3c3ed8"
},
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x385e3ad0",
- "kind": "CXXConstructExpr",
+ "id": "0x564d8e3da8d0",
+ "kind": "MemberExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7461,7 +7860,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7470,24 +7869,19 @@
}
},
"type": {
- "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
- "qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
+ "qualType": ""
},
"valueCategory": "prvalue",
- "ctorType": {
- "qualType": "void (__normal_iterator *, vector>> &&) noexcept"
- },
- "elidable": true,
- "hadMultipleCandidates": true,
- "constructionKind": "complete",
+ "name": "begin",
+ "isArrow": false,
+ "referencedMemberDecl": "0x564d8e3cd938",
"inner": [
{
- "id": "0x385e3898",
- "kind": "MaterializeTemporaryExpr",
+ "id": "0x564d8e3da730",
+ "kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7495,7 +7889,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7504,110 +7898,18 @@
}
},
"type": {
- "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
- "qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
+ "desugaredQualType": "const std::vector>",
+ "qualType": "const std::vector"
},
- "valueCategory": "xvalue",
- "storageDuration": "full expression",
- "inner": [
- {
- "id": "0x385d9ed8",
- "kind": "CXXMemberCallExpr",
- "range": {
- "begin": {
- "offset": 11766,
- "col": 24,
- "tokLen": 1,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- },
- "end": {
- "offset": 11766,
- "col": 24,
- "tokLen": 1,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- }
- },
- "type": {
- "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
- "qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
- },
- "valueCategory": "prvalue",
- "inner": [
- {
- "id": "0x385d9ea8",
- "kind": "MemberExpr",
- "range": {
- "begin": {
- "offset": 11766,
- "col": 24,
- "tokLen": 1,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- },
- "end": {
- "offset": 11766,
- "col": 24,
- "tokLen": 1,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- }
- },
- "type": {
- "qualType": ""
- },
- "valueCategory": "prvalue",
- "name": "begin",
- "isArrow": false,
- "referencedMemberDecl": "0x385ce240",
- "inner": [
- {
- "id": "0x385d9cb8",
- "kind": "DeclRefExpr",
- "range": {
- "begin": {
- "offset": 11766,
- "col": 24,
- "tokLen": 1,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- },
- "end": {
- "offset": 11766,
- "col": 24,
- "tokLen": 1,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- }
- },
- "type": {
- "desugaredQualType": "const std::vector>",
- "qualType": "const std::vector"
- },
- "valueCategory": "lvalue",
- "referencedDecl": {
- "id": "0x385d9aa0",
- "kind": "VarDecl",
- "name": "__range2",
- "type": {
- "qualType": "const std::vector &"
- }
- }
- }
- ]
- }
- ]
+ "valueCategory": "lvalue",
+ "referencedDecl": {
+ "id": "0x564d8e3da520",
+ "kind": "VarDecl",
+ "name": "__range2",
+ "type": {
+ "qualType": "const std::vector &"
}
- ]
+ }
}
]
}
@@ -7618,11 +7920,11 @@
]
},
{
- "id": "0x385e4258",
+ "id": "0x564d8e3de958",
"kind": "DeclStmt",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7630,7 +7932,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7640,10 +7942,10 @@
},
"inner": [
{
- "id": "0x385d9de0",
+ "id": "0x564d8e3da808",
"kind": "VarDecl",
"loc": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7652,7 +7954,7 @@
},
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7660,7 +7962,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7674,16 +7976,16 @@
"type": {
"desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
"qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
+ "typeAliasDeclId": "0x564d8e3c3ed8"
},
"init": "c",
"inner": [
{
- "id": "0x385e4228",
- "kind": "ExprWithCleanups",
+ "id": "0x564d8e3de860",
+ "kind": "CXXMemberCallExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7691,7 +7993,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7702,16 +8004,16 @@
"type": {
"desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
"qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
+ "typeAliasDeclId": "0x564d8e3c3ed8"
},
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x385e41f8",
- "kind": "CXXConstructExpr",
+ "id": "0x564d8e3de830",
+ "kind": "MemberExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7719,7 +8021,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7728,24 +8030,19 @@
}
},
"type": {
- "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
- "qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
+ "qualType": ""
},
"valueCategory": "prvalue",
- "ctorType": {
- "qualType": "void (__normal_iterator *, vector>> &&) noexcept"
- },
- "elidable": true,
- "hadMultipleCandidates": true,
- "constructionKind": "complete",
+ "name": "end",
+ "isArrow": false,
+ "referencedMemberDecl": "0x564d8e3cdbc8",
"inner": [
{
- "id": "0x385e41e0",
- "kind": "MaterializeTemporaryExpr",
+ "id": "0x564d8e3da750",
+ "kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7753,7 +8050,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7762,110 +8059,18 @@
}
},
"type": {
- "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
- "qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
+ "desugaredQualType": "const std::vector>",
+ "qualType": "const std::vector"
},
- "valueCategory": "xvalue",
- "storageDuration": "full expression",
- "inner": [
- {
- "id": "0x385e3ba8",
- "kind": "CXXMemberCallExpr",
- "range": {
- "begin": {
- "offset": 11766,
- "col": 24,
- "tokLen": 1,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- },
- "end": {
- "offset": 11766,
- "col": 24,
- "tokLen": 1,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- }
- },
- "type": {
- "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
- "qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
- },
- "valueCategory": "prvalue",
- "inner": [
- {
- "id": "0x385e3b78",
- "kind": "MemberExpr",
- "range": {
- "begin": {
- "offset": 11766,
- "col": 24,
- "tokLen": 1,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- },
- "end": {
- "offset": 11766,
- "col": 24,
- "tokLen": 1,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- }
- },
- "type": {
- "qualType": ""
- },
- "valueCategory": "prvalue",
- "name": "end",
- "isArrow": false,
- "referencedMemberDecl": "0x385ce410",
- "inner": [
- {
- "id": "0x385d9cd8",
- "kind": "DeclRefExpr",
- "range": {
- "begin": {
- "offset": 11766,
- "col": 24,
- "tokLen": 1,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- },
- "end": {
- "offset": 11766,
- "col": 24,
- "tokLen": 1,
- "includedFrom": {
- "file": "ToString.cpp"
- }
- }
- },
- "type": {
- "desugaredQualType": "const std::vector>",
- "qualType": "const std::vector"
- },
- "valueCategory": "lvalue",
- "referencedDecl": {
- "id": "0x385d9aa0",
- "kind": "VarDecl",
- "name": "__range2",
- "type": {
- "qualType": "const std::vector &"
- }
- }
- }
- ]
- }
- ]
+ "valueCategory": "lvalue",
+ "referencedDecl": {
+ "id": "0x564d8e3da520",
+ "kind": "VarDecl",
+ "name": "__range2",
+ "type": {
+ "qualType": "const std::vector &"
}
- ]
+ }
}
]
}
@@ -7876,11 +8081,11 @@
]
},
{
- "id": "0x385e6650",
+ "id": "0x564d8e3e1758",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7888,7 +8093,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7903,11 +8108,11 @@
"adl": true,
"inner": [
{
- "id": "0x385e6638",
+ "id": "0x564d8e3e1740",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7915,7 +8120,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7924,17 +8129,17 @@
}
},
"type": {
- "qualType": "bool (*)(const __normal_iterator *, vector, allocator>>> &, const __normal_iterator *, vector, allocator>>> &) noexcept"
+ "qualType": "bool (*)(const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &, const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &) noexcept"
},
"valueCategory": "prvalue",
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x385e65b8",
+ "id": "0x564d8e3e1390",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7942,7 +8147,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7951,26 +8156,26 @@
}
},
"type": {
- "qualType": "bool (const __normal_iterator *, vector, allocator>>> &, const __normal_iterator *, vector, allocator>>> &) noexcept"
+ "qualType": "bool (const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &, const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &) noexcept"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x385e4d40",
+ "id": "0x564d8e3df528",
"kind": "FunctionDecl",
"name": "operator!=",
"type": {
- "qualType": "bool (const __normal_iterator *, vector, allocator>>> &, const __normal_iterator *, vector, allocator>>> &) noexcept"
+ "qualType": "bool (const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &, const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>> &) noexcept"
}
}
}
]
},
{
- "id": "0x385e6588",
+ "id": "0x564d8e3e1360",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7978,7 +8183,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -7988,17 +8193,17 @@
},
"type": {
"desugaredQualType": "const __gnu_cxx::__normal_iterator *, std::vector>>",
- "qualType": "const __normal_iterator *, vector, allocator>>>"
+ "qualType": "const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>>"
},
"valueCategory": "lvalue",
"castKind": "NoOp",
"inner": [
{
- "id": "0x385e4270",
+ "id": "0x564d8e3de970",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8006,7 +8211,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8017,28 +8222,28 @@
"type": {
"desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
"qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
+ "typeAliasDeclId": "0x564d8e3c3ed8"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x385d9d38",
+ "id": "0x564d8e3da788",
"kind": "VarDecl",
"name": "__begin2",
"type": {
"desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
"qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
+ "typeAliasDeclId": "0x564d8e3c3ed8"
}
}
}
]
},
{
- "id": "0x385e65a0",
+ "id": "0x564d8e3e1378",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8046,7 +8251,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8056,17 +8261,17 @@
},
"type": {
"desugaredQualType": "const __gnu_cxx::__normal_iterator *, std::vector>>",
- "qualType": "const __normal_iterator *, vector, allocator>>>"
+ "qualType": "const __normal_iterator, allocator> *, vector, allocator>, allocator, allocator>>>>"
},
"valueCategory": "lvalue",
"castKind": "NoOp",
"inner": [
{
- "id": "0x385e4290",
+ "id": "0x564d8e3de990",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8074,7 +8279,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8085,17 +8290,17 @@
"type": {
"desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
"qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
+ "typeAliasDeclId": "0x564d8e3c3ed8"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x385d9de0",
+ "id": "0x564d8e3da808",
"kind": "VarDecl",
"name": "__end2",
"type": {
"desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
"qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
+ "typeAliasDeclId": "0x564d8e3c3ed8"
}
}
}
@@ -8104,11 +8309,11 @@
]
},
{
- "id": "0x385e6740",
+ "id": "0x564d8e3e18f8",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8116,7 +8321,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8131,11 +8336,11 @@
"valueCategory": "lvalue",
"inner": [
{
- "id": "0x385e6728",
+ "id": "0x564d8e3e18e0",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8143,7 +8348,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8158,11 +8363,11 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x385e66a8",
+ "id": "0x564d8e3e17b0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8170,7 +8375,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8183,7 +8388,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x385e15a8",
+ "id": "0x564d8e3dd280",
"kind": "CXXMethodDecl",
"name": "operator++",
"type": {
@@ -8194,11 +8399,11 @@
]
},
{
- "id": "0x385e6688",
+ "id": "0x564d8e3e1790",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8206,7 +8411,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8217,28 +8422,28 @@
"type": {
"desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
"qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
+ "typeAliasDeclId": "0x564d8e3c3ed8"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x385d9d38",
+ "id": "0x564d8e3da788",
"kind": "VarDecl",
"name": "__begin2",
"type": {
"desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
"qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
+ "typeAliasDeclId": "0x564d8e3c3ed8"
}
}
}
]
},
{
- "id": "0x385d9a18",
+ "id": "0x564d8e3da4e8",
"kind": "DeclStmt",
"range": {
"begin": {
- "offset": 11752,
+ "offset": 12227,
"col": 10,
"tokLen": 5,
"includedFrom": {
@@ -8246,7 +8451,7 @@
}
},
"end": {
- "offset": 11775,
+ "offset": 12250,
"col": 33,
"tokLen": 1,
"includedFrom": {
@@ -8256,10 +8461,10 @@
},
"inner": [
{
- "id": "0x385d99b0",
+ "id": "0x564d8e3da480",
"kind": "VarDecl",
"loc": {
- "offset": 11764,
+ "offset": 12239,
"col": 22,
"tokLen": 1,
"includedFrom": {
@@ -8268,7 +8473,7 @@
},
"range": {
"begin": {
- "offset": 11752,
+ "offset": 12227,
"col": 10,
"tokLen": 5,
"includedFrom": {
@@ -8276,7 +8481,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8292,11 +8497,11 @@
"init": "c",
"inner": [
{
- "id": "0x385e6860",
+ "id": "0x564d8e3e1ac8",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8304,7 +8509,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8313,17 +8518,16 @@
}
},
"type": {
- "desugaredQualType": "const std::basic_string",
"qualType": "const std::basic_string"
},
"valueCategory": "lvalue",
"inner": [
{
- "id": "0x385e6848",
+ "id": "0x564d8e3e1ab0",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8331,7 +8535,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8346,11 +8550,11 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x385e67d0",
+ "id": "0x564d8e3e1998",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8358,7 +8562,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8371,7 +8575,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x385e1260",
+ "id": "0x564d8e3dce18",
"kind": "CXXMethodDecl",
"name": "operator*",
"type": {
@@ -8382,11 +8586,11 @@
]
},
{
- "id": "0x385e67b8",
+ "id": "0x564d8e3e1980",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8394,7 +8598,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8409,11 +8613,11 @@
"castKind": "NoOp",
"inner": [
{
- "id": "0x385e6770",
+ "id": "0x564d8e3e1960",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8421,7 +8625,7 @@
}
},
"end": {
- "offset": 11766,
+ "offset": 12241,
"col": 24,
"tokLen": 1,
"includedFrom": {
@@ -8432,17 +8636,17 @@
"type": {
"desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
"qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
+ "typeAliasDeclId": "0x564d8e3c3ed8"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x385d9d38",
+ "id": "0x564d8e3da788",
"kind": "VarDecl",
"name": "__begin2",
"type": {
"desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>",
"qualType": "const_iterator",
- "typeAliasDeclId": "0x385c3c68"
+ "typeAliasDeclId": "0x564d8e3c3ed8"
}
}
}
@@ -8455,12 +8659,12 @@
]
},
{
- "id": "0x385e6bf8",
+ "id": "0x564d8e3e1e50",
"kind": "CallExpr",
"range": {
"begin": {
- "offset": 11785,
- "line": 346,
+ "offset": 12260,
+ "line": 357,
"col": 9,
"tokLen": 6,
"includedFrom": {
@@ -8468,7 +8672,7 @@
}
},
"end": {
- "offset": 11816,
+ "offset": 12291,
"col": 40,
"tokLen": 1,
"includedFrom": {
@@ -8482,11 +8686,11 @@
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x385e6ab0",
+ "id": "0x564d8e3e1d08",
"kind": "CXXDependentScopeMemberExpr",
"range": {
"begin": {
- "offset": 11785,
+ "offset": 12260,
"col": 9,
"tokLen": 6,
"includedFrom": {
@@ -8494,7 +8698,7 @@
}
},
"end": {
- "offset": 11792,
+ "offset": 12267,
"col": 16,
"tokLen": 9,
"includedFrom": {
@@ -8510,11 +8714,11 @@
"member": "push_back",
"inner": [
{
- "id": "0x385e6a90",
+ "id": "0x564d8e3e1ce8",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 11785,
+ "offset": 12260,
"col": 9,
"tokLen": 6,
"includedFrom": {
@@ -8522,7 +8726,7 @@
}
},
"end": {
- "offset": 11785,
+ "offset": 12260,
"col": 9,
"tokLen": 6,
"includedFrom": {
@@ -8536,7 +8740,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x385af4d8",
+ "id": "0x564d8e3b0cb8",
"kind": "VarDecl",
"name": "result",
"type": {
@@ -8548,11 +8752,11 @@
]
},
{
- "id": "0x385e6bd0",
+ "id": "0x564d8e3e1e28",
"kind": "CallExpr",
"range": {
"begin": {
- "offset": 11802,
+ "offset": 12277,
"col": 26,
"tokLen": 8,
"includedFrom": {
@@ -8560,7 +8764,7 @@
}
},
"end": {
- "offset": 11815,
+ "offset": 12290,
"col": 39,
"tokLen": 1,
"includedFrom": {
@@ -8574,11 +8778,11 @@
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x385e6b28",
+ "id": "0x564d8e3e1d80",
"kind": "UnresolvedLookupExpr",
"range": {
"begin": {
- "offset": 11802,
+ "offset": 12277,
"col": 26,
"tokLen": 8,
"includedFrom": {
@@ -8586,7 +8790,7 @@
}
},
"end": {
- "offset": 11812,
+ "offset": 12287,
"col": 36,
"tokLen": 1,
"includedFrom": {
@@ -8602,28 +8806,54 @@
"name": "StringTo",
"lookups": [
{
- "id": "0x385af250",
+ "id": "0x564d8e3b0a28",
"kind": "FunctionTemplateDecl",
"name": "StringTo"
},
{
- "id": "0x385a56d0",
+ "id": "0x564d8e36fb48",
"kind": "FunctionTemplateDecl",
"name": "StringTo"
},
{
- "id": "0x3856fae0",
+ "id": "0x564d8e3a4cc8",
"kind": "FunctionTemplateDecl",
"name": "StringTo"
}
+ ],
+ "inner": [
+ {
+ "kind": "TemplateArgument",
+ "type": {
+ "qualType": "T"
+ },
+ "inner": [
+ {
+ "id": "0x564d8e3b0400",
+ "kind": "TemplateTypeParmType",
+ "type": {
+ "qualType": "T"
+ },
+ "isDependent": true,
+ "isInstantiationDependent": true,
+ "depth": 0,
+ "index": 0,
+ "decl": {
+ "id": "0x564d8e3b03b0",
+ "kind": "TemplateTypeParmDecl",
+ "name": "T"
+ }
+ }
+ ]
+ }
]
},
{
- "id": "0x385e6bb0",
+ "id": "0x564d8e3e1e08",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 11814,
+ "offset": 12289,
"col": 38,
"tokLen": 1,
"includedFrom": {
@@ -8631,7 +8861,7 @@
}
},
"end": {
- "offset": 11814,
+ "offset": 12289,
"col": 38,
"tokLen": 1,
"includedFrom": {
@@ -8645,7 +8875,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x385d99b0",
+ "id": "0x564d8e3da480",
"kind": "VarDecl",
"name": "s",
"type": {
@@ -8660,12 +8890,12 @@
]
},
{
- "id": "0x385e6c40",
+ "id": "0x564d8e3e1e98",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 11823,
- "line": 347,
+ "offset": 12298,
+ "line": 358,
"col": 5,
"tokLen": 6,
"includedFrom": {
@@ -8673,7 +8903,7 @@
}
},
"end": {
- "offset": 11830,
+ "offset": 12305,
"col": 12,
"tokLen": 6,
"includedFrom": {
@@ -8683,11 +8913,11 @@
},
"inner": [
{
- "id": "0x385e6c20",
+ "id": "0x564d8e3e1e78",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 11830,
+ "offset": 12305,
"col": 12,
"tokLen": 6,
"includedFrom": {
@@ -8695,7 +8925,7 @@
}
},
"end": {
- "offset": 11830,
+ "offset": 12305,
"col": 12,
"tokLen": 6,
"includedFrom": {
@@ -8709,7 +8939,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x385af4d8",
+ "id": "0x564d8e3b0cb8",
"kind": "VarDecl",
"name": "result",
"type": {
@@ -8727,29 +8957,29 @@
]
}
{
- "id": "0x7feb10ea9db8",
+ "id": "0x564d8e6e5410",
"kind": "FunctionDecl",
"loc": {
- "offset": 21549,
+ "offset": 22683,
"file": "ToString.cpp",
- "line": 698,
+ "line": 742,
"col": 32,
"tokLen": 8
},
"range": {
"begin": {
- "offset": 21518,
+ "offset": 22652,
"col": 1,
"tokLen": 8
},
"end": {
- "offset": 22108,
- "line": 716,
+ "offset": 23242,
+ "line": 760,
"col": 1,
"tokLen": 1
}
},
- "previousDecl": "0x385a5fd8",
+ "previousDecl": "0x564d8e3a5dd0",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12detectorTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -8763,13 +8993,13 @@
},
"inner": [
{
- "id": "0x37f35630",
+ "id": "0x564d8dc74900",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::detectorType"
},
"decl": {
- "id": "0x37f35590",
+ "id": "0x564d8dc74860",
"kind": "EnumDecl",
"name": "detectorType"
}
@@ -8777,22 +9007,22 @@
]
},
{
- "id": "0x7feb10ea9ce0",
+ "id": "0x564d8e6e5330",
"kind": "ParmVarDecl",
"loc": {
- "offset": 21577,
- "line": 698,
+ "offset": 22711,
+ "line": 742,
"col": 60,
"tokLen": 1
},
"range": {
"begin": {
- "offset": 21558,
+ "offset": 22692,
"col": 41,
"tokLen": 5
},
"end": {
- "offset": 21577,
+ "offset": 22711,
"col": 60,
"tokLen": 1
}
@@ -8804,52 +9034,52 @@
}
},
{
- "id": "0x7feb10eb4018",
+ "id": "0x564d8e6efdd0",
"kind": "CompoundStmt",
"range": {
"begin": {
- "offset": 21580,
+ "offset": 22714,
"col": 63,
"tokLen": 1
},
"end": {
- "offset": 22108,
- "line": 716,
+ "offset": 23242,
+ "line": 760,
"col": 1,
"tokLen": 1
}
},
"inner": [
{
- "id": "0x7feb10eab2a8",
+ "id": "0x564d8e6e6a00",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 21586,
- "line": 699,
+ "offset": 22720,
+ "line": 743,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 21625,
- "line": 700,
+ "offset": 22759,
+ "line": 744,
"col": 22,
"tokLen": 5
}
},
"inner": [
{
- "id": "0x7feb10eab1f8",
+ "id": "0x564d8e6e6950",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 21590,
- "line": 699,
+ "offset": 22724,
+ "line": 743,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 21595,
+ "offset": 22729,
"col": 14,
"tokLen": 7
}
@@ -8861,16 +9091,16 @@
"adl": true,
"inner": [
{
- "id": "0x7feb10eab1e0",
+ "id": "0x564d8e6e6938",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 21592,
+ "offset": 22726,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 21592,
+ "offset": 22726,
"col": 11,
"tokLen": 2
}
@@ -8882,16 +9112,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x7feb10eab1c0",
+ "id": "0x564d8e6e6918",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21592,
+ "offset": 22726,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 21592,
+ "offset": 22726,
"col": 11,
"tokLen": 2
}
@@ -8901,7 +9131,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -8912,16 +9142,16 @@
]
},
{
- "id": "0x7feb10ea9fa0",
+ "id": "0x564d8e6e55f8",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21590,
+ "offset": 22724,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 21590,
+ "offset": 22724,
"col": 9,
"tokLen": 1
}
@@ -8929,11 +9159,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10ea9ce0",
+ "id": "0x564d8e6e5330",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -8942,16 +9172,16 @@
}
},
{
- "id": "0x7feb10eab1a8",
+ "id": "0x564d8e6e6900",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 21595,
+ "offset": 22729,
"col": 14,
"tokLen": 7
},
"end": {
- "offset": 21595,
+ "offset": 22729,
"col": 14,
"tokLen": 7
}
@@ -8963,16 +9193,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x7feb10ea9fc0",
+ "id": "0x564d8e6e5618",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 21595,
+ "offset": 22729,
"col": 14,
"tokLen": 7
},
"end": {
- "offset": 21595,
+ "offset": 22729,
"col": 14,
"tokLen": 7
}
@@ -8988,33 +9218,33 @@
]
},
{
- "id": "0x7feb10eab298",
+ "id": "0x564d8e6e69f0",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 21612,
- "line": 700,
+ "offset": 22746,
+ "line": 744,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 21625,
+ "offset": 22759,
"col": 22,
"tokLen": 5
}
},
"inner": [
{
- "id": "0x7feb10eab268",
+ "id": "0x564d8e6e69c0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21619,
+ "offset": 22753,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 21625,
+ "offset": 22759,
"col": 22,
"tokLen": 5
}
@@ -9024,7 +9254,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37f356a0",
+ "id": "0x564d8dc74978",
"kind": "EnumConstantDecl",
"name": "EIGER",
"type": {
@@ -9037,35 +9267,35 @@
]
},
{
- "id": "0x7feb10eac5d8",
+ "id": "0x564d8e6e7e30",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 21636,
- "line": 701,
+ "offset": 22770,
+ "line": 745,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 21678,
- "line": 702,
+ "offset": 22812,
+ "line": 746,
"col": 22,
"tokLen": 8
}
},
"inner": [
{
- "id": "0x7feb10eac528",
+ "id": "0x564d8e6e7d80",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 21640,
- "line": 701,
+ "offset": 22774,
+ "line": 745,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 21645,
+ "offset": 22779,
"col": 14,
"tokLen": 10
}
@@ -9077,16 +9307,16 @@
"adl": true,
"inner": [
{
- "id": "0x7feb10eac510",
+ "id": "0x564d8e6e7d68",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 21642,
+ "offset": 22776,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 21642,
+ "offset": 22776,
"col": 11,
"tokLen": 2
}
@@ -9098,16 +9328,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x7feb10eac4f0",
+ "id": "0x564d8e6e7d48",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21642,
+ "offset": 22776,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 21642,
+ "offset": 22776,
"col": 11,
"tokLen": 2
}
@@ -9117,7 +9347,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -9128,16 +9358,16 @@
]
},
{
- "id": "0x7feb10eab2c8",
+ "id": "0x564d8e6e6a20",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21640,
+ "offset": 22774,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 21640,
+ "offset": 22774,
"col": 9,
"tokLen": 1
}
@@ -9145,11 +9375,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10ea9ce0",
+ "id": "0x564d8e6e5330",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -9158,16 +9388,16 @@
}
},
{
- "id": "0x7feb10eac4d8",
+ "id": "0x564d8e6e7d30",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 21645,
+ "offset": 22779,
"col": 14,
"tokLen": 10
},
"end": {
- "offset": 21645,
+ "offset": 22779,
"col": 14,
"tokLen": 10
}
@@ -9179,16 +9409,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x7feb10eab2e8",
+ "id": "0x564d8e6e6a40",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 21645,
+ "offset": 22779,
"col": 14,
"tokLen": 10
},
"end": {
- "offset": 21645,
+ "offset": 22779,
"col": 14,
"tokLen": 10
}
@@ -9204,33 +9434,33 @@
]
},
{
- "id": "0x7feb10eac5c8",
+ "id": "0x564d8e6e7e20",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 21665,
- "line": 702,
+ "offset": 22799,
+ "line": 746,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 21678,
+ "offset": 22812,
"col": 22,
"tokLen": 8
}
},
"inner": [
{
- "id": "0x7feb10eac598",
+ "id": "0x564d8e6e7df0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21672,
+ "offset": 22806,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 21678,
+ "offset": 22812,
"col": 22,
"tokLen": 8
}
@@ -9240,7 +9470,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37f35718",
+ "id": "0x564d8dc749f8",
"kind": "EnumConstantDecl",
"name": "GOTTHARD",
"type": {
@@ -9253,35 +9483,35 @@
]
},
{
- "id": "0x7feb10ead908",
+ "id": "0x564d8e6e9260",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 21692,
- "line": 703,
+ "offset": 22826,
+ "line": 747,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 21734,
- "line": 704,
+ "offset": 22868,
+ "line": 748,
"col": 22,
"tokLen": 8
}
},
"inner": [
{
- "id": "0x7feb10ead858",
+ "id": "0x564d8e6e91b0",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 21696,
- "line": 703,
+ "offset": 22830,
+ "line": 747,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 21701,
+ "offset": 22835,
"col": 14,
"tokLen": 10
}
@@ -9293,16 +9523,16 @@
"adl": true,
"inner": [
{
- "id": "0x7feb10ead840",
+ "id": "0x564d8e6e9198",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 21698,
+ "offset": 22832,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 21698,
+ "offset": 22832,
"col": 11,
"tokLen": 2
}
@@ -9314,16 +9544,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x7feb10ead820",
+ "id": "0x564d8e6e9178",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21698,
+ "offset": 22832,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 21698,
+ "offset": 22832,
"col": 11,
"tokLen": 2
}
@@ -9333,7 +9563,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -9344,16 +9574,16 @@
]
},
{
- "id": "0x7feb10eac5f8",
+ "id": "0x564d8e6e7e50",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21696,
+ "offset": 22830,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 21696,
+ "offset": 22830,
"col": 9,
"tokLen": 1
}
@@ -9361,11 +9591,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10ea9ce0",
+ "id": "0x564d8e6e5330",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -9374,16 +9604,16 @@
}
},
{
- "id": "0x7feb10ead808",
+ "id": "0x564d8e6e9160",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 21701,
+ "offset": 22835,
"col": 14,
"tokLen": 10
},
"end": {
- "offset": 21701,
+ "offset": 22835,
"col": 14,
"tokLen": 10
}
@@ -9395,16 +9625,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x7feb10eac618",
+ "id": "0x564d8e6e7e70",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 21701,
+ "offset": 22835,
"col": 14,
"tokLen": 10
},
"end": {
- "offset": 21701,
+ "offset": 22835,
"col": 14,
"tokLen": 10
}
@@ -9420,33 +9650,33 @@
]
},
{
- "id": "0x7feb10ead8f8",
+ "id": "0x564d8e6e9250",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 21721,
- "line": 704,
+ "offset": 22855,
+ "line": 748,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 21734,
+ "offset": 22868,
"col": 22,
"tokLen": 8
}
},
"inner": [
{
- "id": "0x7feb10ead8c8",
+ "id": "0x564d8e6e9220",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21728,
+ "offset": 22862,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 21734,
+ "offset": 22868,
"col": 22,
"tokLen": 8
}
@@ -9456,7 +9686,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37f35768",
+ "id": "0x564d8dc74a50",
"kind": "EnumConstantDecl",
"name": "JUNGFRAU",
"type": {
@@ -9469,35 +9699,35 @@
]
},
{
- "id": "0x7feb10eaec38",
+ "id": "0x564d8e6ea690",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 21748,
- "line": 705,
+ "offset": 22882,
+ "line": 749,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 21795,
- "line": 706,
+ "offset": 22929,
+ "line": 750,
"col": 22,
"tokLen": 13
}
},
"inner": [
{
- "id": "0x7feb10eaeb88",
+ "id": "0x564d8e6ea5e0",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 21752,
- "line": 705,
+ "offset": 22886,
+ "line": 749,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 21757,
+ "offset": 22891,
"col": 14,
"tokLen": 15
}
@@ -9509,16 +9739,16 @@
"adl": true,
"inner": [
{
- "id": "0x7feb10eaeb70",
+ "id": "0x564d8e6ea5c8",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 21754,
+ "offset": 22888,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 21754,
+ "offset": 22888,
"col": 11,
"tokLen": 2
}
@@ -9530,16 +9760,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x7feb10eaeb50",
+ "id": "0x564d8e6ea5a8",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21754,
+ "offset": 22888,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 21754,
+ "offset": 22888,
"col": 11,
"tokLen": 2
}
@@ -9549,7 +9779,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -9560,16 +9790,16 @@
]
},
{
- "id": "0x7feb10ead928",
+ "id": "0x564d8e6e9280",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21752,
+ "offset": 22886,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 21752,
+ "offset": 22886,
"col": 9,
"tokLen": 1
}
@@ -9577,11 +9807,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10ea9ce0",
+ "id": "0x564d8e6e5330",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -9590,16 +9820,16 @@
}
},
{
- "id": "0x7feb10eaeb38",
+ "id": "0x564d8e6ea590",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 21757,
+ "offset": 22891,
"col": 14,
"tokLen": 15
},
"end": {
- "offset": 21757,
+ "offset": 22891,
"col": 14,
"tokLen": 15
}
@@ -9611,16 +9841,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x7feb10ead948",
+ "id": "0x564d8e6e92a0",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 21757,
+ "offset": 22891,
"col": 14,
"tokLen": 15
},
"end": {
- "offset": 21757,
+ "offset": 22891,
"col": 14,
"tokLen": 15
}
@@ -9636,33 +9866,33 @@
]
},
{
- "id": "0x7feb10eaec28",
+ "id": "0x564d8e6ea680",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 21782,
- "line": 706,
+ "offset": 22916,
+ "line": 750,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 21795,
+ "offset": 22929,
"col": 22,
"tokLen": 13
}
},
"inner": [
{
- "id": "0x7feb10eaebf8",
+ "id": "0x564d8e6ea650",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21789,
+ "offset": 22923,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 21795,
+ "offset": 22929,
"col": 22,
"tokLen": 13
}
@@ -9672,7 +9902,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37f357b8",
+ "id": "0x564d8dc74aa8",
"kind": "EnumConstantDecl",
"name": "CHIPTESTBOARD",
"type": {
@@ -9685,35 +9915,35 @@
]
},
{
- "id": "0x7feb10eaff68",
+ "id": "0x564d8e6ebac0",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 21814,
- "line": 707,
+ "offset": 22948,
+ "line": 751,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 21854,
- "line": 708,
+ "offset": 22988,
+ "line": 752,
"col": 22,
"tokLen": 6
}
},
"inner": [
{
- "id": "0x7feb10eafeb8",
+ "id": "0x564d8e6eba10",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 21818,
- "line": 707,
+ "offset": 22952,
+ "line": 751,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 21823,
+ "offset": 22957,
"col": 14,
"tokLen": 8
}
@@ -9725,16 +9955,16 @@
"adl": true,
"inner": [
{
- "id": "0x7feb10eafea0",
+ "id": "0x564d8e6eb9f8",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 21820,
+ "offset": 22954,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 21820,
+ "offset": 22954,
"col": 11,
"tokLen": 2
}
@@ -9746,16 +9976,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x7feb10eafe80",
+ "id": "0x564d8e6eb9d8",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21820,
+ "offset": 22954,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 21820,
+ "offset": 22954,
"col": 11,
"tokLen": 2
}
@@ -9765,7 +9995,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -9776,16 +10006,16 @@
]
},
{
- "id": "0x7feb10eaec58",
+ "id": "0x564d8e6ea6b0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21818,
+ "offset": 22952,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 21818,
+ "offset": 22952,
"col": 9,
"tokLen": 1
}
@@ -9793,11 +10023,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10ea9ce0",
+ "id": "0x564d8e6e5330",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -9806,16 +10036,16 @@
}
},
{
- "id": "0x7feb10eafe68",
+ "id": "0x564d8e6eb9c0",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 21823,
+ "offset": 22957,
"col": 14,
"tokLen": 8
},
"end": {
- "offset": 21823,
+ "offset": 22957,
"col": 14,
"tokLen": 8
}
@@ -9827,16 +10057,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x7feb10eaec78",
+ "id": "0x564d8e6ea6d0",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 21823,
+ "offset": 22957,
"col": 14,
"tokLen": 8
},
"end": {
- "offset": 21823,
+ "offset": 22957,
"col": 14,
"tokLen": 8
}
@@ -9852,33 +10082,33 @@
]
},
{
- "id": "0x7feb10eaff58",
+ "id": "0x564d8e6ebab0",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 21841,
- "line": 708,
+ "offset": 22975,
+ "line": 752,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 21854,
+ "offset": 22988,
"col": 22,
"tokLen": 6
}
},
"inner": [
{
- "id": "0x7feb10eaff28",
+ "id": "0x564d8e6eba80",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21848,
+ "offset": 22982,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 21854,
+ "offset": 22988,
"col": 22,
"tokLen": 6
}
@@ -9888,7 +10118,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37f35808",
+ "id": "0x564d8dc74b00",
"kind": "EnumConstantDecl",
"name": "MOENCH",
"type": {
@@ -9901,35 +10131,35 @@
]
},
{
- "id": "0x7feb10eb1298",
+ "id": "0x564d8e6ecef0",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 21866,
- "line": 709,
+ "offset": 23000,
+ "line": 753,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 21907,
- "line": 710,
+ "offset": 23041,
+ "line": 754,
"col": 22,
"tokLen": 7
}
},
"inner": [
{
- "id": "0x7feb10eb11e8",
+ "id": "0x564d8e6ece40",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 21870,
- "line": 709,
+ "offset": 23004,
+ "line": 753,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 21875,
+ "offset": 23009,
"col": 14,
"tokLen": 9
}
@@ -9941,16 +10171,16 @@
"adl": true,
"inner": [
{
- "id": "0x7feb10eb11d0",
+ "id": "0x564d8e6ece28",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 21872,
+ "offset": 23006,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 21872,
+ "offset": 23006,
"col": 11,
"tokLen": 2
}
@@ -9962,16 +10192,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x7feb10eb11b0",
+ "id": "0x564d8e6ece08",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21872,
+ "offset": 23006,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 21872,
+ "offset": 23006,
"col": 11,
"tokLen": 2
}
@@ -9981,7 +10211,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -9992,16 +10222,16 @@
]
},
{
- "id": "0x7feb10eaff88",
+ "id": "0x564d8e6ebae0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21870,
+ "offset": 23004,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 21870,
+ "offset": 23004,
"col": 9,
"tokLen": 1
}
@@ -10009,11 +10239,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10ea9ce0",
+ "id": "0x564d8e6e5330",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -10022,16 +10252,16 @@
}
},
{
- "id": "0x7feb10eb1198",
+ "id": "0x564d8e6ecdf0",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 21875,
+ "offset": 23009,
"col": 14,
"tokLen": 9
},
"end": {
- "offset": 21875,
+ "offset": 23009,
"col": 14,
"tokLen": 9
}
@@ -10043,16 +10273,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x7feb10eaffa8",
+ "id": "0x564d8e6ebb00",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 21875,
+ "offset": 23009,
"col": 14,
"tokLen": 9
},
"end": {
- "offset": 21875,
+ "offset": 23009,
"col": 14,
"tokLen": 9
}
@@ -10068,33 +10298,33 @@
]
},
{
- "id": "0x7feb10eb1288",
+ "id": "0x564d8e6ecee0",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 21894,
- "line": 710,
+ "offset": 23028,
+ "line": 754,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 21907,
+ "offset": 23041,
"col": 22,
"tokLen": 7
}
},
"inner": [
{
- "id": "0x7feb10eb1258",
+ "id": "0x564d8e6eceb0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21901,
+ "offset": 23035,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 21907,
+ "offset": 23041,
"col": 22,
"tokLen": 7
}
@@ -10104,7 +10334,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37f35858",
+ "id": "0x564d8dc74b58",
"kind": "EnumConstantDecl",
"name": "MYTHEN3",
"type": {
@@ -10117,35 +10347,35 @@
]
},
{
- "id": "0x7feb10eb25c8",
+ "id": "0x564d8e6ee320",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 21920,
- "line": 711,
+ "offset": 23054,
+ "line": 755,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 21963,
- "line": 712,
+ "offset": 23097,
+ "line": 756,
"col": 22,
"tokLen": 9
}
},
"inner": [
{
- "id": "0x7feb10eb2518",
+ "id": "0x564d8e6ee270",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 21924,
- "line": 711,
+ "offset": 23058,
+ "line": 755,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 21929,
+ "offset": 23063,
"col": 14,
"tokLen": 11
}
@@ -10157,16 +10387,16 @@
"adl": true,
"inner": [
{
- "id": "0x7feb10eb2500",
+ "id": "0x564d8e6ee258",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 21926,
+ "offset": 23060,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 21926,
+ "offset": 23060,
"col": 11,
"tokLen": 2
}
@@ -10178,16 +10408,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x7feb10eb24e0",
+ "id": "0x564d8e6ee238",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21926,
+ "offset": 23060,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 21926,
+ "offset": 23060,
"col": 11,
"tokLen": 2
}
@@ -10197,7 +10427,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -10208,16 +10438,16 @@
]
},
{
- "id": "0x7feb10eb12b8",
+ "id": "0x564d8e6ecf10",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21924,
+ "offset": 23058,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 21924,
+ "offset": 23058,
"col": 9,
"tokLen": 1
}
@@ -10225,11 +10455,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10ea9ce0",
+ "id": "0x564d8e6e5330",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -10238,16 +10468,16 @@
}
},
{
- "id": "0x7feb10eb24c8",
+ "id": "0x564d8e6ee220",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 21929,
+ "offset": 23063,
"col": 14,
"tokLen": 11
},
"end": {
- "offset": 21929,
+ "offset": 23063,
"col": 14,
"tokLen": 11
}
@@ -10259,16 +10489,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x7feb10eb12d8",
+ "id": "0x564d8e6ecf30",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 21929,
+ "offset": 23063,
"col": 14,
"tokLen": 11
},
"end": {
- "offset": 21929,
+ "offset": 23063,
"col": 14,
"tokLen": 11
}
@@ -10284,33 +10514,33 @@
]
},
{
- "id": "0x7feb10eb25b8",
+ "id": "0x564d8e6ee310",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 21950,
- "line": 712,
+ "offset": 23084,
+ "line": 756,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 21963,
+ "offset": 23097,
"col": 22,
"tokLen": 9
}
},
"inner": [
{
- "id": "0x7feb10eb2588",
+ "id": "0x564d8e6ee2e0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21957,
+ "offset": 23091,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 21963,
+ "offset": 23097,
"col": 22,
"tokLen": 9
}
@@ -10320,7 +10550,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37f358a8",
+ "id": "0x564d8dc74bb0",
"kind": "EnumConstantDecl",
"name": "GOTTHARD2",
"type": {
@@ -10333,35 +10563,35 @@
]
},
{
- "id": "0x7feb10eb3938",
+ "id": "0x564d8e6ef790",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 21978,
- "line": 713,
+ "offset": 23112,
+ "line": 757,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 22032,
- "line": 714,
+ "offset": 23166,
+ "line": 758,
"col": 22,
"tokLen": 20
}
},
"inner": [
{
- "id": "0x7feb10eb3888",
+ "id": "0x564d8e6ef6e0",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 21982,
- "line": 713,
+ "offset": 23116,
+ "line": 757,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 21987,
+ "offset": 23121,
"col": 14,
"tokLen": 22
}
@@ -10373,16 +10603,16 @@
"adl": true,
"inner": [
{
- "id": "0x7feb10eb3870",
+ "id": "0x564d8e6ef6c8",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 21984,
+ "offset": 23118,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 21984,
+ "offset": 23118,
"col": 11,
"tokLen": 2
}
@@ -10394,16 +10624,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x7feb10eb3850",
+ "id": "0x564d8e6ef6a8",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21984,
+ "offset": 23118,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 21984,
+ "offset": 23118,
"col": 11,
"tokLen": 2
}
@@ -10413,7 +10643,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -10424,16 +10654,16 @@
]
},
{
- "id": "0x7feb10eb25e8",
+ "id": "0x564d8e6ee340",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 21982,
+ "offset": 23116,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 21982,
+ "offset": 23116,
"col": 9,
"tokLen": 1
}
@@ -10441,11 +10671,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10ea9ce0",
+ "id": "0x564d8e6e5330",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -10454,16 +10684,16 @@
}
},
{
- "id": "0x7feb10eb3838",
+ "id": "0x564d8e6ef690",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 21987,
+ "offset": 23121,
"col": 14,
"tokLen": 22
},
"end": {
- "offset": 21987,
+ "offset": 23121,
"col": 14,
"tokLen": 22
}
@@ -10475,16 +10705,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x7feb10eb2608",
+ "id": "0x564d8e6ee360",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 21987,
+ "offset": 23121,
"col": 14,
"tokLen": 22
},
"end": {
- "offset": 21987,
+ "offset": 23121,
"col": 14,
"tokLen": 22
}
@@ -10500,33 +10730,33 @@
]
},
{
- "id": "0x7feb10eb3928",
+ "id": "0x564d8e6ef780",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 22019,
- "line": 714,
+ "offset": 23153,
+ "line": 758,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 22032,
+ "offset": 23166,
"col": 22,
"tokLen": 20
}
},
"inner": [
{
- "id": "0x7feb10eb38f8",
+ "id": "0x564d8e6ef750",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22026,
+ "offset": 23160,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 22032,
+ "offset": 23166,
"col": 22,
"tokLen": 20
}
@@ -10536,7 +10766,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37f358f8",
+ "id": "0x564d8dc74c08",
"kind": "EnumConstantDecl",
"name": "XILINX_CHIPTESTBOARD",
"type": {
@@ -10549,17 +10779,17 @@
]
},
{
- "id": "0x7feb10eb4000",
+ "id": "0x564d8e6efdb8",
"kind": "ExprWithCleanups",
"range": {
"begin": {
- "offset": 22058,
- "line": 715,
+ "offset": 23192,
+ "line": 759,
"col": 5,
"tokLen": 5
},
"end": {
- "offset": 22105,
+ "offset": 23239,
"col": 52,
"tokLen": 1
}
@@ -10571,16 +10801,16 @@
"cleanupsHaveSideEffects": true,
"inner": [
{
- "id": "0x7feb10eb3fe8",
+ "id": "0x564d8e6efda0",
"kind": "CXXThrowExpr",
"range": {
"begin": {
- "offset": 22058,
+ "offset": 23192,
"col": 5,
"tokLen": 5
},
"end": {
- "offset": 22105,
+ "offset": 23239,
"col": 52,
"tokLen": 1
}
@@ -10591,16 +10821,16 @@
"valueCategory": "prvalue",
"inner": [
{
- "id": "0x7feb10eb3fb8",
- "kind": "CXXConstructExpr",
+ "id": "0x564d8e6efd78",
+ "kind": "CXXFunctionalCastExpr",
"range": {
"begin": {
- "offset": 22064,
+ "offset": 23198,
"col": 11,
"tokLen": 12
},
"end": {
- "offset": 22105,
+ "offset": 23239,
"col": 52,
"tokLen": 1
}
@@ -10610,24 +10840,27 @@
"qualType": "RuntimeError"
},
"valueCategory": "prvalue",
- "ctorType": {
- "qualType": "void (RuntimeError &&) noexcept"
+ "castKind": "ConstructorConversion",
+ "conversionFunc": {
+ "id": "0x564d8d916d20",
+ "kind": "CXXConstructorDecl",
+ "name": "RuntimeError",
+ "type": {
+ "qualType": "void (const std::string &)"
+ }
},
- "elidable": true,
- "hadMultipleCandidates": true,
- "constructionKind": "complete",
"inner": [
{
- "id": "0x7feb10eb3fa0",
- "kind": "MaterializeTemporaryExpr",
+ "id": "0x564d8e6efd58",
+ "kind": "CXXBindTemporaryExpr",
"range": {
"begin": {
- "offset": 22064,
+ "offset": 23198,
"col": 11,
"tokLen": 12
},
"end": {
- "offset": 22105,
+ "offset": 23239,
"col": 52,
"tokLen": 1
}
@@ -10636,20 +10869,28 @@
"desugaredQualType": "sls::RuntimeError",
"qualType": "RuntimeError"
},
- "valueCategory": "xvalue",
- "storageDuration": "full expression",
+ "valueCategory": "prvalue",
+ "temp": "0x564d8e6efd50",
+ "dtor": {
+ "id": "0x564d8d917778",
+ "kind": "CXXDestructorDecl",
+ "name": "~RuntimeError",
+ "type": {
+ "qualType": "void () noexcept"
+ }
+ },
"inner": [
{
- "id": "0x7feb10eb3f78",
- "kind": "CXXFunctionalCastExpr",
+ "id": "0x564d8e6efd20",
+ "kind": "CXXConstructExpr",
"range": {
"begin": {
- "offset": 22064,
+ "offset": 23198,
"col": 11,
"tokLen": 12
},
"end": {
- "offset": 22105,
+ "offset": 23239,
"col": 52,
"tokLen": 1
}
@@ -10659,297 +10900,233 @@
"qualType": "RuntimeError"
},
"valueCategory": "prvalue",
- "castKind": "ConstructorConversion",
- "conversionFunc": {
- "id": "0x37b9a538",
- "kind": "CXXConstructorDecl",
- "name": "RuntimeError",
- "type": {
- "qualType": "void (const std::string &)"
- }
+ "ctorType": {
+ "qualType": "void (const std::string &)"
},
+ "hadMultipleCandidates": true,
+ "constructionKind": "complete",
"inner": [
{
- "id": "0x7feb10eb3f58",
- "kind": "CXXBindTemporaryExpr",
+ "id": "0x564d8e6efd08",
+ "kind": "MaterializeTemporaryExpr",
"range": {
"begin": {
- "offset": 22064,
- "col": 11,
- "tokLen": 12
+ "offset": 23211,
+ "col": 24,
+ "tokLen": 24
},
"end": {
- "offset": 22105,
- "col": 52,
+ "offset": 23238,
+ "col": 51,
"tokLen": 1
}
},
"type": {
- "desugaredQualType": "sls::RuntimeError",
- "qualType": "RuntimeError"
- },
- "valueCategory": "prvalue",
- "temp": "0x7feb10eb3f50",
- "dtor": {
- "id": "0x37b9af20",
- "kind": "CXXDestructorDecl",
- "name": "~RuntimeError",
- "type": {
- "qualType": "void () noexcept"
- }
+ "desugaredQualType": "const std::basic_string",
+ "qualType": "const basic_string, allocator>"
},
+ "valueCategory": "lvalue",
+ "storageDuration": "full expression",
+ "boundToLValueRef": true,
"inner": [
{
- "id": "0x7feb10eb3f20",
- "kind": "CXXConstructExpr",
+ "id": "0x564d8e6efcf0",
+ "kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22064,
- "col": 11,
- "tokLen": 12
+ "offset": 23211,
+ "col": 24,
+ "tokLen": 24
},
"end": {
- "offset": 22105,
- "col": 52,
+ "offset": 23238,
+ "col": 51,
"tokLen": 1
}
},
"type": {
- "desugaredQualType": "sls::RuntimeError",
- "qualType": "RuntimeError"
+ "desugaredQualType": "const std::basic_string",
+ "qualType": "const basic_string, allocator>"
},
"valueCategory": "prvalue",
- "ctorType": {
- "qualType": "void (const std::string &)"
- },
- "hadMultipleCandidates": true,
- "constructionKind": "complete",
+ "castKind": "NoOp",
"inner": [
{
- "id": "0x7feb10eb3f08",
- "kind": "MaterializeTemporaryExpr",
+ "id": "0x564d8e6efcd0",
+ "kind": "CXXBindTemporaryExpr",
"range": {
"begin": {
- "offset": 22077,
+ "offset": 23211,
"col": 24,
"tokLen": 24
},
"end": {
- "offset": 22104,
+ "offset": 23238,
"col": 51,
"tokLen": 1
}
},
"type": {
- "desugaredQualType": "const std::basic_string",
- "qualType": "const basic_string, allocator>"
+ "desugaredQualType": "std::basic_string",
+ "qualType": "basic_string, allocator>"
+ },
+ "valueCategory": "prvalue",
+ "temp": "0x564d8e6efcc8",
+ "dtor": {
+ "id": "0x564d8d69a348",
+ "kind": "CXXDestructorDecl",
+ "name": "~basic_string",
+ "type": {
+ "qualType": "void () noexcept"
+ }
},
- "valueCategory": "lvalue",
- "storageDuration": "full expression",
- "boundToLValueRef": true,
"inner": [
{
- "id": "0x7feb10eb3ef0",
- "kind": "ImplicitCastExpr",
+ "id": "0x564d8e6efc90",
+ "kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 22077,
+ "offset": 23211,
"col": 24,
"tokLen": 24
},
"end": {
- "offset": 22104,
+ "offset": 23238,
"col": 51,
"tokLen": 1
}
},
"type": {
- "desugaredQualType": "const std::basic_string",
- "qualType": "const basic_string, allocator>"
+ "desugaredQualType": "std::basic_string",
+ "qualType": "basic_string, allocator>"
},
"valueCategory": "prvalue",
- "castKind": "NoOp",
+ "adl": true,
"inner": [
{
- "id": "0x7feb10eb3ed0",
- "kind": "CXXBindTemporaryExpr",
+ "id": "0x564d8e6efc78",
+ "kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22077,
+ "offset": 23236,
+ "col": 49,
+ "tokLen": 1
+ },
+ "end": {
+ "offset": 23236,
+ "col": 49,
+ "tokLen": 1
+ }
+ },
+ "type": {
+ "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)"
+ },
+ "valueCategory": "prvalue",
+ "castKind": "FunctionToPointerDecay",
+ "inner": [
+ {
+ "id": "0x564d8e6efc58",
+ "kind": "DeclRefExpr",
+ "range": {
+ "begin": {
+ "offset": 23236,
+ "col": 49,
+ "tokLen": 1
+ },
+ "end": {
+ "offset": 23236,
+ "col": 49,
+ "tokLen": 1
+ }
+ },
+ "type": {
+ "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)"
+ },
+ "valueCategory": "lvalue",
+ "referencedDecl": {
+ "id": "0x564d8dd928c0",
+ "kind": "FunctionDecl",
+ "name": "operator+",
+ "type": {
+ "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)"
+ }
+ }
+ }
+ ]
+ },
+ {
+ "id": "0x564d8e6efc40",
+ "kind": "ImplicitCastExpr",
+ "range": {
+ "begin": {
+ "offset": 23211,
"col": 24,
"tokLen": 24
},
"end": {
- "offset": 22104,
+ "offset": 23211,
+ "col": 24,
+ "tokLen": 24
+ }
+ },
+ "type": {
+ "qualType": "const char *"
+ },
+ "valueCategory": "prvalue",
+ "castKind": "ArrayToPointerDecay",
+ "inner": [
+ {
+ "id": "0x564d8e6ef7c0",
+ "kind": "StringLiteral",
+ "range": {
+ "begin": {
+ "offset": 23211,
+ "col": 24,
+ "tokLen": 24
+ },
+ "end": {
+ "offset": 23211,
+ "col": 24,
+ "tokLen": 24
+ }
+ },
+ "type": {
+ "qualType": "const char[23]"
+ },
+ "valueCategory": "lvalue",
+ "value": "\"Unknown detector type \""
+ }
+ ]
+ },
+ {
+ "id": "0x564d8e6ef7f0",
+ "kind": "DeclRefExpr",
+ "range": {
+ "begin": {
+ "offset": 23238,
+ "col": 51,
+ "tokLen": 1
+ },
+ "end": {
+ "offset": 23238,
"col": 51,
"tokLen": 1
}
},
"type": {
- "desugaredQualType": "std::basic_string",
- "qualType": "basic_string, allocator>"
+ "desugaredQualType": "const std::basic_string",
+ "qualType": "const std::string",
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
- "valueCategory": "prvalue",
- "temp": "0x7feb10eb3ec8",
- "dtor": {
- "id": "0x37aebda8",
- "kind": "CXXDestructorDecl",
- "name": "~basic_string",
+ "valueCategory": "lvalue",
+ "referencedDecl": {
+ "id": "0x564d8e6e5330",
+ "kind": "ParmVarDecl",
+ "name": "s",
"type": {
- "qualType": "void () noexcept"
+ "qualType": "const std::string &"
}
- },
- "inner": [
- {
- "id": "0x7feb10eb3e90",
- "kind": "CXXOperatorCallExpr",
- "range": {
- "begin": {
- "offset": 22077,
- "col": 24,
- "tokLen": 24
- },
- "end": {
- "offset": 22104,
- "col": 51,
- "tokLen": 1
- }
- },
- "type": {
- "desugaredQualType": "std::basic_string",
- "qualType": "basic_string, allocator>"
- },
- "valueCategory": "prvalue",
- "adl": true,
- "inner": [
- {
- "id": "0x7feb10eb3e78",
- "kind": "ImplicitCastExpr",
- "range": {
- "begin": {
- "offset": 22102,
- "col": 49,
- "tokLen": 1
- },
- "end": {
- "offset": 22102,
- "col": 49,
- "tokLen": 1
- }
- },
- "type": {
- "qualType": "basic_string, allocator> (*)(const char *, const basic_string, allocator> &)"
- },
- "valueCategory": "prvalue",
- "castKind": "FunctionToPointerDecay",
- "inner": [
- {
- "id": "0x7feb10eb3e58",
- "kind": "DeclRefExpr",
- "range": {
- "begin": {
- "offset": 22102,
- "col": 49,
- "tokLen": 1
- },
- "end": {
- "offset": 22102,
- "col": 49,
- "tokLen": 1
- }
- },
- "type": {
- "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)"
- },
- "valueCategory": "lvalue",
- "referencedDecl": {
- "id": "0x3803f998",
- "kind": "FunctionDecl",
- "name": "operator+",
- "type": {
- "qualType": "basic_string, allocator> (const char *, const basic_string, allocator> &)"
- }
- }
- }
- ]
- },
- {
- "id": "0x7feb10eb3e40",
- "kind": "ImplicitCastExpr",
- "range": {
- "begin": {
- "offset": 22077,
- "col": 24,
- "tokLen": 24
- },
- "end": {
- "offset": 22077,
- "col": 24,
- "tokLen": 24
- }
- },
- "type": {
- "qualType": "const char *"
- },
- "valueCategory": "prvalue",
- "castKind": "ArrayToPointerDecay",
- "inner": [
- {
- "id": "0x7feb10eb3968",
- "kind": "StringLiteral",
- "range": {
- "begin": {
- "offset": 22077,
- "col": 24,
- "tokLen": 24
- },
- "end": {
- "offset": 22077,
- "col": 24,
- "tokLen": 24
- }
- },
- "type": {
- "qualType": "const char[23]"
- },
- "valueCategory": "lvalue",
- "value": "\"Unknown detector type \""
- }
- ]
- },
- {
- "id": "0x7feb10eb3998",
- "kind": "DeclRefExpr",
- "range": {
- "begin": {
- "offset": 22104,
- "col": 51,
- "tokLen": 1
- },
- "end": {
- "offset": 22104,
- "col": 51,
- "tokLen": 1
- }
- },
- "type": {
- "desugaredQualType": "const std::basic_string",
- "qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
- },
- "valueCategory": "lvalue",
- "referencedDecl": {
- "id": "0x7feb10ea9ce0",
- "kind": "ParmVarDecl",
- "name": "s",
- "type": {
- "qualType": "const std::string &"
- }
- }
- }
- ]
- }
- ]
+ }
}
]
}
@@ -10974,29 +11151,29 @@
]
}
{
- "id": "0x7feb10eb41e8",
+ "id": "0x564d8e6effb0",
"kind": "FunctionDecl",
"loc": {
- "offset": 22146,
+ "offset": 23280,
"file": "ToString.cpp",
- "line": 718,
+ "line": 762,
"col": 36,
"tokLen": 8
},
"range": {
"begin": {
- "offset": 22111,
+ "offset": 23245,
"col": 1,
"tokLen": 8
},
"end": {
- "offset": 23395,
- "line": 760,
+ "offset": 24529,
+ "line": 804,
"col": 1,
"tokLen": 1
}
},
- "previousDecl": "0x385a6528",
+ "previousDecl": "0x564d8e3a6360",
"name": "StringTo",
"mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16detectorSettingsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE",
"type": {
@@ -11010,13 +11187,13 @@
},
"inner": [
{
- "id": "0x37ff0eb0",
+ "id": "0x564d8dd58ab0",
"kind": "EnumType",
"type": {
"qualType": "slsDetectorDefs::detectorSettings"
},
"decl": {
- "id": "0x37ff0e08",
+ "id": "0x564d8dd58a08",
"kind": "EnumDecl",
"name": "detectorSettings"
}
@@ -11024,22 +11201,22 @@
]
},
{
- "id": "0x7feb10eb4118",
+ "id": "0x564d8e6efed8",
"kind": "ParmVarDecl",
"loc": {
- "offset": 22174,
- "line": 718,
+ "offset": 23308,
+ "line": 762,
"col": 64,
"tokLen": 1
},
"range": {
"begin": {
- "offset": 22155,
+ "offset": 23289,
"col": 45,
"tokLen": 5
},
"end": {
- "offset": 22174,
+ "offset": 23308,
"col": 64,
"tokLen": 1
}
@@ -11051,52 +11228,52 @@
}
},
{
- "id": "0x38727888",
+ "id": "0x564d8e709b78",
"kind": "CompoundStmt",
"range": {
"begin": {
- "offset": 22177,
+ "offset": 23311,
"col": 67,
"tokLen": 1
},
"end": {
- "offset": 23395,
- "line": 760,
+ "offset": 24529,
+ "line": 804,
"col": 1,
"tokLen": 1
}
},
"inner": [
{
- "id": "0x7feb10eb56d8",
+ "id": "0x564d8e6f15a0",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 22183,
- "line": 719,
+ "offset": 23317,
+ "line": 763,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 22225,
- "line": 720,
+ "offset": 23359,
+ "line": 764,
"col": 22,
"tokLen": 8
}
},
"inner": [
{
- "id": "0x7feb10eb5628",
+ "id": "0x564d8e6f14f0",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 22187,
- "line": 719,
+ "offset": 23321,
+ "line": 763,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22192,
+ "offset": 23326,
"col": 14,
"tokLen": 10
}
@@ -11108,16 +11285,16 @@
"adl": true,
"inner": [
{
- "id": "0x7feb10eb5610",
+ "id": "0x564d8e6f14d8",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22189,
+ "offset": 23323,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22189,
+ "offset": 23323,
"col": 11,
"tokLen": 2
}
@@ -11129,16 +11306,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x7feb10eb55f0",
+ "id": "0x564d8e6f14b8",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22189,
+ "offset": 23323,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22189,
+ "offset": 23323,
"col": 11,
"tokLen": 2
}
@@ -11148,7 +11325,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -11159,16 +11336,16 @@
]
},
{
- "id": "0x7feb10eb43d0",
+ "id": "0x564d8e6f0198",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22187,
+ "offset": 23321,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22187,
+ "offset": 23321,
"col": 9,
"tokLen": 1
}
@@ -11176,11 +11353,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10eb4118",
+ "id": "0x564d8e6efed8",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -11189,16 +11366,16 @@
}
},
{
- "id": "0x7feb10eb55d8",
+ "id": "0x564d8e6f14a0",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22192,
+ "offset": 23326,
"col": 14,
"tokLen": 10
},
"end": {
- "offset": 22192,
+ "offset": 23326,
"col": 14,
"tokLen": 10
}
@@ -11210,16 +11387,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x7feb10eb43f0",
+ "id": "0x564d8e6f01b8",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 22192,
+ "offset": 23326,
"col": 14,
"tokLen": 10
},
"end": {
- "offset": 22192,
+ "offset": 23326,
"col": 14,
"tokLen": 10
}
@@ -11235,33 +11412,33 @@
]
},
{
- "id": "0x7feb10eb56c8",
+ "id": "0x564d8e6f1590",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 22212,
- "line": 720,
+ "offset": 23346,
+ "line": 764,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 22225,
+ "offset": 23359,
"col": 22,
"tokLen": 8
}
},
"inner": [
{
- "id": "0x7feb10eb5698",
+ "id": "0x564d8e6f1560",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22219,
+ "offset": 23353,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 22225,
+ "offset": 23359,
"col": 22,
"tokLen": 8
}
@@ -11271,7 +11448,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37ff0ed0",
+ "id": "0x564d8dd58ad0",
"kind": "EnumConstantDecl",
"name": "STANDARD",
"type": {
@@ -11284,35 +11461,35 @@
]
},
{
- "id": "0x7feb10eb6a08",
+ "id": "0x564d8e6f29d0",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 22239,
- "line": 721,
+ "offset": 23373,
+ "line": 765,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 22277,
- "line": 722,
+ "offset": 23411,
+ "line": 766,
"col": 22,
"tokLen": 4
}
},
"inner": [
{
- "id": "0x7feb10eb6958",
+ "id": "0x564d8e6f2920",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 22243,
- "line": 721,
+ "offset": 23377,
+ "line": 765,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22248,
+ "offset": 23382,
"col": 14,
"tokLen": 6
}
@@ -11324,16 +11501,16 @@
"adl": true,
"inner": [
{
- "id": "0x7feb10eb6940",
+ "id": "0x564d8e6f2908",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22245,
+ "offset": 23379,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22245,
+ "offset": 23379,
"col": 11,
"tokLen": 2
}
@@ -11345,16 +11522,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x7feb10eb6920",
+ "id": "0x564d8e6f28e8",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22245,
+ "offset": 23379,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22245,
+ "offset": 23379,
"col": 11,
"tokLen": 2
}
@@ -11364,7 +11541,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -11375,16 +11552,16 @@
]
},
{
- "id": "0x7feb10eb56f8",
+ "id": "0x564d8e6f15c0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22243,
+ "offset": 23377,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22243,
+ "offset": 23377,
"col": 9,
"tokLen": 1
}
@@ -11392,11 +11569,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10eb4118",
+ "id": "0x564d8e6efed8",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -11405,16 +11582,16 @@
}
},
{
- "id": "0x7feb10eb6908",
+ "id": "0x564d8e6f28d0",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22248,
+ "offset": 23382,
"col": 14,
"tokLen": 6
},
"end": {
- "offset": 22248,
+ "offset": 23382,
"col": 14,
"tokLen": 6
}
@@ -11426,16 +11603,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x7feb10eb5718",
+ "id": "0x564d8e6f15e0",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 22248,
+ "offset": 23382,
"col": 14,
"tokLen": 6
},
"end": {
- "offset": 22248,
+ "offset": 23382,
"col": 14,
"tokLen": 6
}
@@ -11451,33 +11628,33 @@
]
},
{
- "id": "0x7feb10eb69f8",
+ "id": "0x564d8e6f29c0",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 22264,
- "line": 722,
+ "offset": 23398,
+ "line": 766,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 22277,
+ "offset": 23411,
"col": 22,
"tokLen": 4
}
},
"inner": [
{
- "id": "0x7feb10eb69c8",
+ "id": "0x564d8e6f2990",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22271,
+ "offset": 23405,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 22277,
+ "offset": 23411,
"col": 22,
"tokLen": 4
}
@@ -11487,7 +11664,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37ff0f20",
+ "id": "0x564d8dd58b28",
"kind": "EnumConstantDecl",
"name": "FAST",
"type": {
@@ -11500,35 +11677,35 @@
]
},
{
- "id": "0x7feb10eb7d38",
+ "id": "0x564d8e6f3e00",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 22287,
- "line": 723,
+ "offset": 23421,
+ "line": 767,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 22329,
- "line": 724,
+ "offset": 23463,
+ "line": 768,
"col": 22,
"tokLen": 8
}
},
"inner": [
{
- "id": "0x7feb10eb7c88",
+ "id": "0x564d8e6f3d50",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 22291,
- "line": 723,
+ "offset": 23425,
+ "line": 767,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22296,
+ "offset": 23430,
"col": 14,
"tokLen": 10
}
@@ -11540,16 +11717,16 @@
"adl": true,
"inner": [
{
- "id": "0x7feb10eb7c70",
+ "id": "0x564d8e6f3d38",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22293,
+ "offset": 23427,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22293,
+ "offset": 23427,
"col": 11,
"tokLen": 2
}
@@ -11561,16 +11738,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x7feb10eb7c50",
+ "id": "0x564d8e6f3d18",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22293,
+ "offset": 23427,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22293,
+ "offset": 23427,
"col": 11,
"tokLen": 2
}
@@ -11580,7 +11757,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -11591,16 +11768,16 @@
]
},
{
- "id": "0x7feb10eb6a28",
+ "id": "0x564d8e6f29f0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22291,
+ "offset": 23425,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22291,
+ "offset": 23425,
"col": 9,
"tokLen": 1
}
@@ -11608,11 +11785,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10eb4118",
+ "id": "0x564d8e6efed8",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -11621,16 +11798,16 @@
}
},
{
- "id": "0x7feb10eb7c38",
+ "id": "0x564d8e6f3d00",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22296,
+ "offset": 23430,
"col": 14,
"tokLen": 10
},
"end": {
- "offset": 22296,
+ "offset": 23430,
"col": 14,
"tokLen": 10
}
@@ -11642,16 +11819,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x7feb10eb6a48",
+ "id": "0x564d8e6f2a10",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 22296,
+ "offset": 23430,
"col": 14,
"tokLen": 10
},
"end": {
- "offset": 22296,
+ "offset": 23430,
"col": 14,
"tokLen": 10
}
@@ -11667,33 +11844,33 @@
]
},
{
- "id": "0x7feb10eb7d28",
+ "id": "0x564d8e6f3df0",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 22316,
- "line": 724,
+ "offset": 23450,
+ "line": 768,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 22329,
+ "offset": 23463,
"col": 22,
"tokLen": 8
}
},
"inner": [
{
- "id": "0x7feb10eb7cf8",
+ "id": "0x564d8e6f3dc0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22323,
+ "offset": 23457,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 22329,
+ "offset": 23463,
"col": 22,
"tokLen": 8
}
@@ -11703,7 +11880,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37ff0f70",
+ "id": "0x564d8dd58b80",
"kind": "EnumConstantDecl",
"name": "HIGHGAIN",
"type": {
@@ -11716,35 +11893,35 @@
]
},
{
- "id": "0x7feb10eb9068",
+ "id": "0x564d8e6f5230",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 22343,
- "line": 725,
+ "offset": 23477,
+ "line": 769,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 22388,
- "line": 726,
+ "offset": 23522,
+ "line": 770,
"col": 22,
"tokLen": 11
}
},
"inner": [
{
- "id": "0x7feb10eb8fb8",
+ "id": "0x564d8e6f5180",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 22347,
- "line": 725,
+ "offset": 23481,
+ "line": 769,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22352,
+ "offset": 23486,
"col": 14,
"tokLen": 13
}
@@ -11756,16 +11933,16 @@
"adl": true,
"inner": [
{
- "id": "0x7feb10eb8fa0",
+ "id": "0x564d8e6f5168",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22349,
+ "offset": 23483,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22349,
+ "offset": 23483,
"col": 11,
"tokLen": 2
}
@@ -11777,16 +11954,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x7feb10eb8f80",
+ "id": "0x564d8e6f5148",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22349,
+ "offset": 23483,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22349,
+ "offset": 23483,
"col": 11,
"tokLen": 2
}
@@ -11796,7 +11973,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -11807,16 +11984,16 @@
]
},
{
- "id": "0x7feb10eb7d58",
+ "id": "0x564d8e6f3e20",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22347,
+ "offset": 23481,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22347,
+ "offset": 23481,
"col": 9,
"tokLen": 1
}
@@ -11824,11 +12001,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10eb4118",
+ "id": "0x564d8e6efed8",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -11837,16 +12014,16 @@
}
},
{
- "id": "0x7feb10eb8f68",
+ "id": "0x564d8e6f5130",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22352,
+ "offset": 23486,
"col": 14,
"tokLen": 13
},
"end": {
- "offset": 22352,
+ "offset": 23486,
"col": 14,
"tokLen": 13
}
@@ -11858,16 +12035,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x7feb10eb7d78",
+ "id": "0x564d8e6f3e40",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 22352,
+ "offset": 23486,
"col": 14,
"tokLen": 13
},
"end": {
- "offset": 22352,
+ "offset": 23486,
"col": 14,
"tokLen": 13
}
@@ -11883,33 +12060,33 @@
]
},
{
- "id": "0x7feb10eb9058",
+ "id": "0x564d8e6f5220",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 22375,
- "line": 726,
+ "offset": 23509,
+ "line": 770,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 22388,
+ "offset": 23522,
"col": 22,
"tokLen": 11
}
},
"inner": [
{
- "id": "0x7feb10eb9028",
+ "id": "0x564d8e6f51f0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22382,
+ "offset": 23516,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 22388,
+ "offset": 23522,
"col": 22,
"tokLen": 11
}
@@ -11919,7 +12096,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37ff0fc0",
+ "id": "0x564d8dd58bd8",
"kind": "EnumConstantDecl",
"name": "DYNAMICGAIN",
"type": {
@@ -11932,35 +12109,35 @@
]
},
{
- "id": "0x7feb10eba398",
+ "id": "0x564d8e6f6660",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 22405,
- "line": 727,
+ "offset": 23539,
+ "line": 771,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 22446,
- "line": 728,
+ "offset": 23580,
+ "line": 772,
"col": 22,
"tokLen": 7
}
},
"inner": [
{
- "id": "0x7feb10eba2e8",
+ "id": "0x564d8e6f65b0",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 22409,
- "line": 727,
+ "offset": 23543,
+ "line": 771,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22414,
+ "offset": 23548,
"col": 14,
"tokLen": 9
}
@@ -11972,16 +12149,16 @@
"adl": true,
"inner": [
{
- "id": "0x7feb10eba2d0",
+ "id": "0x564d8e6f6598",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22411,
+ "offset": 23545,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22411,
+ "offset": 23545,
"col": 11,
"tokLen": 2
}
@@ -11993,16 +12170,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x7feb10eba2b0",
+ "id": "0x564d8e6f6578",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22411,
+ "offset": 23545,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22411,
+ "offset": 23545,
"col": 11,
"tokLen": 2
}
@@ -12012,7 +12189,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -12023,16 +12200,16 @@
]
},
{
- "id": "0x7feb10eb9088",
+ "id": "0x564d8e6f5250",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22409,
+ "offset": 23543,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22409,
+ "offset": 23543,
"col": 9,
"tokLen": 1
}
@@ -12040,11 +12217,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10eb4118",
+ "id": "0x564d8e6efed8",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -12053,16 +12230,16 @@
}
},
{
- "id": "0x7feb10eba298",
+ "id": "0x564d8e6f6560",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22414,
+ "offset": 23548,
"col": 14,
"tokLen": 9
},
"end": {
- "offset": 22414,
+ "offset": 23548,
"col": 14,
"tokLen": 9
}
@@ -12074,16 +12251,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x7feb10eb90a8",
+ "id": "0x564d8e6f5270",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 22414,
+ "offset": 23548,
"col": 14,
"tokLen": 9
},
"end": {
- "offset": 22414,
+ "offset": 23548,
"col": 14,
"tokLen": 9
}
@@ -12099,33 +12276,33 @@
]
},
{
- "id": "0x7feb10eba388",
+ "id": "0x564d8e6f6650",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 22433,
- "line": 728,
+ "offset": 23567,
+ "line": 772,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 22446,
+ "offset": 23580,
"col": 22,
"tokLen": 7
}
},
"inner": [
{
- "id": "0x7feb10eba358",
+ "id": "0x564d8e6f6620",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22440,
+ "offset": 23574,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 22446,
+ "offset": 23580,
"col": 22,
"tokLen": 7
}
@@ -12135,7 +12312,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37ff1010",
+ "id": "0x564d8dd58c30",
"kind": "EnumConstantDecl",
"name": "LOWGAIN",
"type": {
@@ -12148,35 +12325,35 @@
]
},
{
- "id": "0x7feb10ebb6c8",
+ "id": "0x564d8e6f7a90",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 22459,
- "line": 729,
+ "offset": 23593,
+ "line": 773,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 22503,
- "line": 730,
+ "offset": 23637,
+ "line": 774,
"col": 22,
"tokLen": 10
}
},
"inner": [
{
- "id": "0x7feb10ebb618",
+ "id": "0x564d8e6f79e0",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 22463,
- "line": 729,
+ "offset": 23597,
+ "line": 773,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22468,
+ "offset": 23602,
"col": 14,
"tokLen": 12
}
@@ -12188,16 +12365,16 @@
"adl": true,
"inner": [
{
- "id": "0x7feb10ebb600",
+ "id": "0x564d8e6f79c8",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22465,
+ "offset": 23599,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22465,
+ "offset": 23599,
"col": 11,
"tokLen": 2
}
@@ -12209,16 +12386,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x7feb10ebb5e0",
+ "id": "0x564d8e6f79a8",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22465,
+ "offset": 23599,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22465,
+ "offset": 23599,
"col": 11,
"tokLen": 2
}
@@ -12228,7 +12405,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -12239,16 +12416,16 @@
]
},
{
- "id": "0x7feb10eba3b8",
+ "id": "0x564d8e6f6680",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22463,
+ "offset": 23597,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22463,
+ "offset": 23597,
"col": 9,
"tokLen": 1
}
@@ -12256,11 +12433,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10eb4118",
+ "id": "0x564d8e6efed8",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -12269,16 +12446,16 @@
}
},
{
- "id": "0x7feb10ebb5c8",
+ "id": "0x564d8e6f7990",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22468,
+ "offset": 23602,
"col": 14,
"tokLen": 12
},
"end": {
- "offset": 22468,
+ "offset": 23602,
"col": 14,
"tokLen": 12
}
@@ -12290,16 +12467,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x7feb10eba3d8",
+ "id": "0x564d8e6f66a0",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 22468,
+ "offset": 23602,
"col": 14,
"tokLen": 12
},
"end": {
- "offset": 22468,
+ "offset": 23602,
"col": 14,
"tokLen": 12
}
@@ -12315,33 +12492,33 @@
]
},
{
- "id": "0x7feb10ebb6b8",
+ "id": "0x564d8e6f7a80",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 22490,
- "line": 730,
+ "offset": 23624,
+ "line": 774,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 22503,
+ "offset": 23637,
"col": 22,
"tokLen": 10
}
},
"inner": [
{
- "id": "0x7feb10ebb688",
+ "id": "0x564d8e6f7a50",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22497,
+ "offset": 23631,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 22503,
+ "offset": 23637,
"col": 22,
"tokLen": 10
}
@@ -12351,7 +12528,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37ff1060",
+ "id": "0x564d8dd58c88",
"kind": "EnumConstantDecl",
"name": "MEDIUMGAIN",
"type": {
@@ -12364,35 +12541,35 @@
]
},
{
- "id": "0x38717878",
+ "id": "0x564d8e6f8ec0",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 22519,
- "line": 731,
+ "offset": 23653,
+ "line": 775,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 22565,
- "line": 732,
+ "offset": 23699,
+ "line": 776,
"col": 22,
"tokLen": 12
}
},
"inner": [
{
- "id": "0x387177c8",
+ "id": "0x564d8e6f8e10",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 22523,
- "line": 731,
+ "offset": 23657,
+ "line": 775,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22528,
+ "offset": 23662,
"col": 14,
"tokLen": 14
}
@@ -12404,16 +12581,16 @@
"adl": true,
"inner": [
{
- "id": "0x387177b0",
+ "id": "0x564d8e6f8df8",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22525,
+ "offset": 23659,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22525,
+ "offset": 23659,
"col": 11,
"tokLen": 2
}
@@ -12425,16 +12602,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x38717790",
+ "id": "0x564d8e6f8dd8",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22525,
+ "offset": 23659,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22525,
+ "offset": 23659,
"col": 11,
"tokLen": 2
}
@@ -12444,7 +12621,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -12455,16 +12632,16 @@
]
},
{
- "id": "0x7feb10ebb6e8",
+ "id": "0x564d8e6f7ab0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22523,
+ "offset": 23657,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22523,
+ "offset": 23657,
"col": 9,
"tokLen": 1
}
@@ -12472,11 +12649,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10eb4118",
+ "id": "0x564d8e6efed8",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -12485,16 +12662,16 @@
}
},
{
- "id": "0x38717778",
+ "id": "0x564d8e6f8dc0",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22528,
+ "offset": 23662,
"col": 14,
"tokLen": 14
},
"end": {
- "offset": 22528,
+ "offset": 23662,
"col": 14,
"tokLen": 14
}
@@ -12506,16 +12683,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x7feb10ebb708",
+ "id": "0x564d8e6f7ad0",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 22528,
+ "offset": 23662,
"col": 14,
"tokLen": 14
},
"end": {
- "offset": 22528,
+ "offset": 23662,
"col": 14,
"tokLen": 14
}
@@ -12531,33 +12708,33 @@
]
},
{
- "id": "0x38717868",
+ "id": "0x564d8e6f8eb0",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 22552,
- "line": 732,
+ "offset": 23686,
+ "line": 776,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 22565,
+ "offset": 23699,
"col": 22,
"tokLen": 12
}
},
"inner": [
{
- "id": "0x38717838",
+ "id": "0x564d8e6f8e80",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22559,
+ "offset": 23693,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 22565,
+ "offset": 23699,
"col": 22,
"tokLen": 12
}
@@ -12567,7 +12744,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37ff10b0",
+ "id": "0x564d8dd58ce0",
"kind": "EnumConstantDecl",
"name": "VERYHIGHGAIN",
"type": {
@@ -12580,35 +12757,35 @@
]
},
{
- "id": "0x38718ba8",
+ "id": "0x564d8e6fa2f0",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 22583,
- "line": 733,
+ "offset": 23717,
+ "line": 777,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 22626,
- "line": 734,
+ "offset": 23760,
+ "line": 778,
"col": 22,
"tokLen": 9
}
},
"inner": [
{
- "id": "0x38718af8",
+ "id": "0x564d8e6fa240",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 22587,
- "line": 733,
+ "offset": 23721,
+ "line": 777,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22592,
+ "offset": 23726,
"col": 14,
"tokLen": 11
}
@@ -12620,16 +12797,16 @@
"adl": true,
"inner": [
{
- "id": "0x38718ae0",
+ "id": "0x564d8e6fa228",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22589,
+ "offset": 23723,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22589,
+ "offset": 23723,
"col": 11,
"tokLen": 2
}
@@ -12641,16 +12818,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x38718ac0",
+ "id": "0x564d8e6fa208",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22589,
+ "offset": 23723,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22589,
+ "offset": 23723,
"col": 11,
"tokLen": 2
}
@@ -12660,7 +12837,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -12671,16 +12848,16 @@
]
},
{
- "id": "0x38717898",
+ "id": "0x564d8e6f8ee0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22587,
+ "offset": 23721,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22587,
+ "offset": 23721,
"col": 9,
"tokLen": 1
}
@@ -12688,11 +12865,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10eb4118",
+ "id": "0x564d8e6efed8",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -12701,16 +12878,16 @@
}
},
{
- "id": "0x38718aa8",
+ "id": "0x564d8e6fa1f0",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22592,
+ "offset": 23726,
"col": 14,
"tokLen": 11
},
"end": {
- "offset": 22592,
+ "offset": 23726,
"col": 14,
"tokLen": 11
}
@@ -12722,16 +12899,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x387178b8",
+ "id": "0x564d8e6f8f00",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 22592,
+ "offset": 23726,
"col": 14,
"tokLen": 11
},
"end": {
- "offset": 22592,
+ "offset": 23726,
"col": 14,
"tokLen": 11
}
@@ -12747,33 +12924,33 @@
]
},
{
- "id": "0x38718b98",
+ "id": "0x564d8e6fa2e0",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 22613,
- "line": 734,
+ "offset": 23747,
+ "line": 778,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 22626,
+ "offset": 23760,
"col": 22,
"tokLen": 9
}
},
"inner": [
{
- "id": "0x38718b68",
+ "id": "0x564d8e6fa2b0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22620,
+ "offset": 23754,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 22626,
+ "offset": 23760,
"col": 22,
"tokLen": 9
}
@@ -12783,7 +12960,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37ff1100",
+ "id": "0x564d8dd58d38",
"kind": "EnumConstantDecl",
"name": "HIGHGAIN0",
"type": {
@@ -12796,35 +12973,35 @@
]
},
{
- "id": "0x38719ed8",
+ "id": "0x564d8e6fb730",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 22641,
- "line": 735,
+ "offset": 23775,
+ "line": 779,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 22683,
- "line": 736,
+ "offset": 23817,
+ "line": 780,
"col": 22,
"tokLen": 8
}
},
"inner": [
{
- "id": "0x38719e28",
+ "id": "0x564d8e6fb680",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 22645,
- "line": 735,
+ "offset": 23779,
+ "line": 779,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22650,
+ "offset": 23784,
"col": 14,
"tokLen": 10
}
@@ -12836,16 +13013,16 @@
"adl": true,
"inner": [
{
- "id": "0x38719e10",
+ "id": "0x564d8e6fb668",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22647,
+ "offset": 23781,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22647,
+ "offset": 23781,
"col": 11,
"tokLen": 2
}
@@ -12857,16 +13034,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x38719df0",
+ "id": "0x564d8e6fb648",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22647,
+ "offset": 23781,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22647,
+ "offset": 23781,
"col": 11,
"tokLen": 2
}
@@ -12876,7 +13053,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -12887,16 +13064,16 @@
]
},
{
- "id": "0x38718bc8",
+ "id": "0x564d8e6fa310",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22645,
+ "offset": 23779,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22645,
+ "offset": 23779,
"col": 9,
"tokLen": 1
}
@@ -12904,11 +13081,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10eb4118",
+ "id": "0x564d8e6efed8",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -12917,16 +13094,16 @@
}
},
{
- "id": "0x38719dd8",
+ "id": "0x564d8e6fb630",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22650,
+ "offset": 23784,
"col": 14,
"tokLen": 10
},
"end": {
- "offset": 22650,
+ "offset": 23784,
"col": 14,
"tokLen": 10
}
@@ -12938,16 +13115,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x38718be8",
+ "id": "0x564d8e6fa330",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 22650,
+ "offset": 23784,
"col": 14,
"tokLen": 10
},
"end": {
- "offset": 22650,
+ "offset": 23784,
"col": 14,
"tokLen": 10
}
@@ -12963,33 +13140,33 @@
]
},
{
- "id": "0x38719ec8",
+ "id": "0x564d8e6fb720",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 22670,
- "line": 736,
+ "offset": 23804,
+ "line": 780,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 22683,
+ "offset": 23817,
"col": 22,
"tokLen": 8
}
},
"inner": [
{
- "id": "0x38719e98",
+ "id": "0x564d8e6fb6f0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22677,
+ "offset": 23811,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 22683,
+ "offset": 23817,
"col": 22,
"tokLen": 8
}
@@ -12999,7 +13176,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37ff1150",
+ "id": "0x564d8dd58d90",
"kind": "EnumConstantDecl",
"name": "FIXGAIN1",
"type": {
@@ -13012,35 +13189,35 @@
]
},
{
- "id": "0x3871b208",
+ "id": "0x564d8e6fcb60",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 22697,
- "line": 737,
+ "offset": 23831,
+ "line": 781,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 22739,
- "line": 738,
+ "offset": 23873,
+ "line": 782,
"col": 22,
"tokLen": 8
}
},
"inner": [
{
- "id": "0x3871b158",
+ "id": "0x564d8e6fcab0",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 22701,
- "line": 737,
+ "offset": 23835,
+ "line": 781,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22706,
+ "offset": 23840,
"col": 14,
"tokLen": 10
}
@@ -13052,16 +13229,16 @@
"adl": true,
"inner": [
{
- "id": "0x3871b140",
+ "id": "0x564d8e6fca98",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22703,
+ "offset": 23837,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22703,
+ "offset": 23837,
"col": 11,
"tokLen": 2
}
@@ -13073,16 +13250,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x3871b120",
+ "id": "0x564d8e6fca78",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22703,
+ "offset": 23837,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22703,
+ "offset": 23837,
"col": 11,
"tokLen": 2
}
@@ -13092,7 +13269,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -13103,16 +13280,16 @@
]
},
{
- "id": "0x38719ef8",
+ "id": "0x564d8e6fb750",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22701,
+ "offset": 23835,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22701,
+ "offset": 23835,
"col": 9,
"tokLen": 1
}
@@ -13120,11 +13297,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10eb4118",
+ "id": "0x564d8e6efed8",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -13133,16 +13310,16 @@
}
},
{
- "id": "0x3871b108",
+ "id": "0x564d8e6fca60",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22706,
+ "offset": 23840,
"col": 14,
"tokLen": 10
},
"end": {
- "offset": 22706,
+ "offset": 23840,
"col": 14,
"tokLen": 10
}
@@ -13154,16 +13331,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x38719f18",
+ "id": "0x564d8e6fb770",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 22706,
+ "offset": 23840,
"col": 14,
"tokLen": 10
},
"end": {
- "offset": 22706,
+ "offset": 23840,
"col": 14,
"tokLen": 10
}
@@ -13179,33 +13356,33 @@
]
},
{
- "id": "0x3871b1f8",
+ "id": "0x564d8e6fcb50",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 22726,
- "line": 738,
+ "offset": 23860,
+ "line": 782,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 22739,
+ "offset": 23873,
"col": 22,
"tokLen": 8
}
},
"inner": [
{
- "id": "0x3871b1c8",
+ "id": "0x564d8e6fcb20",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22733,
+ "offset": 23867,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 22739,
+ "offset": 23873,
"col": 22,
"tokLen": 8
}
@@ -13215,7 +13392,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37ff11a0",
+ "id": "0x564d8dd58de8",
"kind": "EnumConstantDecl",
"name": "FIXGAIN2",
"type": {
@@ -13228,35 +13405,35 @@
]
},
{
- "id": "0x3871c538",
+ "id": "0x564d8e6fdf90",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 22753,
- "line": 739,
+ "offset": 23887,
+ "line": 783,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 22798,
- "line": 740,
+ "offset": 23932,
+ "line": 784,
"col": 22,
"tokLen": 11
}
},
"inner": [
{
- "id": "0x3871c488",
+ "id": "0x564d8e6fdee0",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 22757,
- "line": 739,
+ "offset": 23891,
+ "line": 783,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22762,
+ "offset": 23896,
"col": 14,
"tokLen": 13
}
@@ -13268,16 +13445,16 @@
"adl": true,
"inner": [
{
- "id": "0x3871c470",
+ "id": "0x564d8e6fdec8",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22759,
+ "offset": 23893,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22759,
+ "offset": 23893,
"col": 11,
"tokLen": 2
}
@@ -13289,16 +13466,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x3871c450",
+ "id": "0x564d8e6fdea8",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22759,
+ "offset": 23893,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22759,
+ "offset": 23893,
"col": 11,
"tokLen": 2
}
@@ -13308,7 +13485,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -13319,16 +13496,16 @@
]
},
{
- "id": "0x3871b228",
+ "id": "0x564d8e6fcb80",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22757,
+ "offset": 23891,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22757,
+ "offset": 23891,
"col": 9,
"tokLen": 1
}
@@ -13336,11 +13513,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10eb4118",
+ "id": "0x564d8e6efed8",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -13349,16 +13526,16 @@
}
},
{
- "id": "0x3871c438",
+ "id": "0x564d8e6fde90",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22762,
+ "offset": 23896,
"col": 14,
"tokLen": 13
},
"end": {
- "offset": 22762,
+ "offset": 23896,
"col": 14,
"tokLen": 13
}
@@ -13370,16 +13547,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x3871b248",
+ "id": "0x564d8e6fcba0",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 22762,
+ "offset": 23896,
"col": 14,
"tokLen": 13
},
"end": {
- "offset": 22762,
+ "offset": 23896,
"col": 14,
"tokLen": 13
}
@@ -13395,33 +13572,33 @@
]
},
{
- "id": "0x3871c528",
+ "id": "0x564d8e6fdf80",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 22785,
- "line": 740,
+ "offset": 23919,
+ "line": 784,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 22798,
+ "offset": 23932,
"col": 22,
"tokLen": 11
}
},
"inner": [
{
- "id": "0x3871c4f8",
+ "id": "0x564d8e6fdf50",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22792,
+ "offset": 23926,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 22798,
+ "offset": 23932,
"col": 22,
"tokLen": 11
}
@@ -13431,7 +13608,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37ff11f0",
+ "id": "0x564d8dd58e40",
"kind": "EnumConstantDecl",
"name": "VERYLOWGAIN",
"type": {
@@ -13444,35 +13621,35 @@
]
},
{
- "id": "0x3871d868",
+ "id": "0x564d8e6ff3c0",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 22815,
- "line": 741,
+ "offset": 23949,
+ "line": 785,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 22854,
- "line": 742,
+ "offset": 23988,
+ "line": 786,
"col": 22,
"tokLen": 11
}
},
"inner": [
{
- "id": "0x3871d7b8",
+ "id": "0x564d8e6ff310",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 22819,
- "line": 741,
+ "offset": 23953,
+ "line": 785,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22824,
+ "offset": 23958,
"col": 14,
"tokLen": 7
}
@@ -13484,16 +13661,16 @@
"adl": true,
"inner": [
{
- "id": "0x3871d7a0",
+ "id": "0x564d8e6ff2f8",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22821,
+ "offset": 23955,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22821,
+ "offset": 23955,
"col": 11,
"tokLen": 2
}
@@ -13505,16 +13682,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x3871d780",
+ "id": "0x564d8e6ff2d8",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22821,
+ "offset": 23955,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22821,
+ "offset": 23955,
"col": 11,
"tokLen": 2
}
@@ -13524,7 +13701,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -13535,16 +13712,16 @@
]
},
{
- "id": "0x3871c558",
+ "id": "0x564d8e6fdfb0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22819,
+ "offset": 23953,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22819,
+ "offset": 23953,
"col": 9,
"tokLen": 1
}
@@ -13552,11 +13729,11 @@
"type": {
"desugaredQualType": "const std::basic_string",
"qualType": "const std::string",
- "typeAliasDeclId": "0x378f28c0"
+ "typeAliasDeclId": "0x564d8d3fbb20"
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x7feb10eb4118",
+ "id": "0x564d8e6efed8",
"kind": "ParmVarDecl",
"name": "s",
"type": {
@@ -13565,16 +13742,16 @@
}
},
{
- "id": "0x3871d768",
+ "id": "0x564d8e6ff2c0",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22824,
+ "offset": 23958,
"col": 14,
"tokLen": 7
},
"end": {
- "offset": 22824,
+ "offset": 23958,
"col": 14,
"tokLen": 7
}
@@ -13586,16 +13763,16 @@
"castKind": "ArrayToPointerDecay",
"inner": [
{
- "id": "0x3871c578",
+ "id": "0x564d8e6fdfd0",
"kind": "StringLiteral",
"range": {
"begin": {
- "offset": 22824,
+ "offset": 23958,
"col": 14,
"tokLen": 7
},
"end": {
- "offset": 22824,
+ "offset": 23958,
"col": 14,
"tokLen": 7
}
@@ -13611,33 +13788,33 @@
]
},
{
- "id": "0x3871d858",
+ "id": "0x564d8e6ff3b0",
"kind": "ReturnStmt",
"range": {
"begin": {
- "offset": 22841,
- "line": 742,
+ "offset": 23975,
+ "line": 786,
"col": 9,
"tokLen": 6
},
"end": {
- "offset": 22854,
+ "offset": 23988,
"col": 22,
"tokLen": 11
}
},
"inner": [
{
- "id": "0x3871d828",
+ "id": "0x564d8e6ff380",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22848,
+ "offset": 23982,
"col": 16,
"tokLen": 4
},
"end": {
- "offset": 22854,
+ "offset": 23988,
"col": 22,
"tokLen": 11
}
@@ -13647,7 +13824,7 @@
},
"valueCategory": "prvalue",
"referencedDecl": {
- "id": "0x37ff1240",
+ "id": "0x564d8dd58e98",
"kind": "EnumConstantDecl",
"name": "G1_HIGHGAIN",
"type": {
@@ -13660,35 +13837,35 @@
]
},
{
- "id": "0x3871eb98",
+ "id": "0x564d8e7007f0",
"kind": "IfStmt",
"range": {
"begin": {
- "offset": 22871,
- "line": 743,
+ "offset": 24005,
+ "line": 787,
"col": 5,
"tokLen": 2
},
"end": {
- "offset": 22910,
- "line": 744,
+ "offset": 24044,
+ "line": 788,
"col": 22,
"tokLen": 10
}
},
"inner": [
{
- "id": "0x3871eae8",
+ "id": "0x564d8e700740",
"kind": "CXXOperatorCallExpr",
"range": {
"begin": {
- "offset": 22875,
- "line": 743,
+ "offset": 24009,
+ "line": 787,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22880,
+ "offset": 24014,
"col": 14,
"tokLen": 7
}
@@ -13700,16 +13877,16 @@
"adl": true,
"inner": [
{
- "id": "0x3871ead0",
+ "id": "0x564d8e700728",
"kind": "ImplicitCastExpr",
"range": {
"begin": {
- "offset": 22877,
+ "offset": 24011,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22877,
+ "offset": 24011,
"col": 11,
"tokLen": 2
}
@@ -13721,16 +13898,16 @@
"castKind": "FunctionToPointerDecay",
"inner": [
{
- "id": "0x3871eab0",
+ "id": "0x564d8e700708",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22877,
+ "offset": 24011,
"col": 11,
"tokLen": 2
},
"end": {
- "offset": 22877,
+ "offset": 24011,
"col": 11,
"tokLen": 2
}
@@ -13740,7 +13917,7 @@
},
"valueCategory": "lvalue",
"referencedDecl": {
- "id": "0x38522f78",
+ "id": "0x564d8e31ef10",
"kind": "FunctionDecl",
"name": "operator==",
"type": {
@@ -13751,16 +13928,16 @@
]
},
{
- "id": "0x3871d888",
+ "id": "0x564d8e6ff3e0",
"kind": "DeclRefExpr",
"range": {
"begin": {
- "offset": 22875,
+ "offset": 24009,
"col": 9,
"tokLen": 1
},
"end": {
- "offset": 22875,
+ "offset": 24009,
"col": 9,
"tokLen": 1
}
@@ -13768,11 +13945,11 @@
"type": {
"desugaredQualType": "const std::basic_string