Sysex Checksum computation

The "Common System Exclusive Commands Manual" gives a very brief description of how to compute the checksum byte when sending messages to the iConnect device. Would it be possible to get a more detailed explanation of how that checksum byte is derived? Because Sysex is restricted to 7 bits per byte, the operations described in the manual become a bit more complicated. Any help or examples or a formula would be very helpful!

Comments

  • Please send in a support ticket so our engineers can reply to you directly.
  • Hi @rodney, I'm trying to get the same information, can you point me in the right direction?
  • export class MioUtility {
        public static computeChecksum(buffer: number[]): number { // FIXME: This needs unit tests
            const bodyBytes = _.slice(buffer, 5, buffer.length - 2);
            let sum = 0;
            bodyBytes.forEach((b: number) => sum += b);
            let tc = ~(sum);
            tc++;
            return tc & 0x7F; // Only care about least significant 7 bits
        }
    }
Sign In or Register to comment.