/// <summary> /// レジスタからの読み込み(非同期) /// </summary> /// <param name="registerAddress">レジスタ アドレス</param> /// <param name="readByte">読み取りバイト数</param> /// <returns>タスク</returns> public Task <Byte[]> ReadRegisterAsync(Byte registerAddress, Int32 readByte) { return(Task.Run(() => { Byte[] buffer = new byte[readByte]; ArraySegment <byte> segment = new ArraySegment <byte>(buffer, 0, buffer.Length); RPi.bcm2835_i2c_read_register_rs(registerAddress, segment); return buffer; })); }
/// <summary> /// 汎用:レジスタ読み込み /// </summary> /// <param name="registerAddress">レジスタ アドレス</param> /// <param name="buffer">読み取りデータの格納バッファ</param> /// <param name="offset">オフセット(インデックス)</param> /// <param name="count">読み取りデータバイト数</param> public void ReadRegister(byte registerAddress, byte[] buffer, int offset, int count) { ArraySegment <byte> segment = new ArraySegment <byte>(buffer, offset, count); RPi.bcm2835_i2c_read_register_rs(registerAddress, segment); }