Китайцы давно лепят приложения на Android, которые работают только на специфических версиях смартов с их BLE датчиками."А написать своё при прямой работе с BT адаптером может любой"
так не бывает на андроиде, я поправил Qt чтобы он видел, но это все канонически - на Java, через канонический API,
так что, тут я ничего не проприетарил ))
Мне это не нужно - я могу написать прием LongRange и прочего практически на любом чипе с BLE и воткнуть его в комп хоть с MSDOSНу, хотите, давайте на HA запустим long, если так он на нем нужен))
Только можно на пятом апельсине, вроде нашлась на него карта с 5.2
А вот это правильно, я тоже за это, тем более особо то и напрягаться не надо - уже все написано )))Китайцы давно лепят приложения на Android, которые работают только на специфических версиях смартов с их BLE датчиками.
У вас есть уверенность, что ваше приложение заработает на всех смартах выпущенных за последние 5 лет (это основной парк у пользователей)?
Мне это не нужно - я могу написать прием LongRange и прочего практически на любом чипе с BLE.
Нет - там мой типовой формат, 181a. Не ATC1441. Различие в длине UUID данныхВо, интересно ))
Значит у него адверт не 181a, а Xiomi, а там нет данных таких )
Что такое мо?Нет - там мо
Тут наверно хватит разгребать баги, т.к. движок форума не очень удобен для этого.ясно, там после uida mac девайса должен совпадать с самим маком иначе я его ингорю,
точнее там есть инфо, что он проигнорен, но она не вывелась, завтра исправлю, но разве у вас есть таки адверты тоже ?
Возможно.Может шифрованное что-то?
/* Encrypted custom beacon structs */
// https://github.com/pvvx/ATC_MiThermometer/issues/94#issuecomment-842846036
typedef struct __attribute__((packed)) _adv_cust_head_t {
uint8_t size; //@0 = 14
uint8_t uid; //@1 = 0x16, 16-bit UUID https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile/
uint16_t UUID; //@2..3 = GATT Service 0x181A Environmental Sensing (little-endian)
uint8_t counter; //@4 0..0xff Measurement count, Serial number, used for de-duplication, different event or attribute reporting requires different Frame Counter
} adv_cust_head_t, * padv_cust_head_t;
typedef struct __attribute__((packed)) _adv_cust_data_t {
int16_t temp; //@0
uint16_t humi; //@2
uint8_t bat; //@4
uint8_t trg; //@5
} adv_cust_data_t, * padv_cust_data_t;
typedef struct __attribute__((packed)) _adv_cust_enc_t {
adv_cust_head_t head; //@0..4
adv_cust_data_t data; //@5..10
uint8_t mic[4]; //@11..14
} adv_cust_enc_t, * padv_cust_enc_t;