реклама на сайте
подробности

 
 
> Преобразование структуры в массив и обратно, как это сделать?
smk
сообщение Dec 10 2011, 07:58
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Есть функция для подсчета CRC. Она работает с массивом. Мне же нужно чтобы она считала CRC структуры. Правильней будет сказать, что в пакете 16 байт, последний из них и есть CRC. Его нужно считать перед отправкой пакета и проверять при получении.
Функция:
Код
unsigned char Crc8(unsigned char *buf, unsigned char len)
{
unsigned char crc = 0xFF;
while (len--) crc = Crc8Table[crc ^ *buf++];
return crc;
}


Структура:
Код
struct dataexchange_t      
{
   uchar b1;        
   uchar b2;        
   uchar b3;        
   uchar b4;        
   uchar b5;        
   uchar b6;
   uchar b7;
   uchar b8;
   uchar b9;
   uchar b10;
   uchar b11;
   uchar b12;
   uchar b13;
   uchar b14;
   uchar b15;
   uchar b16;
};


Как проще преобразовать структуру в массив (с ним удобней) ?


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
smk
сообщение Dec 10 2011, 10:46
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Есть ли способ написать компактней и красивей вот это:
Код
      buf_rx[0] = pdata.b1;
      buf_rx[1] = pdata.b2;
      buf_rx[2] = pdata.b3;
      buf_rx[3] = pdata.b4;
      buf_rx[4] = pdata.b5;
      buf_rx[5] = pdata.b6;
      buf_rx[6] = pdata.b7;
      buf_rx[7] = pdata.b8;
      buf_rx[8] = pdata.b9;
      buf_rx[9] = pdata.b10;
      buf_rx[10] = pdata.b11;
      buf_rx[11] = pdata.b12;
      buf_rx[12] = pdata.b13;
      buf_rx[13] = pdata.b14;
      buf_rx[14] = pdata.b15;
      buf_rx[15] = pdata.b16;



--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 05:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01368 секунд с 7
ELECTRONIX ©2004-2016