calculate the checksum of the incoming data instead of the expected packet
This commit is contained in:
parent
9287f90d25
commit
24413dce2d
|
@ -102,9 +102,10 @@ class Telegram
|
||||||
to_return.data = bytes[3..-3]
|
to_return.data = bytes[3..-3]
|
||||||
# parse checksum (CS)
|
# parse checksum (CS)
|
||||||
checksum = (bytes[-2]<<8)+bytes[-1]
|
checksum = (bytes[-2]<<8)+bytes[-1]
|
||||||
|
bytes[0..-3].each { |b| checksum -= b }
|
||||||
# run some checks
|
# run some checks
|
||||||
raise "wrong length. expected #{length}, got #{to_return.data.length-1}" if (to_return.transmission==SEND or to_return.transmission==ANSWER) and length != to_return.data.length-1
|
raise "wrong length. expected #{length}, got #{to_return.data.length-1}" if (to_return.transmission==SEND or to_return.transmission==ANSWER) and length != to_return.data.length-1
|
||||||
raise "wrong checksum. expected #{to_return.checksum}, got #{checksum}" if checksum != to_return.checksum
|
raise "wrong checksum. off by #{checksum}" if checksum != 0
|
||||||
return to_return
|
return to_return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue