本文整理汇总了C#中ICommand.ToChannelValuesAsBytes方法的典型用法代码示例。如果您正苦于以下问题:C# ICommand.ToChannelValuesAsBytes方法的具体用法?C# ICommand.ToChannelValuesAsBytes怎么用?C# ICommand.ToChannelValuesAsBytes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ICommand
的用法示例。
在下文中一共展示了ICommand.ToChannelValuesAsBytes方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: UpdateState
public override void UpdateState(int chainIndex, ICommand[] outputStates)
{
UpdateState(chainIndex, outputStates.ToChannelValuesAsBytes());
}
示例2: UpdateState
public override void UpdateState(int chainIndex, ICommand[] outputStates)
{
Stopwatch stopWatch = Stopwatch.StartNew();
var channelValues = outputStates.ToChannelValuesAsBytes();
this._eventCnt++;
if (_universeTable == null)
{
return;
}
foreach (var uE in this._universeTable)
{
if (uE.Active)
{
if (this._eventRepeatCount > 0)
{
if (uE.EventRepeatCount-- > 0)
{
if (E131Packet.CompareSlots(uE.PhyBuffer, channelValues, uE.Start, uE.Size))
{
continue;
}
}
}
E131Packet.CopySeqNumSlots(uE.PhyBuffer, channelValues, uE.Start, uE.Size, this._seqNum++);
uE.Socket.SendTo(uE.PhyBuffer, uE.DestIpEndPoint);
uE.EventRepeatCount = this._eventRepeatCount;
uE.PktCount++;
uE.SlotCount += uE.Size;
}
}
stopWatch.Stop();
this._totalTicks += stopWatch.ElapsedTicks;
}
示例3: UpdateState
public override void UpdateState(int chainIndex, ICommand[] outputStates)
{
Stopwatch stopWatch = Stopwatch.StartNew();
//Make sure the setup form is closed & the plugin has started
if (isSetupOpen && hasStarted)
{
return;
}
var channelValues = outputStates.ToChannelValuesAsBytes();
int universeSize = 0;
this._eventCnt++;
if (_universeTable == null)
{
return;
}
foreach (var uE in this._universeTable)
{
//Check if the universe is active and inside a valid channel range
if (uE.Active && (uE.Start+1) <= OutputCount)
{
//Check the universe size boundary.
if ((uE.Start + 1 + uE.Size) > OutputCount)
{
universeSize = OutputCount - uE.Start-1;
}
else
{
universeSize = uE.Size;
}
//Reduce duplicate packets
//SeqNumbers are per universe so that they can run independently
if (this._eventRepeatCount > 0)
{
if (uE.EventRepeatCount-- > 0)
{
if (E131Packet.CompareSlots(uE.PhyBuffer, channelValues, uE.Start, universeSize))
{
continue;
}
}
}
//Not sure why this is needed, but the plugin will crash after being reconfigured otherwise.
if (uE.PhyBuffer != null)
{
E131Packet.CopySeqNumSlots(uE.PhyBuffer, channelValues, uE.Start, universeSize, uE.seqNum++);
uE.Socket.SendTo(uE.PhyBuffer, uE.DestIpEndPoint);
uE.EventRepeatCount = this._eventRepeatCount;
uE.PktCount++;
uE.SlotCount += uE.Size;
}
}
}
stopWatch.Stop();
this._totalTicks += stopWatch.ElapsedTicks;
}