Нужен блок который бы отправлял данные 0x82, 0хF2, 0xC4... И что бы можно было можно добавлять или сокращать входы. Я так понял что 0хF2 отправляется как Char? То есть 2 элемента одним потоком за счет чего получается слитность... Пробовал по разному. Одним потоком все отправляет, без пробелов. Из за чего блок не понимает что от него хотят. Помогите создать блок!
Блок отправки данных.
Блок отправки данных.
Всем доброго! Искал, сам пробовал, не получается.
Нужен блок который бы отправлял данные 0x82, 0хF2, 0xC4... И что бы можно было можно добавлять или сокращать входы. Я так понял что 0хF2 отправляется как Char? То есть 2 элемента одним потоком за счет чего получается слитность... Пробовал по разному. Одним потоком все отправляет, без пробелов. Из за чего блок не понимает что от него хотят. Помогите создать блок!
Нужен блок который бы отправлял данные 0x82, 0хF2, 0xC4... И что бы можно было можно добавлять или сокращать входы. Я так понял что 0хF2 отправляется как Char? То есть 2 элемента одним потоком за счет чего получается слитность... Пробовал по разному. Одним потоком все отправляет, без пробелов. Из за чего блок не понимает что от него хотят. Помогите создать блок!
Нельзя мешать оборудованию работать, но иногда скучно жить! 
-
fsergei70
- Капитан
- Сообщения: 872
- Зарегистрирован: 17 ноя 2015, 20:36
- Имя: Сергей
- Благодарил (а): 57 раз
- Поблагодарили: 11 раз
Блок отправки данных.
А случайно не коды ли ASCII. В любом случае это обозначение 16 тиричной системы исчисления
Отправлено спустя 9 минут 4 секунды:
Попробуйте по таблице символов найти буквы которые соответсвтуют шеснадцатеричному значению ваших кодов. например
0x82 это просто запятая
0хF2 это маленькая русская буква т
0xC4 это заглавная русская Д
и так далее
вот одна из таблиц символов, и отправлять уже эти символы
https://istarik.ru/blog/programmirovanie/53.html
Блок отправки данных.
.
Последний раз редактировалось Nikan 24 мар 2023, 01:29, всего редактировалось 1 раз.
Блок отправки данных.
[ref]fsergei70[/ref], Уж очень сложно.
[ref]Nikan[/ref], А в блоке как реализовать?
Отправлено спустя 9 минут 3 секунды:
Если туда вставлять стринг то на выходе билиберда.
[ref]Nikan[/ref], А в блоке как реализовать?
Отправлено спустя 9 минут 3 секунды:
Если туда вставлять стринг то на выходе билиберда.
Нельзя мешать оборудованию работать, но иногда скучно жить! 
-
fsergei70
- Капитан
- Сообщения: 872
- Зарегистрирован: 17 ноя 2015, 20:36
- Имя: Сергей
- Благодарил (а): 57 раз
- Поблагодарили: 11 раз
Блок отправки данных.
Вот еще вариант, возьмите калькулятор виндос, в режиме программист переведите числа в десятичный формат и подавайте эти значения на блок конвертации CHAR
Последний раз редактировалось fsergei70 15 дек 2019, 17:22, всего редактировалось 1 раз.
Блок отправки данных.
[ref]fsergei70[/ref], Не понял вообще! Там один вход! А мне нужно 8 входов и один выход!
Нельзя мешать оборудованию работать, но иногда скучно жить! 
Блок отправки данных.
.
Последний раз редактировалось Nikan 24 мар 2023, 01:29, всего редактировалось 1 раз.
Блок отправки данных.
Nikan писал(а): 15 дек 2019, 17:31 если вы готовы переводить HEX в десятичный вид(хоть на калькуляторе), то с блоком помогу.
Переводить не проблема! Проблема понять как это работает да бы собрать действующий блок. Я как ни пытался, он шлет одним потоком.
Нельзя мешать оборудованию работать, но иногда скучно жить! 
Блок отправки данных.
.
Последний раз редактировалось Nikan 24 мар 2023, 01:29, всего редактировалось 1 раз.
-
fsergei70
- Капитан
- Сообщения: 872
- Зарегистрирован: 17 ноя 2015, 20:36
- Имя: Сергей
- Благодарил (а): 57 раз
- Поблагодарили: 11 раз
Блок отправки данных.
А как приделать к этим блокам подсчет и передачу контрольной суммы
Отправлено спустя 1 минуту 2 секунды:
Лучше если бы у блоков был выход контрольной суммы.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Блок отправки данных.
[ref]aidar_i[/ref], Айдар, ради интереса посмотрел по ссылке - тот ещё писатель кода, я правда тоже...
Код тяжёлый, время-тормозящий, с масштабированием вместо одной функции математики.
Для примера:
[spoiler][/spoiler]
Только, честно, я так и не понял, каким образом ТС нужно отсылать данные - пакетом или поштучно, или ещё как...
Код тяжёлый, время-тормозящий, с масштабированием вместо одной функции математики.
Для примера:
[spoiler]
Код: Выделить всё
//оригинал
unsigned int hexToDec(String hexString) {
unsigned int decValue = 0;
int nextInt;
for( int i = 0; i < hexString.length(); i++) {
nextInt = int(hexString.charAt(i));
if (nextInt >= 48 && nextInt <= 57) nextInt = map(nextInt, 48, 57, 0, 9);
if (nextInt >= 65 && nextInt <= 70) nextInt = map(nextInt, 65, 70, 10, 15);
if (nextInt >= 97 && nextInt <= 102) nextInt = map(nextInt, 97, 102, 10, 15);
nextInt = constrain(nextInt, 0, 15);
decValue = (decValue * 16) + nextInt;
}
return decValue;
}
// лёгкое редактирование
unsigned int hexToDec(String hexString) {
unsigned int decValue = 0;
int nextInt;
int abc = hexString.length(); // вычислим один раз длинну строки, а не в каждой итерации цикла :)
for( int i = 0; i < abc; i++) {
nextInt = int(hexString.charAt(i));
if (nextInt >= 48 && nextInt <= 57) nextInt -=48; // вместо nextInt = map(nextInt, 48, 57, 0, 9);
if (nextInt >= 65 && nextInt <= 70) nextInt -=50; // вместо nextInt = map(nextInt, 65, 70, 10, 15);
if (nextInt >= 97 && nextInt <= 102) nextInt -=80; // вместо nextInt = map(nextInt, 97, 102, 10, 15);
nextInt = constrain(nextInt, 0, 15);
decValue = (decValue * 16) + nextInt;
}
return decValue;
}Только, честно, я так и не понял, каким образом ТС нужно отсылать данные - пакетом или поштучно, или ещё как...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Блок отправки данных.
.
Последний раз редактировалось Nikan 24 мар 2023, 01:29, всего редактировалось 1 раз.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Блок отправки данных.
Если последовательным, может тогда проще делать?
Использовать блок с одним serialwrite и подавать в цикле платы из массива.
Думаю, что проще и размер передачи проще менять.
Отправлено спустя 8 минут 56 секунд:
Использовать блок с одним serialwrite и подавать в цикле платы из массива.
Думаю, что проще и размер передачи проще менять.
Отправлено спустя 8 минут 56 секунд:
иногда реально напрягает, особенно с битовыми операциямиNikan писал(а): 17 дек 2019, 14:46 в флпроге проблема другая - нельзя числовую переменную записать ни в каком виде кроме десятичного.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Блок отправки данных.
.
Последний раз редактировалось Nikan 24 мар 2023, 01:29, всего редактировалось 1 раз.
Блок отправки данных.
[ref]Nikan[/ref], Спасибо! Буду пробовать собирать схему. Блок универсален получился! Можно как для авто использовать, так и для контроллеров как в моем случае. ПРО-МИКРО и некстион 2.4 в полне сносно будет! Даже на некстион я смогу числа вводить, что упрощает все действие! Принимать мне ни чего не надо, надо только отправить команду на исполнение. А вот на счет авто надо подумать. Там еще и прием нужен...
Нельзя мешать оборудованию работать, но иногда скучно жить! 
Блок отправки данных.
.
Последний раз редактировалось Nikan 24 мар 2023, 01:28, всего редактировалось 1 раз.
Блок отправки данных.
.
Последний раз редактировалось Nikan 24 мар 2023, 01:43, всего редактировалось 1 раз.
Блок отправки данных.
Например, для отправки АТ команд. Со стандартным блоком Отправка в UART, есть ряд проблем.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей