Alexander2013 0 30 апреля, 2014 Опубликовано 30 апреля, 2014 · Жалоба Добрый день. Есть некое устройство, которое общается с внешним миром посредством RS232. Производитель, в качестве примера строки приема/передачи, приводит следующее (прикрепление). Как я понимаю, контрольная сумма здесь символ '%'. Пытаюсь проверить свои догадки, складываю все числа арифметически (за исключением символа '%') , беру 8 бит от суммы: не сходится с догадками :). Произвожу операцию XOR: то же самое. Подскажите пожалуйста, тема CRC для меня новая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megajohn 3 30 апреля, 2014 Опубликовано 30 апреля, 2014 · Жалоба суммируйте все числа, и получите ноль либо суммируйте все числа за исключением CRC и должны получить -CRC ( минус CRC ) вот файл crc.rar P.S.: на будующее: хотя бы цифры сами написали, чтобы людям время не тратить на перебивание из PDF В текст Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexander2013 0 30 апреля, 2014 Опубликовано 30 апреля, 2014 · Жалоба вот файл crc.rar Спасибо, не догадался напечатать... суммируйте все числа, и получите ноль либо суммируйте все числа за исключением CRC и должны получить -CRC ( минус CRC ) Вот мне и непонятно как получить 37 (это все таки CRC?) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megajohn 3 30 апреля, 2014 Опубликовано 30 апреля, 2014 · Жалоба Вот мне и непонятно как получить 37 (это все таки CRC?) идите простым путем, всё суммируйте и получите 0 если хотите по своему, то так: суммируете чиста кроме CRC - получаете 1499 а так как это байт то будет 219 ( 219беззнаковое это -37 знаковое ) из нуля вычитаете это число 219 и получаете искомый CRC = 37 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexander2013 0 30 апреля, 2014 Опубликовано 30 апреля, 2014 · Жалоба Спасибо если хотите по своему.... А по-другому ИМХО и не получится: мне нужно слать команды этому устройству, оно проверяет CRC, следовательно, я должен его где-то взять... так? суммируете чиста кроме CRC - получаете 1499 а так как это байт то будет 219 ( 219беззнаковое это -37 знаковое ) из нуля вычитаете это число 219 и получаете искомый CRC = 37 Как будет выглядеть целиком алгоритм? На пальцах, если можно.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megajohn 3 30 апреля, 2014 Опубликовано 30 апреля, 2014 · Жалоба Как будет выглядеть целиком алгоритм? На пальцах, если можно.... эх, молодежь-молодежь сформировали свой пакет, где в значении CRC = 0 потом заводите переменную unsigned char summ = 0; и начинаете: summ = summ - 36; summ = summ - 67; ... summ = summ - 13; summ = summ - 10; и потом получившийся summ запишите в поле CRC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexander2013 0 30 апреля, 2014 Опубликовано 30 апреля, 2014 · Жалоба сформировали свой пакет, где в значении CRC = 0.... С вычитанием понятно, спасибо. Сразу возникает вопрос, откуда тогда берется "сложение", в верхней строчке производитель так и пишет:"added up"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megajohn 3 30 апреля, 2014 Опубликовано 30 апреля, 2014 · Жалоба Сразу возникает вопрос, откуда тогда берется "сложение", в верхней строчке производитель так и пишет:"added up"? есть два идентичных пути: arr[ CRC_index ] = (0 - arr[0] - arr[1] ... - arr[N-1] - arr[N] ); или arr[ CRC_index ] = -(arr[0] + arr[1] ... + arr[N-1] + arr[N] ); если и это не понятно, то back to school Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexander2013 0 30 апреля, 2014 Опубликовано 30 апреля, 2014 · Жалоба есть два идентичных пути: .... т.е. это два СТАНДАРТНЫХ, ОБЩЕПРИНЯТЫХ алгоритма? если так, то все понятно, какие могут быть вопросы касательно этого.... или "сложение" - это вещь условная? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 10 30 апреля, 2014 Опубликовано 30 апреля, 2014 · Жалоба т.е. это два СТАНДАРТНЫХ, ОБЩЕПРИНЯТЫХ алгоритма? если так, то все понятно, какие могут быть вопросы касательно этого.... или "сложение" - это вещь условная? Ага. Только называется это не CRC, а CS (контрольная сумма). У CRC совершенно определенные свойства. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 30 апреля, 2014 Опубликовано 30 апреля, 2014 · Жалоба т.е. это два СТАНДАРТНЫХ, ОБЩЕПРИНЯТЫХ алгоритма?Вообще-то это арифметика, первый класс. Тема "Сложение и вычитание". И четвертый класс, тема "отрицательные числа". a+b = a - ( -b ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexander2013 0 1 мая, 2014 Опубликовано 1 мая, 2014 · Жалоба Вообще-то это арифметика, первый класс... Я не спрашивал как сделать 2+2, я спрашивал касательно алгоритма, и математика здесь не при чем. Считать умею, благодарю. megajohn еще раз спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexander2013 0 1 мая, 2014 Опубликовано 1 мая, 2014 (изменено) · Жалоба так же, как и писать по-русски? Да уж не менее грамотно, чем большинство пользователей данного (да и большей части) форумов. По существу вопроса я ответ получил, спасибо людям. Приятно когда человек может просто ответить на вопрос, а не начинать разговор в ключе "вы не так делаете, и не так говорите". Не нужно ко мне придираться, лично Вам я ничего плохого не сделал. Флудить больше не хочу. Еще раз спасибо. Изменено 1 мая, 2014 пользователем Alexander2013 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thodnev 0 8 мая, 2014 Опубликовано 8 мая, 2014 · Жалоба Можете воспользоваться одним из онлайновых CRC-калькуляторов. Если хотите сами написать функцию расчета CRC, то лучше использовать готовую. Кстати, контрольная сумма зависит также от выбранного полинома Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexander2013 0 16 мая, 2014 Опубликовано 16 мая, 2014 · Жалоба Это был не CRC... Читать-то букварь я начал по CRC, спутал эту тему со своей задачей, у меня ведь действительно ПРОСТО сумма... Поэтому и начал спрашивать про "алгоритмы". Теперь дошло, затупил, пардоньте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться