Например TDA7294

Форум РадиоКот • Просмотр темы - расчет контрольной суммы (требуется помощь)
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср окт 22, 2025 18:00:10

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 318 ]     ... , , , 12, , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 09:01:19 
Друг Кота
Аватар пользователя

Карма: 59
Рейтинг сообщений: 1566
Зарегистрирован: Вт окт 22, 2013 04:37:23
Сообщений: 3394
Откуда: Казань
Рейтинг сообщения: 0
Зачем же гадать, господа, всё просто, ТС много раз уже писал - нужно засунуть ЛОГ, чтобы его посчитал бензин-алгоритм на С. И никакая программа не нужна. Проблема только в том, куда засунуть ЛОГ !

_________________
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезисты Ordyl Alpha 350 и AM 140.
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльная маска XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com


Последний раз редактировалось smacorp Вт сен 02, 2025 09:02:35, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 09:01:53 
Друг Кота

Карма: -1
Рейтинг сообщений: 68
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8693
Откуда: .ru
Рейтинг сообщения: 0
да какая разница... фильтр... генератор... принцип один.))
:tea:

для начала сделаем калькулятор CRC32... он проще чем ваш КС...))
:)))

Спойлер
Код:
<!DOCTYPE html>
<html>
<head>
<title>crc</title>
<h2>Расчёт crc:</h2>
</head>
<body>


<script>
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////TX_int: 
var TX_int = [ 
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
];
var xTX = 0;              // счёт xTX
var TX_len = 12;          // TX_len
var String;           
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////crcTX:
var crcTX = 0; var bcrcTX = 0; var aTX = 0;  var bTX = 0;   
function fcrcTX(){
crcTX = 0xFFFFFFFF;
for (bTX=0; bTX<(TX_len-4); bTX=bTX+4) {                                 
bcrcTX=TX_int[bTX];
bcrcTX=(bcrcTX<<8)|TX_int[bTX+1];
bcrcTX=(bcrcTX<<8)|TX_int[bTX+2];
bcrcTX=(bcrcTX<<8)|TX_int[bTX+3];
crcTX ^= bcrcTX;   
for( aTX = 0; aTX < 32; aTX++ ){         
if ((crcTX & 0x80000000) != 0){crcTX = (crcTX << 1) ^ 0x04C11DB7;}//Eth.
else                          {crcTX = (crcTX << 1);};
};
};
TX_int[TX_len-4] = ((crcTX>>24) & 0xFF);// crc       
TX_int[TX_len-3] = ((crcTX>>16) & 0xFF);// crc     
TX_int[TX_len-2] = ((crcTX>>8) & 0xFF); // crc       
TX_int[TX_len-1] = ((crcTX) & 0xFF);    // crc
};
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////CheckSum:
/*
function DoCheckSum( uint8_t *Buf, uint16_t Size ){
// Локальные переменные
uint16_t Cnt,Sum,Tmp1,Tmp2;
// Инит
Sum = 0; Tmp1 = 0; Tmp2 = 0;
// Если размер больше 0
if (Size > 0)
{ // Цикл расчёта
Cnt = 0;
while (Cnt < Size)
{ // Tmp1
Tmp1 += *(Buf); if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
// Sum
Sum += Tmp1; if (Sum > 0x00FE) { Sum += 0xFF01; }
// Следующий байт
Buf++; Cnt++;
}
// Финализация
Tmp2 = Tmp1 + Sum; if (Tmp2 > 0x00FE) { Tmp2 += 0xFF01; }
Tmp2 ^= 0x00FF;
Tmp1 += Tmp2; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
Tmp1 ^= 0x00FF;
Sum = (Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00);
}
// Результат
return Sum;
};
*/
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////наверное, можно немного упростить:
/*
public static ushort DoCheckSum(byte[] Buf, ushort Size)
{
    ushort Cnt = 0, Tmp1 = 0, Tmp2 = 0;
   
    if (Size == 0) { return 0; }

    while (Cnt < Size)
    {
        // Tmp1
        Tmp1 += Buf[Cnt++];
        if (Tmp1 > 0x00FE) {
            Tmp1 += 0xFF01;
        }
        // Sum
        Tmp2 += Tmp1;
        if (Tmp2 > 0x00FE) {
            Tmp2 += 0xFF01;
        }
    }

    // Финализация
    Tmp2 += Tmp1;
    if (Tmp2 > 0x00FE) {
        Tmp2 += 0xFF01;
    }
    Tmp2 ^= 0x00FF;

    Tmp1 += Tmp2;
    if (Tmp1 > 0x00FE) {
        Tmp1 += 0xFF01;
    }
    Tmp1 ^= 0x00FF;

    return (ushort)((Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00));
}
*/
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////HEX(int)> LCD(String):
var bi = 0;
function LCD_HEX(bi) {
///////////////////
bi &= 0xFF;
var z = 0;
var HEX = ""; 
///////////////////
z=0; while (bi>15) {z++; bi=bi-16;};     
if (z==0)  {HEX = "0";} if (z==1)  {HEX = "1";} if (z==2)  {HEX = "2";} if (z==3)  {HEX = "3";}
if (z==4)  {HEX = "4";} if (z==5)  {HEX = "5";} if (z==6)  {HEX = "6";} if (z==7)  {HEX = "7";}
if (z==8)  {HEX = "8";} if (z==9)  {HEX = "9";} if (z==10) {HEX = "A";} if (z==11) {HEX = "B";}
if (z==12) {HEX = "C";} if (z==13) {HEX = "D";} if (z==14) {HEX = "E";} if (z==15) {HEX = "F";}
///////////////////
z=0; while (bi>0)  {z++; bi=bi-1;};   
if (z==0)  {HEX += "0";} if (z==1)  {HEX += "1";} if (z==2)  {HEX += "2";} if (z==3)  {HEX += "3";}
if (z==4)  {HEX += "4";} if (z==5)  {HEX += "5";} if (z==6)  {HEX += "6";} if (z==7)  {HEX += "7";}
if (z==8)  {HEX += "8";} if (z==9)  {HEX += "9";} if (z==10) {HEX += "A";} if (z==11) {HEX += "B";}
if (z==12) {HEX += "C";} if (z==13) {HEX += "D";} if (z==14) {HEX += "E";} if (z==15) {HEX += "F";}
///////////////////
HEX += " ";
return HEX; //String
}
////////////////////////////////////////////////////////////////////////////////
</script>



