![](/media/cache/profiles/Felicito_-_New_Avatar.jpg.50x50_q85.jpg)
Proyecto ABInBev para la tarjeta Guaria 1/2.
Teltonika/teltonika_crc.cpp@19:5580a9a54ad5, 2022-07-07 (annotated)
- Committer:
- fmanzano_dtk
- Date:
- Thu Jul 07 16:17:25 2022 +0000
- Revision:
- 19:5580a9a54ad5
- Parent:
- 1:9e821e640117
Sincronizacion;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
fmanzano_dtk | 1:9e821e640117 | 1 | /** |
fmanzano_dtk | 1:9e821e640117 | 2 | * @file teltonika_crc.cpp |
fmanzano_dtk | 1:9e821e640117 | 3 | * @author Felícito Manzano (felicito.manzano@detektor.com.sv) |
fmanzano_dtk | 1:9e821e640117 | 4 | * @brief |
fmanzano_dtk | 1:9e821e640117 | 5 | * @version 0.1 |
fmanzano_dtk | 1:9e821e640117 | 6 | * @date 2020-11-25 |
fmanzano_dtk | 1:9e821e640117 | 7 | * |
fmanzano_dtk | 1:9e821e640117 | 8 | * @copyright Copyright (c) 2020 |
fmanzano_dtk | 1:9e821e640117 | 9 | * |
fmanzano_dtk | 1:9e821e640117 | 10 | */ |
fmanzano_dtk | 1:9e821e640117 | 11 | |
fmanzano_dtk | 1:9e821e640117 | 12 | int teltonika_crc16(char buffer[], int bufLen) |
fmanzano_dtk | 1:9e821e640117 | 13 | { |
fmanzano_dtk | 1:9e821e640117 | 14 | int offset = 0; |
fmanzano_dtk | 1:9e821e640117 | 15 | int preset = 0; |
fmanzano_dtk | 1:9e821e640117 | 16 | int polynom = 0xA001; |
fmanzano_dtk | 1:9e821e640117 | 17 | preset &= 0xFFFF; |
fmanzano_dtk | 1:9e821e640117 | 18 | polynom &= 0xFFFF; |
fmanzano_dtk | 1:9e821e640117 | 19 | |
fmanzano_dtk | 1:9e821e640117 | 20 | int crc = preset; |
fmanzano_dtk | 1:9e821e640117 | 21 | |
fmanzano_dtk | 1:9e821e640117 | 22 | for (int i = 0; i < bufLen; i++) { |
fmanzano_dtk | 1:9e821e640117 | 23 | int data = buffer[(i + offset) % bufLen] & 0xFF; |
fmanzano_dtk | 1:9e821e640117 | 24 | crc ^= data; |
fmanzano_dtk | 1:9e821e640117 | 25 | for (int j = 0; j < 8; j++) { |
fmanzano_dtk | 1:9e821e640117 | 26 | if ((crc & 0x0001) != 0) { |
fmanzano_dtk | 1:9e821e640117 | 27 | crc = (crc >> 1) ^ polynom; |
fmanzano_dtk | 1:9e821e640117 | 28 | } else { |
fmanzano_dtk | 1:9e821e640117 | 29 | crc = crc >> 1; |
fmanzano_dtk | 1:9e821e640117 | 30 | } |
fmanzano_dtk | 1:9e821e640117 | 31 | } |
fmanzano_dtk | 1:9e821e640117 | 32 | } |
fmanzano_dtk | 1:9e821e640117 | 33 | return crc & 0xFFFF; |
fmanzano_dtk | 1:9e821e640117 | 34 | } |