Так вот для чего пароли к веб-интерфесу моего роутера ежедневно, по несколько раз в день, перебираются. А я все думал, что они с доступом к вебке делать собираются, если получится.
Вам правильно сделали замечание, а вы упираетесь. Нужно сначала рассмотреть характеристики светодиода, определится с необходимым через него током (обычно 3-5мА вполне достаточно). Потом уже переходить к расчету токоограничивающего резистора и уже потом проконтролировать, не превышает ли он максимально допустимый через пин. Но никак не в обратной последовательности.
И по поводу «На практике доказано что расчет резистора верен». Это значит, что при включении сразу не сгорело?
Ну почему же. Например, зачастую питание контроллера подготавливается определенным образом (стабилизаторы, индуктивности). Чем меньше ток потребляется по этой цепи, тем проще ее сделать и лучше она получится (те же индуктивности характеризуются не только самой величиной индуктивности, но и максимальным током, при которой она еще работает как индуктивность). Земляные же цепи обычно такими ограничениями не обладают. Поэтому для большинства применений лучше использовать схему «катодом к линии порта ввода/вывода» и запитывать не от «контроллерного» питания.
Ну и если уж тренируете новичка, то с терминологией не путайтесь. Подтягивающими резисторами обычно называют такие, которые «подтягивают» какие то линии в/в к питанию или «земле» для формирования устойчивых состояний 1/0 и/или формирования нагрузки линий в/в. То что рассматривается в статье обычно называют токоограничивающим резистором.
Тема не раскрыта. Нет обоснования использования схемы подключения «анодом к микроконтроллеру» или наоборот (плюсы, минусы, особенности). И если уж считать точно, то кроме падения на светодиоде нужно еще учитывать падение на портах (VOL, VOH).
Я свою доработал, добавив дополнительное «шифрование» сигнала между контроллером брелка и передатчиком, а между приемником и блоком сигнализации делаю «как было». Шифрование мега-примитивнейшее, надеюсь только на уникальность. От более сложных вариантов остановил разбор пакета с эфира.
Думаю тут дело не в «контенте», а возможно в психологии. Когда сморишь «плоскую» картинку то воспринимаешь ее как она есть. Когда изображение становится объемным оно начинает восприниматься как «настоящее», к которому вроде как должны быть применимы принципы нашего зрения (сфокусировать зрение на каком-то объекте). А из-за того, что это не работает получается дискомфорт. После того как стал «просто смотреть», дискомфорт практически пропал.
Смотрю только дома, ЛЖ, пассивное 3Д. Есть в технологии еще один нюанс. В реале можно сфокусироваться на любом видимом объекте. При просмотре на телике «в фокусе» оказываются только те объекты, что задумано. Попытка «навести резкость» на фоновые объекты приводила к дискомфорту при первых просмотрах. Потом как-то отучил себя заниматься таким, стало смотреть на много приятнее.
Как правило, в 3Д гораздо красочнее и зрелищнее выглядят мультики. Наверное самые яркие эмоции остались после «Эпик».
Такие же операции делаются и при проверке файловой системы с контролем поверхности диска. При этом все происходит, имхо, гораздо правильнее на уровне самой файловой системы. Другое дело, что зачастую, из-за тормозов диска такого рода проверки производить затруднительно.
У меня когнитивный диссонанс от ваших таких высказываний :) С одной стороны, рассказываете вроде правильно все, с другой такое вот… Антенны ничего не усиливают, а только «распределяют» «сигнал». Выходная мощность всегда одинакова, с помощью антенны ее можно как-то распределить в пространстве. Это кстати еще один вариант увеличения SNR при работе с клиентами. Я не до конца ориентируюсь в вопросе, но имхо стандартом n предусмотрена возможность использования фазированной антенной решетки, когда ТД формирует сигнал на антеннах так, чтобы он складывался в точке, где находится конкретный клиент. Но опять таки в SOHO сегменте таких решений особо не наблюдается.
Практика тут не расходится с теорией. Есть среда передачи, где в один момент времени может работать ограниченное количество устройств. Даже 1-й и 11-й каналы пересекаются на каком-то уровне (а особенно это актуально, есть используется 40МГц). Из личного опыта лучше когда ТД находятся на одном канале и «слышат» друг друга, чем когда мешают друг другу интерференцией от соседних каналов.
Техническое решение тут одно. Поднимать мощность ТД и клиентов. Пока нет перегрузки выхода/входа это будет приводить к увеличение SNR и увеличению реальной скорости. Но для соседей сами понимаете это не решение :)
Начну с того, что когда увидел вашу статью мне очень понравилась железная реализация (и подход к разработке). Сам по работе занимаюсь разработкой подобного уровня систем, фирма у нас маленькая, поэтому сам себе и схемотехник, и конструктор, и программист с тестировщиком. Да еще и врожденный перфекционизм зашкаливает :) Поэтому всегда с интересом рассматриваю чужие проекты в надежде перенять интересные подходы к решению каких-то задач. Посмотрев же вашу программу, честно говоря, был разочарован (ожидал гораздо более «качественной» (может с моей точки зрения) реализации).
Например, «режут глаз» конструкции типа «buffer_ds[3]; // время DS1307N (секунды, минуты, часы) ». Программа получается совсем не
читаемой. Почему не применяете структуры? Что-то типа:
Потом еще, например, реализация событий от времени. Как-то у вас замудренно сделано. Не прикидывал, какая точность вам нужна, но например, если достаточно 10 мин, то можно даже обойтись 1-но байтными числами. Считать текущее количество «10-ти минут» с начала суток (максимум это 144). Если значение таймера не используется, ему присваивать 0xFF. Получается линейное представление времени для работы программы, можно сравнивать текущее значение с установленными таймерами и т.п. а для интерфейса уже делать преобразование этого времени в часы и минуты. Соответственно, если нужна большая точность считать количество минут или секунд или долей секунд с начала суток.
К вопросу «повышенных требований к проверке EEPROM» — в вашей реализации вы можете даже не узнать, что какие то данные там «не те». То что все работает, это не аргумент, вы же не пересчитывает минимальные обороту кулера при работе и можете даже никогда не узнать что ни не те, что вы когда-то программировали. Так же не заметил никакого контроля целостности данных через UART. У вас как бы вообще нигде ничего не контролируется, и пока не произойдет достаточно грубый сбой вы можете и не заметить, что на каком-то этапе произошло искажение данных, с которыми работает программа. Я бы сделал как-то так:
// делаем стрктуру с данными для работы
struct sWorkData
{
ulong k1; // коэффициент 1 для каллибровки PH-электрода
…
uchar cooler_start_pulse[4]; // отсчет интервалов времени для формирования стартовых импульсов кулеров
…
uint devSetFlags;
//uint crc16; — не участвует в стркуктуре для экономии ОЗУ но есть во флеш
};
// делаем объединение для возможности работы с блоком памяти как с массивом и структурированными данными
union
{
uchar byte[sizeof(sWorkData)];
sWorkData st;
} WorkDatablock;
// когда нужно, например, считать настройки, обращаемся к блоку памяти как к массиву, пример моего кода:
// читаем таблицу размещения настроек режимов всегда по адресу «0»
if (!GetMemBlock((ulong)WORK_MODE_TABLE_START_ADR, (uint)sizeof(sWorkData), WorkDatablock.byte))
{
// ошибка при чтении блока, аварийный выход
LCD_send(0x0E,'r',0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0,0);
return false;
}
// когда нужно работать со структурированными данными:
WorkDatablock.st.k1 = 1000;
…
if (WorkDatablock.st.cooler_start_pulse[0] > 0)…
Как с массивом с данными удобно работать при передаче через интерфейсы (сформировал массив, который включает CRC и при передаче уже можно контролировать целостность данных), при чтении/записи EEPROM (организуем цикл от 0 до (sizeof(sWorkData)) считая попутно CRC). А когда данные уже в памяти (и проверенны) — работаем со структурированными данными для облегчения читаемости программы.
Ну, это извечная проблема, на сколько нужно перебдеть :) Как я вижу, в вашей концепции работы с EEPROM просится накрыть всю область какой нибудь CRC16. Считать при записи и писать ее последней. При чтении проверять всю область, и если все ок, то уже читать данные в переменные (если нужно чтобы девайс заработал хотя бы на настройках «по умолчанию») и при этом функция чтения должна возвращать «ок/не ок» в зависимости от этого. А по результату «ок/не ок» уже ветвить программу и выводить предупреждение о порче данных. Как то так.
Хотелось бы обсудить контроль целостности данных в EEPROM. На сколько я рассмотрел, «флажок», что данные записались устанавливается самым первым и нет никакой проверки, что содержимое EEPROM соответствует тому, что туда хотели записать. Считаете это лишним?
Во многих браузерах это позволяет не попадать набранному адресу во всякие места ускоряющие доступ к нему (в выпадающий список последних адресов, в панели быстрого доступа и т.п.), то есть такой подход менее паливный с точки зрения приватности.
Это как-то так происходит:
Mar 26 10:28:19 goahead[1292]: Access Denied — Requires User ID from 95.173.183.52:(null)
Mar 26 10:28:25 goahead[1292]: Access Denied — Requires User ID from 95.173.183.52:(null)
Mar 26 10:55:32 goahead[1292]: Access Denied — Requires User ID from 95.133.50.132:Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20100101 Firefox/17.0
Mar 26 11:53:11 goahead[1292]: Access Denied — Requires User ID from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:11 goahead[1292]: Access Denied — Requires Password from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:12 goahead[1292]: Access Denied — Wrong Password: admin-admin from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:12 goahead[1292]: Access Denied — Wrong Password: admin-1234 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:12 goahead[1292]: Access Denied — Wrong Password: admin-password from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:12 goahead[1292]: Access Denied — Unknown User: Admin-Admin from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:12 goahead[1292]: Access Denied — Requires User ID from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:13 goahead[1292]: Access Denied — Unknown User: root- from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:13 goahead[1292]: Access Denied — Unknown User: root-admin from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:13 goahead[1292]: Access Denied — Unknown User: root-root from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:13 goahead[1292]: Access Denied — Requires User ID from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:13 goahead[1292]: Access Denied — Unknown User: support- from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:13 goahead[1292]: Access Denied — Unknown User: support-support from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:14 goahead[1292]: Access Denied — Unknown User: super-super from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:14 goahead[1292]: Access Denied — Unknown User: super-APR@xuniL from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:44 goahead[1292]: Access Denied — Wrong Password: admin-onlime from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:44 goahead[1292]: Access Denied — Wrong Password: admin-mts from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:44 goahead[1292]: Access Denied — Unknown User: mts-mts from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:44 goahead[1292]: Access Denied — Unknown User: telecomadmin-admintelecom from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:45 goahead[1292]: Access Denied — Unknown User: mgts-mtsoao from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:45 goahead[1292]: Access Denied — Unknown User: kyivstar-kyivstar from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:45 goahead[1292]: Access Denied — Unknown User: telekom-telekom from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:45 goahead[1292]: Access Denied — Unknown User: superadmin-Is$uper@dmin from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:45 goahead[1292]: Access Denied — Wrong Password: admin-1 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:45 goahead[1292]: Access Denied — Wrong Password: admin-123 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:45 goahead[1292]: Access Denied — Wrong Password: admin-0000 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:46 goahead[1292]: Access Denied — Wrong Password: admin-00000000 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:46 goahead[1292]: Access Denied — Wrong Password: admin-12345 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:46 goahead[1292]: Access Denied — Wrong Password: admin-123456 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:46 goahead[1292]: Access Denied — Wrong Password: admin-1234567 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:53:46 goahead[1292]: Access Denied — Wrong Password: admin-12345678 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:16 goahead[1292]: Access Denied — Wrong Password: admin-123456789 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:16 goahead[1292]: Access Denied — Wrong Password: admin-1234567890 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:17 goahead[1292]: Access Denied — Wrong Password: admin-qwerty from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:17 goahead[1292]: Access Denied — Wrong Password: admin-beeline from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:17 goahead[1292]: Access Denied — Wrong Password: admin-beeline2013 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:17 goahead[1292]: Access Denied — Wrong Password: admin-iyeh from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:17 goahead[1292]: Access Denied — Wrong Password: admin-ghbdtn from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:17 goahead[1292]: Access Denied — Wrong Password: admin-admin225 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:17 goahead[1292]: Access Denied — Wrong Password: admin-juklop from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:18 goahead[1292]: Access Denied — Wrong Password: admin-free from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:18 goahead[1292]: Access Denied — Wrong Password: admin-inet from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:18 goahead[1292]: Access Denied — Wrong Password: admin-internet from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:18 goahead[1292]: Access Denied — Wrong Password: admin-asus from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:18 goahead[1292]: Access Denied — Wrong Password: admin-root from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:18 goahead[1292]: Access Denied — Wrong Password: admin-ADMIN from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:18 goahead[1292]: Access Denied — Wrong Password: admin-adsl from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:49 goahead[1292]: Access Denied — Wrong Password: admin-adslroot from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:49 goahead[1292]: Access Denied — Wrong Password: admin-adsladmin from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:49 goahead[1292]: Access Denied — Wrong Password: admin-Kendalf9 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:49 goahead[1292]: Access Denied — Wrong Password: admin-263297 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:49 goahead[1292]: Access Denied — Wrong Password: admin-590152 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:49 goahead[1292]: Access Denied — Wrong Password: admin-21232 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:49 goahead[1292]: Access Denied — Wrong Password: admin-adn8pzszk from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:50 goahead[1292]: Access Denied — Wrong Password: admin-amvqnekk from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:50 goahead[1292]: Access Denied — Wrong Password: admin-biyshs9eq from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:50 goahead[1292]: Access Denied — Wrong Password: admin-e2b81d_1 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:50 goahead[1292]: Access Denied — Wrong Password: admin-Dkdk8e89 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:50 goahead[1292]: Access Denied — Wrong Password: admin-flvbyctnb from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:50 goahead[1292]: Access Denied — Wrong Password: admin-qweasdOP from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:50 goahead[1292]: Access Denied — Wrong Password: admin-EbS2P8 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:51 goahead[1292]: Access Denied — Wrong Password: admin-FhF8WS from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:54:51 goahead[1292]: Access Denied — Wrong Password: admin-ZmqVfo from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:21 goahead[1292]: Access Denied — Wrong Password: admin-ZmqVfo1 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:21 goahead[1292]: Access Denied — Wrong Password: admin-ZmqVfo2 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:21 goahead[1292]: Access Denied — Wrong Password: admin-ZmqVfo3 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:21 goahead[1292]: Access Denied — Wrong Password: admin-ZmqVfo4 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:22 goahead[1292]: Access Denied — Wrong Password: admin-ZmqVfoVPN from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:22 goahead[1292]: Access Denied — Wrong Password: admin-ZmqVfoSIP from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:22 goahead[1292]: Access Denied — Wrong Password: admin-ZmqVfoN1 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:22 goahead[1292]: Access Denied — Wrong Password: admin-ZmqVfoN2 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:22 goahead[1292]: Access Denied — Wrong Password: admin-ZmqVfoN3 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:22 goahead[1292]: Access Denied — Wrong Password: admin-ZmqVfoN4 from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:23 goahead[1292]: Access Denied — Wrong Password: admin-9f4r5r79// from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:23 goahead[1292]: Access Denied — Wrong Password: admin-airocon from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:23 goahead[1292]: Access Denied — Wrong Password: admin-zyxel from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:23 goahead[1292]: Access Denied — Unknown User: adsl-realtek from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:23 goahead[1292]: Access Denied — Unknown User: osteam-5up from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:23 goahead[1292]: Access Denied — Unknown User: root-toor from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:54 goahead[1292]: Access Denied — Unknown User: ZXDSL-ZXDSL from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:54 goahead[1292]: Access Denied — Requires User ID from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:54 goahead[1292]: Access Denied — Unknown User: Cisco-Cisco from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:54 goahead[1292]: Access Denied — Requires User ID from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:55 goahead[1292]: Access Denied — Unknown User: cisco-cisco from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:55 goahead[1292]: Access Denied — Wrong Password: admin-default from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:55 goahead[1292]: Access Denied — Wrong Password: admin-cisco from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:55 goahead[1292]: Access Denied — Wrong Password: admin-changeme from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:55 goahead[1292]: Access Denied — Requires User ID from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:56 goahead[1292]: Access Denied — Requires User ID from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:56 goahead[1292]: Access Denied — Unknown User: enable-cisco from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:55:56 goahead[1292]: Access Denied — Unknown User: pnadmin-pnadmin from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:56:26 goahead[1292]: Access Denied — Unknown User: root-attack from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:56:27 goahead[1292]: Access Denied — Unknown User: root-Cisco from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:56:27 goahead[1292]: Access Denied — Unknown User: user- from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:56:27 goahead[1292]: Access Denied — Unknown User: user-user from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Mar 26 11:56:27 goahead[1292]: Access Denied — Requires User ID from 188.2.212.24:Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
И по поводу «На практике доказано что расчет резистора верен». Это значит, что при включении сразу не сгорело?
Ну и если уж тренируете новичка, то с терминологией не путайтесь. Подтягивающими резисторами обычно называют такие, которые «подтягивают» какие то линии в/в к питанию или «земле» для формирования устойчивых состояний 1/0 и/или формирования нагрузки линий в/в. То что рассматривается в статье обычно называют токоограничивающим резистором.
Как правило, в 3Д гораздо красочнее и зрелищнее выглядят мультики. Наверное самые яркие эмоции остались после «Эпик».
На первом видео вентилятор стоит правильно, это похоже рабочие моменты зафотканы неправильно.
У меня когнитивный диссонанс от ваших таких высказываний :) С одной стороны, рассказываете вроде правильно все, с другой такое вот… Антенны ничего не усиливают, а только «распределяют» «сигнал». Выходная мощность всегда одинакова, с помощью антенны ее можно как-то распределить в пространстве. Это кстати еще один вариант увеличения SNR при работе с клиентами. Я не до конца ориентируюсь в вопросе, но имхо стандартом n предусмотрена возможность использования фазированной антенной решетки, когда ТД формирует сигнал на антеннах так, чтобы он складывался в точке, где находится конкретный клиент. Но опять таки в SOHO сегменте таких решений особо не наблюдается.
Например, «режут глаз» конструкции типа «buffer_ds[3]; // время DS1307N (секунды, минуты, часы) ». Программа получается совсем не
читаемой. Почему не применяете структуры? Что-то типа:
Имхо гораздо более наглядно и читаемо.
Потом еще, например, реализация событий от времени. Как-то у вас замудренно сделано. Не прикидывал, какая точность вам нужна, но например, если достаточно 10 мин, то можно даже обойтись 1-но байтными числами. Считать текущее количество «10-ти минут» с начала суток (максимум это 144). Если значение таймера не используется, ему присваивать 0xFF. Получается линейное представление времени для работы программы, можно сравнивать текущее значение с установленными таймерами и т.п. а для интерфейса уже делать преобразование этого времени в часы и минуты. Соответственно, если нужна большая точность считать количество минут или секунд или долей секунд с начала суток.
К вопросу «повышенных требований к проверке EEPROM» — в вашей реализации вы можете даже не узнать, что какие то данные там «не те». То что все работает, это не аргумент, вы же не пересчитывает минимальные обороту кулера при работе и можете даже никогда не узнать что ни не те, что вы когда-то программировали. Так же не заметил никакого контроля целостности данных через UART. У вас как бы вообще нигде ничего не контролируется, и пока не произойдет достаточно грубый сбой вы можете и не заметить, что на каком-то этапе произошло искажение данных, с которыми работает программа. Я бы сделал как-то так:
Как с массивом с данными удобно работать при передаче через интерфейсы (сформировал массив, который включает CRC и при передаче уже можно контролировать целостность данных), при чтении/записи EEPROM (организуем цикл от 0 до (sizeof(sWorkData)) считая попутно CRC). А когда данные уже в памяти (и проверенны) — работаем со структурированными данными для облегчения читаемости программы.