Files

308 lines
10 KiB
C#
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
using System;
using System.Collections.Generic;
using DTS.Common.Enums.DASFactory;
namespace DTS.DASLib.Command.SLICE.RealtimeCommands
{
/// <summary>
/// these classes was ported from FWTU
/// </summary>
public class StreamConfigUDPGet : RealtimeCommandBase
{
private const int COMMAND_PAYLOAD_SIZE = 65;
protected override Commands _Command => Commands.I106StreamConfigGet;
private byte _stream_profile_number;
private byte[] _udpipport;
private ushort _timechannelid;
private ushort _datachannelid;
private uint _tmnsPcmSubFrameId; // _tmns0;
private uint _tmnsMsgId; // _tmns1;
private uint _tmnsPcmMinorPerMajor; // _tmns2;
private uint _tmnsTmatsPortNumber; // _tmns3;
private uint _ienaUdpSrcPortNumber; // _tmns4;
private uint _udpRsv1; // _tmns5;
private uint _udpRsv2; // _tmns6;
private uint _udpRsv3; // _tmns7;
public byte Stream_Profile_Number
{
get => _stream_profile_number;
set { _stream_profile_number = value; command.SetParameter(0, _stream_profile_number); }
}
public byte[] UdpIpPort
{
get { return _udpipport; }
set { _udpipport = value; command.SetParameter(1, _udpipport); }
}
public ushort TimeChannelID
{
get => _timechannelid;
set { _timechannelid = value; command.SetParameter(29, _timechannelid); }
}
public ushort DataChannelID
{
get => _datachannelid;
set { _datachannelid = value; command.SetParameter(31, _datachannelid); }
}
public uint TMNS_PCMSUBFRAMEID
{
get => _tmnsPcmSubFrameId;
set
{
_tmnsPcmSubFrameId = value;
command.SetParameter(33, _tmnsPcmSubFrameId);
}
}
public uint TMNS_MSGID
{
get { return _tmnsMsgId; }
set
{
_tmnsMsgId = value; command.SetParameter(37, _tmnsMsgId);
}
}
public uint TMNS_PCMINORPERMAJOR
{
get => _tmnsPcmMinorPerMajor;
set
{
_tmnsPcmMinorPerMajor = value; command.SetParameter(41, _tmnsPcmMinorPerMajor);
}
}
public uint TMNS_TMATSPORTNUMBER
{
get => _tmnsTmatsPortNumber;
set
{
_tmnsTmatsPortNumber = value; command.SetParameter(45, _tmnsTmatsPortNumber);
}
}
public uint IENAUDP_PortNumber
{
get => _ienaUdpSrcPortNumber;
set
{
_ienaUdpSrcPortNumber = value; command.SetParameter(49, _ienaUdpSrcPortNumber);
}
}
public uint TMNS5
{
get => _udpRsv1;
set
{
_udpRsv1 = value; command.SetParameter(53, _udpRsv1);
}
}
public uint TMNS6
{
get => _udpRsv2;
set
{
_udpRsv2 = value; command.SetParameter(57, _udpRsv2);
}
}
public uint TMNS7
{
get => _udpRsv3;
set
{
_udpRsv3 = value; command.SetParameter(61, _udpRsv3);
}
}
public StreamConfigUDPGet(Common.Interface.DASFactory.ICommunication sock)
: base(sock)
{
command.Parameter = new byte[COMMAND_PAYLOAD_SIZE];
}
public StreamConfigUDPGet(Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec)
: base(sock, TimeoutMillisec)
{
command.Parameter = new byte[COMMAND_PAYLOAD_SIZE];
}
protected override CommandReceiveAction WholePackage()
{
if (response.Status == DFConstantsAndEnums.CommandStatus.StatusNoError)
{
if (response.ParameterLength > 0)
{
response.GetParameter(0, out _stream_profile_number);
_udpipport = new byte[29];
for (int i = 0; i < 28; i++)
{
response.GetParameter(1 + i, out _udpipport[i]);
}
response.GetParameter(29, out _timechannelid);
response.GetParameter(31, out _datachannelid);
response.GetParameter(33, out _tmnsPcmSubFrameId);
response.GetParameter(37, out _tmnsMsgId);
response.GetParameter(41, out _tmnsPcmMinorPerMajor);
response.GetParameter(45, out _tmnsTmatsPortNumber);
response.GetParameter(49, out _ienaUdpSrcPortNumber);
response.GetParameter(53, out _udpRsv1);
response.GetParameter(57, out _udpRsv2);
response.GetParameter(61, out _udpRsv3);
}
else { _stream_profile_number = 0; }
}
return CommandReceiveAction.StopReceiving;
}
public override void ResponseToString(ref List<List<string>> lines)
{
base.ResponseToString(ref lines);
lines.Add(new List<string>() { $"Stream Profile Number: {_stream_profile_number}" });
lines.Add(new List<string>() { $"UDP IP PORT: {_udpipport}" });
lines.Add(new List<string>() { $"Time Channel ID: {_timechannelid}" });
lines.Add(new List<string>() { $"Data Channel ID: {_timechannelid}" });
lines.Add(new List<string>() { $"TMNS: {_tmnsPcmSubFrameId}, {_tmnsMsgId}, {_tmnsPcmMinorPerMajor}, {_tmnsTmatsPortNumber}, {_ienaUdpSrcPortNumber}, {_udpRsv1}, {_udpRsv2}, {_udpRsv3}," });
}
}
public class StreamConfigUDPSet : RealtimeCommandBase
{
const int COMMAND_PAYLOAD_SIZE = 74;
protected override RealtimeCommandBase.Commands _Command
{
get { return Commands.I106StreamConfigSet; }
}
private byte _stream_profile_number;
private byte[] _udpipport;
private ushort _irig106config0;
private ushort _irig106config1;
private uint _tmnsPcmSubFrameId; // _tmns0;
private uint _tmnsMsgId; // _tmns1;
private uint _tmnsPcmMinorPerMajor; // _tmns2;
private uint _tmnsTmatsPortNumber; // _tmns3;
private uint _ienaUdpSrcPortNumber; // _tmns4;
private uint _udpRsv1; // _tmns5;
private uint _udpRsv2; // _tmns6;
private uint _udpRsv3; // _tmns7;
public byte Stream_Profile_Number
{
get => _stream_profile_number;
set { _stream_profile_number = value; command.SetParameter(0, _stream_profile_number); }
}
public byte[] UdpIpPort
{
get => _udpipport;
set
{
_udpipport = value;
command.SetParameter(1, _udpipport);
}
}
public ushort Irig106Config0
{
get => _irig106config0;
set
{
_irig106config0 = value; command.SetParameter(29, _irig106config0);
}
}
public ushort Irig106Config1
{
get => _irig106config1;
set
{
_irig106config1 = value; command.SetParameter(31, _irig106config1);
}
}
public uint TMNS_PCMSubFrameId
{
get => _tmnsPcmSubFrameId;
set
{
_tmnsPcmSubFrameId = value; command.SetParameter(33, _tmnsPcmSubFrameId);
}
}
public uint TMNS_MsgId
{
get => _tmnsMsgId;
set
{
_tmnsMsgId = value; command.SetParameter(37, _tmnsMsgId);
}
}
public uint TMNS_PCMMinorPerMajor
{
get => _tmnsPcmMinorPerMajor;
set
{
_tmnsPcmMinorPerMajor = value; command.SetParameter(41, _tmnsPcmMinorPerMajor);
}
}
public uint TMNS_TMATSPortNumber
{
get => _tmnsTmatsPortNumber;
set
{
_tmnsTmatsPortNumber = value; command.SetParameter(45, _tmnsTmatsPortNumber);
}
}
public uint IENAUDP_PortNumber
{
get => _ienaUdpSrcPortNumber;
set
{
_ienaUdpSrcPortNumber = value; command.SetParameter(49, _ienaUdpSrcPortNumber);
}
}
public uint TMNS5
{
get => _udpRsv1;
set
{
_udpRsv1 = value; command.SetParameter(53, _udpRsv1);
}
}
public uint TMNS6
{
get => _udpRsv2;
set
{
_udpRsv2 = value; command.SetParameter(57, _udpRsv2);
}
}
public uint TMNS7
{
get { return _udpRsv3; }
set
{
_udpRsv3 = value; command.SetParameter(61, _udpRsv3);
}
}
public StreamConfigUDPSet(Common.Interface.DASFactory.ICommunication sock)
: base(sock)
{
command.Parameter = new byte[COMMAND_PAYLOAD_SIZE];
}
public StreamConfigUDPSet(Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec)
: base(sock, TimeoutMillisec)
{
command.Parameter = new byte[COMMAND_PAYLOAD_SIZE];
}
public override void ResponseToString(ref List<List<string>> lines)
{
base.ResponseToString(ref lines);
lines.Add(new List<string>() { $"Stream Profile Number: {_stream_profile_number}" });
lines.Add(new List<string>() { $"UDP IP PORT: {_udpipport}" });
lines.Add(new List<string>() { $"Irig Config: {_irig106config0}" });
lines.Add(new List<string>() { $"TMNS: {_tmnsPcmSubFrameId}, {_tmnsMsgId}, {_tmnsPcmMinorPerMajor}, {_tmnsTmatsPortNumber}, {_ienaUdpSrcPortNumber}, {_udpRsv1}, {_udpRsv2}, {_udpRsv3}," });
}
}
}