Как модифицировать исходники?

alexduino
Offline
Зарегистрирован: 22.08.2022

Имеется платка Adafruit Bluefruit с NRF52 на борту, хочу на нем сделать BLE Beacon.

У Adafruit имеется фреймворк в котором уже есть простая реализация маяка, но мне она не подходит.

Хочу изменить формат маяка, как и где луше вносить изменения в исходник или имеется другой способ модефикации?

 

 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Обычно в исходник изменения вносятся ручками через доступный текстовый редактор. В вашем случае, с вашими вопросами, могу лишь порекомендовать коммерческий раздел «Ищу исполнителя».

b707
Offline
Зарегистрирован: 26.05.2017

alexduino пишет:

или имеется другой способ модефикации?

купить готовое... а на сдачу словарик русскага езыка

inspiritus
Offline
Зарегистрирован: 17.12.2012

Ладно еще нет фторой буквы «е» :)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

inspiritus пишет:

Ладно еще нет фторой буквы «е» :)

С языка сняли! Только хотел написать ТС, что правильно будет "модефецировать"

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

тут -

uint8_t beaconUuid[16] =
{
  0x01, 0x12, 0x23, 0x34, 0x45, 0x56, 0x67, 0x78,
  0x89, 0x9a, 0xab, 0xbc, 0xcd, 0xde, 0xef, 0xf0
};

 

alexduino
Offline
Зарегистрирован: 22.08.2022

ua6em пишет:

тут -

uint8_t beaconUuid[16] =
{
  0x01, 0x12, 0x23, 0x34, 0x45, 0x56, 0x67, 0x78,
  0x89, 0x9a, 0xab, 0xbc, 0xcd, 0xde, 0xef, 0xf0
};

Это UID маяка, мне же нужно переделать структуру самого пакета чтобы передавать маяки в формате Eddystone URL.

b707 пишет:

купить готовое... а на сдачу словарик русскага езыка

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

 

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

alexduino пишет:

Хочу изменить формат маяка, как и где луше вносить изменения в исходник или имеется другой способ модефикации?

Классически правильным способом является не вносить изменения в исходник, а написать класс-наследник, в котором будут присутствовать все необходимые (измененные либо дополненные) методы.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

alexduino пишет:

Мой русский - уж точно не твоя проблема.

Была бы не нашей, если бы Вы не к нам обращались. А так - понимать-то Вашу писанину нам - так что наша.

b707
Offline
Зарегистрирован: 26.05.2017

как не вспомнить

Вспыхает небо, pазбyжая ветеp,
Пpоснyвший гомон птичьих голосов;
Пpоклинывая всё на белом свете,
Я вновь бежy в нетоптанность лесов.

Шypшат звеpyшки, выбегнyв навстpечy,
Пpиветливыми лапками маша,
Я сpеди тyт пpобyдy целый вечеp,
Бессмеpтные твоpения пиша.

Hо, выползя на миг из тины зыбкой,
Болотная зелёновая тваpь
Совает мне с заботливой yлыбкой
Большой Оpфогpафический Словаpь.

alexduino
Offline
Зарегистрирован: 22.08.2022

andriano пишет:

Классически правильным способом является не вносить изменения в исходник, а написать класс-наследник, в котором будут присутствовать все необходимые (измененные либо дополненные) методы.

Мне также представляется неверным вносить изменения в оригинальный исходник, хотя бы по причине обновлений.

Если не сложно, дайте чуть больше инфы как реализуется этот класс-наследник.
b707
Offline
Зарегистрирован: 26.05.2017

alexduino пишет:

дайте чуть больше инфы как реализуется этот класс-наследник.

https://habr.com/ru/post/445948/

alexduino
Offline
Зарегистрирован: 22.08.2022

Покопавшись в исходниках Bluefruit нашел поддержку нужного мне маяка EddyStone Url.

https://github.com/adafruit/Adafruit_nRF52_Arduino/blob/master/libraries...

Но нет примера его использования, имеется лишь пример маяка EddyStone Uid.

https://github.com/adafruit/Adafruit_nRF52_Arduino/blob/master/libraries...

