• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Делюсь опытом Power Profiler на рельсах AdHoc protocol

pvvx

Активный участник сообщества
@pvvx. опять пришел и нарыгал?

для чего? чтобы тебя потом натыкали носом в твое наследие? мазохистЪ штоле??
А вы натыкайте - попробуйте.
Моё наследие вам натыкает ещё как :)
PS: вам тут коммерческие тайны раскрывают, а вы проявляете неуважение. Под описание, что нужно для универсального драйвера I2C/SMBUS можно патент заявлять или (с) ставить :p
 

pvvx

Активный участник сообщества
Код:
/* Universal I2C/SMBUS master read-write transaction struct */
typedef struct _i2c_utr_t {
    unsigned char mode;    // bit0..6: number wr_byte for new START (bit7: =1 - generate STOP/START)
    unsigned char rdlen; // bit0..6: number rd_byte, bit7: =1 - old read byte generate NACK, =0 - ACK
    unsigned char wrdata[1]; // i2c_addr_rdwr, wr_byte1, wr_byte2, wr_byte3, ... wr_byte126
} i2c_utr_t;

/* Universal I2C/SMBUS read-write transaction 
* wrlen - размер tr.wrlen[] (определяется по размеру пакета) */
int I2CBusUtr(void * outdata, i2c_utr_t *tr, unsigned int wrlen);
 

pvvx

Активный участник сообщества
Вот простая типовая SMBUS операция чтения c длиной номера регистра в 1 байт: start + адрес i2c c wr + номер регистра + start + адрес i2c c rd + чтение 2 байта + stop
upload_2020-2-8_17-59-6.png

А вот не типовая операция - адрес с чтением + байт записи (!) + чтение 3-х байт: start + адрес i2c c rd + номер регистра/команда + чтение 3 байта + stop
upload_2020-2-8_18-1-10.png

И всевозможные комбинации...
 

pvvx

Активный участник сообщества
Если вам не ясно для чего нужна передача NACK при приеме последнего байта, то стоит поглядеть к примеру MCP4725 и чтение что тама в ней.
Если будете читать всего 1 или 5 байт с ACK-ками, то всё будет хорошо. Но если захотите прочитать 3 байта - только состояние и значение DAC и не дадите в конце NACK, то MCP4725 зависнет на шине I2С SDA и не даст дать STOP пока не одумается. По её документации незя читать не кратно 5 байтам, но NACK позволяет :p
 

pvvx

Активный участник сообщества
Для EEPROM характерно:
При чтении NACK указывает - больше читать не хочу:
upload_2020-2-8_18-45-16.png
При записи:
upload_2020-2-8_18-45-36.png
Но если вы превысите размер буфера записи или границу какого сегмента, то микросхема сгенерирует NACK и вы должны прекратить запись и ограничить размер записываемых за раз байт.
И так-же подобные комбинации...
 

pvvx

Активный участник сообщества
А в Arduino - там сотни драйверов и полная помойка с I2C, да у каждого типа MCU своя помойка :) :) :p
Аналогично полная помойка и у любого дипломированного креативного западного клоуна программиста от любого бренда.
 

cheblin

Member
банщик решил сюда ударно перепечатать все что выучил по I2C ?

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

надеюсь мне не придется нырять далеко под капот и будет достаточно тех абстракций которые предоставляет мне HAL.
.. своих сложностей хватает.
 

pvvx

Активный участник сообщества
банщик решил сюда ударно перепечатать все что выучил по I2C ?

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

надеюсь мне не придется нырять далеко под капот и будет достаточно тех абстракций которые предоставляет мне HAL.
.. своих сложностей хватает.
Дык HAL написан безграмотными дипломированными креативными западными клоунами программистами.
Вы им и подражаете.
Пока от вас только коричневый кал. Даже белого шума нема :) А всё в белый свет рветесь.. :) :)
 

pvvx

Активный участник сообщества
это совершенно неимеет никакого отношения к процессу, ни способствует ему и не тормозит... белый шум.
"Белый шум" перерос в универсальный USB/BLE <-> I2C/ADC/DAC адаптер не дождавшись когда AdHoc сможет генерировать драйвера для js или вообще для чего либо.
 

