Запаковка/распаковка данных

... для обмена с Nextion

Вопросы от новичков
fsergei70
Капитан
Сообщения: 786
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 54
Имя: Сергей

Запаковка/распаковка данных

#21

Сообщение fsergei70 » 29.07.2018{, 19:07}

Sancho писал(а):
29.07.2018{, 10:55}
Типа так
Сань а как на основе твоего блока сдвига байт реализовать перестановку байт переменной Float для отправки по модбасу. А то бывает железяка не понимает порядок следования байт и показывает черти что. Понятное дело что в нормальных железяках есть програмная перестановка, но к сожалению не во всех да и в flprog такой настройки пока нет.

Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27.11.2017{, 13:15}
Репутация: 36
Откуда: Rus44
Имя: Michael
Контактная информация:

Запаковка/распаковка данных

#22

Сообщение Alias » 29.07.2018{, 20:28}

kalobyte писал(а):
29.07.2018{, 18:34}
есть переменная на 4 байта eprst
Это Вы комментируете код выше или содержимое блока? Спасибо.
С кодом я контекстно интуитивно все понимаю, даже догадываюсь, что eprst << 8 смещает на 8 бит. Но вот где это в блоке - не пойму. И как в него добавить четыре input_х тоже ((

Отправлено спустя 14 минут 39 секунд:
Вот, накидал, примерно туда копаю?
Вложения
Сдвиги_2.flp
(80.17 КБ) 60 скачиваний
Последний раз редактировалось Alias 29.07.2018{, 20:49}, всего редактировалось 2 раза.

kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22.10.2016{, 14:22}
Репутация: 28

Запаковка/распаковка данных

#23

Сообщение kalobyte » 29.07.2018{, 20:44}

Alias писал(а):
29.07.2018{, 20:43}
Это Вы комментируете код выше или содержимое блока?
про код, блок еще не смотрел, попозже гляну
в ютубе есть ролик от автора про пользовательские блоки и как там создать свой блок из кода

Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27.11.2017{, 13:15}
Репутация: 36
Откуда: Rus44
Имя: Michael
Контактная информация:

Запаковка/распаковка данных

#24

Сообщение Alias » 29.07.2018{, 20:47}

Я уже делал свои блоки. В данном случае не очень понятно, куда код прописывать и вживлять.

Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27.11.2017{, 13:15}
Репутация: 36
Откуда: Rus44
Имя: Michael
Контактная информация:

Запаковка/распаковка данных

#25

Сообщение Alias » 30.07.2018{, 09:55}

Наполовину получилось и блок распаковки работает. А с запаковкой не очень. Подозреваю, что не хватает пустячка. Прошу помочь в этом фрагменте:
eprst = input_01; // фаршируем
eprst = (eprst << 8) || input_02;
eprst = (eprst << 8) || input_03;
eprst = (eprst << 8) || input_04;

Отправлено спустя 2 минуты 35 секунд:
На стороне панели код можно заменить математикой типа
х1*1 + х2*256 + х3*65536 + х4*16777216. Впрочем, как и на Ардуино, это и так понятно, но хотелось бы кодом.
Вложения
Сдвиг-3.flp
(292.48 КБ) 70 скачиваний

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Запаковка/распаковка данных

#26

Сообщение Sancho » 30.07.2018{, 17:37}

Вот альтернативный метод. Тоже быстрый.

Отправлено спустя 3 минуты 6 секунд:
fsergei70 писал(а):
29.07.2018{, 19:07}
Sancho писал(а):
29.07.2018{, 10:55}
Типа так
Сань а как на основе твоего блока сдвига байт реализовать перестановку байт переменной Float для отправки по модбасу. А то бывает железяка не понимает порядок следования байт и показывает черти что. Понятное дело что в нормальных железяках есть програмная перестановка, но к сожалению не во всех да и в flprog такой настройки пока нет.
В версии v2 поменять тип переменной с long на флоат в обоих блоках. Подать в один, разобрать на байты, запихнуть во второй с необходимой перестановкой. Отправить, чего получилось.
Вложения
Сдвиги байт_v2.flp
(84.06 КБ) 80 скачиваний
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27.11.2017{, 13:15}
Репутация: 36
Откуда: Rus44
Имя: Michael
Контактная информация:

Запаковка/распаковка данных

#27

Сообщение Alias » 30.07.2018{, 17:53}

Отлично работает! Вот спасибо то!

Ответить

Вернуться в «Начинающим»