создание блока BLE ESP32

Создаем свой блок. Вопросы, помощь знатоков.
andrewkik
Рядовой
Сообщения: 42
Зарегистрирован: 28 ноя 2018, 19:53
Имя: Андрей

создание блока BLE ESP32

Сообщение andrewkik »

Всем привет!!! помогите засунуть скетч в пользовательский блок. Простые сам собираю, этот с классами, не пойму как собрать. Спецу тут дел на перекур один.
нужны: вход - работы EN, CompanyId. выходы - addr, rssi, uuid, power. каждый выход отдельно.
по факту в скетче вывод в порт в таком виде: addr:24:0a:c4:ed:fc:ce rssi:-60 uuid:4D6FC88B-BE75-6698-DA48-6866A36EC78E power:0
.
буду очень признателен за помощь.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось andrewkik 10 авг 2021, 09:33, всего редактировалось 1 раз.
sergserg
Сержант
Сообщения: 186
Зарегистрирован: 25 фев 2021, 14:26
Имя: Сергей

помогите создать блок BLE ESP32

Сообщение sergserg »

andrewkik писал(а): 24 июл 2021, 16:56 этот с классами, не пойму как собрать
тоже бесят классы

Отправлено спустя 20 секунд:
не пойму нафига они вообщее нужны в ардуино

Отправлено спустя 1 минуту 54 секунды:
"return" в классе - это ЧТЕНИЕ.

Ч Т Е Н И Е ....просто чтение...
sergserg
Сержант
Сообщения: 186
Зарегистрирован: 25 фев 2021, 14:26
Имя: Сергей

помогите создать блок BLE ESP32

Сообщение sergserg »

какой ужас:



class Color { // класс Color
public:
Color(byte color = 5, byte bright = 30) { // конструктор
_color = color; // запоминаем
_bright = bright;
}
void setColor(byte color) {_color = color;}
void setBright(byte bright) {_bright = bright;}
byte getColor() {return _color;}
byte getBright() {return _bright;}
private:
byte _color; // переменная цвета
byte _bright; // переменная яркости
};
Color myColor(10); // создаём объект myColor, указав _color (получим 10, 30)
Color myColor2(10, 20); // указываем цвет и яркость! (получим 10, 20)
Color myColor3; // без инициализации (получим 5, 30)
Теперь при вызове например myColor2.getColor() мы получим значение 10, как и установили при инициализации. Если вызовем myColor2.setColor(50), то присвоим закрытой переменной _color объекта myColor2 значение 50. При дальнейшем вызове myColor2.getColor()мы получим уже 50





вот ради чего вот это все в ардуине???
НАХРЕНА???
и ведь НУЖНО это понять....ибо дальше никуда)))
Последний раз редактировалось sergserg 24 июл 2021, 22:01, всего редактировалось 1 раз.
sergserg
Сержант
Сообщения: 186
Зарегистрирован: 25 фев 2021, 14:26
Имя: Сергей

помогите создать блок BLE ESP32

Сообщение sergserg »

сорян за офтоп
sergserg
Сержант
Сообщения: 186
Зарегистрирован: 25 фев 2021, 14:26
Имя: Сергей

помогите создать блок BLE ESP32

Сообщение sergserg »

Просто и доходчиво пояснит кто: ну вот зачем вообще классы?
sergserg
Сержант
Сообщения: 186
Зарегистрирован: 25 фев 2021, 14:26
Имя: Сергей

помогите создать блок BLE ESP32

Сообщение sergserg »

"Ведь мы можем создать несколько объектов класса, и управлять каждым (объектом?) в отдельности при помощи одинаковых методов (класса?), но каждый объект будет обладать индивидуальным набором настроек, которые хранятся где-то внутри него."

и при этом же:

" не всегда удобно писать реализацию метода внутри класса, получается очень громоздко и класс перестаёт быть документацией к самому себе..." т.е. "...методы (класса?) объявлены, но расписаны где-то в другом месте...." - вот и ищи их...

НАХРЕНА ТОГДА ПИСАТЬ КЛАСС???
sergserg
Сержант
Сообщения: 186
Зарегистрирован: 25 фев 2021, 14:26
Имя: Сергей

помогите создать блок BLE ESP32

Сообщение sergserg »

"...Двойное двоеточие :: является оператором, который уточняет область видимости имени, к которому применяется...."

это ппц.... не ну я понимаю еще в андроид студио такое применять...но для ардуино???
sergserg
Сержант
Сообщения: 186
Зарегистрирован: 25 фев 2021, 14:26
Имя: Сергей

помогите создать блок BLE ESP32

Сообщение sergserg »

сорян просто накипело)))) и з**бало скакать по библиотекам и *cpp ради срани какой нибудь....

блин это все настолько непрозрачно и неудобно....имхо
andrewkik
Рядовой
Сообщения: 42
Зарегистрирован: 28 ноя 2018, 19:53
Имя: Андрей

помогите создать блок BLE ESP32

Сообщение andrewkik »

Помощники найдутся? Готов разорится на пиво хорошее))). Давайте, други, помогайте. Сам в шоке, крутил, вертел, не получается, а надо очень!!!
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

помогите создать блок BLE ESP32

Сообщение ecoins »