<!---------->
<div id='label'
style='position: absolute; left: 10px; top: 100px; width: 970px; height: 0px;
font-size: 30px; color: #000000; background: #1CD3A2;'>crc:</div>
<script>var label = document.getElementById('label');</script>
<!---------->
<input id='button' type='button' value='нажми меня ))' onClick='Button();'
style='position: absolute; left: 10px; top: 300px; width: 500px; height: 80px;
font-size: 50px; border: 4px solid maroon; background: #00FF00;'>
<script>
function Button() {
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////DoCheckSum:
//DoCheckSum(); 
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////crc:
fcrcTX();
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////LCD:
String = "crc: ";
for (xTX=0; xTX<TX_len; xTX++) {   
String += LCD_HEX(TX_int[xTX]); 
};
label.innerHTML = String;
TX_int[0]++;
if (TX_int[0] > 255){TX_int[0] = 0;};
////////////////////////////////////////////////////////////////////////////////
};     
</script>


</body>
</html>

:)
сравним с https://www.sunshine2k.de/coding/javasc ... rc_js.html

Изображение

замечательно))
:tea:

теперь надо переделать на КС...
:tea:


Вложения:
crc.jpg [70.85 KiB]
Скачиваний: 183
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 09:54:57 
Потрогал лапой паяльник

Карма: 2
Рейтинг сообщений: -9
Зарегистрирован: Сб авг 09, 2025 22:08:28
Сообщений: 373
Рейтинг сообщения: 0
нужно засунуть ЛОГ, чтобы его посчитал бензин-алгоритм на С. И никакая программа не нужна. Проблема только в том, куда засунуть ЛОГ !

