Arduino Mega Server
Модератор: Alex
-
- Сообщения: 81
- Зарегистрирован: Пт окт 02, 2015 7:47 pm
- Благодарил (а): 7 раз
- Поблагодарили: 4 раза
Re: Arduino Mega Server
ролик посмотрю чуть позже...по-поводу gzip. сжимает колоссально.у меня с 10кб скрипта и стиля сделал по меньше чем 2кб...но у меня прям слету не заработало,еще разбираюсь..что делал:1.файлы архивировал,расширение gz удалял(идея не моя,вычитал где-то)браузеру все равно с каким расширением подтягивать файл,он смотрит содержимое,главное чтобы в заголовке было указано,что файл архивирован...2.собственно в заголовках на отдачу скриптов и стилей добавил строчку,что файл наш архивирован...
в итоге...браузер файлы скачивает(смотрю по Dev tool),видит что они архивированы,но не подключает их=(может сегодня буду вечером дальше разбираться...может ну его этот совет и все таки нужно оставлять расширение gz у файлов..нужно будет пару строк в скетче добавить,чтобы отдавал файлы с этим расширением...пока так...
в итоге...браузер файлы скачивает(смотрю по Dev tool),видит что они архивированы,но не подключает их=(может сегодня буду вечером дальше разбираться...может ну его этот совет и все таки нужно оставлять расширение gz у файлов..нужно будет пару строк в скетче добавить,чтобы отдавал файлы с этим расширением...пока так...
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Arduino Mega Server
Так это... А вы сервер научили отдавать файлы с таким расширением? Сами по себе они отдаваться не будут.
-
- Сообщения: 81
- Зарегистрирован: Пт окт 02, 2015 7:47 pm
- Благодарил (а): 7 раз
- Поблагодарили: 4 раза
Re: Arduino Mega Server
ну я ж и говорю,что тогда нужно дописать пару строк...а так я подсовывал ему все те же style.css и script.js но по факту они были архивированы...не прокатило...в консоли не пишет ни ошибок ничего,но по факту ничего не работает,ни стили ни скрипты не подключились...
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
-
- Сообщения: 81
- Зарегистрирован: Пт окт 02, 2015 7:47 pm
- Благодарил (а): 7 раз
- Поблагодарили: 4 раза
Re: Arduino Mega Server
до сих пор не поборол!!=0
браузер скачивает подсунутые архивы,но не распаковывывает их...на простых сайтах все работает и отображается...устал искать уже инфу,почему не работает...везде сводится к одному и тому же,что при статическом gzip в заголовке с отсылаемым файлом должна лишь быть строчка Content-Entype: gzip...все...у меня по факту браузер принимает файл,пишет принятый размер,а вот размер разархивированного указывает ноль...вот и мучаюсь...
еще очень не правильно,что у нас после каждого заголовка закрывается соединение(Connection: close)...нужно выставлять в keep-alive, а close передавать с последним передаваемым документом(алгоритм нужно продумать)либо есть еще одна строчка в заголовок,на память не помню,которая указывает через сколько времени закрыть соединение если нет активности...если вы посмотрите на тайминги загрузки странички,вы ужаснетесь,сколько у нас тратится времени на поднятие соединения и FTB(попросту:ожидание начала передачи файла)для каждого подтягиваемого файла и это все для вывода одной лишь странички....FTB обычно даже больше чем загрузка самого контента...
я дописал,чтобы сервер отдавал файлы с расширением gz,но это не дало результата..так что можно не заморачиваться и скармливать браузеру все те же .js и .css только в реальности которые будут архивами,так раньше целые сайты строили,так что проблема не в этом...
а gzip нужно добивать,ибо прирост скорости просто самолет))и keep-alive впридачу...
браузер скачивает подсунутые архивы,но не распаковывывает их...на простых сайтах все работает и отображается...устал искать уже инфу,почему не работает...везде сводится к одному и тому же,что при статическом gzip в заголовке с отсылаемым файлом должна лишь быть строчка Content-Entype: gzip...все...у меня по факту браузер принимает файл,пишет принятый размер,а вот размер разархивированного указывает ноль...вот и мучаюсь...
еще очень не правильно,что у нас после каждого заголовка закрывается соединение(Connection: close)...нужно выставлять в keep-alive, а close передавать с последним передаваемым документом(алгоритм нужно продумать)либо есть еще одна строчка в заголовок,на память не помню,которая указывает через сколько времени закрыть соединение если нет активности...если вы посмотрите на тайминги загрузки странички,вы ужаснетесь,сколько у нас тратится времени на поднятие соединения и FTB(попросту:ожидание начала передачи файла)для каждого подтягиваемого файла и это все для вывода одной лишь странички....FTB обычно даже больше чем загрузка самого контента...
я дописал,чтобы сервер отдавал файлы с расширением gz,но это не дало результата..так что можно не заморачиваться и скармливать браузеру все те же .js и .css только в реальности которые будут архивами,так раньше целые сайты строили,так что проблема не в этом...
а gzip нужно добивать,ибо прирост скорости просто самолет))и keep-alive впридачу...
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Arduino Mega Server
По поводу закрытия соединений. Нужно экспериментировать, не приведёт ли НЕзакрытие к тому, что запросы не будут получать сокеты?
По поводу gzip. Из ваших слов следует, что вы всё сделали — браузер сам должен разбираться с gzip, но почему-то не разбирается. Тут желательно услышать мнение того, кто понимает в этом вопросе.
По поводу gzip. Из ваших слов следует, что вы всё сделали — браузер сам должен разбираться с gzip, но почему-то не разбирается. Тут желательно услышать мнение того, кто понимает в этом вопросе.
-
- Сообщения: 81
- Зарегистрирован: Пт окт 02, 2015 7:47 pm
- Благодарил (а): 7 раз
- Поблагодарили: 4 раза
Re: Arduino Mega Server
да,вы все верно поняли...технология очень проста и самостоятельна,поэтому я уже ума не приложу чем отличается мой файл gzip,от тех которые качаются с обычных сайтов,заголовки все теже...с соединением все тоже не сложно,я банально убрал все close и поставил keep-alive,все работает...только нужно дописать то время автоматического закрытия соединения о котором я говорил... если вбить в поиске connection: keep-alive получите всю инфу,ибо я пока на работе,сам только вечером гляну снова..
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Arduino Mega Server
На сайте открылся раздел «Новости проекта»
http://hi-lab.ru/arduino-mega-server/details
В этом разделе будут публиковаться официальные новости проекта. Ставим в закладки и заходим проверять новости. Или подписываемся на рассылку новостей.
http://hi-lab.ru/arduino-mega-server/details
В этом разделе будут публиковаться официальные новости проекта. Ставим в закладки и заходим проверять новости. Или подписываемся на рассылку новостей.
-
- Сообщения: 88
- Зарегистрирован: Сб окт 24, 2015 9:56 pm
- Благодарил (а): 11 раз
- Поблагодарили: 8 раз
Re: Arduino Mega Server
После обновления IDE до версии 1.6.7 возникли проблемы с компиляцией АМС, в частности с библиотекой Time.h ( кто-то тут писал уже про это..)
Вылечил обновлением библиотекиhttps://github.com/PaulStoffregen/Time + добавлением в arduino_mega_server_due.ino .
Но возникла другая проблема - после открытия arduino_mega_server_due.ino первая компиляция проходит ок, а все последующие дают ошибку
Был бы очень признателен, если бы кто-нибудь попробовал у себя версию 1.6.7 и отписался.
Вылечил обновлением библиотекиhttps://github.com/PaulStoffregen/Time + добавлением
Код: Выделить всё
#include <TimeLib.h>
Но возникла другая проблема - после открытия arduino_mega_server_due.ino первая компиляция проходит ок, а все последующие дают ошибку
Код: Выделить всё
GetFileAttributesEx W:\ams\libraries\Time\DateStrings.cpp W:\ams\libraries\Time\Time.h: The filename, directory name, or volume label syntax is incorrect.
-
- Сообщения: 88
- Зарегистрирован: Сб окт 24, 2015 9:56 pm
- Благодарил (а): 11 раз
- Поблагодарили: 8 раз
Re: Arduino Mega Server
Так Господа,
Разобрался с датчиками температуры - теперь температуры выводит в жёсткой зависимости от порядкового номера сирийника и порядкового номера названия датчика в массиве. Если датчик сломался - то он просто игнорируется. Поэтому избавился от системы здоровья, за ненадобностью. Теперь осталось выкинуть библиотеку далласа и проверить всё на железе (тестил в протеусе)
Разобрался с датчиками температуры - теперь температуры выводит в жёсткой зависимости от порядкового номера сирийника и порядкового номера названия датчика в массиве. Если датчик сломался - то он просто игнорируется. Поэтому избавился от системы здоровья, за ненадобностью. Теперь осталось выкинуть библиотеку далласа и проверить всё на железе (тестил в протеусе)
Код: Выделить всё
/*
Modul Temperature
part of Arduino Mega Server project
*/
#ifdef TEMP_FEATURE
#include <DallasTemperature.h>
#include <OneWire.h>
#define ONE_WIRE_BUS 2
byte const MAX_TEMP_SENSORS = 7;
byte const MAX_ID_DIGITS = 7;
//byte const FULL_HEALTH = 100;
//byte const ZERO_HEALTH = 0;
//byte tempSensorHealth[MAX_TEMP_SENSORS];
//byte tempModulHealth;
char objSens[MAX_TEMP_SENSORS][12] = {"tempSTR", "tempHOM", "tempWRM","sens4","sens5","sens6","sens7"};
// Sensors ID's
byte idTempDat[MAX_TEMP_SENSORS][MAX_ID_DIGITS] = {
{40, 50, 197, 184, 0, 0, 0}, // STR
{40, 52, 197, 184, 0, 0, 0},// SRV
{40, 48, 197, 184, 0, 0, 0}, // WRM
{40, 54, 197, 184, 0, 0, 0}, // 4
{40, 49, 197, 184, 0, 0, 0},// 5
{40, 53, 197, 184, 0, 0, 0}, // 6
{40, 55, 197, 184, 0, 0, 0}, // 7
};
float current_temp[MAX_TEMP_SENSORS];
int temp_[MAX_TEMP_SENSORS];
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress tempSensor[MAX_TEMP_SENSORS];
void tempInit() {
initStart("Temperature");
sensors.begin();
timeStamp();
Serialprint(" Parasite power ");
if (sensors.isParasitePowerMode()) {Serialprint("ON\r");}
else {Serialprint("OFF\r");}
oneWire.reset_search();
// locate devices on the bus
timeStamp();
Serialprint(" Found ");
Serial.print(sensors.getDeviceCount());
Serialprint(" devices\r");
for (byte i = 0; i < MAX_TEMP_SENSORS; i++) {
sensors.getAddress(tempSensor[i], i);
}
oneWire.reset_search();
showSensorsId();
modulTemp = MODUL_ENABLE;
initDone();
}
void showSensorsId() {
for (byte n = 0; n < MAX_TEMP_SENSORS; n++) {
timeStamp();
Serialprint("#");
Serial.print(n);
Serialprint(":");
for (byte i = 0; i < MAX_ID_DIGITS; i++) {
Serialprint(" ");
Serial.print(tempSensor[n][i]);
}
Serialprint(" ");
//Serial.println(objSens[n]);
}
}
void tempWorks() {
sensors.requestTemperatures();
getTemperature(0); // STR
getTemperature(1); // HOM
getTemperature(2); // WRM
getTemperature(3); // 4
getTemperature(4); // 5
getTemperature(5); // 6
getTemperature(6); // 7
getTemperature(7); // 8
}
void getTemperature(byte n) {
for (byte i = 0; i < MAX_TEMP_SENSORS; i++) {
if (!memcmp(tempSensor[i], idTempDat[n], MAX_TEMP_SENSORS)){
current_temp[i] = sensors.getTempC(tempSensor[i]);
timeStamp();
Serial.print(objSens[n]);
Serialprint(": ");
Serial.println(current_temp[i]);
temp_[i] = (current_temp[i] - (int)current_temp[i]) * 100;
if ((current_temp[i] > -1) && (current_temp[i] < 0)) {
#ifdef MAJORDOMO_FEATURE
sendRequestMinusM(objSens[n], "-", (int)current_temp[i], abs(temp_[i]));
#endif
} else {
#ifdef MAJORDOMO_FEATURE
sendRequestMinusM(objSens[n], "", (int)current_temp[i], abs(temp_[i]));
#endif
}
}
else {}
}
} // getTemperature( )
#endif // TEMP_FEATURE
- Рейтинг: 2.33%