может конечно не там читаю и уже туплю, но судя по коду в строке младший байт идёт первым
CSParseMV8A.ValDigPoint := ((BYTE_TO_WORD(pBuffer[1]) OR SHL(BYTE_TO_WORD(pBuffer[2]), 8)));
вы так и пишете..
Младший байт (pBuffer[1]) идёт здесь первым, поэтому я его просто склеиваю через OR Старший байт идёт здесь вторым, поэтому его надо сдвинуть влево на 8 бит (из 16#0012 превратить в 16#1200) при помощи оператора SHR и снова склеить с нужным нам числом.
скиньте пожалуйста ссылку на ваш FB




Ответить с цитированием