cheblin

Member
в связи с известными событиями и тотальной заморозкой бизнес активности... решился, помимо добавления новых фичь, переделать то, что так долго откладывал....
всё самое сложное уже позади, а главное, полная ясность с тем что, и как нужно ещё сделать.

скоро.
 

pvvx

Активный участник сообщества
в связи с известными событиями и тотальной заморозкой бизнес активности... решился, помимо добавления новых фичь, переделать то, что так долго откладывал....
всё самое сложное уже позади, а главное, полная ясность с тем что, и как нужно ещё сделать.

скоро.
Тем временем Visual Basic закончил своё существование (MS объявила о полном закрытии его сопровождения), как это периодически происходит со всеми языками высокого уровня. Из всех остаются только СИ и С++. Rust ожидает та-же история...
Пока ещё актуален и распространен javascript из-за браузеров но AdHoc не имеет его поддержки.
 

cheblin

Member
javascript из-за браузеров но AdHoc не имеет его поддержки.
банщик, перестань болтать ерундой. даже с учётом того что ты далёк от програмирования, уж про typescript почитал бы, угу.




со всеми языками
... и с паскудным алголом ( ПаскАль) например ешё раньше.
 

pvvx

Активный участник сообщества
банщик, перестань болтать ерундой. даже с учётом того что ты далёк от програмирования, уж про typescript почитал бы, угу.
Креативный боксер - я давно знаю что такое typescript. Да и в этих делах до вашего рождения.
Подрастете - поймете про что написал.
Всё равно смоетесь ничего не доделав...
 

pvvx

Активный участник сообщества
... и с паскудным алголом ( ПаскАль) например ешё раньше.
Вы уж там постарайтесь выкинуть новую рекламу никому не нужной кроме вас игры в создание неразвитых языков, которые созданы для частной временной игры в их развитие до уже имеющихся, а не для создания рабочих вещей…
 

pvvx

Активный участник сообщества
Уже третья тема-простыня спама от вас про AdHoc, а итогов как не было, так и нет.
Видимо плохо читаете и не вникаете в суть, того что вам описано.
 

pvvx

Активный участник сообщества
Тем временем, без всяких AdHoc PowerProfiler BLE уже в браузере на любой платформе с полными исходниками и примером теста собственного потребления модуля:

Разрисовать HTML страничку и использовать какую свою графическую либу можете сами, как и создать класс устройства в javascript.
На это не требуется много времени, а нужно заниматься дизайнерством...
 

pvvx

Активный участник сообщества
Тем временем и STM32F103С8T6 изучаемый креативным боксером так-же закончил своё существование на али, т.к. превратился в антиквариат и стоит дороже новых чипов...
 

pvvx

Активный участник сообщества
Тем временем, UART умирает даже в Arduino, замещаясь USB... Т.е. основное предназначение и интерфейс AdHoc закончило своё существование и превратилось в антиквариат.
 

cheblin

Member
банщик не понимаю, к чему эти протыни поллюций?

во-первых чтоб я так жил как UART умирает...
во-вторых какое отношение UART имеет к AdHoc protocol?
AdHoc protocol работает с массивом байт. ему соверщенно пофиг откуда они были получены и куда будут отправлены.
 

pvvx

Активный участник сообщества
банщик не понимаю, к чему эти протыни поллюций?
Я не бекаю на ващих окраинных языках.
во-первых чтоб я так жил как UART умирает...
во-вторых какое отношение UART имеет к AdHoc protocol?
По статье его зарождения и вашим напевам в данном форуме.
AdHoc protocol работает с массивом байт.
ему соверщенно пофиг откуда они были получены и куда будут отправлены.
Тем временем, сколько бы ни появилось новых проприетарных пром. протоколов, базовый Modbus как и CИ в языках программирования живее всех живых :p
Оно тоже работает с массивом байт :p
И сколько бы креативный боксер его не ругал, но Modbus является базовым и присутствует во всех пром. устройствах PLC, панелях оператора и т.д. :p

Ваш протокол пока никуда и ничего не отправляет.
К чему обсуждение того, чего нет и не будет?
Креативный фантазер боксер?
 
Сверху Снизу