то есть, что такое бензин-алгоритм только я не знаю? :shock:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 09:56:33 
Друг Кота

Карма: -1
Рейтинг сообщений: 68
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8693
Откуда: .ru
Рейтинг сообщения: 0
да. только ты))
:)

далее... сделаем CRC и КС... два в одном))

Спойлер
Код:
<!DOCTYPE html>
<html>
<head>
<title>crc и КС</title>
<h2>Расчёт crc и КС:</h2>
</head>
<body>


<script>
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////Buf: 
var Buf = [ 
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
];
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////TX_int: 
var TX_int = [ 
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
];
var xTX = 0;              // счёт xTX
var TX_len = 12;          // TX_len
var String;           
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////crcTX:
var crcTX = 0; var bcrcTX = 0; var aTX = 0;  var bTX = 0;   
function fcrcTX(){
crcTX = 0xFFFFFFFF;
for (bTX=0; bTX<(TX_len-4); bTX=bTX+4) {                                 
bcrcTX=TX_int[bTX];
bcrcTX=(bcrcTX<<8)|TX_int[bTX+1];
bcrcTX=(bcrcTX<<8)|TX_int[bTX+2];
bcrcTX=(bcrcTX<<8)|TX_int[bTX+3];
crcTX ^= bcrcTX;   
for( aTX = 0; aTX < 32; aTX++ ){         
if ((crcTX & 0x80000000) != 0){crcTX = (crcTX << 1) ^ 0x04C11DB7;}//Eth.
else                          {crcTX = (crcTX << 1);};
};
};
TX_int[TX_len-4] = ((crcTX>>24) & 0xFF);// crc       
TX_int[TX_len-3] = ((crcTX>>16) & 0xFF);// crc     
TX_int[TX_len-2] = ((crcTX>>8) & 0xFF); // crc       
TX_int[TX_len-1] = ((crcTX) & 0xFF);    // crc
};
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////CheckSum:
/*
function DoCheckSum( uint8_t *Buf, uint16_t Size ){
// Локальные переменные
uint16_t Cnt,Sum,Tmp1,Tmp2;
// Инит
Sum = 0; Tmp1 = 0; Tmp2 = 0;
// Если размер больше 0
if (Size > 0)
{ // Цикл расчёта
Cnt = 0;
while (Cnt < Size)
{ // Tmp1
Tmp1 += *(Buf); if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
// Sum
Sum += Tmp1; if (Sum > 0x00FE) { Sum += 0xFF01; }
// Следующий байт
Buf++; Cnt++;
}
// Финализация
Tmp2 = Tmp1 + Sum; if (Tmp2 > 0x00FE) { Tmp2 += 0xFF01; }
Tmp2 ^= 0x00FF;
Tmp1 += Tmp2; if (Tmp1 > 0x00FE) { Tmp1 += 0xFF01; }
Tmp1 ^= 0x00FF;
Sum = (Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00);
}
// Результат
return Sum;
};
*/
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////наверное, можно немного упростить:
/*
public static ushort DoCheckSum(byte[] Buf, ushort Size)
{
    ushort Cnt = 0, Tmp1 = 0, Tmp2 = 0;
   
    if (Size == 0) { return 0; }

    while (Cnt < Size)
    {
        // Tmp1
        Tmp1 += Buf[Cnt++];
        if (Tmp1 > 0x00FE) {
            Tmp1 += 0xFF01;
        }
        // Sum
        Tmp2 += Tmp1;
        if (Tmp2 > 0x00FE) {
            Tmp2 += 0xFF01;
        }
    }

    // Финализация
    Tmp2 += Tmp1;
    if (Tmp2 > 0x00FE) {
        Tmp2 += 0xFF01;
    }
    Tmp2 ^= 0x00FF;

    Tmp1 += Tmp2;
    if (Tmp1 > 0x00FE) {
        Tmp1 += 0xFF01;
    }
    Tmp1 ^= 0x00FF;

    return (ushort)((Tmp1 & 0x00FF) | ((Tmp2 << 8) & 0xFF00));
}
*/
////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////HEX(int)> LCD(String):
var bi = 0;
function LCD_HEX(bi) {
///////////////////
bi &= 0xFF;
var z = 0;
var HEX = ""; 
///////////////////
z=0; while (bi>15) {z++; bi=bi-16;};     
if (z==0)  {HEX = "0";} if (z==1)  {HEX = "1";} if (z==2)  {HEX = "2";} if (z==3)  {HEX = "3";}
if (z==4)  {HEX = "4";} if (z==5)  {HEX = "5";} if (z==6)  {HEX = "6";} if (z==7)  {HEX = "7";}
if (z==8)  {HEX = "8";} if (z==9)  {HEX = "9";} if (z==10) {HEX = "A";} if (z==11) {HEX = "B";}
if (z==12) {HEX = "C";} if (z==13) {HEX = "D";} if (z==14) {HEX = "E";} if (z==15) {HEX = "F";}
///////////////////
z=0; while (bi>0)  {z++; bi=bi-1;};   
if (z==0)  {HEX += "0";} if (z==1)  {HEX += "1";} if (z==2)  {HEX += "2";} if (z==3)  {HEX += "3";}
if (z==4)  {HEX += "4";} if (z==5)  {HEX += "5";} if (z==6)  {HEX += "6";} if (z==7)  {HEX += "7";}
if (z==8)  {HEX += "8";} if (z==9)  {HEX += "9";} if (z==10) {HEX += "A";} if (z==11) {HEX += "B";}
if (z==12) {HEX += "C";} if (z==13) {HEX += "D";} if (z==14) {HEX += "E";} if (z==15) {HEX += "F";}
///////////////////
HEX += " ";
return HEX; //String
}
////////////////////////////////////////////////////////////////////////////////
</script>



