УкраїнськаEnglishmRussian
Вход/Новый
В теме нет новых постов

Извлечь тип double из запроса


Автор Сообщение
Сообщение создано: 02. 04. 2014 [13:39]
Waterdisp
Александр Иванов
Создатель темы
Зарегистрирован(а) с: 03.10.2013
Сообщения: 32
Пробежался взглядом по описанию API JavaLikeCalc и не обнаружил, собственно чем "собрать" 8 байт из ответа прибора в число с плавающей точкой... Укажите, куда смотреть, если такое все таки есть... Может ли FloatMergeWord работать со словами по 4 байта?
Сообщение создано: 02. 04. 2014 [14:05]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"Waterdisp" wrote:

Пробежался взглядом по описанию API JavaLikeCalc и не обнаружил, собственно чем "собрать" 8 байт из ответа прибора в число с плавающей точкой... Укажите, куда смотреть, если такое все таки есть... Может ли FloatMergeWord работать со словами по 4 байта?

FloatMergeWord не может, а для парсинга такого рода добавлен объект IO: http://wiki.oscada.org/Doc/FLibSYS#h378-11

Learn, learn and learn better than work, work and work.
Сообщение создано: 02. 04. 2014 [15:19]
Waterdisp
Александр Иванов
Создатель темы
Зарегистрирован(а) с: 03.10.2013
Сообщения: 32
А есть где нибудь примеры использования этого объекта, вызова его функций? Видел такое в пользовательских протоколах Демо-станции, но не особо разобрался, что там вообще происходит :) Как я понимаю, нужно присвоить полю text объекта значение строки (в бинарном формате), а затем применить метод io.read("double")?
Сообщение создано: 02. 04. 2014 [22:29]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"Waterdisp" wrote:

А есть где нибудь примеры использования этого объекта, вызова его функций? Видел такое в пользовательских протоколах Демо-станции, но не особо разобрался, что там вообще происходит :)

Нет там примеров, это новый инструмент.

"Waterdisp" wrote:

Как я понимаю, нужно присвоить полю text объекта значение строки (в бинарном формате), а затем применить метод io.read("double")?

Нужно присвоить весь поток и читать из него элементы.

Learn, learn and learn better than work, work and work.
Сообщение создано: 25. 09. 2017 [10:44]
Vasili
Vasili Pahutsa
Зарегистрирован(а) с: 28.12.2011
Сообщения: 8
Здравствуйте,
Не могу разобраться, как с помощью io.read собрать четыре байта из ответа прибора в float.
Можно пример?
Сообщение создано: 25. 09. 2017 [12:58]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"Vasili" wrote:

Не могу разобраться, как с помощью io.read собрать четыре байта из ответа прибора в float.
Можно пример?

В библиотеке есть реализация протокола "SSCP", использующего все последние возможности включая и объект IO с чтением "float" и "double".
Хотя для float есть ещё первичная функция floatMergeWord().

Learn, learn and learn better than work, work and work.



17115