MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / validateChecksum

Function validateChecksum

app/rcc/scripts/parser/js/ubx_ublox.js:142–156  ·  view source on GitHub ↗

* Validates the UBX Fletcher's checksum. * Covers class, ID, length, and payload bytes.

(msgClass, msgId, length, payload, ckA, ckB)

Source from the content-addressed store, hash-verified

140 * Covers class, ID, length, and payload bytes.
141 */
142function validateChecksum(msgClass, msgId, length, payload, ckA, ckB) {
143 var calcCkA = 0, calcCkB = 0;
144
145 calcCkA = (calcCkA + msgClass) & 0xFF; calcCkB = (calcCkB + calcCkA) & 0xFF;
146 calcCkA = (calcCkA + msgId) & 0xFF; calcCkB = (calcCkB + calcCkA) & 0xFF;
147 calcCkA = (calcCkA + (length & 0xFF)) & 0xFF; calcCkB = (calcCkB + calcCkA) & 0xFF;
148 calcCkA = (calcCkA + ((length >> 8) & 0xFF)) & 0xFF; calcCkB = (calcCkB + calcCkA) & 0xFF;
149
150 for (var i = 0; i < payload.length; i++) {
151 calcCkA = (calcCkA + payload[i]) & 0xFF;
152 calcCkB = (calcCkB + calcCkA) & 0xFF;
153 }
154
155 return (calcCkA === ckA) && (calcCkB === ckB);
156}
157
158//------------------------------------------------------------------------------
159// Frame Parser Function

Callers 1

parseFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected