/// <summary> /// 汎用:レジイスタ書き込み /// </summary> /// <param name="registerAddress">レジスタ アドレス</param> /// <param name="buffer">書き込むデータのバッファ</param> /// <param name="offset">オフセット(インデックス)</param> public void WriteRegister(byte registerAddress, byte[] buffer, int offset) { byte[] data = new byte[buffer.Length + 1]; data[0] = registerAddress; Buffer.BlockCopy(buffer, offset, data, 1, buffer.Length); RPi.bcm2835_i2c_write(data); }
/// <summary> /// レジスタへの書き込み(非同期) /// </summary> /// <param name="registerAddress">レジスタ アドレス</param> /// <param name="writeData">書き込みデータ</param> /// <returns>タスク</returns> public Task WriteRegisterAsync(Byte registerAddress, Byte[] writeData) { return(Task.Run(() => { byte[] data = new byte[writeData.Length + 1]; data[0] = registerAddress; Buffer.BlockCopy(writeData, 0, data, 1, writeData.Length); RPi.bcm2835_i2c_write(data); })); }
/// <summary> /// 書き込み /// </summary> /// <param name="buffer">書き込むデータのバッファ</param> /// <param name="offset">オフセット(インデックス)</param> public void Write(Byte[] buffer, Int32 offset) { ArraySegment <byte> segment = new ArraySegment <byte>(buffer, offset, buffer.Length); RPi.bcm2835_i2c_write(segment); }