Добрый день!
Возникла следующая проблема. Имеем ответ (число в Hex) от Modbus RTU 00 00 41 70, если поменяем слова то получим 41 70 00 00 что согласно http://gregstoll.dyndns.org/~gregstoll/floattohex/ равно 15.0, аналогично записано и в контроллере. В Hiasm не могу сделать схему которая бы преобразовала 00 00 41 70 или 41 70 00 00 в число с запятой. Поиск по форуму дал ссылку на http://www.hiasm.com/xf/topic.php?t=50671&start=0, но решение я так и не нашел.
Заранее спасибо.
Этот топик читают: Гость
Ответов: 34
Рейтинг: -1
|
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Был где-то на форуме элемент DataToFileEx.
Ему - запросто. А найти чего-то не могу... [flood]Не могу ничего вспомнить, потому что невозможно наморщить лоб Будем ждать вспышек памяти, или сведений со стороны[/flood] ------------ Дoбавленo в 15.12: Свой могу дать Редактировалось 2 раз(а), последний 2017-08-21 20:02:23 |
|||
карма: 9 |
|
Ответов: 8926
Рейтинг: 823
|
|||
savt, ответ в форме представления числа в машине:
hex2float.jpg Galkov, картинку Вы мне давали, с тех пор нет у меня вопросов |
|||
карма: 19 |
| ||
файлы: 1 | hex2float.jpg [56.9KB] [594] |
Ответов: 34
Рейтинг: -1
|
|||
Galkov, Леонид, спасибо за оперативные ответы.
Galkov, если я Вас правильно понял, Вы предлагаете сохранить данные в файл и потом от туда его считать перекодированный ? или в качестве примера кода ? Леонид, я понимаю про представление числа в машине, если надо я легко могу поменять порядок слов, главное что бы был пример перекодирования с Hex в float. К сожалению моих познаний в Дельфи и в Hiasm пока еще мало для самостоятельного создания компонента. Как бы Hiasm подкупает скоростью разработки и низким порогом вхождения.
|
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
savt писал(а): Вы предлагаете сохранить данные в файл и потом от туда его считать перекодированный ?Скажем так, я предлагаю способ конвертирования практически произвольныж бинарных данных в употребимые типы. Исторически, я действительно работал с бинарным файлом (.row, котрый делал IAR - вытаскивал два hex-а, для flash и для eeprom). И мне даже показалось, что я закрыл практически все возможные хитрости в этих бинарных файлах. Файл... Можно, но совершенно необязательно. Это может быть просто MemoryStream (просто кусок памяти, у которого внизу есть точка Stream). Этот же Stream может быть получен из конвертора в режиме String->Stream. В общем, любыми способами, доступными программисту на HiAsm ------------ Дoбавленo в 17.16: savt, главное назначение HiAsm - делать схемы проще, чем это делаете Вы (будем надеяться ПОКА) Примерно так:
|
|||
карма: 9 |
| ||
Голосовали: | savt |
Ответов: 34
Рейтинг: -1
|
|||
Galkov, спасибо огромное, действительно все очень просто и работает. Можно закрывать тему.
|
|||
карма: 0 |
|
Разработчик
Ответов: 26160
Рейтинг: 2127
|
|||
По убедительной просьбе тема снова открыта
|
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
savt писал(а): решив проблему конвертации с HEX в Real, я пришел к другой, с обратной конвертацией из Real (дробное число) в HEx. Компонент я не нашел, может плохо искалЭто - ДА, труднее всего найти то, что у тебя под носом Да тот же самый элемент!
Это, если Вас интересовал 32-х битный Float на выходе. Если 64-х битный Real -- делай DataToFileEx.DataSize=8. Ну и далее, в том же духе. Ничего военного, в общем. |
|||
карма: 9 |
|
Ответов: 34
Рейтинг: -1
|
|||
Galkov, да действительно плохо смотрел компоненты, все работает, огромное спасибо.
[flood] Сам так был близок к решению, просто надо было MemoryStream добавить и соединить... HIAsm очень удобен для быстрой разработки небольших приложений, надеюсь с CNET он станет еще более актуальным, но некоторые вещи как MemoryStream у меня в голове пока еще не укладываются. [/flood] |
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
savt, тут ситуация такая.
Возможно, следует потратить некоторое время на более философские вопросы. Типа: "лучше день потерять, зато потом за пять минут долететь" Семантика связей в HiAsm, или -- чего в какой последовательности происходит. Внимание Есть очень серьезные отличия от семантики связей в блок-схемах. Тут многие на этом накалываются, и начинают заниматься "кольцеванием". Вот, например, коллега iarspider пытался описывать "модель паровозиков". Несмотря на детсадовское название, она ОЧЕНЬ точно описывает семантику происходящего. Чем она мне и нравится... Иван, отзовись, ты закончил свое описание Ну типа, дай ссылку, или давай подпилим напильником чего ни то... Хотя, справедливости ради, отмечу: среди "продвинутых программистов" у меня на работе - эта модель как-то не пошла. Сам удивляюсь... Им понятней клиент-серверная модель - в них она вошла как по маслу. Ну типа: левые и правые точки - это входы в некоторые сервера (даже и от нескольких клиентов). А левые и верхние точки - это клиенты, которые обращаются к другим серверам. Че к чему |
|||
карма: 9 |
|
10