コード例 #1
0
    public virtual async Task ApplyEffectAsync(IMiEffect effect, CancellationToken cancellationToken = default)
    {
        using var buffer = MemoryPool <byte> .Shared.Rent(32);

        WriteApplyEffect(effect, buffer.Memory.Span);

        await _client.SendAsync(buffer.Memory.Slice(23), SocketFlags.None, cancellationToken).ConfigureAwait(false);
    }
コード例 #2
0
    private void WriteApplyEffect(IMiEffect effect, Span <byte> output)
    {
        Span <byte> buffer = stackalloc byte[23]
        {
            0x80,
            0x00, 0x00, 0x00, 0x11, // Length
            _bridgeId,
            0x00, 0x00,
            ++_sequenceNumber,
            0x00,
            0x31, 0x00, 0x00, 0x07,
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, Zone, 0x00, // Command body
            0x00                                            // Reserved for sum calculation
        };

        effect.WriteBody(buffer[14..]);
コード例 #3
0
ファイル: MiController.cs プロジェクト: put/MiControl
 public void ApplyEffect(IMiEffect effect)
 {
     effect.Execute(this);
 }