--calculate CRC16校验--@data : t, data to be verified--@n : number of verified--@return : check resultfunctionadd_crc16(start, n, data)local carry_flag, a =0local result =0xfffflocal i = start
while(true)do
result = result ~ data[i]for j =0,7do
a = result
carry_flag = a &0x0001
result = result >>1if carry_flag ==1then
result = result ~0xa001endend
i = i +1if i == start + n
thenbreakendendreturn result
end