Нифига не понимаю как заюзать EddyStone Url, подскажите плиз если можете...

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Eddystone может куда больше, чем его конкурент: он транслирует до 4-х пакетов даных – Eddystone-UID (20 байт), Eddystone-URL (до 20 байт), Eddystone-TLM (14 или 18 байт) и, с 14 марта 2016, Eddystone-EID (10 байт). Eddysone-UID – это аналог пакета, используемого в iBeacon, в то время как Eddystone-URL передает какой-либо URL адрес, который может быть открыт на устройстве, принимающем пакет.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016
Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

b707 пишет:

Вспыхает небо, pазбyжая ветеp...

Не, ну надо такую память иметь! Чтоб вот такое прям от зубов! Я в школе, помнится, "У Лукоморья" три дня учил, а потом на уроке "три" и получил :)

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

Кстати, о памяти - оффтоп такой.

В 90-х работал я в одной фирме, которая ваяла АРМы для врачей. Ребята были очень грамотными. Писались программы на ассемблере. Так вот, они, мерзавцы, по телефону обсуждали тексты программ, не имея их перед глазами. Причем, указывали на память адреса, номера строк и обсуждали джампы (типа какой из них зациклит прогу, а какой - нет). Я в этом ни бельмеса, конечно, но впечатление было то еще! Сейчас профи тоже так умеют?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

b707 пишет:

Вспыхает небо, pазбyжая ветеp,

«Под вётлами валялось много крав,
Лежали они ноги кверху вздрав»

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Sonologist пишет:

Кстати, о памяти - оффтоп такой.

В 90-х работал я в одной фирме, которая ваяла АРМы для врачей. Ребята были очень грамотными. Писались программы на ассемблере. Так вот, они, мерзавцы, по телефону обсуждали тексты программ, не имея их перед глазами. Причем, указывали на память адреса, номера строк и обсуждали джампы (типа какой из них зациклит прогу, а какой - нет). Я в этом ни бельмеса, конечно, но впечатление было то еще! Сейчас профи тоже так умеют?

нет, объектное программирование убило необходимость помнить всю адресацию, правда Евгений Петрович тут как-то обмолвился, что не хватало памяти всего один байт и он придумывал, где его хранить...но это исключение и, это Евгений Петрович )))

-NMi-
Offline
Зарегистрирован: 20.08.2018

ТС -> жги_ыщщО:))

alexduino
Offline
Зарегистрирован: 22.08.2022

ЖГУ

ua6em пишет:

Eddystone может куда больше, чем его конкурент: он транслирует до 4-х пакетов даных – Eddystone-UID (20 байт), Eddystone-URL (до 20 байт), Eddystone-TLM (14 или 18 байт) и, с 14 марта 2016, Eddystone-EID (10 байт). Eddysone-UID – это аналог пакета, используемого в iBeacon, в то время как Eddystone-URL передает какой-либо URL адрес, который может быть открыт на устройстве, принимающем пакет.

Благодарю за ликбез, но если я не ошибаюсь, то речь шла не о том ЧТО, а о том КАК...

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

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

К вам обратились как к специалистам по конкретному вопросу, а вы тут развели базар, прямо как бабки.

Если помочь ничем не можете, то имейте элементарное уважение и не тратьте время на бессмысленный базар.

LOL

 

rkit
Offline
Зарегистрирован: 23.11.2016

alexduino пишет:

К вам обратились как к специалистам по конкретному вопросу

Где ты увидел тут специалистов по подтиранию соплей ленивым халявщикам?

b707
Offline
Зарегистрирован: 26.05.2017

alexduino пишет:

Если помочь ничем не можете, то имейте элементарное уважение и не тратьте время на бессмысленный базар.

для тебя он бессмысленный, потому что тебе не помогает. А нам нравится.

И кто сказал. что поэзия менее ценна, чем твои тупые железки? :)

Ты радуйся, что тебе хоть кто-то отвечает по существу. Это редкость.

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

alexduino пишет:

Благодарю за ликбез, но если я не ошибаюсь, то речь шла не о том ЧТО, а о том КАК...

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

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

К вам обратились как к специалистам по конкретному вопросу, а вы тут развели базар, прямо как бабки.

Если помочь ничем не можете, то имейте элементарное уважение и не тратьте время на бессмысленный базар.

