
Square
25.05.2018
21:38:04
Да там легко. 40 минут есть? Посмотри лекцию. https://m.youtube.com/watch?v=_-3syPxgwqs

Roman
25.05.2018
21:55:28

redl1ne
26.05.2018
03:55:08
Подскажите пжлст. Какое приложение (вернее какой тип по) имеет право запускать новый процесс (удаленный) остановливать его писать в него что-то, а потом менять eip и снова запускать и при этом не получать люлей от антивируса? Именно легальное по без злого умысла. Отладчик?

Google

Square
26.05.2018
05:34:41


Suren
26.05.2018
05:45:52
Привет!
Суть вопроса: как оптимизировать работу со строками на C++?
Ситуация: пишу на Arduino небольшой веб-сервер для ESP8266
Решил сделать красивую страничку конфигурации
Так как HTML разметка в виде строк кушала бы много места в оперативной памяти, сделал через дефайны (они же во время компиляции просто подставляются, верно?)
Создал файл хэдэр с дефайнами строк https://github.com/surik00/ESPHelper/commit/71e0fd2a755db0983a2a7bb9a129761054afbcae
И дописал метод, который складывает это всё и отдаёт пользователю
https://github.com/surik00/ESPHelper/blob/e40765c5af5dba209bce92166cf824bb3392989b/src/ESPHelperWebConfig.cpp#L83-L116
Но есть проблема, страница иногда просто не открывается (следом скину скринкаст)
В серийный порт метод configPageHTML выводит строку (всю страницу) корректно и вроде как быстро
А вот с вебом что-то не то
Зачастую после ребута платы страница открывается нормально, а потом снова вот такое
Поэтому два предположения-вопроса:
1. Что-то не так с генерацией строки (например, долго) - как оптимизировать? Я знаю, что работа со строками тяжелая задача. Возможно, делаю что-то не так, а можно лучше и быстрее? (String это такой тип строк в Ардуино: https://www.arduino.cc/reference/en/language/variables/data-types/stringobject/)
2. Отправляю не так. Например, ответ приходит неправильно. Но такой же ответ, но с маленькой строчкой (совсем короткая страничка) приходит окей каждый раз (тоже на скринкасте сейчас будет)


Spoonson
26.05.2018
05:49:11
дефайны подставляются во время компиляции в обычные сишные строки, ты с таким же успехом можешь просто const char* const использовать вместо дефайнов

Suren
26.05.2018
05:52:06

Spoonson
26.05.2018
05:54:26
что-то я не понял про висение в оперативе. Они и так будут висеть в оперативе (так как они будут вкомпилены в бинарь, а бинарь висит в оперативе)

Suren
26.05.2018
05:55:00
Я предполагал, что если это переменная, то она занимает какое-то место в оперативной памяти

Spoonson
26.05.2018
05:56:32
очевидное место для оптимизации - все строки у тебя складываются через много +, возможно будет выгоднее через += по одной строке добавлять к возвращаемому значению.

Suren
26.05.2018
06:03:50

Ruslan
26.05.2018
06:05:06

Suren
26.05.2018
06:06:04

Google

Spoonson
26.05.2018
06:06:30

Ruslan
26.05.2018
06:06:42
если забить все твои строки как константы типа String, то можно попробовать их отправлять без сборки в общую строку - секономить на копировании. но это вроде сомнительная оптимизация

Aidar
26.05.2018
06:07:51
Очень неочевидно
Если строк не 10 конечно

Ruslan
26.05.2018
06:08:52
хм, ну может при оптимизациях компилятор все уладит в сборку в одну строку
но я не уверен в этом
и там ссылка на код повыше была

Aidar
26.05.2018
06:09:15
Ваще для такого есть стримы вроде

Suren
26.05.2018
06:09:39


Ruslan
26.05.2018
06:10:45
ну сокет вроде ручками закрываем


Anatoly
26.05.2018
06:10:49
Привет!
Суть вопроса: как оптимизировать работу со строками на C++?
Ситуация: пишу на Arduino небольшой веб-сервер для ESP8266
Решил сделать красивую страничку конфигурации
Так как HTML разметка в виде строк кушала бы много места в оперативной памяти, сделал через дефайны (они же во время компиляции просто подставляются, верно?)
Создал файл хэдэр с дефайнами строк https://github.com/surik00/ESPHelper/commit/71e0fd2a755db0983a2a7bb9a129761054afbcae
И дописал метод, который складывает это всё и отдаёт пользователю
https://github.com/surik00/ESPHelper/blob/e40765c5af5dba209bce92166cf824bb3392989b/src/ESPHelperWebConfig.cpp#L83-L116
Но есть проблема, страница иногда просто не открывается (следом скину скринкаст)
В серийный порт метод configPageHTML выводит строку (всю страницу) корректно и вроде как быстро
А вот с вебом что-то не то
Зачастую после ребута платы страница открывается нормально, а потом снова вот такое
Поэтому два предположения-вопроса:
1. Что-то не так с генерацией строки (например, долго) - как оптимизировать? Я знаю, что работа со строками тяжелая задача. Возможно, делаю что-то не так, а можно лучше и быстрее? (String это такой тип строк в Ардуино: https://www.arduino.cc/reference/en/language/variables/data-types/stringobject/)
2. Отправляю не так. Например, ответ приходит неправильно. Но такой же ответ, но с маленькой строчкой (совсем короткая страничка) приходит окей каждый раз (тоже на скринкасте сейчас будет)
Посмотри в сторону https://www.webtoolkit.eu/wt


Suren
26.05.2018
06:11:20

Spoonson
26.05.2018
06:12:04

Aidar
26.05.2018
06:12:23
Что подскажите? Как написать стрим для вывода на esp?
И хранить просто в литерале

Suren
26.05.2018
06:13:43

Google

Aidar
26.05.2018
06:14:56

Anatoly
26.05.2018
06:27:19
А может в @supapro?

Valentin
26.05.2018
06:31:17
В sstream попробовать собрать строку, например
Сейчас с чем то похожим буду возиться

Suren
26.05.2018
06:34:06
сделал отправку чанками, убрал полностью конкатенацию, пока открывается окей, подожду часик аптайма и перепроверю

Плюшка
26.05.2018
06:34:53

Spoonson
26.05.2018
06:39:13

Плюшка
26.05.2018
06:39:30
ну хз ,есть ли такое на esp


Xessao
26.05.2018
07:17:33
Привет!
Суть вопроса: как оптимизировать работу со строками на C++?
Ситуация: пишу на Arduino небольшой веб-сервер для ESP8266
Решил сделать красивую страничку конфигурации
Так как HTML разметка в виде строк кушала бы много места в оперативной памяти, сделал через дефайны (они же во время компиляции просто подставляются, верно?)
Создал файл хэдэр с дефайнами строк https://github.com/surik00/ESPHelper/commit/71e0fd2a755db0983a2a7bb9a129761054afbcae
И дописал метод, который складывает это всё и отдаёт пользователю
https://github.com/surik00/ESPHelper/blob/e40765c5af5dba209bce92166cf824bb3392989b/src/ESPHelperWebConfig.cpp#L83-L116
Но есть проблема, страница иногда просто не открывается (следом скину скринкаст)
В серийный порт метод configPageHTML выводит строку (всю страницу) корректно и вроде как быстро
А вот с вебом что-то не то
Зачастую после ребута платы страница открывается нормально, а потом снова вот такое
Поэтому два предположения-вопроса:
1. Что-то не так с генерацией строки (например, долго) - как оптимизировать? Я знаю, что работа со строками тяжелая задача. Возможно, делаю что-то не так, а можно лучше и быстрее? (String это такой тип строк в Ардуино: https://www.arduino.cc/reference/en/language/variables/data-types/stringobject/)
2. Отправляю не так. Например, ответ приходит неправильно. Но такой же ответ, но с маленькой строчкой (совсем короткая страничка) приходит окей каждый раз (тоже на скринкасте сейчас будет)
Ты можешь вывести сгенерированую страницу в сериал порт?


Suren
26.05.2018
07:27:44

Дед Пегас
26.05.2018
09:17:04
/warn

Group Butler [beta]
26.05.2018
09:17:04
Dubay has been warned (1/3)

Дед Пегас
26.05.2018
09:17:15
/warn

Group Butler [beta]
26.05.2018
09:17:15
Dubay has been warned (2/3)

Дед Пегас
26.05.2018
09:17:25
/warn

Group Butler [beta]
26.05.2018
09:17:25
/warn
Dubay kicked: reached the max number of warnings (3/3)

Alex
26.05.2018
09:21:17
/warn

Yaroslav
26.05.2018
09:47:23
Привет. Может кто чего подскажет по следующему вопросу:
Есть китайский контроллер для работы с led и к нему библиотека dll (отдельно набор базовых примеров).
Ничего особенно сложного, вникнув можно разобраться. Компилируется, работает.
Но вот сам led стоит в поле и управлять им можно только с raspberry pi. Отсюда и вопросы:
1. можно в visual studio как-то скомпилировать код под arm, для запуска через wine на малинке?
2. может есть хардкорный вариант вытянуть функции с dll-ки в родной среде малинки?
3. может есть другой вариант запуска без бубнов с танцами?

Igor
26.05.2018
10:39:12

Xessao
26.05.2018
10:42:13

Google

Дмитрий
26.05.2018
10:53:24
Qq
Может кто помочь с Qt ?

Xessao
26.05.2018
10:54:12

Дмитрий
26.05.2018
10:54:49
Спасибо

Yaroslav
26.05.2018
11:09:47

Matwey
26.05.2018
11:11:53

Xessao
26.05.2018
11:11:58

Matwey
26.05.2018
11:12:06
У тебя есть большой лед экран, проф-контроллер и нет денег на нормальный комп?
Ты что-то делаешь не так
Где-то тут ошибка

Aidar
26.05.2018
11:12:28

Yaroslav
26.05.2018
11:12:30
Тут не в деньгах дело. Этот екран натурально в поле стоит

Matwey
26.05.2018
11:12:36
И?

Aidar
26.05.2018
11:13:11
Нафиг тебе либа
Требуй протокол

Yaroslav
26.05.2018
11:13:37
Проще зашить малинку в корпус и с земли подать езернет и управлять етим всем, чем решение на х86 сооружать

Matwey
26.05.2018
11:15:02
http://www.5sgroup.ru/embedded_computers_lex.php
Вот тут возьми до $500 что-нибудь и сэкономь свое время. А главное что твою малину дождем в поле к хренам не зальет.

Aidar
26.05.2018
11:17:09
Ради винды?

Yaroslav
26.05.2018
11:17:16
Тут дело цвета фломастеров. Конечно я делать решение на такой коробке не буду.
Проще у китайцев протокол выбить и сделать нормально

Google

Aidar
26.05.2018
11:17:31

Xessao
26.05.2018
11:27:12

Yaroslav
26.05.2018
11:34:19
Ну вот с другим контроллером ребята в штатах снифили трафик и выделили чего надо стримить чтобы добиться последовательного вывода точек нужного цвета и яркости. А ведь тоже могли прикупить виндовс-коробок и не насиловать моцк

Igor
26.05.2018
13:49:26
а в линуксовых программах с обработкой сигналов наподобие
bool sigintGot = false;
int main() {
signal(SIGINT, [](int s) {
sigintGot = true;
});
while (!sigintGot) {
something();
}
return 0;
}
sigintGot не должен быть атомиком? или в таких случаях линукс как-то гарантирует, что все треды встанут на время выполнения обработчика?

Denis
26.05.2018
14:05:47

Aidar
26.05.2018
14:08:46
для остальных надо чекать

Roman
26.05.2018
14:14:05

Alex
26.05.2018
14:18:24