Files
Modbus.Net/Technosoftware/DaAeHdaClient/Hda/TimeOffset.cs
luosheng db591e0367 Fix
2023-07-12 06:42:28 +08:00

71 lines
2.7 KiB
C#

#region Copyright (c) 2011-2023 Technosoftware GmbH. All rights reserved
//-----------------------------------------------------------------------------
// Copyright (c) 2011-2023 Technosoftware GmbH. All rights reserved
// Web: https://www.technosoftware.com
//
// The source code in this file is covered under a dual-license scenario:
// - Owner of a purchased license: SCLA 1.0
// - GPL V3: everybody else
//
// SCLA license terms accompanied with this source code.
// See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf
//
// GNU General Public License as published by the Free Software Foundation;
// version 3 of the License are accompanied with this source code.
// See https://technosoftware.com/license/GPLv3License.txt
//
// This source code is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
// or FITNESS FOR A PARTICULAR PURPOSE.
//-----------------------------------------------------------------------------
#endregion Copyright (c) 2011-2023 Technosoftware GmbH. All rights reserved
#region Using Directives
using System;
#endregion
namespace Technosoftware.DaAeHdaClient.Hda
{
/// <summary>
/// An offset component of a relative time.
/// </summary>
[Serializable]
public struct TsCHdaTimeOffset
{
#region Properties
/// <summary>
/// A signed value indicated the magnitude of the time offset.
/// </summary>
public int Value { get; set; }
/// <summary>
/// The time interval to use when applying the offset.
/// </summary>
public TsCHdaRelativeTime Type { get; set; }
#endregion
#region Internal Methods
/// <summary>
/// Converts a offset type to a string token.
/// </summary>
/// <param name="offsetType">The offset type value to convert.</param>
/// <returns>The string token representing the offset type.</returns>
internal static string OffsetTypeToString(TsCHdaRelativeTime offsetType)
{
switch (offsetType)
{
case TsCHdaRelativeTime.Second: { return "S"; }
case TsCHdaRelativeTime.Minute: { return "M"; }
case TsCHdaRelativeTime.Hour: { return "H"; }
case TsCHdaRelativeTime.Day: { return "D"; }
case TsCHdaRelativeTime.Week: { return "W"; }
case TsCHdaRelativeTime.Month: { return "MO"; }
case TsCHdaRelativeTime.Year: { return "Y"; }
}
throw new ArgumentOutOfRangeException(nameof(offsetType), offsetType.ToString(), @"Invalid value for relative time offset type.");
}
#endregion
}
}