예제 #1
0
 /// <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);
 }
예제 #2
0
        /// <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);
            }));
        }
예제 #3
0
        /// <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);
        }