Немецкое руководство по эксплуатации CRC код в VB6
Привет
Извините, очень длинный выстрел, но у меня есть руководство на немецком языке, которое сбивает меня с толку! Он показывает, как вычислить значение CRC для последовательного устройства, для которого я пытаюсь написать код в VB6. Я не только не понимаю немецкого языка, но и пример не на том языке, который я узнаю (падая на каждом препятствии!). В конечном счете мне нужно превратить все, что это показывает, в код VB6, но даже знание того, на каком языке находится этот пример, поможет мне в поиске в Google.
Вот оно....
4.6 Berechnung des CRC-Zeichens
Folgender Programmabschnitt erklärt die Berechnung des CRC-Zeichens. Der Type U8 ist eine 8bit-переменная ohne Vorzeichen (0 bis 255)
Die Funktion put_tx1_buffer( U8 c) sendet ein Zeichen über die serielle Schnittstelle.
#define POLYNOM 0xB1 // 28+27+25+24+20+1 #define INIT_TX_CRC {tx_crc=0xA5;} U8 tx_crc ; void build_tx_crc8( U8 a ) { U8 i=8 ; do { if (( a & 0x01 ) != ( tx_crc & 0x01 )) { tx_crc >>= 1 ; tx_crc ^= POLYNOM ; } else { tx_crc >>= 1 ; } a >>= 1 ; } while (--i!=0) ; } void set_lamp( U8 keyboardnumber, U8 lampnumber, U8 command ) { INIT_TX_CRC ; put_tx1_buffer( STX+0x80 ) ; build_tx_crc8( STX+0x80 ) ; put_tx1_buffer( command ) ; build_tx_crc8( command ) ; put_tx1_buffer( keyboardnumber ) ; build_tx_crc8( keyboardnumber ) ; put_tx1_buffer( lampnumber ) ; build_tx_crc8( lampnumber ) ; put_tx1_buffer( ETX+0x80 ) ; build_tx_crc8( ETX+0x80 ) ; put_tx1_buffer( tx_crc ) ; }
Что я уже пробовал:
Google translate, C#, но, похоже, это было не так.