- 1
- 2
- 3
- 4
- 5
- 6
BYTE* ptr = PreventCommand(mode,3);
WORD chksum=this->calc_chksum((BYTE*)(ptr+2));
ptr[4] = (char)(chksum/256 & 0xff);
ptr[5] = (char)(chksum%256 & 0xff);
_interface_array[0]->write(ptr,6, NULL);
delete [] ptr;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+164
BYTE* ptr = PreventCommand(mode,3);
WORD chksum=this->calc_chksum((BYTE*)(ptr+2));
ptr[4] = (char)(chksum/256 & 0xff);
ptr[5] = (char)(chksum%256 & 0xff);
_interface_array[0]->write(ptr,6, NULL);
delete [] ptr;
Формирование пакета
На третью и четвертую строки смотреть особенно больно.
Oleg_quadro 06.11.2010 00:31 # +3
чтоб было пофигу little_endian или big_endian
но после деления или взятия остатка от деления "& 0xFF" забавляет.
seregakabancheg 06.11.2010 23:55 # 0
nil 06.11.2010 00:42 # 0
Сначала подумал, что проще будет прямо в память положить chksum, но потом подумал, что хрен его знает, может, littleendian-а опасаются.
Spider 06.11.2010 00:59 # 0
bugmenot 06.11.2010 01:02 # −1
сумма берется от блока смещению 2 и записывается в тот же блок по смещению 4 тем самым её испортив
nil 06.11.2010 14:49 # 0
TheCalligrapher 06.11.2010 18:41 # +1
seregakabancheg 06.11.2010 21:16 # 0