<!---------->
<div id='label'
style='position: absolute; left: 10px; top: 100px; width: 970px; height: 0px;
font-size: 30px; color: #000000; background: #1CD3A2;'>crc:</div>
<script>var label = document.getElementById('label');</script>
<!---------->
<div id='label_1'
style='position: absolute; left: 10px; top: 200px; width: 970px; height: 0px;
font-size: 30px; color: #000000; background: #1CD3A2;'>КС:</div>
<script>var label_1 = document.getElementById('label_1');</script>
<!---------->
<input id='button' type='button' value='нажми меня ))' onClick='Button();'
style='position: absolute; left: 10px; top: 300px; width: 500px; height: 80px;
font-size: 50px; border: 4px solid maroon; background: #00FF00;'>
<script>
function Button() {
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////DoCheckSum:
//DoCheckSum(); 
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////crc:
fcrcTX();
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////LCD:
String = "crc: ";
for (xTX=0; xTX<TX_len; xTX++) {   
String += LCD_HEX(TX_int[xTX]); 
};
label.innerHTML = String;
TX_int[0]++;
if (TX_int[0] > 255){TX_int[0] = 0;};
///////////////////
String = "КС: ";
for (xTX=0; xTX<TX_len; xTX++) {   
String += LCD_HEX(Buf[xTX]); 
};
label_1.innerHTML = String;
Buf[0]++;
if (Buf[0] > 255){Buf[0] = 0;};
////////////////////////////////////////////////////////////////////////////////
};     
</script>


</body>
</html>

осталось разобраться с вашей супер-пупер функцией))
:tea:


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 09:58:30 
Потрогал лапой паяльник
Аватар пользователя

Карма: -8
Рейтинг сообщений: -8
Зарегистрирован: Чт май 20, 2021 13:33:05
Сообщений: 329
Рейтинг сообщения: 0
Ребяты !!! У меня попкорн кончился! :)) :)) :))

Товарищ хочет в ехел , значит надо ехел !
Он, почему-то считает , что знает его. :)
они работают в том же EXCEL заморочисто конечно из за шестнадцатеричной системы исчисления,.
Вложение:
excel.png [13.39 KiB]
Скачиваний: 18

