145 lines
4.3 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|