Страница 2 из 2

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

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

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

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

Отправлено спустя 14 минут 39 секунд:
Вот, накидал, примерно туда копаю?

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

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

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

Добавлено: 29 июл 2018, 20:47
Alias
Я уже делал свои блоки. В данном случае не очень понятно, куда код прописывать и вживлять.

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

Добавлено: 30 июл 2018, 09:57
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. Впрочем, как и на Ардуино, это и так понятно, но хотелось бы кодом.

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

Добавлено: 30 июл 2018, 17:40
Sancho
Вот альтернативный метод. Тоже быстрый.

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

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

Добавлено: 30 июл 2018, 17:53
Alias
Отлично работает! Вот спасибо то!