|
|
  |
CRC, или как его посчитать :) |
|
|
|
Apr 30 2014, 08:23
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 19-06-13
Пользователь №: 77 216

|
Добрый день. Есть некое устройство, которое общается с внешним миром посредством RS232. Производитель, в качестве примера строки приема/передачи, приводит следующее (прикрепление). Как я понимаю, контрольная сумма здесь символ '%'. Пытаюсь проверить свои догадки, складываю все числа арифметически (за исключением символа '%') , беру 8 бит от суммы: не сходится с догадками  . Произвожу операцию XOR: то же самое. Подскажите пожалуйста, тема CRC для меня новая.
Эскизы прикрепленных изображений
--------------------
Читайте ПУЭ. Сам не читал, но советую :)
|
|
|
|
|
Apr 30 2014, 08:32
|

Профессионал
    
Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143

|
суммируйте все числа, и получите ноль либо суммируйте все числа за исключением CRC и должны получить -CRC ( минус CRC ) вот файл
crc.rar ( 1.46 килобайт )
Кол-во скачиваний: 74P.S.: на будующее: хотя бы цифры сами написали, чтобы людям время не тратить на перебивание из PDF В текст
--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
|
|
|
|
|
Apr 30 2014, 08:51
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 19-06-13
Пользователь №: 77 216

|
Цитата(megajohn @ Apr 30 2014, 13:32)  вот файл
crc.rar ( 1.46 килобайт )
Кол-во скачиваний: 74Спасибо, не догадался напечатать... Цитата(megajohn @ Apr 30 2014, 13:32)  суммируйте все числа, и получите ноль либо суммируйте все числа за исключением CRC и должны получить -CRC ( минус CRC ) Вот мне и непонятно как получить 37 (это все таки CRC?)
--------------------
Читайте ПУЭ. Сам не читал, но советую :)
|
|
|
|
|
Apr 30 2014, 09:14
|

Профессионал
    
Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143

|
Цитата(Alexander2013 @ Apr 30 2014, 12:51)  Вот мне и непонятно как получить 37 (это все таки CRC?) идите простым путем, всё суммируйте и получите 0 если хотите по своему, то так: суммируете чиста кроме CRC - получаете 1499 а так как это байт то будет 219 ( 219беззнаковое это -37 знаковое ) из нуля вычитаете это число 219 и получаете искомый CRC = 37
--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
|
|
|
|
|
Apr 30 2014, 09:27
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 19-06-13
Пользователь №: 77 216

|
Спасибо Цитата(megajohn @ Apr 30 2014, 14:14)  если хотите по своему.... А по-другому ИМХО и не получится: мне нужно слать команды этому устройству, оно проверяет CRC, следовательно, я должен его где-то взять... так? Цитата(megajohn @ Apr 30 2014, 14:14)  суммируете чиста кроме CRC - получаете 1499 а так как это байт то будет 219 ( 219беззнаковое это -37 знаковое ) из нуля вычитаете это число 219 и получаете искомый CRC = 37 Как будет выглядеть целиком алгоритм? На пальцах, если можно....
--------------------
Читайте ПУЭ. Сам не читал, но советую :)
|
|
|
|
|
Apr 30 2014, 09:44
|

Профессионал
    
Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143

|
Цитата(Alexander2013 @ Apr 30 2014, 13:27)  Как будет выглядеть целиком алгоритм? На пальцах, если можно.... эх, молодежь-молодежь сформировали свой пакет, где в значении CRC = 0 потом заводите переменную unsigned char summ = 0; и начинаете: summ = summ - 36; summ = summ - 67; ... summ = summ - 13; summ = summ - 10; и потом получившийся summ запишите в поле CRC
--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
|
|
|
|
|
Apr 30 2014, 09:57
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 19-06-13
Пользователь №: 77 216

|
Цитата(megajohn @ Apr 30 2014, 14:44)  сформировали свой пакет, где в значении CRC = 0.... С вычитанием понятно, спасибо. Сразу возникает вопрос, откуда тогда берется "сложение", в верхней строчке производитель так и пишет:"added up"?
--------------------
Читайте ПУЭ. Сам не читал, но советую :)
|
|
|
|
|
Apr 30 2014, 10:05
|

Профессионал
    
Группа: Свой
Сообщений: 1 080
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143

|
Цитата(Alexander2013 @ Apr 30 2014, 13:57)  Сразу возникает вопрос, откуда тогда берется "сложение", в верхней строчке производитель так и пишет:"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
--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
|
|
|
|
|
Apr 30 2014, 14:50
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 19-06-13
Пользователь №: 77 216

|
Цитата(megajohn @ Apr 30 2014, 15:05)  есть два идентичных пути: .... т.е. это два СТАНДАРТНЫХ, ОБЩЕПРИНЯТЫХ алгоритма? если так, то все понятно, какие могут быть вопросы касательно этого.... или "сложение" - это вещь условная?
--------------------
Читайте ПУЭ. Сам не читал, но советую :)
|
|
|
|
|
May 1 2014, 04:05
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 19-06-13
Пользователь №: 77 216

|
Цитата(Сергей Борщ @ May 1 2014, 02:17)  Вообще-то это арифметика, первый класс... Я не спрашивал как сделать 2+2, я спрашивал касательно алгоритма, и математика здесь не при чем. Считать умею, благодарю. megajohn еще раз спасибо
--------------------
Читайте ПУЭ. Сам не читал, но советую :)
|
|
|
|
|
May 1 2014, 08:07
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 19-06-13
Пользователь №: 77 216

|
Цитата(toweroff @ May 1 2014, 10:19)  так же, как и писать по-русски? Да уж не менее грамотно, чем большинство пользователей данного (да и большей части) форумов. По существу вопроса я ответ получил, спасибо людям. Приятно когда человек может просто ответить на вопрос, а не начинать разговор в ключе "вы не так делаете, и не так говорите". Не нужно ко мне придираться, лично Вам я ничего плохого не сделал. Флудить больше не хочу. Еще раз спасибо.
Сообщение отредактировал Alexander2013 - May 1 2014, 08:11
--------------------
Читайте ПУЭ. Сам не читал, но советую :)
|
|
|
|
|
May 16 2014, 03:09
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 19-06-13
Пользователь №: 77 216

|
Это был не CRC... Читать-то букварь я начал по CRC, спутал эту тему со своей задачей, у меня ведь действительно ПРОСТО сумма... Поэтому и начал спрашивать про "алгоритмы". Теперь дошло, затупил, пардоньте.
--------------------
Читайте ПУЭ. Сам не читал, но советую :)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|