Написать программу на С, С# итд и любой дурак сможет ! Но выясняется , не любой. :)
Вы напишите на Excel ! Типа , устройте батл. :)
И даже "ЛоГ" в него засунуть можно!
А я схожу еще за попкорном! :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 10:09:57 
Потрогал лапой паяльник

Карма: 2
Рейтинг сообщений: -9
Зарегистрирован: Сб авг 09, 2025 22:08:28
Сообщений: 373
Рейтинг сообщения: 0
всё необходимое для жизни в Екселе давно написано: https://github.com/InvisibleRain/Tetris-in-Excel


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 10:33:05 
Встал на лапы

Зарегистрирован: Сб авг 09, 2025 22:19:34
Сообщений: 114
Рейтинг сообщения: 0
[uquote="roman.com",url="/линный /viewtopic.php?p=4743121#p4743121"]
HardWareMan писал(а):
В чём здесь заключается величие сумрачного гения?

так ВЫШЕ ПИСАЛИ ЗАЧЕМ)) будем подменять пакеты...
:tea:

сейчас работает так:
ПК >> 1B 02 80 62 00 03 00 C0 C9 72 >> "устройство".

а надо так:
ПК >> 1B 02 80 62 00 03 00 C0 C9 72 >> перехват/подмена 1B 02 80 62 01 03 00 C0 CD 6D >> "устройство".

всё))
:tea:
всё правильно именно так , а так же ПК даёт длинный лог ( ну прога такая ,,она для теста ) который состоит из команды перемещения в какую то заданную точку и команды обратного перемещения. ВОТ эту часть команд для обратного перемещения и требуется отрезать.
и высчитать новую КС.

ранее
HardWareMan писал(а):
О какой программе речь? Изначальная задача была понять как считается контролька, я выдал прям готовое решение - копипастить в исходник и поехали. О какой программе теперь речь в теме про контрольку? Тема решена.
----------
поэтому его слова и были Взяты за чистую монету.
т.е ---скопировал ---вставилл---всё оно работает.
соответственно это делается в проге написания на С
либо как это предложения с использованием браузера и дописанием части для того что бы браузер понял.

поэтому не совсем понятны возникающие сложности .

.....HardWareMan
особо непонятна Ваша реакция .
у Вас то все карты на руках,(и не одна ) и колода раазложена . однако ....
ну и конечно большое количество постов ( из за лишних ненужных эмоций) много усложняют понимание.


Последний раз редактировалось o90 Вт сен 02, 2025 11:13:12, всего редактировалось 4 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 10:49:07 
Потрогал лапой паяльник
Аватар пользователя

Карма: -8
Рейтинг сообщений: -8
Зарегистрирован: Чт май 20, 2021 13:33:05
Сообщений: 329
Рейтинг сообщения: 0
в Екселе давно написано

Это не спортивно! На ВБ и дурак сможет. А вы без Языков и макросов!

длинный лог ( ну прога такая ,,она для теста ) который состоит из команды перемещения в какую то заданную точку и команды обратного перемещения. ВОТ эту часть команд для обратного перемещения и требуется отрезать.
и высчитать новую КС.

Вот и сделайте это на ехеле!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 11:04:16 
Встал на лапы

Зарегистрирован: Сб авг 09, 2025 22:19:34
Сообщений: 114
Рейтинг сообщения: 0
в Екселе давно написано

Это не спортивно! На ВБ и дурак сможет. А вы без Языков и макросов!

длинный лог ( ну прога такая ,,она для теста ) который состоит из команды перемещения в какую то заданную точку и команды обратного перемещения. ВОТ эту часть команд для обратного перемещения и требуется отрезать.
и высчитать новую КС.

Вот и сделайте это на ехеле!


вот и приходится . с таким настроем.
и указанный алгоритм - формулы заполненные в EXCEL -работают.
пока проверено на коротких логах . очень заморочно в неё шестнадцатиричные числа обрабатывать.
хотя и есть уже как постоянно указывают написанный алгоритм на С.
но что же делать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 11:06:32 
Потрогал лапой паяльник
Аватар пользователя

