21 49 4E 46 7C 34 39 36 31 0D
21: start of frame marker ('!')
49 4E 46: INF message
7C: frame delimiter ('|')
34 39 36 31: CRC-CCITT function applied to "INF" = 4961. Then, each character in 4961 is translated to hexadecimal (4=34, 9=39, 6=36, 1=31).
0D: packet terminator
Perhaps I'm totally misunderstanding all this ... but isn't the (decimal) "4961" portion a result of applying the CRC "security function" ... which interogates the pump's serial number to kick out (return) a unique "security code", which is then the one needing to be fed in? There has to be some sort of "gate" to be unlocked before free communications are permitted.
In other words, doesn't each pump need a different code following the "INF" command? And that code is returned in advance by applying (what is called here) the "CRC-CCITT function"?
