Блок отправки данных.

Serjik
Рядовой
Сообщения: 43
Зарегистрирован: 18 фев 2019, 20:48
Откуда: Россия
Имя: Сергей

Блок отправки данных.

Сообщение Serjik »

Всем доброго! Искал, сам пробовал, не получается. :(
Нужен блок который бы отправлял данные 0x82, 0хF2, 0xC4... И что бы можно было можно добавлять или сокращать входы. Я так понял что 0хF2 отправляется как Char? То есть 2 элемента одним потоком за счет чего получается слитность... Пробовал по разному. Одним потоком все отправляет, без пробелов. Из за чего блок не понимает что от него хотят. Помогите создать блок! :smile469:
Нельзя мешать оборудованию работать, но иногда скучно жить! :smile390:
fsergei70
Капитан
Сообщения: 857
Зарегистрирован: 17 ноя 2015, 20:36
Имя: Сергей
Благодарил (а): 39 раз
Поблагодарили: 7 раз

Блок отправки данных.

Сообщение fsergei70 »

Serjik писал(а): 14 дек 2019, 09:21 0x82, 0хF2, 0xC4
А случайно не коды ли ASCII. В любом случае это обозначение 16 тиричной системы исчисления

Отправлено спустя 9 минут 4 секунды:
Попробуйте по таблице символов найти буквы которые соответсвтуют шеснадцатеричному значению ваших кодов. например
0x82 это просто запятая
0хF2 это маленькая русская буква т
0xC4 это заглавная русская Д
и так далее
вот одна из таблиц символов, и отправлять уже эти символы

https://istarik.ru/blog/programmirovanie/53.html
Аватара пользователя
Nikan
Майор
Сообщения: 1194
Зарегистрирован: 29 дек 2016, 00:49
Откуда: москва

Блок отправки данных.

Сообщение Nikan »

.
Последний раз редактировалось Nikan 24 мар 2023, 01:29, всего редактировалось 1 раз.
Serjik
Рядовой
Сообщения: 43
Зарегистрирован: 18 фев 2019, 20:48
Откуда: Россия
Имя: Сергей

Блок отправки данных.

Сообщение Serjik »

[ref]fsergei70[/ref], Уж очень сложно.

[ref]Nikan[/ref], А в блоке как реализовать?

Отправлено спустя 9 минут 3 секунды:
Если туда вставлять стринг то на выходе билиберда.
Нельзя мешать оборудованию работать, но иногда скучно жить! :smile390:
fsergei70
Капитан
Сообщения: 857
Зарегистрирован: 17 ноя 2015, 20:36
Имя: Сергей
Благодарил (а): 39 раз
Поблагодарили: 7 раз

Блок отправки данных.

Сообщение fsergei70 »

Вот еще вариант, возьмите калькулятор виндос, в режиме программист переведите числа в десятичный формат и подавайте эти значения на блок конвертации CHAR
Последний раз редактировалось fsergei70 15 дек 2019, 17:22, всего редактировалось 1 раз.
Serjik
Рядовой
Сообщения: 43
Зарегистрирован: 18 фев 2019, 20:48
Откуда: Россия
Имя: Сергей

Блок отправки данных.

Сообщение Serjik »

[ref]fsergei70[/ref], Не понял вообще! Там один вход! А мне нужно 8 входов и один выход!
Нельзя мешать оборудованию работать, но иногда скучно жить! :smile390:
Аватара пользователя
Nikan
Майор
Сообщения: 1194
Зарегистрирован: 29 дек 2016, 00:49
Откуда: москва

Блок отправки данных.

Сообщение Nikan »

.
Последний раз редактировалось Nikan 24 мар 2023, 01:29, всего редактировалось 1 раз.
Serjik
Рядовой
Сообщения: 43
Зарегистрирован: 18 фев 2019, 20:48
Откуда: Россия
Имя: Сергей

Блок отправки данных.

Сообщение Serjik »

Nikan писал(а): 15 дек 2019, 17:31 если вы готовы переводить HEX в десятичный вид(хоть на калькуляторе), то с блоком помогу.

Переводить не проблема! Проблема понять как это работает да бы собрать действующий блок. Я как ни пытался, он шлет одним потоком.
Нельзя мешать оборудованию работать, но иногда скучно жить! :smile390:
Аватара пользователя
Nikan
Майор
Сообщения: 1194
Зарегистрирован: 29 дек 2016, 00:49
Откуда: москва

Блок отправки данных.

Сообщение Nikan »

.
Последний раз редактировалось Nikan 24 мар 2023, 01:29, всего редактировалось 1 раз.
fsergei70
Капитан
Сообщения: 857
Зарегистрирован: 17 ноя 2015, 20:36
Имя: Сергей
Благодарил (а): 39 раз
Поблагодарили: 7 раз

Блок отправки данных.

Сообщение fsergei70 »

Nikan писал(а): 17 дек 2019, 02:20как то так
А как приделать к этим блокам подсчет и передачу контрольной суммы

Отправлено спустя 1 минуту 2 секунды:
Лучше если бы у блоков был выход контрольной суммы.
aidar_i
Полковник
Сообщения: 3357
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

Блок отправки данных.

Сообщение aidar_i »

Если сделать конвертер

https://github.com/benrugg/Arduino-Hex- ... Conversion
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Блок отправки данных.

Сообщение Sancho »

[ref]aidar_i[/ref], Айдар, ради интереса посмотрел по ссылке - тот ещё писатель кода, я правда тоже...
Код тяжёлый, время-тормозящий, с масштабированием вместо одной функции математики.
Для примера:
[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;
}
[/spoiler]

Только, честно, я так и не понял, каким образом ТС нужно отсылать данные - пакетом или поштучно, или ещё как...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
Nikan
Майор
Сообщения: 1194
Зарегистрирован: 29 дек 2016, 00:49
Откуда: москва

Блок отправки данных.

Сообщение Nikan »

.
Последний раз редактировалось Nikan 24 мар 2023, 01:29, всего редактировалось 1 раз.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Блок отправки данных.

Сообщение Sancho »

Если последовательным, может тогда проще делать?
Использовать блок с одним serialwrite и подавать в цикле платы из массива.
Думаю, что проще и размер передачи проще менять.

Отправлено спустя 8 минут 56 секунд:
Nikan писал(а): 17 дек 2019, 14:46 в флпроге проблема другая - нельзя числовую переменную записать ни в каком виде кроме десятичного.
иногда реально напрягает, особенно с битовыми операциями
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
Nikan
Майор
Сообщения: 1194
Зарегистрирован: 29 дек 2016, 00:49
Откуда: москва

Блок отправки данных.

Сообщение Nikan »

.
Последний раз редактировалось Nikan 24 мар 2023, 01:29, всего редактировалось 1 раз.
Serjik
Рядовой
Сообщения: 43
Зарегистрирован: 18 фев 2019, 20:48
Откуда: Россия
Имя: Сергей

Блок отправки данных.

Сообщение Serjik »

[ref]Nikan[/ref], Спасибо! Буду пробовать собирать схему. Блок универсален получился! Можно как для авто использовать, так и для контроллеров как в моем случае. ПРО-МИКРО и некстион 2.4 в полне сносно будет! Даже на некстион я смогу числа вводить, что упрощает все действие! Принимать мне ни чего не надо, надо только отправить команду на исполнение. А вот на счет авто надо подумать. Там еще и прием нужен...
Нельзя мешать оборудованию работать, но иногда скучно жить! :smile390:
Аватара пользователя
Nikan
Майор
Сообщения: 1194
Зарегистрирован: 29 дек 2016, 00:49
Откуда: москва

Блок отправки данных.

Сообщение Nikan »

.
Последний раз редактировалось Nikan 24 мар 2023, 01:28, всего редактировалось 1 раз.
Аватара пользователя
nickoass
Рядовой
Сообщения: 42
Зарегистрирован: 26 фев 2017, 20:13
Откуда: Киров

Блок отправки данных.

Сообщение nickoass »

Nikan писал(а): 17 дек 2019, 02:20
Serjik писал(а): 16 дек 2019, 19:57 Переводить не проблема! Проблема понять как это работает да бы собрать действующий блок. Я как ни пытался, он шлет одним потоком.
как то так Serial Write.flp
А можно добавить в блок отправку переменных String ?
Аватара пользователя
Nikan
Майор
Сообщения: 1194
Зарегистрирован: 29 дек 2016, 00:49
Откуда: москва

Блок отправки данных.

Сообщение Nikan »

.
Последний раз редактировалось Nikan 24 мар 2023, 01:43, всего редактировалось 1 раз.
Аватара пользователя
nickoass
Рядовой
Сообщения: 42
Зарегистрирован: 26 фев 2017, 20:13
Откуда: Киров

Блок отправки данных.

Сообщение nickoass »

Nikan писал(а): 19 фев 2020, 00:35
nickoass писал(а): 18 фев 2020, 23:09 А можно добавить в блок отправку переменных String ?
а для чего? обычный вариант же есть - отправка в UART
Например, для отправки АТ команд. Со стандартным блоком Отправка в UART, есть ряд проблем.
Ответить

Вернуться в «Помогите, а то я "нимагу"»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя