1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| static private byte[] MakeRequest()
{
// request for reading Analog Input is always 8 bytes long.
byte[] write = new byte[8];
write[0] = _Id; // device id
write[1] = 0x04; // Read A I
byte[] start = BitConverter.GetBytes((ushort)_StartAddress); // ushort = 2 bytes
write[2] = start[1]; // msb first
write[3] = start[0];
byte[] noReg = BitConverter.GetBytes(_NoAI); // ushort = 2 bytes
write[4] = noReg[1]; // msb first
write[5] = noReg[0];
byte[] writeTemp = { write[0], write[1], write[2], write[3], write[4], write[5], 0, 0 };
// Note two zeros at the end.
byte[] _crc = new byte[2];
crcCalculator(writeTemp, ref _crc);
write[6] = _crc[0];
write[7] = _crc[1];
return write;
} |