Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        public void DeviceStatusFlagsLo_AllEcsFlagsToEcsCompatibiltyFlags_ReturnsExpectedFlags(DeviceStatusFlagsLo statusFlagsLo, EcsStatusFlags expectedEcsStatusFlags)
        {
            var actualEcsStatusFlags = statusFlagsLo.ToEcsCompatibilityFlags();

            Assert.Equal(expectedEcsStatusFlags, actualEcsStatusFlags);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
 /// <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]);
 }