Карма: 8
Рейтинг сообщений: 99
Зарегистрирован: Ср сен 02, 2015 07:47:20
Сообщений: 395
Рейтинг сообщения: 0
Товарищ хочет в ехел , значит надо ехел !

А в ехеле - VB, он же ВБ он же Визуальный Барсик! Всё сходится.

_________________
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 1 сентября 2025 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 11:08:05 
Друг Кота

Карма: -1
Рейтинг сообщений: 68
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8693
Откуда: .ru
Рейтинг сообщения: 0
да сделайте уже что-нибудь))
там уже две функции... на выбор...
открываем Notepad++ и погнали...

Изображение

:tea:


Вложения:
Screenshot_1.jpg [102.22 KiB]
Скачиваний: 117
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 11:13:09 
Потрогал лапой паяльник
Аватар пользователя

Карма: 8
Рейтинг сообщений: 99
Зарегистрирован: Ср сен 02, 2015 07:47:20
Сообщений: 395
Рейтинг сообщения: 0
Получается, раз нужен фильтр то это уже не программа нужна а устройство, включённое в разрыв сом порта. Мда.

_________________
Репозиторий STM32: https://cloud.mail.ru/public/2i19/Y4w8kKEiZ
Актуальность репозитория: 1 сентября 2025 года
Если чего-то не хватает с сайта st.com - пишите, докачаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 11:18:18 
Встал на лапы

Зарегистрирован: Сб авг 09, 2025 22:19:34
Сообщений: 114
Рейтинг сообщения: 0
Получается, раз нужен фильтр то это уже не программа нужна а устройство, включённое в разрыв сом порта. Мда.

совсем не так.
берём записанный лог.
обрезаем как надо .
считаем лог .
отправляем заново команду c терминальной. проверяем . работает ли.
....
Ps
HardWareMan Мда......


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 11:26:02 
Потрогал лапой паяльник
Аватар пользователя

Карма: -8
Рейтинг сообщений: -8
Зарегистрирован: Чт май 20, 2021 13:33:05
Сообщений: 329
Рейтинг сообщения: 0
А в ехеле - VB, он же ВБ он же Визуальный Барсик! Всё сходится.

Дык , на нем программировать нужно ! А ТС не хочет!
o90 писал(а):
очень заморочно в неё шестнадцатиричные числа обрабатывать.

Вы картинку выше смотрели ? В нем есть спец. функция! ШЕСТН.В.ДЕК
А лог можно вставить в ехель , там есть средства.
В реальном времени оно конечно не сможет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 11:30:59 
Друг Кота

Карма: -1
Рейтинг сообщений: 68
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8693
Откуда: .ru
Рейтинг сообщения: 0
muravei_ писал(а):
[uquote="HardWareMan",url="/forum/viewtopic.php?p=4743150#p4743150"]
В реальном времени оно конечно не сможет.

Надо в реальном времени...
Нажал на кнопочку - "устройство" заработало.
Нажал на другую кнопочку - "устройство" остановилось.
Нажал на третью кнопочку - "устройство" заработало - остановилось... заработало - остановилось... ))
Еще с обратной связью и контролем...
:)))
Браузер так может.
:tea:
ехель так может ?
:dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 11:36:19 
Встал на лапы

Зарегистрирован: Сб авг 09, 2025 22:19:34
Сообщений: 114
Рейтинг сообщения: 0
А в ехеле - VB, он же ВБ он же Визуальный Барсик! Всё сходится.

Дык , на нем программировать нужно ! А ТС не хочет!
o90 писал(а):
очень заморочно в неё шестнадцатиричные числа обрабатывать.

Вы картинку выше смотрели ? В нем есть спец. функция! ШЕСТН.В.ДЕК
А лог можно вставить в ехель , там есть средства.
В реальном времени оно конечно не сможет.

