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

JavaLikeCalc


Автор Сообщение
Сообщение создано: 08. 10. 2016 [19:18]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"tka4ev_s" wrote:

В документации нашел функцию CRC
решил посчитать контрольную сумму для MODBUS
CRC-16/MODBUS 123456789 0x8005 0xFFFF 0x4B37

CRC(123456789, 0x8005, 16, 0xffff)
rez=15739 или 0x3d7b

Где в документации написано, что первый аргумент целое?

Learn, learn and learn better than work, work and work.
Сообщение создано: 08. 10. 2016 [20:31]
tka4ev_s
Сергей Ткачев
Зарегистрирован(а) с: 19.10.2014
Сообщения: 30
"roman" wrote:

"tka4ev_s" wrote:

В документации нашел функцию CRC
решил посчитать контрольную сумму для MODBUS
CRC-16/MODBUS 123456789 0x8005 0xFFFF 0x4B37

CRC(123456789, 0x8005, 16, 0xffff)
rez=15739 или 0x3d7b

Где в документации написано, что первый аргумент целое?


ddr=Special.FLibSYS.int2str(123456789);
Special.FLibSYS.CRC(ddr,0x8005,0x16,0xffff);
так тоже не работает.
можно пример?
Сообщение создано: 08. 10. 2016 [21:44]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"tka4ev_s" wrote:

ddr=Special.FLibSYS.int2str(123456789);
Special.FLibSYS.CRC(ddr,0x8005,0x16,0xffff);
так тоже не работает.

У меня всё работает!
http://wiki.oscada.org/HomePageEn/Using/APIFunctionLibs/LibUserPrtDevs#h1161-18

"tka4ev_s" wrote:

можно пример?

Примеров я сюда не даю!

Learn, learn and learn better than work, work and work.
Сообщение создано: 21. 03. 2017 [13:24]
3dlogin
Илья Кузнецов
Зарегистрирован(а) с: 06.04.2016
Сообщения: 12

Роман, добрый день!
В документации говорится, что
Абстрактный объект представляет собой ассоциативный контейнер свойств и функций.

Возможно ли на сегодняшний день доопределить созданный объект функцией? Например, что-то вроде такого (псевдокод):

JAVASCRIPT
dataObj = new Object();
dataObj.type = 1;
dataObj.data = "";
dataObj.timestamp = 0;
dataObj.sequence = 1;
function dataObj.setData(dataString) { if (dataString.length > 0) dataObj.type = dataString.charCodeAt(0); /* fill other props, do something else */ }


или стоит пользоваться внутренней функцией процедуры, указывая в качестве одного из параметров ссылку на редактируемый объект?
Сообщение создано: 21. 03. 2017 [16:43]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"3dlogin" wrote:

В документации говорится, что
Абстрактный объект представляет собой ассоциативный контейнер свойств и функций.

Возможно ли на сегодняшний день доопределить созданный объект функцией? Например, что-то вроде такого (псевдокод):

Нет, раз в документации не написано. Определение функций статично в коде, хотя можно сделать так, как в шаблоне аналогового параметра:
JAVASCRIPT
dataObj = new Object();
dataObj.type = 1;
dataObj.data = "";
dataObj.timestamp = 0;
dataObj.sequence = 1;
dataObj.procedure = "if (data.length > 0) type = data.charCodeAt(0); /* fill other props, do something else */ }";
//Передать объект в другой узел и там исполнить:
SYS.DAQ.funcCall("JavaLikeCalc.JavaScript", dataObj, dataObj.procedure, "theProcUniqId");


"3dlogin" wrote:

или стоит пользоваться внутренней функцией процедуры, указывая в качестве одного из параметров ссылку на редактируемый объект?

Я так часто и делаю.
Кроме прочего это значительно быстрее по сравнению с определением функций к объекту, поскольку нет компиляции при каждом исполнении. Хотя если указывать "theProcUniqId" то перекомпиляции для одинаковых процедур и не будет и производительность будет близкой к вызову внутренней функции.

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



9044