Форум программистов, компьютерный форум, киберфорум
C (Си)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
1 / 1 / 0
Регистрация: 06.11.2012
Сообщений: 102
1

Сериализация структуры для отправки по usb

02.02.2016, 17:57. Показов 1627. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем мне нужно отправить структуру с ПК на мконтроллер по USB, для этого мне посоветовали воспользоваться функциями htonl и обратной ей, но я не монял как мне использовать это для структуры что бы уложить ее в unsigned char* buff массив.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2016, 17:57
Ответы с готовыми решениями:

Сериализация данных для отправки по сети
Я считаю главным параметром данных при отправке данных по сети их размер. Я сталкивался с бинарной...

Сериализация структуры
Доброго! Создаю структуру, преобразую ее а байты, а в обратном преобразовании она не полная. ...

Сериализация и десериализация структуры
Есть структура с полями string , int. Вся информация пишется в файл.txt, мне нужно сделать...

Сериализация структуры из массива
Помогите пж..:) есть структура public struct DiskProperties { ...

5
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
03.02.2016, 12:02 2
Посмотрите функцию memcpy
0
курлык-курлык
87 / 96 / 8
Регистрация: 26.11.2009
Сообщений: 396
Записей в блоге: 1
04.02.2016, 12:34 3
htonl и обратная ей ntohl, насколько мне не изменяет память это функции для перевода длинного числа (в первом случае в сетевой порядок, во втором случае в порядок байт принятого на компе). А у тебя вопрос как твою структуру перевести к unsigned char*.
Попробуй вот так :

C
1
2
3
4
5
6
7
8
9
10
typedef struct trololo {
int a;
bool b;
} trololo;
 
trololo  my_trololo;
 
int _size = sizeof(trololo);
unsigned char * my_u_char = malloc(_size);
memcpy(my_u_char, &my_trololo, _size);
1
50 / 49 / 10
Регистрация: 24.01.2010
Сообщений: 225
04.02.2016, 15:54 4
для начала описываете в ашнике саму структуру которую необходимо передать/принять с мк. Далее формируете её(если передача), и применяете указанные функции для изменения следования байт внутри каждого поля определённого типа. подготовленный буфер засылаете в железку. всё очень просто...

(круглый)
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12460 / 7484 / 1754
Регистрация: 25.07.2009
Сообщений: 13,763
07.02.2016, 04:19 5
Цитата Сообщение от Max Patsy Посмотреть сообщение
typedef struct trololo
Спасибо, улыбнуло
Но при всей зачётности названия есть два тонких момента:
во-первых требования к выравниванию, которые могут отличаться для используемого МК. В общем случае возможно прийдётся упаковывать элементы структуры (в варианте gcc):
C
1
struct __attribute__ ((packed)) trololo {/*...*/};
Ну и, если речь зашла о htonl/ntohl, возможно, на МК используется big endian архитектура (в отличии от little endian на x86/x64). Я бы начал с поисков на сайте производителя МК - наверняка там мануал целый...
1
курлык-курлык
87 / 96 / 8
Регистрация: 26.11.2009
Сообщений: 396
Записей в блоге: 1
09.02.2016, 10:12 6
Цитата Сообщение от easybudda Посмотреть сообщение
Но при всей зачётности названия есть два тонких момента:
во-первых требования к выравниванию
Не знал про это.
PS Я по сети когда данные гоняю, использую
C
1
2
3
4
#pragma(push)
#pragma pack(1)
//structs is here
#pragma pack(pop)
Но наверное, в данном случае это не подойдет.
0
09.02.2016, 10:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.02.2016, 10:12
Помогаю со студенческими работами здесь

Сериализация иерархической стоковой структуры!
Доброго времени суток! Есть вот структура, древовидная. Каждый элемент это строка. Вложенность...

Сериализация структуры и пошаговое считывания данных из файла
Привет всем!!! Проблема следующая: есть класс метод которого генерирует большое количество данных...

Переводить команды USB WIFI Адаптера через компьютер по USB-USB для устройства
name: как передавать сигнал от требующего установку драйверов USB WIFI Адаптера через компьютер по...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru