You should convert your integer array to byte array before you send(serialPort.Write
) it to device
int[] d = new int[] { 1, 2, 3, 4 };
byte[] buf = d.SelectMany(i => BitConverter.GetBytes(i)).ToArray();
But there are also other issues. What size does your device assume for int? 2,4,8 bytes? What is endianness, Little-endian or big endian etc. Maybe it is as simple as
byte[] buf = d.Select(i => (byte)i).ToArray();