Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2021, 07:13   #171
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 376
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Ну он мог бы явно как-то сообщать, что берет другой диапазон. Просто sum32 предполагает складывание 32битных чисел (4 байта), а если диапазон не кратен 4 байтам, то тритон выкручивается как может. Кстати, инструкция есть (http://www.triton-prog.ru/Dnl/Triton.pdf), но там про кнопку SUM буквально один абзац.
да. действительно инструкция из пару строчек. Вот он и выкручивается. а в программе на 32. при подсчёте тоже на +1 адрес надо сдвигать вперёд.
sergey.serg-72 вне форума Ответить с цитированием
Старый 25.11.2021, 07:15   #172
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 376
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
buf_len считается в байтах, так что и массив нужно делать типа Byte.
A: array of word; надо сделать не word . а byte ? я правильно понял?
и для 16 и для 32?
sergey.serg-72 вне форума Ответить с цитированием
Старый 25.11.2021, 07:20   #173
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 376
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Их нужно разместить до показа MessageBox. Тогда, скорее всего, не будет ошибок о занятости файла.
К стате пока пробовал, с этой строчкой тестил файл контролка в одном совпадала с подсчитанной, в другом CRC нет. но окошко почему то вылетело, хотя разные CRC и сумма во втором не совпадала. а окошко сработало. Почему ?
sergey.serg-72 вне форума Ответить с цитированием
Старый 25.11.2021, 21:38   #174
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,351
По умолчанию

Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
сделать не word . а byte ? я правильно понял?
и для 16 и для 32?
Да.
Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
окошко почему то вылетело, хотя разные CRC и сумма во втором не совпадала. а окошко сработало. Почему ?
Не знаю, это надо смотреть конкретные файл и вводимые в эдиты значения, при которых появляется окошко совпадения, хотя суммы не совпадают.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 25.11.2021, 22:29   #175
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 376
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Fs.Position := addr1;
SetLength(buffer, buf_len);
Fs.Read(buffer[1], buf_len);
Fs.free;
crc :=CRC16MODBUS(PChar(buffer), buf_len, skip_ - addr1, skip_2 - addr1);
edit2.Text := IntToHex(crc, 4);





if w = crc then
MessageBox(handle, PChar('Есть совпадение!'), PChar('Сообщение'), MB_ICONINFORMATION);

Цитата:
Сообщение от BDA Посмотреть сообщение
Не знаю, это надо смотреть конкретные файл и вводимые в эдиты значения, при которых появляется окошко совпадения, хотя суммы не совпадают.
Да, файл тот же тестовый , просто посчитал crc modbus и внёс в файл, стал проверять все crc помимо modbus сработало и rеllo, сумма разная а окошко вылетало у обоих. я так и не понял.
sergey.serg-72 вне форума Ответить с цитированием
Старый 25.11.2021, 23:51   #176
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 376
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Не знаю, это надо смотреть конкретные файл и вводимые в эдиты значения, при которых появляется окошко совпадения, хотя суммы не совпадают.
Причину выяснил, виновница не checksum16,, а CRC8 сейчас отработал два варианта. 1 вариант
Fs.Read(buffer[1], buf_len);
B:=CRC8(PChar(buffer), buf_len, skip_ - addr1, skip_2 - addr1);
edit2.Text := IntToHex(B, 2);
if w = B then
MessageBox(handle, PChar('Åñòü ñîâïàäåíèå!'), PChar('Ñîîáùåíèå'), MB_ICONINFORMATION);
Fs.free;
end;
end;строчки

что с этим кодом, что с моим ошибка и процесс занят.
А без проверки на совпадение, всё корректно и отлично. Причина найдена.
Не нравится именно на crc8. остальные нормально.

Последний раз редактировалось sergey.serg-72; 25.11.2021 в 23:55.
sergey.serg-72 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Opendialog завис DimOn4Ik Общие вопросы Delphi 12 02.11.2018 16:08
Реализация суммы в простом варианте. Mariolka PHP 8 10.11.2016 15:50
С++ сортировка в текстовом файле. (Задание на курсовик никак не получается) Evg888 Помощь студентам 1 02.06.2012 19:37
Житейская задачка о простом копировании mephist Помощь студентам 11 16.05.2009 20:42