/// <summary> /// Produce <see cref="DeviceStatusFlags"/> containing updated <see cref="EcsStatusFlags"/> for a given <see cref="Device"/>. /// </summary> /// <param name="device">The <see cref="Device"/> whose updated flags are desired.</param> /// <param name="newEcsFlags">New <see cref="EcsStatusFlags"/> to apply to <paramref name="device"/>.</param> /// <returns>A new set of <see cref="DeviceStatusFlags"/> with updated EcsStatusFlags for <paramref name="device"/>.</returns> internal static DeviceStatusFlags UpdateStatusFlags(this Device device, EcsStatusFlags newEcsFlags) { var deviceStatusFlags = device.DeviceStatusFlags & ~DeviceStatusFlags.EcsStatusMask; deviceStatusFlags |= newEcsFlags.ToDeviceStatusFlagsLo(); return(deviceStatusFlags); }
public void DeviceStatusFlagsLo_AllEcsFlagsToEcsCompatibiltyFlags_ReturnsExpectedFlags(DeviceStatusFlagsLo statusFlagsLo, EcsStatusFlags expectedEcsStatusFlags) { var actualEcsStatusFlags = statusFlagsLo.ToEcsCompatibilityFlags(); Assert.Equal(expectedEcsStatusFlags, actualEcsStatusFlags); }
public void DeviceStatusFlagsLo_ToEcsCompatibilityFlags_ReturnsExpectedFlags(DeviceStatusFlagsLo statusFlagsLo, EcsStatusFlags expectedEcsStatusFlags) { var actualEcsStatusFlags = statusFlagsLo.ToEcsCompatibilityFlags(); // NOTE: Implementation currently suppresses the reserved bits. Replicate this here. expectedEcsStatusFlags &= ~EcsStatusFlags.ReservedMask; Assert.Equal(expectedEcsStatusFlags, actualEcsStatusFlags); }
/// <summary> /// Produce <see cref="DeviceStatusFlagsLo"/> containing the given <see cref="EcsStatusFlags"/>. /// </summary> /// <param name="ecsStatus">The flags to convert.</param> /// <returns>The given EcsStatusFlags represented as DeviceStatusFlagsLo.</returns> internal static DeviceStatusFlagsLo ToDeviceStatusFlagsLo(this EcsStatusFlags ecsStatus) { var deviceStatusFlags = (DeviceStatusFlagsLo)((ulong)ecsStatus << DeviceStatusFlagsLoHelpers.EcsStatusBitsOffset); return(deviceStatusFlags); }
/// <summary> /// Given <see cref="EcsStatusFlags"/>, produce a string representation for the user interface. /// </summary> /// <param name="ecsStatus">The flags to convert to a user-readable string.</param> /// <returns>The display string.</returns> internal static string ToDisplayString(this EcsStatusFlags ecsStatus) { return(ModeToStringsTable[ecsStatus]); }