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

Вопросы от новичков
fsergei70
Капитан
Сообщения: 861
Зарегистрирован: 17 ноя 2015, 20:36
Имя: Сергей
Благодарил (а): 41 раз
Поблагодарили: 9 раз

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

Сообщение fsergei70 »

Sancho писал(а): 29 июл 2018, 10:55Типа так
Сань а как на основе твоего блока сдвига байт реализовать перестановку байт переменной Float для отправки по модбасу. А то бывает железяка не понимает порядок следования байт и показывает черти что. Понятное дело что в нормальных железяках есть програмная перестановка, но к сожалению не во всех да и в flprog такой настройки пока нет.
Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27 ноя 2017, 13:15
Откуда: Rus44
Имя: Michael
Контактная информация:

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

Сообщение Alias »

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

Отправлено спустя 14 минут 39 секунд:
Вот, накидал, примерно туда копаю?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Alias 29 июл 2018, 20:49, всего редактировалось 2 раза.
kalobyte
Лейтенант
Сообщения: 422
Зарегистрирован: 22 окт 2016, 14:22

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

Сообщение kalobyte »

Alias писал(а): 29 июл 2018, 20:43Это Вы комментируете код выше или содержимое блока?
про код, блок еще не смотрел, попозже гляну
в ютубе есть ролик от автора про пользовательские блоки и как там создать свой блок из кода
Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27 ноя 2017, 13:15
Откуда: Rus44
Имя: Michael
Контактная информация:

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

Сообщение Alias »

Я уже делал свои блоки. В данном случае не очень понятно, куда код прописывать и вживлять.
Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27 ноя 2017, 13:15
Откуда: Rus44
Имя: Michael
Контактная информация:

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

Сообщение Alias »

Наполовину получилось и блок распаковки работает. А с запаковкой не очень. Подозреваю, что не хватает пустячка. Прошу помочь в этом фрагменте:
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. Впрочем, как и на Ардуино, это и так понятно, но хотелось бы кодом.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

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

Отправлено спустя 3 минуты 6 секунд:
fsergei70 писал(а): 29 июл 2018, 19:07
Sancho писал(а): 29 июл 2018, 10:55Типа так
Сань а как на основе твоего блока сдвига байт реализовать перестановку байт переменной Float для отправки по модбасу. А то бывает железяка не понимает порядок следования байт и показывает черти что. Понятное дело что в нормальных железяках есть програмная перестановка, но к сожалению не во всех да и в flprog такой настройки пока нет.
В версии v2 поменять тип переменной с long на флоат в обоих блоках. Подать в один, разобрать на байты, запихнуть во второй с необходимой перестановкой. Отправить, чего получилось.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27 ноя 2017, 13:15
Откуда: Rus44
Имя: Michael
Контактная информация:

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

Сообщение Alias »

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

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

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

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