The BuildMessage() function simply places each byte into the desired modbus message format as well as passes this message to the CRC calculator. GetResponse() reads a byte stream of set length from the serial port and places this result into the response[] array.
https://www.codeproject.com/articles/Simple-Modbus-Protocol-in-C-NET-2-0