Files
DP44/Common/DTS.Common.Serialization/.svn/pristine/e3/e305b1ac8235cc300373897e09523c0d919a71e3.svn-base

76 lines
2.8 KiB
Plaintext
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
using DTS.Serialization.IRIGCh10.Attributes;
using DTS.Serialization.IRIGCH10.Enums;
using System;
using System.Collections;
namespace DTS.Serialization.IRIGCH10
{
/// <summary>
/// implements a time data packet, allowing time data packets to be put into a ch 10 file
/// </summary>
public class TimeDataPacket : AbstractDataPacket, IDataPacket
{
public TimeDataPacket()
: base(DataFileDataTypes.TimeDataFormat1)
{
_dataBytes = new byte[12];
}
private DateTime _dt;
public DateTime GetDateTime()
{
return _dt;
}
public void SetTime(DateTime dt)
{
_dt = dt;
_dataBytes[4] = Utils.Utils.GetBCDBytes(dt.Millisecond/10)[0];
_dataBytes[5] = Utils.Utils.GetBCDBytes(dt.Second)[0];
_dataBytes[6] = Utils.Utils.GetBCDBytes(dt.Minute)[0];
_dataBytes[7] = Utils.Utils.GetBCDBytes(dt.Hour)[0];
_dataBytes[8] = Utils.Utils.GetBCDBytes(dt.Day)[0];
_dataBytes[9] = Utils.Utils.GetBCDBytes(dt.Month)[0];
_dataBytes[10] = Utils.Utils.GetBCDBytes(dt.Year)[0];
_dataBytes[11] = Utils.Utils.GetBCDBytes(dt.Year)[1];
}
public void SetTimeSource(byte b)
{
var bitArray = new BitArray(new[] {_dataBytes[0]});
var bitArray2 = new BitArray(new[] {b});
bitArray[0] = bitArray2[0];
bitArray[1] = bitArray2[1];
bitArray[2] = bitArray2[2];
bitArray[3] = bitArray2[3];
bitArray.CopyTo(_dataBytes, 0);
}
public void SetTimeSource(TimeSource src)
{
var bitArray = new BitArray(new[] {_dataBytes[0], _dataBytes[1], _dataBytes[2], _dataBytes[3]});
var bytevalue = new BitArray(new[] {PacketHeaderValueAttribute.GetPacketHeaderValue(src)});
//ref Chapter 10, 10-47
bitArray[0] = bytevalue[3];
bitArray[1] = bytevalue[2];
bitArray[2] = bytevalue[1];
bitArray[3] = bytevalue[0];
bitArray.CopyTo(_dataBytes, 0);
}
public void SetTimeFormat(TimeFormats fmt)
{
var bitArray = new BitArray(new[] {_dataBytes[0], _dataBytes[1], _dataBytes[2], _dataBytes[3]});
var bytevalue = new BitArray(new[] {PacketHeaderValueAttribute.GetPacketHeaderValue(fmt)});
//ref Chapter 10, 10-47
bitArray[4] = bytevalue[3];
bitArray[5] = bytevalue[2];
bitArray[6] = bytevalue[1];
bitArray[7] = bytevalue[0];
bitArray.CopyTo(_dataBytes, 0);
}
}
}