private async Task<bool> BrickPiSetTimeout()
{
DataArray dataArray = new DataArray();
bool retval = false;
for (int i = 0; i < 2; i++)
{
dataArray.myArray[BYTE_MSG_TYPE] = MSG_TYPE_TIMEOUT_SETTINGS;
dataArray.myArray[BYTE_TIMEOUT] = (byte)(brickPi.Timeout & 0xFF);
dataArray.myArray[BYTE_TIMEOUT + 1] = (byte)((brickPi.Timeout / 256) & 0xFF);
dataArray.myArray[BYTE_TIMEOUT + 2] = (byte)((brickPi.Timeout / 65536) & 0xFF);
dataArray.myArray[BYTE_TIMEOUT + 3] = (byte)((brickPi.Timeout / 16777216) & 0xFF);
BrickPiTx(brickPi.Address[i], 5, dataArray.myArray);
// IMPORTANT: theoritical timeout is 2.5 ms
// Working all the time with 20
byte[] InArray = await BrickPiRx(20); //0.002500
if (InArray == null)
return false;
if ((InArray[0] == MSG_TYPE_TIMEOUT_SETTINGS) && (InArray.Length == 1))
return true;
}
return retval;
}