Как стать автором
Обновить
56
0.7
Глеб Ницман @gleb_l

Инженер

Отправить сообщение

Акселерометр в системе ПИД-регулирования круиз-контроля автомобиля

Время на прочтение5 мин
Количество просмотров6.1K
Я эксплуатирую в общем-то довольно современный, напичканный электроникой американский автомобиль. Из того, что управляет движением, в нем есть электронная система стабилизации, ПБС с эмуляцией блокировки дифференциала, естественно АБС, и конечно же, круиз-контроль. Последний еще не адаптивный (то есть без функции поддержания дистанции до впереди идущего авто). В машине — электронная педаль газа (это принципиальный момент для данной статьи — позже объясню, почему).

Всем, кто хочет знать, чем не угодил круиз-контроль, и что предлагается улучшить — welcome под кат.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии70

Yet Another Производственный Календарь на MS SQL. ПО->ША->ГО->ВО

Время на прочтение5 мин
Количество просмотров8.1K
Написать свое решение меня подтолкнул пост на Хабре на аналогичную тему, в котором эта задача была решена «в лоб» — простым перечислением дней и флагом рабочий/выходной за весь диапазон жизнедеятельности системы, в которой этот календарь используется. В аналогичной ситуации я решил поступить немного хитрее, что в итоге оказывается и гораздо проще в поддержке. Если интересно, как это было сделано — welcome под кат:
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии0

XSL-трансформация на MS SQL без CLR

Время на прочтение6 мин
Количество просмотров3.5K
Иногда очень удобно отправлять письма прямо изнутри БД, например, оповещения об успешности/неуспешности каких-то действий, информацию о состоянии системы, логи действий пользователей итд. Это может показаться дикостью, чудовищным велосипедом, кривым-косым решением, итд — но просто представьте, что это так.

Содержимое письма при таком способе приходится формировать plain-текстом, а рассылать почту либо через xp_sendmail, либо (более гибко) через почтовый COM-объект (например, CDO.Message), инстанциируя и управляя им через SQL-обертки для работы с OLE sp_OAxxxx.

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

+-----------+--------------+--------------+
| АБСОЛЮТНО | НЕ ВИДИТ ПРО | БЛЕМ В ТАКОМ |
| ОФОРМЛЕНИ | И СЛУЖЕБНОГО | ВЫВОДА <EOT> |
+-----------+--------------+--------------+

Что делать, если подобный формат начинает напрягать, а регистрировать на сервере свои компоненты, или «выныривать» из уровня БД на уровень приложения для отправки чего-то более красивого ну очень не хочется:
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии21

Переход через NULL

Время на прочтение2 мин
Количество просмотров11K
Многие знают и используют встроенную функцию ISNULL(X, Y), которая заменяет первый аргумент на второй в случае, если он (первый) NULL. Менее употребима обратная встроенная функция NULLIF(X, Y), которая возвращает NULL, если первый аргумент равен второму. Комбинация этих двух функций позволяет избежать использования конструкций IF-ELSE или CASE-WHEN, что делает код компактнее. Если интересно посмотреть пару примеров — добро пожаловать под кат.
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии16

«1-wire» для кнопок с индикацией

Время на прочтение2 мин
Количество просмотров51K
Задумал я как-то в одной из конструкций применить вот такую кнопку с индикацией состояния:

image

Внутри — пара замыкающих или переключающих контактов и светодиод (опционально — уже с гасящим резистором на выбор для питания от 5, 12, или 24 В). Все бы с ней хорошо, но разместить кнопку планировал на приборной панели автомобиля, а управляющий блок — в моторном отсеке. А тянуть отдельные провода для контакта и для индикации уж очень не хотелось.

Как это решить, и что для этого нужно — под катом
Читать дальше →
Всего голосов 28: ↑19 и ↓9+10
Комментарии44

Интеллектуальное реле управления вентилятором охлаждения двигателя

Время на прочтение8 мин
Количество просмотров95K
Прочитав пост mrsom о пересадке микроконтроллерной начинки в ретротахометр от Жигулей, решил рассказать об одной своей давней микроконтроллерной разработке (2006 год), сделанной для плавного управления электровентилятором охлаждения двигателей переднеприводных моделей ВАЗа.

image

Надо сказать, что на тот момент уже существовало немало разнообразных решений — от чисто аналоговых до микроконтроллерных, с той или иной степенью совершенства выполняющих нужную функцию. Одним из них был контроллер вентилятора компании Силычъ (то, что сейчас выглядит вот так, известной среди интересующихся своим автоматическим регулятором опережения зажигания, программно детектирующим детонационные стуки двигателя. Я некоторое время следил за форумом изготовителя этих устройств, пытаясь определить, чтов устройстве получилось хорошо, а что — не очень, и в результате решил разработать свое.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии15

Постраничная выборка данных — альтернативный взгляд на давно известное

Время на прочтение8 мин
Количество просмотров15K
Проблема постраничной выборки информации из БД стара, как сама БД, и соответственно, обсуждена не одну тысячу раз. Нет, пожалуй, ни одной клиент-серверной системы, в которой эта проблема так или иначе не была бы адресована и решена. Сегодня я хочу рассказать об одном немного нестандартном способе взаимодействия клиентского слоя и MS SQL-бакенда при организации постраничной выборки в типичном публичном веб-приложении.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии9

Идея и реализация простого средства контроля расхода энергии аккумуляторов

Время на прочтение3 мин
Количество просмотров29K
Наверное первое, о чем задумывается владелец после покупки троллингового мотора к лодке, или, скажем, установки электрокита на велосипед — это то, насколько далеко можно безопасно уплыть/уехать без необходимости возвращаться обратно на веслах или педалях. Подобная же участь не обошла и меня, поэтому когда несколько лет назад у меня появился электрический лодочный мотор, сразу же возникла идея реализовать контроль расхода ампер-часов из питающей мотор батареи простым, но при этом более-менее точным способом.
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии11

MS SQL: генерация псевдослучайных данных с использованием newID(). Возможности и подводные камни

Время на прочтение5 мин
Количество просмотров44K
Известно, что встроенная функция newID() широко используется разработчиками не только по прямому назначению — то есть для генерации уникальных первичных ключей, но и в качестве средства для генерации массивов псевдослучайных данных.
Читать дальше →
Всего голосов 31: ↑25 и ↓6+19
Комментарии7

Информация

В рейтинге
1 473-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность