Форум программистов, компьютерный форум, киберфорум
Наши страницы
Алгоритмы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Polgood
0 / 0 / 0
Регистрация: 22.03.2016
Сообщений: 2
1

Как найти контрольную сумму

23.03.2016, 00:18. Просмотров 912. Ответов 3

Помогите, кто может , плиз. Убиваюсь 2 недели. Нужно определить алгоритм расчета контрольной суммы.
Управляющий блок посылает команды к исполнительным устройствам. Команда - это 7 байтов.Стартовый 0х0D.
затем собственно команда 4 байта. Затем разделительный 0х0A. И наконец - контрольная сумма один байт.
На CRC-8 не похоже. Может я и ошибаюсь по младости.

Вот некоторые команды: постарался подобрать с небольшими изменениями

0D 30 31 41 30 0A EF
0D 30 31 41 31 0A ED
0D 30 31 41 32 0A EB
0D 30 31 41 33 0A E9

0D 31 30 41 30 0A F7
0D 31 30 41 31 0A F5
0D 31 30 41 32 0A F3
0D 31 30 41 33 0A F1

0D 31 31 41 30 0A FF
0D 31 31 41 31 0A FD
0D 31 31 41 32 0A FB
0D 31 31 41 33 0A F9

0D 31 32 41 30 0A E7
0D 31 32 41 31 0A E5
0D 31 32 41 32 0A E3
0D 31 32 41 33 0A E1

0D 31 33 41 30 0A EF
0D 31 33 41 31 0A ED
0D 31 33 41 32 0A EB
0D 31 33 41 33 0A E9

0D 31 34 41 30 0A D7
0D 31 34 41 31 0A D5
0D 31 34 41 32 0A D3
0D 31 34 41 33 0A D1

0D 32 30 41 30 0A C7
0D 32 30 41 31 0A C5
0D 32 30 41 32 0A C3
0D 32 30 41 33 0A C1

0D 33 30 41 30 0A D7
0D 33 30 41 31 0A D5
0D 33 30 41 32 0A D3
0D 33 30 41 33 0A D1

0D 35 30 41 30 0A B7
0D 35 30 41 31 0A B5
0D 35 30 41 32 0A B3
0D 35 30 41 33 0A B1

0D 37 30 41 30 0A 97
0D 37 30 41 31 0A 95
0D 37 30 41 32 0A 93
0D 37 30 41 33 0A 91

0D 37 33 41 30 0A 8F
0D 37 33 41 31 0A 8D
0D 37 33 41 32 0A 8B
0D 37 33 41 33 0A 89

0D 37 34 41 30 0A B7
0D 37 34 41 31 0A B5
0D 37 34 41 32 0A B3
0D 37 34 41 33 0A B1



Может кто нить встречал подобное. Что-то не очень сложное, но мозгов не хватает понять принцип.

Нужно срочно приделать исполнительное устройство. Аппаратная часть готова, а с программой не получается.
Выручайте!!
Заранее всем спасибо за помощь!
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2016, 00:18
Ответы с готовыми решениями:

Хэширование. Как найти контрольную сумму документа?
Как найти Контрольную сумму документа? Теория не совсем понятна Буду рад любой информации!(а если...

Нужно найти контрольную сумму

Для области найти контрольную сумму
добрый день! Ув.Гуру программирования на языке машинного кода, помогите, пожалуйста: для...

Работа с файлами. Найти контрольную сумму
Помогите составить задачу. Файл текстовый. Алгоритм контрольной суммы стандартный. Составить...

Необходимо найти контрольную сумму CRC-16 некого сообщения
Здравия. Необходимо найти контрольную сумму CRC-16 некого сообщения. На сколько я понял, алгоритм...

3
Shamil1
Модератор
2257 / 1540 / 351
Регистрация: 26.03.2015
Сообщений: 5,483
23.03.2016, 17:34 2
У Вас на третьем месте всегда 41, поэтому могу только предполагать относительно зависимости от этого числа.
C#
1
2
3
4
5
    int Sum2() => 1787
                  -16*X1 -(X1%2==0?32:0) 
                  - 8*X2 -(X2%2==0?16:0) 
                  - 4*X3 -(X3%2==0? 8:0)
                  - 2*X4;
Выдаёт неверный ответ для последней группы (последние 4 строки).
0
Excalibur921
789 / 480 / 84
Регистрация: 12.10.2013
Сообщений: 3,185
23.03.2016, 19:14 3
Лучший ответ Сообщение было отмечено Polgood как решение

Решение

Цитата Сообщение от Polgood Посмотреть сообщение
но мозгов не хватает понять принцип.
Не знаю я алгоритмов CRC =).
Но что тут понимать? У вас 4 уникальных числа команды, нужно чтобы на контрольную сумму влияло число в команде и место этого числа. Если 5+2+1=8 то и 5+1+2=8 значит нужен множитель (веса) для числа. Чтобы в итоге уникальная команда в уникальном месте дала строго определенное число.
Тогда 5*2+2*4+1*8=10+8+8=26 5*2+1*4+2*8=10+4+16=30 Вот уже уникальны. Если финальное число для CRC не влазит то можно разделить на кратное двум.
1
Polgood
0 / 0 / 0
Регистрация: 22.03.2016
Сообщений: 2
24.03.2016, 11:27  [ТС] 4
Огромное спасибо всем! Все встало на свои места. Сбило с толку то, что в документации была ссылка на CRC8.
Оказывается она здесь не причем.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2016, 11:27

Как вычислить контрольную сумму ?
Есть ли функции для вычисления контрольных сумм файлов?

Как проверить контрольную сумму файла?
Доброго времени суток Подскажите пожалуйста, как можно проверить контрольную сумму файла? sha1 или...

Как получить контрольную сумму CRC-8?
Здравствуйте, не могу получить контрольную сумму. Имеется готовый рабочий пример: A5 01 10 55 03...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru