Size: a a a

ioBroker smarthome

2019 March 02

A

Anzor in ioBroker smarthome
источник

A

Anzor in ioBroker smarthome
сам скрипт вот тут я так понял - https://github.com/mode80/crc8js/blob/master/crc8.js
источник

A

Anzor in ioBroker smarthome
его вставляю в скрипты в ИОБ, а потом я так понимаю нужно в эту часть вставить свои данные:
var sample_text = "Hi. I need a checksum."

 // convert sample text to array of bytes
 var byte_array = sample_text.split('').map(function(x){return x.charCodeAt(0)})

 var crc8 = new CRC8()
 
 var checksum = crc8.checksum(byte_array)
источник

ИК

Илья Киров in ioBroker smarthome
Anzor
его вставляю в скрипты в ИОБ, а потом я так понимаю нужно в эту часть вставить свои данные:
var sample_text = "Hi. I need a checksum."

 // convert sample text to array of bytes
 var byte_array = sample_text.split('').map(function(x){return x.charCodeAt(0)})

 var crc8 = new CRC8()
 
 var checksum = crc8.checksum(byte_array)
да, копируешь весь файл в скрипт, а потом в нужном месте делаешь как в примере. только заменяешь на нужные переменные
источник

ИК

Илья Киров in ioBroker smarthome
Anzor
его вставляю в скрипты в ИОБ, а потом я так понимаю нужно в эту часть вставить свои данные:
var sample_text = "Hi. I need a checksum."

 // convert sample text to array of bytes
 var byte_array = sample_text.split('').map(function(x){return x.charCodeAt(0)})

 var crc8 = new CRC8()
 
 var checksum = crc8.checksum(byte_array)
Только немного можно поменять тут, чтобы использовался другая константа для суммы
var crc8 = new CRC8(CRC8.POLY.CRC8_DALLAS_MAXIM);
источник

A

Anzor in ioBroker smarthome
Илья Киров
да, копируешь весь файл в скрипт, а потом в нужном месте делаешь как в примере. только заменяешь на нужные переменные
чет я видимо не туда вставляю данные. у меня есть пример. 31 01 10 в шестнадцатиричном должно дать 2C.
источник

A

Anzor in ioBroker smarthome
я вставляю 31 01 10 вместо "Hi. I need a checksum.", но выходит ошибка
источник

A

Anzor in ioBroker smarthome
javascript.0 script.js.ModBus.CR8: function CRC8(polynomial) { // constructor takes an optional polynomial type from CRC8.POLY if (polynomial == null) polynomial = CRC8.POLY.CRC8_CCITT this.table = CRC8.generateTable(polynomial); }
источник

A

Anzor in ioBroker smarthome
Илья Киров
да, копируешь весь файл в скрипт, а потом в нужном месте делаешь как в примере. только заменяешь на нужные переменные
и еще, я сначала вставил весь скрипт, потом в самый низ добавил  
var sample_text = "31 01 10"

 // convert sample text to array of bytes
 var byte_array = sample_text.split('').map(function(x){return x.charCodeAt(0)})

 var crc8 = new CRC8(CRC8.POLY.CRC8_DALLAS_MAXIM);
 
 var checksum = crc8.checksum(byte_array)
 log(CRC8)
источник

ИК

Илья Киров in ioBroker smarthome
ща, погоди
источник

ИК

Илья Киров in ioBroker smarthome
Anzor
и еще, я сначала вставил весь скрипт, потом в самый низ добавил  
var sample_text = "31 01 10"

 // convert sample text to array of bytes
 var byte_array = sample_text.split('').map(function(x){return x.charCodeAt(0)})

 var crc8 = new CRC8(CRC8.POLY.CRC8_DALLAS_MAXIM);
 
 var checksum = crc8.checksum(byte_array)
 log(CRC8)
а последняя строка это для чего?
источник

ИК

Илья Киров in ioBroker smarthome
наверно
log(checksum)
источник

A

Anzor in ioBroker smarthome
надеялся результат увидеть 😊
источник

A

Anzor in ioBroker smarthome
Илья Киров
наверно
log(checksum)
да, наверное ). только чет не то посчиталось. 248 вернулось. а должно 2С
источник

ИК

Илья Киров in ioBroker smarthome
значит алгоритмы отличаются немного
источник

ИК

Илья Киров in ioBroker smarthome
var sample_text = "31 01 10"

// convert sample text to array of bytes
var byte_array = sample_text.split('').map(function(x){return x.charCodeAt(0)})
var crc8 = new CRC8();
var checksum = crc8.checksum(byte_array)
log(checksum)

вот такой код выдает 44, что собственно и есть 0x2C
источник

ИК

Илья Киров in ioBroker smarthome
только тебе же нужен CRC-8/MAXIM алгоритм?
источник

ИК

Илья Киров in ioBroker smarthome
Илья Киров
var sample_text = "31 01 10"

// convert sample text to array of bytes
var byte_array = sample_text.split('').map(function(x){return x.charCodeAt(0)})
var crc8 = new CRC8();
var checksum = crc8.checksum(byte_array)
log(checksum)

вот такой код выдает 44, что собственно и есть 0x2C
log(checksum.toString(16))
источник

MS

Mak Sim in ioBroker smarthome
Подскажите как снести iobroker.zigbee и поставить с нуля? Намудрил я чего-то - теперь ни установить ни удалить не могу...
источник

A

Anzor in ioBroker smarthome
Илья Киров
log(checksum.toString(16))
👍 так работает!)
источник