"Return Decimal 21 which mean negative acknowledge. Please I real need to solve this problem. May be the calculation of BCC!!"
There are far too many possibilities to tell without examples, but I'd start by getting the length right...
"LEN"- total number of bytes from position 2 to position 6, plus fixed offset of 20h.
so "2" is probably going to be wrong.
Then there is the command, which should be in the range 0x20 to 0xFF, but you are supplying 0x05.
Get a working sample, and work it back to what you need to do.
Then write a method that takes a command byte and a byte array and works out teh rest - use the sample to work out if it's working.
And do note that the sequence number must be different each time!
(Hint: you can use
BitConverter.GetBytes[
^] to convert an integer to an array of bytes - that's your checksum sorted!)