1

Тема: Конвертировать HEX - ASCII - Decimal

Добрый день!
Подскажите как можно реализовать такую задачу:
В шине есть пакет типа 0123 | 0000 007B
В данном случае 7B несет в себе десятичное значение температуры (123 градуса)
Необходимо считать это показание и запустить в шину уже другой пакет: 0223 | 0031 3233 (где значение 313233 это HEX представление числа 123 в ASCII)
Основной вопрос имеено в конвертации: HEX - Decimal  - ASCII - HEX

2

Re: Конвертировать HEX - ASCII - Decimal

Переводить HEX в DEC необходимости нет, т.к. это всего лишь формат отображения одного и того же числа и в CannyLab с его значением можно работать напрямую. ASCII - дело другое: здесь идет работа с символами, а не значениями.
Для решения Вашей задачи значение необходимо разбить на цифры, из которых оно состоит (десятичные разряды). После чего, для получения ASCII-кода каждой десятичной цифры к ее значению нужно прибавить шестнадцатеричное число 0х30.
Вот вариант диаграммы для решения этой задачи (кликабельно):
http://forum.canny.ru/files/oldpic/c555c757-ff7e-4a14-8fcc-e2e214d8f54a.png
Исходный файл диаграммы: http://forum.canny.ru/files/translate2ascii.cfd

3

Re: Конвертировать HEX - ASCII - Decimal

Спасибо, Денис! Опробовал Вашу диаграмму, именно это и требовалось! Не перестаю удивляться возможнотям контроллера, я уже думал не получится)