/// <summary>
        /// Press mouse's button.
        /// </summary>
        /// <param name="button"> Button to press.</param>
        /// <see cref="SerialSymbols.MouseButton"/>
        /// <seealso cref="MouseReleaseButton"/>
        /// <seealso cref="MouseReleaseAllButtons"/>
        /// <exception cref="SerialDeviceException">If command failed.</exception>
        public Task MousePressButton(SerialSymbols.MouseButton button)
        {
            CheckMouseButton(button);
            SerialCommandFrame frame = SerialCommandFrame.OfKeyType(SerialSymbols.FrameType.MousePress, (byte)button);

            return(_sender.SendFrame(frame));
        }
 /// <summary>
 /// Helper function to check mouse button and throw exception.
 /// </summary>
 private static void CheckMouseButton(SerialSymbols.MouseButton button)
 {
     if (!Enum.IsDefined(button))
     {
         throw new ArgumentException($"Unknown type of mouse button {button}.");
     }
 }