andrewkik писал(а): 26 июл 2021, 13:29 Зарегистрирован: 28.11.2018{, 16:53}
Репутация: 0
Имя: Андрей
Контактная информация: Контактная информация пользователя andrewkik
0BUTTON_REPORTЦитата#9Непрочитанное сообщение andrewkik » Сегодня{, 10:29}
Помощники найдутся? Готов разорится на пиво хорошее))). Давайте, други, помогайте. Сам в шоке, крутил, вертел, не получается, а надо очень!!!
Пиво кому полезно, а кому-то просто не нравится.
Да и за пивом сложные задачи не решаются...
Если Вам действительно надо, то есть быстрый и надежный способ - это внешний (например через UART2) модуль BlueTooth.
Мы в свое время экспериментировали, работало, но отложили до лучших времен. Одна из причин - очень много памяти требует. Возможно и процессорного времени.
Готовых приличных решений на BlueTooth ESP32 не встречали.
Возможно это больше декларация ESP, чем рабочи инструмент.,
Возможно просто процессорные возможности ESP32 не достаточные для программной реализации такой непростой задачи.
andrewkik
Рядовой
Сообщения: 42
Зарегистрирован: 28 ноя 2018, 19:53
Имя: Андрей

помогите создать блок BLE ESP32

Сообщение andrewkik »

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

Отправлено спустя 1 минуту 26 секунд:
заказал такие, придут опробую. https://aliexpress.ru/item/400057132959 ... 1597231019
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

помогите создать блок BLE ESP32

Сообщение aidar_i »

удалил
Последний раз редактировалось aidar_i 08 авг 2021, 21:34, всего редактировалось 4 раза.
andrewkik
Рядовой
Сообщения: 42
Зарегистрирован: 28 ноя 2018, 19:53
Имя: Андрей

помогите создать блок BLE ESP32

Сообщение andrewkik »

Здорово, спасибо!!
Для примера один выход покажите как прикрутить?
заранее спасибо!

Отправлено спустя 6 минут 7 секунд:
в секции loop так не проходит.
void loop()
{
//Плата:1
BLEScan* scan = BLEDevice::getScan();
rssi_out = device.getRSSI();
scan->setAdvertisedDeviceCallbacks(new IBeaconAdvertised(), true);
scan->setActiveScan(true);
scan->start(60);

Отправлено спустя 1 час 7 минут 25 секунд:
так тоже не работает
String rssi_out;
bool getRSSI;
#define ENDIAN_CHANGE_U16(x) ((((x)&0xFF00) >> 8) + (((x)&0xFF) << 8))
void setup()
{
Serial.begin(115200);
BLEDevice::init("");
}
void loop()
{
//Плата:1
BLEScan* scan = BLEDevice::getScan();
rssi_out = getRSSI();

'getRSSI' cannot be used as a function
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

помогите создать блок BLE ESP32

Сообщение aidar_i »

удалил
Последний раз редактировалось aidar_i 08 авг 2021, 21:34, всего редактировалось 1 раз.
andrewkik
Рядовой
Сообщения: 42
Зарегистрирован: 28 ноя 2018, 19:53
Имя: Андрей

помогите создать блок BLE ESP32

Сообщение andrewkik »

получилось, только порт занимает. в BLEAdvertisedDeviceCallbacks.h
// Последовательный вывод информации iBeacon
void printIBeacon(BLEAdvertisedDevice device) {
Serial.printf(device.getAddress().toString().c_str(),
device.getRSSI(),
getUuid(device).c_str(),
*(signed char*)&device.getManufacturerData().c_str()[24]);
}

я так понял из за этого.
как убрать, но данные на выходах сохранить?
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

помогите создать блок BLE ESP32

Сообщение aidar_i »

удалил
Последний раз редактировалось aidar_i 08 авг 2021, 21:35, всего редактировалось 1 раз.
andrewkik
Рядовой
Сообщения: 42
Зарегистрирован: 28 ноя 2018, 19:53
Имя: Андрей

помогите создать блок BLE ESP32

Сообщение andrewkik »

пробовал уже. вот это пишит
In file included from C:\Users\dom\AppData\Local\Temp\flprog\pr14\pr14.ino:6:0:
F:\Flprog\PortableFLProg_7-3-4_Win64\ideV6\portable\packages\esp32\hardware\esp32\1.0.6\libraries\BLE\src/BLEAdvertisedDeviceCallbacks.h: In member function 'virtual void IBeaconAdvertised::onResult(BLEAdvertisedDevice)':
F:\Flprog\PortableFLProg_7-3-4_Win64\ideV6\portable\packages\esp32\hardware\esp32\1.0.6\libraries\BLE\src/BLEAdvertisedDeviceCallbacks.h:9:26: error: 'printIBeacon' was not declared in this scope
printIBeacon(device);
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

помогите создать блок BLE ESP32

Сообщение aidar_i »

удалил
Последний раз редактировалось aidar_i 08 авг 2021, 21:35, всего редактировалось 1 раз.
andrewkik
Рядовой
Сообщения: 42
Зарегистрирован: 28 ноя 2018, 19:53
Имя: Андрей

помогите создать блок BLE ESP32

Сообщение andrewkik »

сделал,

class IBeaconAdvertised: public BLEAdvertisedDeviceCallbacks {
public:
// Обратный вызов при обнаружении BLE
void onResult(BLEAdvertisedDevice device) {
if (!isIBeacon(device)) {
return;
}
//printIBeacon(device);
}

на выходе нет данных, вернее есть, но раз в минуту где-то. и данные -9999.
MAC адрес подставил там 00:00:00:00:00:00
void loop()
{
//Плата:1
BLEScan* scan = BLEDevice::getScan();
scan->setAdvertisedDeviceCallbacks(new IBeaconAdvertised(), true);
scan->setActiveScan(true);
scan->start(60);
BLEAdvertisedDevice device; //вот эту строку добавить в начале
rssi_out = device.getAddress().toString().c_str();

в компорт блок настроен отправка каждые 10 сек
aidar_i
Полковник
Сообщения: 3358
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

помогите создать блок BLE ESP32

Сообщение aidar_i »

Если не удалять вышеуказанные коды, выход нормально работает?
Ответить

Вернуться в «Разработка пользовательских блоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя