Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 04.08.2018
Сообщений: 22

Проверка контрольной суммы

08.08.2018, 13:35. Показов 4427. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нашел код для проверки контрольной суммы.
Какие действия он выполняет, если пришли "битые данные", и откуда он берет данные?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
namespace WPF1
{
    public class Class1
    {
        public UInt16 ModRTU_CRC(byte[] buf, int len)  //UInt16
        {
            UInt16 crc = 0xFFFF;
 
            for (int pos = 0; pos < len; pos++)
            {
                crc ^= (UInt16)buf[pos];          // XOR byte into least sig. byte of crc
 
                for (int i = 8; i != 0; i--)
                {    // Loop over each bit
                    if ((crc & 0x0001) != 0)
                    {      // If the LSB is set
                        crc >>= 1;                    // Shift right and XOR 0xA001
                        crc ^= 0xA001;
                    }
                    else                            // Else LSB is not set
                        crc >>= 1;                    // Just shift right
                }
            }
            // Note, this number has low and high bytes swapped, so use it accordingly (or swap bytes)
            return crc;
        }
    }
 
    
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
namespace WPF1
{
    
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
     
            Class1 c = new Class1();
            byte[] array = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
            UInt16 crc = c.ModRTU_CRC(array, 2);
}
}
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.08.2018, 13:35
Ответы с готовыми решениями:

Проверка контрольной суммы РНН
Добрый день, уважаемые читатели форума. Суть вопроса: РНН представляет собой 12-тиразрядное число. Первый фасет (2 разряда) - код...

Проверка контрольной суммы crc8
народ, подскажите как сделать проверку контрольной суммы допустим поступают байты: 170 7 0 0 7 102 230 96 68 115 0- синхробайт ...

Расчет контрольной суммы
Правильно ли я понимаю задание? Настройки com порта стандартные: 9600, 1 стартовый бит, 8 бит данных, 1 стоповый бит, без бита...

8
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
08.08.2018, 13:41
Цитата Сообщение от DarkWision Посмотреть сообщение
Какие действия он выполняет, если пришли "битые данные"
Никакие.
Цитата Сообщение от DarkWision Посмотреть сообщение
откуда он берет данные
Вы их ему должны передать.
0
Эксперт .NET
 Аватар для Rius
13104 / 7662 / 1673
Регистрация: 25.05.2015
Сообщений: 23,367
Записей в блоге: 14
08.08.2018, 13:42
Цитата Сообщение от DarkWision Посмотреть сообщение
акие действия он выполняет, если пришли "битые данные"
Никаких. Здесь нет такого понятия, как битые данные.
Цитата Сообщение от DarkWision Посмотреть сообщение
и откуда он берет данные?
В аргументах функции передаётся массив и длина.
Цитата Сообщение от DarkWision Посмотреть сообщение
нашел код для проверки контрольной суммы.
Это код всего лишь вычисления контрольной суммы. Никаких решений он не принимает.
0
0 / 0 / 0
Регистрация: 04.08.2018
Сообщений: 22
08.08.2018, 13:49  [ТС]
Rius, Контрольную сумму нужно что-то сравнивать?
Как определить данные пришли правильные или нет?
0
Эксперт .NET
 Аватар для Rius
13104 / 7662 / 1673
Регистрация: 25.05.2015
Сообщений: 23,367
Записей в блоге: 14
08.08.2018, 13:54
Лучший ответ Сообщение было отмечено DarkWision как решение

Решение

Нужно сравнивать.
В протоколе обмена обычно прописано, где в пакете хранится его контрольная сумма.
Принимаете пакет. Читаете из него контрольную сумму. Вычисляете самостоятельно контрольную сумма пакета (см. описание протокола обмена). Сравниваете эти две контрольные суммы.
2
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
08.08.2018, 13:55
Цитата Сообщение от DarkWision Посмотреть сообщение
Контрольную сумму нужно что-то сравнивать?
Как определить данные пришли правильные или нет?
Вы такие вопросы задаете, как будто с программированием связались впервые...

Естественно нужно с чем-то сравнивать, чтобы определить правильные ли данные...

У вас там в данных присутствует эта контрольная сумма, логично было бы с ней и сравнивать...
0
0 / 0 / 0
Регистрация: 04.08.2018
Сообщений: 22
08.08.2018, 14:44  [ТС]
Someone007, Да, впервые, это плохо?
Или все изначально умеют кодить и знакомы со всеми протоколами?
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
08.08.2018, 17:53
Цитата Сообщение от DarkWision Посмотреть сообщение
это плохо?
Плохо то, что вы за такой элементарщиной бежите на форум, а не пытаетесь сами разобраться.
С такими знаниями рановато лезть во взаимодействие с оборудованием и т.д.
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
09.08.2018, 15:46
Цитата Сообщение от DarkWision Посмотреть сообщение
Или все изначально умеют кодить и знакомы со всеми протоколами?
Изначально получают теоретические знания в необходимых дисциплинах, и только потом переходят к практике
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.08.2018, 15:46
Помогаю со студенческими работами здесь

Вычисление 8-и битных контрольной суммы
Доброго времени суток господа! Нужна ваша помощь. Есть функция на Си для вычисления 8-и битных контрольных сумм. Нужно транслировать её на...

Расчета контрольной суммы MD5 (хеширование)
Помогите с процедурой для , ___ где вопросительные знаки нужно вставить процедуру:wall: using System; using...

Код по алгоритму. Расчет контрольной суммы
Помогите написать код по этому алгоритму. 1) Пользователь может выбрать ввод 8-ми или на 13-ти чисел.(вводит их сам) 2) Сложить...

Вычисление контрольной суммы файлов в отдельных потоках
Помогите,пожалуйста,искал в интернете,что то подобное,толком ничего не нашел. само задание: Контрольная сумма.Для нескольких...

Передача данных по COM-порту. Подсчет контрольной суммы
Здравствуйте! помогите перевести с языка ПАСКАЛЬ на C# Способ подсчета контрольной суммы. 1. Загружаем 16-битную беззнаковую...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru