diff --git a/CHANGELOG.md b/CHANGELOG.md index 2187369..5b41545 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - manipulation SetSystemContextActivationStateAndContextAssociation for combined settings - manipulation SetMdsUiLanguage for devices - manipulation GetMdsUiSupportedLanguages for devices +- manipulation InsertContainmentTreeEntryForSequenceId for devices ## [4.1.0] - 2024-02-22 diff --git a/src/t2iapi/device/device_requests.proto b/src/t2iapi/device/device_requests.proto index fbdc2f7..2cebbc0 100644 --- a/src/t2iapi/device/device_requests.proto +++ b/src/t2iapi/device/device_requests.proto @@ -94,3 +94,13 @@ message ProvideInformationAboutNextCalibrationRequest { CalibrationState calibration_state = 2; // ComponentCalibrationState value to set as the next calibration // information } + +/* +Request to make available the BICEPS CONTAINMENT TREE ENTRY (as defined in IEEE Std 11073-10700-2022) that was +previously represented by the descriptor with the provided handle in the device's MDIB in the provided @SequenceId. + */ +message InsertContainmentTreeEntryForSequenceIdRequest { + string handle = 1; // descriptor handle which represented the BICEPS CONTAINMENT TREE ENTRY + string sequence_id = 2; // @SequenceId of the devices MDIB where the requested BICEPS CONTAINMENT TREE ENTRY + // was seen +} diff --git a/src/t2iapi/device/device_responses.proto b/src/t2iapi/device/device_responses.proto index 22fbb8a..68fb686 100644 --- a/src/t2iapi/device/device_responses.proto +++ b/src/t2iapi/device/device_responses.proto @@ -63,3 +63,13 @@ message GetComponentHwVersionResponse { BasicResponse status = 1; // status of the rpc string hardware_version = 2; // Hardware version of the requested device component } + +/* +Response containing the descriptor handle which is representing the requested +BICEPS CONTAINMENT TREE ENTRY (as defined in IEEE Std 11073-10700-2022) in the device's current MDIB. + */ +message InsertContainmentTreeEntryForSequenceIdResponse{ + BasicResponse status = 1; // status of the rpc + string handle = 2; // descriptor handle which is representing the requested BICEPS CONTAINMENT TREE ENTRY + // in the device's current MDIB +} diff --git a/src/t2iapi/device/service.proto b/src/t2iapi/device/service.proto index 17c3344..5a5dbe7 100644 --- a/src/t2iapi/device/service.proto +++ b/src/t2iapi/device/service.proto @@ -182,4 +182,44 @@ service DeviceService { */ rpc IndicateTimeOfNextCalibrationToUser (BasicHandleRequest) returns (BasicResponse); + + /* + Make available the BICEPS CONTAINMENT TREE ENTRY (as defined in IEEE Std 11073-10700-2022) that was previously + represented by the provided handle in the MDIB with the provided @SequenceId. If the BICEPS CONTAINMENT TREE ENTRY + is absent in the current MDIB, it shall be inserted and its handle in the current MDIB shall be returned. + If the BICEPS CONTAINMENT TREE ENTRY is already present in the current MDIB, only its handle shall be returned, + no further action is required. + + Hint: Devices which use static handles for descriptors do not have to look up the entity that was previously + represented by the requested handle, since they stay the same between the changes of the @SequenceId. It is + sufficient to ensure the descriptor is present and return the handle. + + Example 1: returning the same handle for the Metric + - device presented an MDIB with the Metric handle "metric_1" in @SequenceID "123" + - device changes @SequenceID to "789" and presents a new MDIB + - metric with the handle "metric_1" is still present in the current MDIB and represents the *same* metric + as in @SequenceID "123" + - InsertContainmentTreeEntryForSequenceId with handle="metric_1" and sequence_id="123" is executed + - the handle "metric_1" is returned as the descriptor with this handle it is still available in the current MDIB + - no further action from the device is required + + Example 2: returning a new handle for the MDS: + - device presented an MDIB with MDS handle "mds0" in @SequenceID "123" + - device changes @SequenceID to "789" and presents a new MDIB + - MDS which had the Handle "mds0" in @SequenceId "123" is still present in the current MDIB, but it's Handle + changed to "mds10" + - InsertContainmentTreeEntryForSequenceId with handle="mds0" and sequence_id="123" is executed + - the handle "mds10" is returned as the descriptor handle for that MDS has changed + - no further action from the device is required + + Example 3: inserting the Channel into the current MDIB and returning the (new) handle: + - device presented the Channel with handle "channel123" in @SequenceID "123" + - device changes @SequenceID to "789" and presents a new MDIB + - Channel which had the Handle "channel123" in @SequenceId "123" is no longer present in the current MDIB + - InsertContainmentTreeEntryForSequenceId with handle="channel123" and sequence_id="123" is executed + - Channel is inserted into the device's current MDIB with the handle "channel789" + - the handle "channel789" is returned + */ + rpc InsertContainmentTreeEntryForSequenceId (InsertContainmentTreeEntryForSequenceIdRequest) + returns (InsertContainmentTreeEntryForSequenceIdResponse); }