LOL

Здесь никто никому ничего не должен. И потом, новичку следует начинать с этой темы. Особенно с первого пункта правил

Цитата:
1. На форуме действует принцип "Со своим уставом в чужой монастырь не суйся". Не следует указывать старожилам, для чего нужен форум, и что на нем следует делать.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Ссылку на гитхаб тебе дали, прямо гугловский, а примеры лежат в папки примеров, для камня ESP32 - точно!!!!
 

alexduino
Offline
Зарегистрирован: 22.08.2022

v258 пишет:

alexduino пишет:

Благодарю за ликбез, но если я не ошибаюсь, то речь шла не о том ЧТО, а о том КАК...

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

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

К вам обратились как к специалистам по конкретному вопросу, а вы тут развели базар, прямо как бабки.

Если помочь ничем не можете, то имейте элементарное уважение и не тратьте время на бессмысленный базар.

LOL

Здесь никто никому ничего не должен. И потом, новичку следует начинать с этой темы. Особенно с первого пункта правил

Цитата:
1. На форуме действует принцип "Со своим уставом в чужой монастырь не суйся". Не следует указывать старожилам, для чего нужен форум, и что на нем следует делать.

Где я указываю форумчанам что им делать или не делать, а...?

Если у вас на форуме нельзя задавать "какие-то неправильные вопросы" или высказывать не удобную вам точку зрения - так и напишите об этом в ваших правилах.

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

И на правописание указали и стихи почитали и совершенно бессмысленные и ошибочные комменты дали, например этот:

ua6em пишет:

Ссылку на гитхаб тебе дали, прямо гугловский, а примеры лежат в папки примеров, для камня ESP32 - точно!!!!

 

Дорогой ua6em, эти ссылки мне никто не давал, а выложил их я сам.

Печальное мнение сложилось о вашем сообществе(

Много пыли и ни одного мало-мальски дельного совета.

С кодом помогли разобраться на другом форуме за пару часов.

Теперь все работает и в этом вашей заслуги нет, а скорее наоборот.

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

LOL

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Мошт, тебе пойти туда, не знаю куда?  Там помогут

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

alexduino пишет:

Где я указываю форумчанам что им делать или не делать, а...?

Бревно в глазу развидеть мешает?

alexduino пишет:
Вообще-то странно видеть на техническом форуме сплошных философов разглогольствующих да стихи читающих.

 

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

К вам обратились как к специалистам по конкретному вопросу, а вы тут развели базар, прямо как бабки.

Если помочь ничем не можете, то имейте элементарное уважение и не тратьте время на бессмысленный базар.

Да и прямо здесь же

alexduino пишет:

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

Ну и классика жанра

alexduino пишет:

С кодом помогли разобраться на другом форуме за пару часов.

Теперь все работает и в этом вашей заслуги нет, а скорее наоборот.

Гуд бай, парень )))))

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

alexduino пишет:

Дорогой ua6em, эти ссылки мне никто не давал, а выложил их я сам.


 

в #14 прямая ссылка как  набрать URL... в примерах IDE скетч!
 

/* Copyright (c) 2018 pcbreflux. All Rights Reserved.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, version 3.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
 */
 
/*
   Create a BLE server that will send periodic eddystone frames.
   The design of creating the BLE server is:
   1. Create a BLE Server
   2. Create advertising data
   3. Start advertising.
   4. wait
   5. Stop advertising.
   6. deep sleep
   
*/
#include "sys/time.h"

#include "BLEDevice.h"
#include "BLEServer.h"
#include "BLEUtils.h"
#include "esp_sleep.h"

#define GPIO_DEEP_SLEEP_DURATION     1   // sleep 4 seconds and then wake up
RTC_DATA_ATTR static time_t last;        // remember last boot in RTC Memory
RTC_DATA_ATTR static uint32_t bootcount; // remember number of boots in RTC Memory

#ifdef __cplusplus
extern "C" {
#endif

uint8_t temprature_sens_read();
//uint8_t g_phyFuns;

#ifdef __cplusplus
}
#endif

// See the following for generating UUIDs:
// https://www.uuidgenerator.net/
BLEAdvertising *pAdvertising;
struct timeval now;
  
