Т.е. уже убедились, что самый сложный метод - это делать что либо по Arduino подобию?
Нет, пока не убедился, этот язык я хотя бы понимаю (там все элементарно), а ваш расшифровываю по подобию.
В качестве примера давайте расскажу как я буду исправлять 1Кгц в скорости шины "не-ардуино-подобным" образом (когда имею два образца на непонятном мне языке
В тексте примера с датчиком 9250 есть фрагмент кода с такой записью в лог:
log('Send command#01: Init I2C/SMBUS CLK 400 kHz, MPU9250 Reset...'); // - init I2C
ага ! Оно! Данные передаваемые в функцию выглядят так:
new Uint8Array([11, 1, 0, 0, 255, 255, 0x90, 1, 0xD0, 0x6B, 0, 0x80, 0]));
В функции i2cDrvInit(clk) этот блок данных выглядит следующим образом.
let blk = new Uint8Array([6 , 1, 0, 0, 255, 255, clk&0xff, (clk>>8)&0xff]);
Пишем строчки рядом и выравниваем их по параметрам. Видно что первая строчка длиннее второй, по всей видимости хвост это и есть "MPU9250 Reset..."
Начало совпадает кроме первого байта (длина пакета). Затем, после двух 0xFF по всей видимости и идут два байта нужных мне CLK 400 Кбит.
Исправленный вариант функции на мой взгляд должен выглядеть так:
JavaScript:
function i2cDrvInit()
{
let blk = new Uint8Array([6 , 1, 0, 0, 255, 255, 0x90,1]);
this.characteristicCache.writeValue(blk);
}
Правильно?
Вроде вы хотели акселерометр на web страничке...
Уже заказал такие же модули аксселерометров, хотелось бы переделать ее под имеющиеся у меня, но я за это возьмусь только когда мы закончим курс молодого бойца.
ps: В процессе стала понятна ваша ранняя фраза "блоками или побайтово?" Получается никто не запрещает мне паковать в одну посылку сразу несколько команд и они в теории выполнятся в пакетном режиме. Так?