76 lines
2.8 KiB
C#
76 lines
2.8 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|