kopia lustrzana https://github.com/dl2alf/AirScout
60 wiersze
1.3 KiB
C#
60 wiersze
1.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Collections.ObjectModel;
|
|
using System.IO;
|
|
|
|
namespace ScoutBase.CAT
|
|
{
|
|
public class CommandQueue : Collection<QueueItem>
|
|
{
|
|
public ExchangePhase Phase = ExchangePhase.phIdle;
|
|
|
|
public CommandQueue()
|
|
{
|
|
|
|
}
|
|
|
|
public void Delete(int index)
|
|
{
|
|
this.RemoveAt(index);
|
|
}
|
|
|
|
public QueueItem AddBeforeStatusCommands(QueueItem item)
|
|
{
|
|
int idx = this.Count;
|
|
// decrease insert index in case of status commands pending
|
|
// item[0] is the command currently worked on, so start with 1
|
|
for (int i = 1; i < this.Count; i++)
|
|
{
|
|
if (this[i].Kind == CommandKind.ckStatus)
|
|
{
|
|
idx = i;
|
|
break;
|
|
}
|
|
}
|
|
|
|
this.Insert(idx, item);
|
|
return item;
|
|
}
|
|
|
|
public bool HasStatusCommands()
|
|
{
|
|
foreach (QueueItem item in this)
|
|
{
|
|
if (item.Kind == CommandKind.ckStatus)
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public QueueItem CurrentCmd()
|
|
{
|
|
return this[0];
|
|
}
|
|
|
|
}
|
|
}
|