public short[,] ReadPixels() { byte[] blockData = new byte[32]; byte addr = 0x80; int row = 0; for (int i = 0; i < 4; i++) { lock (lockI2C) { if (_i2cBus.read_SMBUS_i2c_Block_data(addr, ref blockData) > 0) { debug(blockData); for (int j = 0; j < 16; j += 2) { pixelData[row, j / 2] = (short)(blockData[j] | (blockData[j + 1] << 8)); } row++; for (int j = 16; j < 32; j += 2) { pixelData[row, (j - 16) / 2] = (short)(blockData[j] | (blockData[j + 1] << 8)); } row++; } else { return(null); //We got some error here . } } addr += 32; } return(pixelData); }