void setBeacon() {
  char beacon_data[22];
  uint16_t beconUUID = 0xFEAA;
  uint16_t volt = 3300; // 3300mV = 3.3V
  uint16_t temp = (uint16_t)((float)23.00);
  uint32_t tmil = now.tv_sec*10;
  uint8_t temp_farenheit;
  float temp_celsius;
  
  temp_farenheit= temprature_sens_read();
  temp_celsius = ( temp_farenheit - 32 ) / 1.8;
  temp = (uint16_t)(temp_celsius);
  
  BLEAdvertisementData oAdvertisementData = BLEAdvertisementData();
  
  oAdvertisementData.setFlags(0x06); // GENERAL_DISC_MODE 0x02 | BR_EDR_NOT_SUPPORTED 0x04
  oAdvertisementData.setCompleteServices(BLEUUID(beconUUID));

    beacon_data[0] = 0x10;  // Eddystone Frame Type (Eddystone-URL)
    beacon_data[1] = 0x20;  // Beacons TX power at 0m
    beacon_data[2] = 0x03;  // URL Scheme 'https://'
    beacon_data[3] = 'g';  // URL add  1
    beacon_data[4] = 'o';  // URL add  2
    beacon_data[5] = 'o';  // URL add  3
    beacon_data[6] = '.';  // URL add  4
    beacon_data[7] = 'g';  // URL add  5
    beacon_data[8] = 'l';  // URL add  6
    beacon_data[9] = '/';  // URL add  7
    beacon_data[10] = '2';  // URL add  8
    beacon_data[11] = 'y';  // URL add  9
    beacon_data[12] = 'C';  // URL add 10
    beacon_data[13] = '6';  // URL add 11
    beacon_data[14] = 'K';  // URL add 12
    beacon_data[15] = 'X';  // URL add 13
  
  oAdvertisementData.setServiceData(BLEUUID(beconUUID), std::string(beacon_data, 16));
  
  pAdvertising->setScanResponseData(oAdvertisementData);

}

void setup() {

    
  Serial.begin(115200);
  gettimeofday(&now, NULL);

  Serial.printf("start ESP32 %d\n",bootcount++);

  Serial.printf("deep sleep (%lds since last reset, %lds since last boot)\n",now.tv_sec,now.tv_sec-last);

  last = now.tv_sec;
  
  // Create the BLE Device
  BLEDevice::init("ESP32");

  // Create the BLE Server
  BLEServer *pServer = BLEDevice::createServer();

  pAdvertising = pServer->getAdvertising();
  
  setBeacon();
   // Start advertising
  pAdvertising->start();
  Serial.println("Advertizing started...");
  delay(100);
  pAdvertising->stop();
  Serial.printf("enter deep sleep\n");
  esp_deep_sleep(1000000LL * GPIO_DEEP_SLEEP_DURATION);
  Serial.printf("in deep sleep\n");
}

void loop() {
}

 

ЗЫ извиняюсь перед сообществом, что не свернул скетч, других вариантов открыть ТС глаза - не вижу

PPS а чтобы не слыть балаболом покажи скетч

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

v258 пишет:

С кодом помогли разобраться на другом форуме за пару часов.

Теперь все работает и в этом вашей заслуги нет, а скорее наоборот.

Напиши, что за форум (желательно ссылку).

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

BOOM пишет:

v258 пишет:

С кодом помогли разобраться на другом форуме за пару часов.

Теперь все работает и в этом вашей заслуги нет, а скорее наоборот.

Напиши, что за форум (желательно ссылку).

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

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

alexduino пишет:
С кодом помогли разобраться на другом форуме за пару часов.
Т.е. исходник уже модефицирован? Ну, и Слава Богу!

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

alexduino пишет:
С кодом помогли разобраться на другом форуме за пару часов.
Т.е. исходник уже модефицирован? Ну, и Слава Богу!


Модест Петрович веники не вяжет, как некоторые...

inspiritus
Offline
Зарегистрирован: 17.12.2012

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

b707 вот порадовал однако.

Green
Offline
Зарегистрирован: 01.10.2015

inspiritus, вы какой то странный... Вроде как в дискуссиях не встряёте, однако с претензиями! Что  это было?