Вы бы выше почитали?
я об этом ранее ,и не единожды говорил ( перевод из шестнадцатиричной в десятичное и обратно -в этом и есть основная заморочка.
приходится постоянно туда сюда .

Добавлено after 1 minute 34 seconds:
muravei_ писал(а):
[uquote="HardWareMan",url="/forum/viewtopic.php?p=4743150#p4743150"]
В реальном времени оно конечно не сможет.

Надо в реальном времени...
Нажал на кнопочку - "устройство" заработало.
Нажал на другую кнопочку - "устройство" остановилось.
Нажал на третью кнопочку - "устройство" заработало - остановилось... заработало - остановилось... ))
Еще с обратной связью и контролем...
:))) .
Браузер так может.
:tea:
ехель так может ?
:dont_know:

шутить изволите.
тут в полуавтоме .то не разбериха и мнений тоже.
ранее
HardWareMan писал(а):
О какой программе речь? Изначальная задача была понять как считается контролька, я выдал прям готовое решение - копипастить в исходник и поехали. О какой программе теперь речь в теме про контрольку? Тема решена.
--ерь мнение видимо другое . -мда

PS. задача чуточку другая .
из имеющихся многочисленных логов посылок , выявить команды перемещения (все)
из выявленных формировать свой лог . добавить КС ( вычесленную отдельно)
отправить из терминадьной для проверки.
пока из терминально програмы работают только логи сформированные родной прогой.
( и об этом тоже говорил если не ошибаюсь HardWareMan у )
уж . затем далее подобрать , кто будет нужные команды по RS232 посылать.
вероятно какой то"умный экран типа ГУСЬ"
так работают иногда 3Д принтеры или CNC.


Последний раз редактировалось o90 Вт сен 02, 2025 12:19:20, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 11:57:46 
Потрогал лапой паяльник

Карма: 2
Рейтинг сообщений: -9
Зарегистрирован: Сб авг 09, 2025 22:08:28
Сообщений: 373
Рейтинг сообщения: 0
Это не спортивно! На ВБ и дурак сможет. А вы без Языков и макросов!
я уже и не помню... непосредственно в ячейках можно циклы?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 12:04:33 
Встал на лапы

Зарегистрирован: Сб авг 09, 2025 22:19:34
Сообщений: 114
Рейтинг сообщения: 0
Это не спортивно! На ВБ и дурак сможет. А вы без Языков и макросов!
я уже и не помню... непосредственно в ячейках можно циклы?

непосредственно в ячейке шестнадцатиричные числа не обрабатываются только десятичные . только трансформация в десятичные и обр.
в этом и заморочка
но работает без Языков и даже Макросов


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 12:18:04 
Потрогал лапой паяльник

Карма: 2
Рейтинг сообщений: -9
Зарегистрирован: Сб авг 09, 2025 22:08:28
Сообщений: 373
Рейтинг сообщения: 0
Здесь системы счисления не имеют никакого значения, всего лишь формы записи, удобные для своих случаев. Кто Вам мешает лог в десятичном виде получать? Просто на каждое число три разряда будет, вот и всё. От 000 до 255.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: расчет контрольной суммы (требуется помощь)
СообщениеДобавлено: Вт сен 02, 2025 12:24:45 
Встал на лапы

Зарегистрирован: Сб авг 09, 2025 22:19:34
Сообщений: 114
Рейтинг сообщения: 0
Здесь системы счисления не имеют никакого значения, всего лишь формы записи, удобные для своих случаев. Кто Вам мешает лог в десятичном виде получать? Просто на каждое число три разряда будет, вот и всё. От 000 до 255.

там в некоторых случаях требуется операция именно с 16-ричным числом. конкретно.
возможно можно и это обойти но это опять еще один круг
но суть не том ,
а работает без языков и макросов. но левой рукой правое ухо.
есть на С . ( этот как ехать в салоне авто ауди , которое тащит ЛОШАДЬ. но слушать музыку . но ехать можно)
но ехать надо... а путь уже настолько длинный , что потерялись уже даже у бывалых, ориентиры куда надо приехать)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 318 ]     ... , , , 12, , , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 35


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y