Size: a a a

ESP8266 & ESP32 [RU]

2019 November 27

AF

Alexey D. Filimonov 🎠 in ESP8266 & ESP32 [RU]
Andy Korg
а продолжение?
Продолжение чего? Там завершенная статья о чтении eFuse через игру с питанием и 2 проводков
источник

AF

Alexey D. Filimonov 🎠 in ESP8266 & ESP32 [RU]
На "хакере" есть перевод платный
источник

AK

Andy Korg in ESP8266 & ESP32 [RU]
Alexey D. Filimonov 🎠
Продолжение чего? Там завершенная статья о чтении eFuse через игру с питанием и 2 проводков
я не подписчик хакера
источник

AF

Alexey D. Filimonov 🎠 in ESP8266 & ESP32 [RU]
Andy Korg
я не подписчик хакера
Я тоже
источник

AK

Andy Korg in ESP8266 & ESP32 [RU]
жаль :)
источник

ІБ

Ігор Братух in ESP8266 & ESP32 [RU]
// Config.h
struct Config {
 struct Wifi {
   const String ssid = "RAWA";
   const String password = "WVAWRA";
 } wifi;
} config;

// WifiSta.h
#include "Config.h"
// ошибка линкования

// main.cpp
#include "Config.h"
#include "WifiSta.h"

Всем привет, пишу на esp32, но в данном вопросе не важно.
Создал файл конфига в котором структура. Конфиг ествественно нужен во многих модулях, но я не могу его подключить из-за ошибка линкования.
Как такое правильно делается? Или передавать конфиг при инициализации класа, например:
// main.cpp
#include "Config.h"
#include "WifiSta.h"

WifiSta wifi_sta(&config);


P.S Использую PlatformIo Arduino фреймворк
источник

ВЯ

Василий Ярошенко in ESP8266 & ESP32 [RU]
Ігор Братух
// Config.h
struct Config {
 struct Wifi {
   const String ssid = "RAWA";
   const String password = "WVAWRA";
 } wifi;
} config;

// WifiSta.h
#include "Config.h"
// ошибка линкования

// main.cpp
#include "Config.h"
#include "WifiSta.h"

Всем привет, пишу на esp32, но в данном вопросе не важно.
Создал файл конфига в котором структура. Конфиг ествественно нужен во многих модулях, но я не могу его подключить из-за ошибка линкования.
Как такое правильно делается? Или передавать конфиг при инициализации класа, например:
// main.cpp
#include "Config.h"
#include "WifiSta.h"

WifiSta wifi_sta(&config);


P.S Использую PlatformIo Arduino фреймворк
может линковщик запутался - кто такой Config - структура или файл???
попробуй разные имена дать
источник

ІБ

Ігор Братух in ESP8266 & ESP32 [RU]
Василий Ярошенко
может линковщик запутался - кто такой Config - структура или файл???
попробуй разные имена дать
просто структура в .h файле
источник

ВЯ

Василий Ярошенко in ESP8266 & ESP32 [RU]
Ігор Братух
просто структура в .h файле
еще раз для тех кто на бронепоезде )))
имя одно и тоже попробуй разные сделать
источник

ІБ

Ігор Братух in ESP8266 & ESP32 [RU]
Василий Ярошенко
еще раз для тех кто на бронепоезде )))
имя одно и тоже попробуй разные сделать
окей, спасибо, попробую
а как где Вы, например, храните состояние программы, в отдельных переменных main.cpp или в схожей структуре?
источник

ВЯ

Василий Ярошенко in ESP8266 & ESP32 [RU]
Ігор Братух
окей, спасибо, попробую
а как где Вы, например, храните состояние программы, в отдельных переменных main.cpp или в схожей структуре?
структура - как средство уполядочивания и как некая сущность, а потом эта структура храниться во флеш, можно сказать что да храню в структуре
источник

ІБ

Ігор Братух in ESP8266 & ESP32 [RU]
Василий Ярошенко
структура - как средство уполядочивания и как некая сущность, а потом эта структура храниться во флеш, можно сказать что да храню в структуре
а во флэш как пишите, eeprom, nvs? Вы прям саму структуру ложите в флэш или переганяете в json, например?
источник

ВЯ

Василий Ярошенко in ESP8266 & ESP32 [RU]
Ігор Братух
а во флэш как пишите, eeprom, nvs? Вы прям саму структуру ложите в флэш или переганяете в json, например?
а зачем там json??
- так структуру и записываю во флеш, при включении - считываю из флеш структуру
источник

ІБ

Ігор Братух in ESP8266 & ESP32 [RU]
Василий Ярошенко
а зачем там json??
- так структуру и записываю во флеш, при включении - считываю из флеш структуру
а как пишите, какой API, можно пример?
источник

ВЯ

Василий Ярошенко in ESP8266 & ESP32 [RU]
Ігор Братух
а как пишите, какой API, можно пример?
смотрите библиотеку EEPROM
и функции EEPROM.write(address, value);
EEPROM.read(address);
источник

ІБ

Ігор Братух in ESP8266 & ESP32 [RU]
Василий Ярошенко
смотрите библиотеку EEPROM
и функции EEPROM.write(address, value);
EEPROM.read(address);
смотрел, записывал, но он не сохраняет левые типы как я понял, String хранить не может, только char,  вложеные структуры тоже, я правильно понимаю?
я же не смогу засунуть туда мою структуру config со вложеными структурами и "левыми" типами (например Arduino String, IpAddress...) в EPROM.write(address, value);
источник

ВЯ

Василий Ярошенко in ESP8266 & ESP32 [RU]
Ігор Братух
смотрел, записывал, но он не сохраняет левые типы как я понял, String хранить не может, только char,  вложеные структуры тоже, я правильно понимаю?
я же не смогу засунуть туда мою структуру config со вложеными структурами и "левыми" типами (например Arduino String, IpAddress...) в EPROM.write(address, value);
можете засунуть что угодно -через указатель
источник

ІБ

Ігор Братух in ESP8266 & ESP32 [RU]
Василий Ярошенко
можете засунуть что угодно -через указатель
другое дело, спасибо, попроубую!
источник

SS

Semyon Sv in ESP8266 & ESP32 [RU]
Ігор Братух
смотрел, записывал, но он не сохраняет левые типы как я понял, String хранить не может, только char,  вложеные структуры тоже, я правильно понимаю?
я же не смогу засунуть туда мою структуру config со вложеными структурами и "левыми" типами (например Arduino String, IpAddress...) в EPROM.write(address, value);
нормально вложенные структуры запихиваются, там вроде делается  sizeof() и побайтово всё сохраняется /  считывается через  EPROM.put() / EPROM.get(),  при этом, если байт совпадает - он не перезаписывается.
источник

AF

Alexey D. Filimonov 🎠 in ESP8266 & ESP32 [RU]
Semyon Sv
нормально вложенные структуры запихиваются, там вроде делается  sizeof() и побайтово всё сохраняется /  считывается через  EPROM.put() / EPROM.get(),  при этом, если байт совпадает - он не перезаписывается.
источник