Проблема с переменными !!!
Проблема с переменными !!!
Суть такова использую библиотеку для радиопередачи и к сожалению эта библиотека может передовать только массив uint8_t размер массива до 251 байта т.е. размер передоваемых данных неплохой а вот ограничение на передачу только uint8_t портит все .
пока получилось передовать String помог слиммпер но времени у него мало дальше как говориться сам
но увы ничего внятного и конкретного в инете не могу найти
Вопрос кто хорошо знает как это делать и кто покажет и расскажет как прийти к правильному решению
в первую очереть нужен тип int и float
пока получилось передовать String помог слиммпер но времени у него мало дальше как говориться сам
но увы ничего внятного и конкретного в инете не могу найти
Вопрос кто хорошо знает как это делать и кто покажет и расскажет как прийти к правильному решению
в первую очереть нужен тип int и float
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Контактная информация:
Проблема с переменными !!!
Как я понял, Вы хотите упаковать int и float в массив типа uint, передать, на другой стороне собрать обратно?
Пример в студию, не вижу больших сложностей.
Пример в студию, не вижу больших сложностей.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Проблема с переменными !!!
нет не так повторюсь
есть библиотека и она незнаю почему но написана так что передает переменную типа uint8_t и больше никак даже по логике переменная типа byte тоже самое но если обьявить байт ничего не передает
вообще там получаеться массив uint8_t до 251 байта передачи одного пакета данных
и по примерам этой библиотеки это unsigned char но и так переменную обьявлять толку нет
я делаю пользовательские блоки для передачи данных сделан только один тип это String помог слиммпер
это самое простое т.к. string раскладываеться побайтно в массив и они очень близки друг другу
хочу сделать блоки для передачи флоат , также int , можно и все виды переменных сделать какие есть
но копаясь по инету я немогу найти то что надо
получаеться библиотека передает переменную обьемом 1 байт uint8_t
а вот например тот же int 2 байта и эту переменную нужно сначало перевести в массив а потом отправлять
флоат 4 байта и тоже самое нужно перевести в массив uint8_t и потом отправлять
вот с переводом этих переменных в массив uint8_t и проблема
надо коды под каждую переменную и так чтоб получилось совместить с блоком пользователя
Добавлено (31.10.2017, 13:14)
---------------------------------------------
есть библиотека и она незнаю почему но написана так что передает переменную типа uint8_t и больше никак даже по логике переменная типа byte тоже самое но если обьявить байт ничего не передает
вообще там получаеться массив uint8_t до 251 байта передачи одного пакета данных
и по примерам этой библиотеки это unsigned char но и так переменную обьявлять толку нет
я делаю пользовательские блоки для передачи данных сделан только один тип это String помог слиммпер
это самое простое т.к. string раскладываеться побайтно в массив и они очень близки друг другу
хочу сделать блоки для передачи флоат , также int , можно и все виды переменных сделать какие есть
но копаясь по инету я немогу найти то что надо
получаеться библиотека передает переменную обьемом 1 байт uint8_t
а вот например тот же int 2 байта и эту переменную нужно сначало перевести в массив а потом отправлять
флоат 4 байта и тоже самое нужно перевести в массив uint8_t и потом отправлять
вот с переводом этих переменных в массив uint8_t и проблема
надо коды под каждую переменную и так чтоб получилось совместить с блоком пользователя
Добавлено (31.10.2017, 13:14)
---------------------------------------------
Проблема с переменными !!!
вот пример
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Контактная информация:
Проблема с переменными !!!
Всё делается просто через указатели.
Объявляешь массив uint8_t с фиксированной размерностью.
Потом в него заносишь разобранные переменные в виде байтов в жёстко заданной последовательности, на другой стороне собираешь по такой-же последовательности.
Возьми примеры для 24С32 с интами и флоатами - сразу поймёшь идею, если что - помогу.
Объявляешь массив uint8_t с фиксированной размерностью.
Потом в него заносишь разобранные переменные в виде байтов в жёстко заданной последовательности, на другой стороне собираешь по такой-же последовательности.
Возьми примеры для 24С32 с интами и флоатами - сразу поймёшь идею, если что - помогу.
Последний раз редактировалось Sancho 31 окт 2017, 15:06, всего редактировалось 1 раз.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Проблема с переменными !!!
ок ща загружу
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Контактная информация:
Проблема с переменными !!!
Пример разборки по одному int и float
int int1;
float float1;
Пример сборки
P.S. Я не программист!
int int1;
float float1;
СпойлерSPOILER_SHOW
uint8_t data[6];
byte* ptr_array;
ptr_array = (byte*)(& data);
*(ptr_array)=(* ((byte *)(& int1)));
*(ptr_array +1)=(* ((byte *)(& int1)+1));
*(ptr_array +2)=(* ((byte *)(& float1 )));
*(ptr_array +3)=(* ((byte *)(& float1 )+1));
*(ptr_array +4)=(* ((byte *)(& float1 )+2));
*(ptr_array +5)=(* ((byte *)(& float1 )+3));
byte* ptr_array;
ptr_array = (byte*)(& data);
*(ptr_array)=(* ((byte *)(& int1)));
*(ptr_array +1)=(* ((byte *)(& int1)+1));
*(ptr_array +2)=(* ((byte *)(& float1 )));
*(ptr_array +3)=(* ((byte *)(& float1 )+1));
*(ptr_array +4)=(* ((byte *)(& float1 )+2));
*(ptr_array +5)=(* ((byte *)(& float1 )+3));
СпойлерSPOILER_SHOW
uint8_t buf[RH_RF95_MAX_MESSAGE_LEN];
byte* ptrint;
ptrint = (byte*)(& int_out_1 );
*ptrint = buf[0];
*(ptrint+1) = buf[1];
ptrint = (byte*)(& float_1 );
*ptrint = buf[2];
*(ptrint+1) = buf[3];
*(ptrint+2) = buf[4];
*(ptrint+3) = buf[5];
byte* ptrint;
ptrint = (byte*)(& int_out_1 );
*ptrint = buf[0];
*(ptrint+1) = buf[1];
ptrint = (byte*)(& float_1 );
*ptrint = buf[2];
*(ptrint+1) = buf[3];
*(ptrint+2) = buf[4];
*(ptrint+3) = buf[5];
Последний раз редактировалось Sancho 31 окт 2017, 15:21, всего редактировалось 1 раз.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Проблема с переменными !!!
так глянул
и вот с этими операциями то и проблема у меня
твои блоки для еепром просто раскладывают переменные на byte и записывают и наоборот
в моем случае byte не канает только uint8_t
ну а как раскладывать и складывать я и не могу добиться вечно какие нибудь ошибки
проще говоря я в этом ноль и не понимаю всю эту кашу
и вот с этими операциями то и проблема у меня
твои блоки для еепром просто раскладывают переменные на byte и записывают и наоборот
в моем случае byte не канает только uint8_t
ну а как раскладывать и складывать я и не могу добиться вечно какие нибудь ошибки
проще говоря я в этом ноль и не понимаю всю эту кашу
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Контактная информация:
Проблема с переменными !!!
Если, например, будут только инты, то создав массив будет ещё проще- циклом, меньше писанины!
Если блок "использовать в проекте один раз", то массив создать не в ПБ(польз. блок), а на плате, а в самом ПБ указать его название(массива) после предварительной компиляции в IDE - подсмотреть навание, или подправлять потом, перед компиляцией.
Добавлено (31.10.2017, 15:33)
---------------------------------------------
Они работают с ячейками памяти. Сначала раскладываем и записываем по адресам массива как байты, когда наступает очередь передачи они уходят как uint!!!!!!!!!!!!!
И наоборот при приёме!!!!!
Если блок "использовать в проекте один раз", то массив создать не в ПБ(польз. блок), а на плате, а в самом ПБ указать его название(массива) после предварительной компиляции в IDE - подсмотреть навание, или подправлять потом, перед компиляцией.
Добавлено (31.10.2017, 15:33)
---------------------------------------------
Чудак - человек. это УКАЗАТЕЛИ!!!zikkgaz24 писал(а):и вот с этими операциями то и проблема у меня твои блоки для еепром просто раскладывают переменные на byte и записывают и наоборот
в моем случае byte не канает только uint8_t
Они работают с ячейками памяти. Сначала раскладываем и записываем по адресам массива как байты, когда наступает очередь передачи они уходят как uint!!!!!!!!!!!!!
И наоборот при приёме!!!!!
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Проблема с переменными !!!
вот глянь блоки там мне слимпер помог со string
и он вынес конвертацию string в массив uint8_t в отдельную функцию за счет которой блоки отправки не продят один и тот же код
и мне как раз и надо
блоки отдельные для передачи\приема int
блоки передачи \ приема float
никаких смесей с разными переменными ненужно это и не удобно
Добавлено (31.10.2017, 16:05)
---------------------------------------------
вот блоки
Добавлено (31.10.2017, 16:08)
---------------------------------------------
блоки
так не крепяться
Добавлено (31.10.2017, 16:47)
---------------------------------------------
все на ура в пример вставил все пошло как надо теперь буду в функцию варганить
и он вынес конвертацию string в массив uint8_t в отдельную функцию за счет которой блоки отправки не продят один и тот же код
и мне как раз и надо
блоки отдельные для передачи\приема int
блоки передачи \ приема float
никаких смесей с разными переменными ненужно это и не удобно
Добавлено (31.10.2017, 16:05)
---------------------------------------------
вот блоки
Добавлено (31.10.2017, 16:08)
---------------------------------------------
блоки
так не крепяться
Добавлено (31.10.2017, 16:47)
---------------------------------------------
все на ура в пример вставил все пошло как надо теперь буду в функцию варганить
Последний раз редактировалось zikkgaz24 31 окт 2017, 16:53, всего редактировалось 1 раз.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Контактная информация:
Проблема с переменными !!!
Пожалуйста.zikkgaz24 писал(а):все на ура в пример вставил все пошло как надо теперь буду в функцию варганить
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Проблема с переменными !!!
Sancho, Может подскажет где популярно написано про указатели, несколько раз читал, так у меня в голове не как не укладывается.
А то читаю ваше Сообщение за номер 7, и хоть и догадываюсь как что там должно происходить но часть операторов понять не могу.
А из-за этого уже не раз приходилось огород городить.
Но так как читал, что при неправильном использовании указателей можно создать почти не уловимые глюки, то опасаюсь их (указатели) использовать.
А то читаю ваше Сообщение за номер 7, и хоть и догадываюсь как что там должно происходить но часть операторов понять не могу.
А из-за этого уже не раз приходилось огород городить.
Но так как читал, что при неправильном использовании указателей можно создать почти не уловимые глюки, то опасаюсь их (указатели) использовать.
Проблема с переменными !!!
Слимпер, тут код с указателями на память
инфа в инете вся лежит только понять тяжело я сам все это читал и ни че не понял щас вот покозал и рассказал про код и что он делает и немного понял а так книгу нужно искать там вроде понятней всего написано
вот ее и нет в инете
инфа в инете вся лежит только понять тяжело я сам все это читал и ни че не понял щас вот покозал и рассказал про код и что он делает и немного понял а так книгу нужно искать там вроде понятней всего написано
вот ее и нет в инете
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Контактная информация:
Проблема с переменными !!!
Для меня вот здесь показалось наиболее доходчиво, сам только учусь.Слимпер писал(а):Может подскажет где популярно написано про указатели
Надеюсь поможет.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Проблема с переменными !!!
Sancho, спасибо, почитаю.
Проблема с переменными !!!
интересная статейка я на нее чет не поподал
Кто сейчас на конференции
Сейчас этот форум просматривают: fragran и 0 гостей