Страница 1 из 1
Проблема с переменными !!!
Добавлено: 31.10.2017{, 01:21}
zikkgaz24
Суть такова использую библиотеку для радиопередачи и к сожалению эта библиотека может передовать только массив uint8_t размер массива до 251 байта т.е. размер передоваемых данных неплохой а вот ограничение на передачу только uint8_t портит все .
пока получилось передовать String помог слиммпер но времени у него мало дальше как говориться сам
но увы ничего внятного и конкретного в инете не могу найти
Вопрос кто хорошо знает как это делать и кто покажет и расскажет как прийти к правильному решению
в первую очереть нужен тип int и float
Проблема с переменными !!!
Добавлено: 31.10.2017{, 08:34}
Sancho
Как я понял, Вы хотите упаковать int и float в массив типа uint, передать, на другой стороне собрать обратно?
Пример в студию, не вижу больших сложностей.
Проблема с переменными !!!
Добавлено: 31.10.2017{, 13:14}
zikkgaz24
нет не так повторюсь
есть библиотека и она незнаю почему но написана так что передает переменную типа 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)
---------------------------------------------
Проблема с переменными !!!
Добавлено: 31.10.2017{, 13:16}
zikkgaz24
вот пример
Проблема с переменными !!!
Добавлено: 31.10.2017{, 15:06}
Sancho
Всё делается просто через указатели.
Объявляешь массив uint8_t с фиксированной размерностью.
Потом в него заносишь разобранные переменные в виде байтов в жёстко заданной последовательности, на другой стороне собираешь по такой-же последовательности.
Возьми
примеры для 24С32 с интами и флоатами - сразу поймёшь идею, если что - помогу.
Проблема с переменными !!!
Добавлено: 31.10.2017{, 15:11}
zikkgaz24
ок ща загружу
Проблема с переменными !!!
Добавлено: 31.10.2017{, 15:17}
Sancho
Пример разборки по одному int и float
int int1;
float float1;
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));
Пример сборки
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];
P.S. Я не программист!
Проблема с переменными !!!
Добавлено: 31.10.2017{, 15:27}
zikkgaz24
так глянул
и вот с этими операциями то и проблема у меня
твои блоки для еепром просто раскладывают переменные на byte и записывают и наоборот
в моем случае byte не канает только uint8_t
ну а как раскладывать и складывать я и не могу добиться вечно какие нибудь ошибки
проще говоря я в этом ноль и не понимаю всю эту кашу
Проблема с переменными !!!
Добавлено: 31.10.2017{, 15:33}
Sancho
Если, например, будут только инты, то создав массив будет ещё проще- циклом, меньше писанины!
Если блок "использовать в проекте один раз", то массив создать не в ПБ(польз. блок), а на плате, а в самом ПБ указать его название(массива) после предварительной компиляции в IDE - подсмотреть навание, или подправлять потом, перед компиляцией.
Добавлено (31.10.2017, 15:33)
---------------------------------------------
zikkgaz24 писал(а):и вот с этими операциями то и проблема у меня твои блоки для еепром просто раскладывают переменные на byte и записывают и наоборот
в моем случае byte не канает только uint8_t
Чудак - человек. это УКАЗАТЕЛИ!!!
Они работают с ячейками памяти. Сначала раскладываем и записываем по адресам массива как байты, когда наступает очередь передачи они уходят как uint!!!!!!!!!!!!!
И наоборот при приёме!!!!!
Проблема с переменными !!!
Добавлено: 31.10.2017{, 16:47}
zikkgaz24
вот глянь блоки там мне слимпер помог со string
и он вынес конвертацию string в массив uint8_t в отдельную функцию за счет которой блоки отправки не продят один и тот же код
и мне как раз и надо
блоки отдельные для передачи\приема int
блоки передачи \ приема float
никаких смесей с разными переменными ненужно это и не удобно
Добавлено (31.10.2017, 16:05)
---------------------------------------------
вот блоки
Добавлено (31.10.2017, 16:08)
---------------------------------------------
блоки
так не крепяться
Добавлено (31.10.2017, 16:47)
---------------------------------------------
все на ура в пример вставил все пошло как надо теперь буду в функцию варганить
Проблема с переменными !!!
Добавлено: 31.10.2017{, 16:56}
Sancho
zikkgaz24 писал(а):все на ура в пример вставил все пошло как надо теперь буду в функцию варганить
Пожалуйста.
Проблема с переменными !!!
Добавлено: 31.10.2017{, 17:04}
Слимпер
Sancho, Может подскажет где популярно написано про указатели, несколько раз читал, так у меня в голове не как не укладывается.
А то читаю ваше Сообщение за номер 7, и хоть и догадываюсь как что там должно происходить но часть операторов понять не могу.
А из-за этого уже не раз приходилось огород городить.
Но так как читал, что при неправильном использовании указателей можно создать почти не уловимые глюки, то опасаюсь их (указатели) использовать.
Проблема с переменными !!!
Добавлено: 31.10.2017{, 17:10}
zikkgaz24
Слимпер, тут код с указателями на память
инфа в инете вся лежит только понять тяжело я сам все это читал и ни че не понял щас вот покозал и рассказал про код и что он делает и немного понял а так книгу нужно искать там вроде понятней всего написано
вот ее и нет в инете
Проблема с переменными !!!
Добавлено: 31.10.2017{, 17:16}
Sancho
Слимпер писал(а):Может подскажет где популярно написано про указатели
Для меня
вот здесь показалось наиболее доходчиво, сам только учусь.
Надеюсь поможет.
Проблема с переменными !!!
Добавлено: 31.10.2017{, 17:20}
Слимпер
Sancho, спасибо, почитаю.
Проблема с переменными !!!
Добавлено: 31.10.2017{, 17:35}
zikkgaz24
интересная статейка я на нее чет не поподал