Exemplo n.º 1
0
    protected override void ProcessRecord()
    {
        Span <byte> dataOut = stackalloc byte[] { (byte)Register, Data[0] };

        this.Device.device.Write(dataOut);
        if (this.PassThru)
        {
            I2CDeviceRegisterData result = new I2CDeviceRegisterData(this.Device, this.Register, this.Data);
            WriteObject(result);
        }
    }
}
Exemplo n.º 2
0
    protected override void ProcessRecord()
    {
        if (this.ByteCount > 1)
        {
            Span <byte> readBuffer = stackalloc byte[ByteCount];

            this.Device.device.WriteByte((byte)this.Register);
            this.Device.device.Read(readBuffer);

            if (this.Raw)
            {
                WriteObject(readBuffer.ToArray());
            }
            else
            {
                I2CDeviceRegisterData result = new I2CDeviceRegisterData(this.Device, this.Register)
                {
                    Data = readBuffer.ToArray() // optimize to be Span? How does PowerShell deal with it?
                };
                WriteObject(result);
            }
        }
        else
        {
            this.Device.device.WriteByte((byte)this.Register);
            byte value = this.Device.device.ReadByte();
            //byte value = this.Device.device.ReadAddressByte(this.Register);
            if (this.Raw)
            {
                WriteObject(value);
            }
            else
            {
                I2CDeviceRegisterData result = new I2CDeviceRegisterData(this.Device, this.Register, new byte[1] {
                    value
                });
                WriteObject(result);
            }
        }
    }