Files
DP44/DataPRO/SLICECommands/StackUtilityCommands.cs
2026-04-17 14:55:32 -04:00

145 lines
4.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using DTS.DASLib.Communication;
using DTS.DASLib.Utility;
namespace DTS.DASLib.Command.SLICE
{
public abstract class Commands_Stack_Utility: CommandBase
{
protected enum Commands
{
ArbitraryFlashWrite = 0x01,
ArbitraryFlashRead,
FlashSelfTest,
BusPowerControl,
ForceEnumeration,
GainSet,
GainQuery,
DACSet,
DACQuery,
SwitchSet,
SwitchQuery,
FilterSet,
FilterQuery,
};
protected Commands_Stack_Utility(ICommunication sock)
: base(sock)
{
this.command.Type = CommandPacket.CommandType.StackUtility;
}
protected Commands_Stack_Utility(ICommunication sock, int TimeoutMillisec)
: base(sock, TimeoutMillisec)
{
this.command.Type = CommandPacket.CommandType.StackUtility;
}
}
public class BusPowerControl: Commands_Stack_Utility
{
private bool _on;
public bool PowerOn
{
get { return _on; }
set
{
_on = value;
if(_on)
this.command.SetParameter(0, (byte)1);
else
this.command.SetParameter(0, (byte)0);
}
}
public BusPowerControl(ICommunication sock)
: base(sock)
{
this.command.Command = (byte)Commands.BusPowerControl;
this.command.Parameter = new byte[1];
PowerOn = false;
}
public BusPowerControl(ICommunication sock, int TimeoutMillisec)
: base(sock, TimeoutMillisec)
{
this.command.Command = (byte)Commands.BusPowerControl;
this.command.Parameter = new byte[1];
PowerOn = false;
}
public override string CommandToString()
{
var sb = new StringBuilder();
sb.AppendLine("Sending command BusPowerControl");
sb.AppendFormat("PowerOn: {0}", PowerOn);
sb.AppendLine();
return sb.ToString();
}
public override string ResponseToString()
{
var sb = new StringBuilder();
sb.AppendFormat("Response for command BusPowerControl: {0}", ResponseStatus);
sb.AppendLine();
sb.AppendFormat("PowerOn: {0}", PowerOn);
sb.AppendLine();
return sb.ToString();
}
}
public class ForceEnumeration: Commands_Stack_Utility
{
int _SLICECount;
public int SLICECount { get { return _SLICECount; } }
public ForceEnumeration(ICommunication sock)
: base(sock)
{
this.command.Command = (byte)Commands.ForceEnumeration;
this.command.Parameter = new byte[0];
_SLICECount = 0;
}
public ForceEnumeration(ICommunication sock, int TimeoutMillisec)
: base(sock, TimeoutMillisec)
{
this.command.Command = (byte)Commands.ForceEnumeration;
this.command.Parameter = new byte[0];
_SLICECount = 0;
}
protected override CommandReceiveAction WholePackage()
{
if(response.Status == CommandPacket.CommandStatus.StatusNoError)
{
byte b;
response.GetParameter(0, out b);
_SLICECount = (int)b;
}
return CommandReceiveAction.StopReceiving;
}
public override string CommandToString()
{
var sb = new StringBuilder();
sb.AppendLine("Sending command ForceEnumeration");
return sb.ToString();
}
public override string ResponseToString()
{
var sb = new StringBuilder();
sb.AppendFormat("Response for command ForceEnumeration: {0}", ResponseStatus);
sb.AppendLine();
sb.AppendFormat("SLICECount: {0}", SLICECount);
sb.AppendLine();
return sb.ToString();
}
}
}