#region Copyright
////////////////////////////////////////////////////////////////////////////////
// The following FIT Protocol software provided may be used with FIT protocol
// devices only and remains the copyrighted property of Dynastream Innovations Inc.
// The software is being provided on an "as-is" basis and as an accommodation,
// and therefore all warranties, representations, or guarantees of any kind
// (whether express, implied or statutory) including, without limitation,
// warranties of merchantability, non-infringement, or fitness for a particular
// purpose, are specifically disclaimed.
//
// Copyright 2016 Dynastream Innovations Inc.
////////////////////////////////////////////////////////////////////////////////
// ****WARNING****  This file is auto-generated!  Do NOT edit this file.
// Profile Version = 16.60Release
// Tag = production-akw-16.60.00-0-g5d3d436
////////////////////////////////////////////////////////////////////////////////

#endregion

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.IO;


namespace Dynastream.Fit
{
    /// <summary>
    /// Implements the AntChannelId profile message.
    /// </summary>
    public class AntChannelIdMesg : Mesg
    {
        #region Fields
        #endregion

        #region Constructors
        public AntChannelIdMesg() : base(Profile.GetMesg(MesgNum.AntChannelId))
        {
        }

        public AntChannelIdMesg(Mesg mesg) : base(mesg)
        {
        }
        #endregion // Constructors

        #region Methods
        ///<summary>
        /// Retrieves the ChannelNumber field</summary>
        /// <returns>Returns nullable byte representing the ChannelNumber field</returns>
        public byte? GetChannelNumber()
        {
            return (byte?)GetFieldValue(0, 0, Fit.SubfieldIndexMainField);
        }

        

        

        /// <summary>
        /// Set ChannelNumber field</summary>
        /// <param name="channelNumber_">Nullable field value to be set</param>
        public void SetChannelNumber(byte? channelNumber_)
        {
            SetFieldValue(0, 0, channelNumber_, Fit.SubfieldIndexMainField);
        }
        
        ///<summary>
        /// Retrieves the DeviceType field</summary>
        /// <returns>Returns nullable byte representing the DeviceType field</returns>
        public byte? GetDeviceType()
        {
            return (byte?)GetFieldValue(1, 0, Fit.SubfieldIndexMainField);
        }

        

        

        /// <summary>
        /// Set DeviceType field</summary>
        /// <param name="deviceType_">Nullable field value to be set</param>
        public void SetDeviceType(byte? deviceType_)
        {
            SetFieldValue(1, 0, deviceType_, Fit.SubfieldIndexMainField);
        }
        
        ///<summary>
        /// Retrieves the DeviceNumber field</summary>
        /// <returns>Returns nullable ushort representing the DeviceNumber field</returns>
        public ushort? GetDeviceNumber()
        {
            return (ushort?)GetFieldValue(2, 0, Fit.SubfieldIndexMainField);
        }

        

        

        /// <summary>
        /// Set DeviceNumber field</summary>
        /// <param name="deviceNumber_">Nullable field value to be set</param>
        public void SetDeviceNumber(ushort? deviceNumber_)
        {
            SetFieldValue(2, 0, deviceNumber_, Fit.SubfieldIndexMainField);
        }
        
        ///<summary>
        /// Retrieves the TransmissionType field</summary>
        /// <returns>Returns nullable byte representing the TransmissionType field</returns>
        public byte? GetTransmissionType()
        {
            return (byte?)GetFieldValue(3, 0, Fit.SubfieldIndexMainField);
        }

        

        

        /// <summary>
        /// Set TransmissionType field</summary>
        /// <param name="transmissionType_">Nullable field value to be set</param>
        public void SetTransmissionType(byte? transmissionType_)
        {
            SetFieldValue(3, 0, transmissionType_, Fit.SubfieldIndexMainField);
        }
        
        ///<summary>
        /// Retrieves the DeviceIndex field</summary>
        /// <returns>Returns nullable byte representing the DeviceIndex field</returns>
        public byte? GetDeviceIndex()
        {
            return (byte?)GetFieldValue(4, 0, Fit.SubfieldIndexMainField);
        }

        

        

        /// <summary>
        /// Set DeviceIndex field</summary>
        /// <param name="deviceIndex_">Nullable field value to be set</param>
        public void SetDeviceIndex(byte? deviceIndex_)
        {
            SetFieldValue(4, 0, deviceIndex_, Fit.SubfieldIndexMainField);
        }
        
        #endregion // Methods
    } // Class
} // namespace