Как стать автором
Обновить
16
-0.8
Фролов Дмитрий @FDA847

Схемотехник

Отправить сообщение
Да, тоже интересный вариант. Но в данном случае уже особо ускорять нечего. А вот при работе Web-интерфейса мы как раз хеш-таблицу и используем. При формировании динамического содержимого мы вместо текстовых меток подставляем нужные значения. И чтобы не делать громадную кучу сравнений строк просто вычисляем хеш и по нему мгновенно находим требуемое значение.
Список всегда отсортированный. Он берётся с сервера. Соответственно, при любом изменении он заново загружается в контроллер. Поэтому все операции выполняются пользователем системы как раз на сервере. Там же помимо самих ключей ещё настраивается время доступа.
Промахнулся в ветке. Ответил ниже
Так-то так, но что в итоге выиграем? Вместо 11 сравнений будет, например, 10, в случае заполненности массива карт наполовину. Ну а если будет 5 сотрудников в базе, то количество сравнений может быть, конечно, всего 3. Но опять же, это какие-то единицы миллисекунд экономии. Поэтому мы и пошли более простым путём.
У нас во флешке хранится две структуры данных:
1. База пользователей. Она меняется крайне редко. Ресурс в 4 млн. перезаписей исчерпан никогда не будет.
2. Журнал событий. В него пишется постоянно при проходе сотрудников. Там организован кольцевой буфер как раз для равномерного использования всех блоков флеш-памяти.
Само чтение 3000 записей занимает порядка 3 сек. Но там есть ещё накладные расходы из-за того, что мы читаем не последовательно всю память, а каждую запись отдельно. Если считывать весь массив линейно, то это время будет порядка 1,5 сек, что для данной задачи тоже много.
Не понял, при чём тут гемор с перезаписью кодов? При добавлении нового пользователя в любом случае перезаписывается весь массив в контроллере. Но этот процесс нечастый (пользователей не добавляют каждый день), поэтому проблемы нет. А серверу без разницы в каком виде отдавать список. Он уже из базы получается отсортированный по номеру ключа.
Можно и так. Вероятность того, что попадётся карта с таким номером пренебрежимо мала. С другой стороны, доп. сравнение с нулём в цикле практически ни на что не влияет. Там ведь сравнений не более 11. Изначально мы себе просто задачу упростили на стороне сервера, когда готовили список карт. Делаем выборку из базу, заполняем массив, остальное дописываем нулями. А впоследствии при расширении функционала системы решили по максимуму вписаться в существующую структуру.
Даже при крайнем случае, когда организация это ОДИН человек, 35 тыс. погоды не делают. В год надо зарабатывать намного больше, иначе просто не выжить.
Нов таком крайнем случае можно вообще ничего не покупать. Есть другие способы.
А вот когда организация дорастёт до штата хотя бы 3-5 человек, хороший инструмент будет играть сильную роль!
То же самое касается электроники. В начале можно пользоваться и китайской станцией за 1000 руб. и самым дешёвым осциллографом, а вот по мере развития уже начинаете «обрастать» серьёзными инструментами.
СУБД бывают так же бесплатные. А если уж нужная платная, то значит проект на такую сумму, что вполне можно купить и более мощную версию. Это всё легко просчитывается, не надо быть суперэкономистом.
А вот скорость разработки ПО для мелких организаций как раз очень важна. Плюс лёгкость сборки под различные платформы.
Ну 35 тыс. руб. в год это копейки для любой, даже мелкой организации. Понятно, что есть и совсем бесплатные инструменты. Но у Delphi много плюсов в плане скорости разработки, а это в свою очередь приводит к окупаемости данных затрат.
Lazarus хорош. Мы его частенько используем. Но по сравнению с Delphi есть два недостатка:
1. Не все библиотеки, что есть под Delphi, имеются и под Lazarus.
2. По сравнению с Delphi компиляция проходит намного дольше!
Может что ещё есть, не претендую на истину, но для себя вот эти два отмечаю.
Зато он бесплатный, а это уже большой плюс!
И да, такие цены только при первоначальной покупке. Дальше оформляется годовая подписка (порядка 35 тыс. руб. с НДС). Если не пропускать ни один год, то разово вкладываться больше не придётся.
Поддержка Linux только добавлена, поэтому и есть ряд ограничений. Кроме того, доля рынка десктопных приложений для линукс весьма мала, поэтому и добавлен он был в числе последних. А под остальные платформы код реально собирается с минимумом ограничений. При этом основная отладка ведётся под Windows, где Delphi просто «летает» за счёт молниеносной компиляции. А вот приложения под Android/iOS собираются довольно долго (порядка 40-60 сек).
Delphi тоже не упомянули. А ведь там можно делать приложения под Windows, macOS, Linux, Android и iOS.
Спасибо, мы если что рассмотрим Ваше предложение!
Наш стабилитрон отсекает только то, что ниже 0,7 В и не влияет на работу измерителя, т.к. рабочее напряжение с датчика находится в диапазоне -0,5...+0,5 В.
И, кроме того, мы вроде не договаривались в «кошки-мышки» играть. Если у Вас есть свой вариант схемы, то предлагайте! Обсудим.
На самом деле 170 + 180 = 350 руб. в партиях от 100 шт. Комплектация у нас в основном SMD, т.к. у нас имеется два собственных установщика SMD-компонентов.
Измерение напряжение можно сделать и на оптроне, загнав его в линейный режим, но у такого решения имеется много недостатков.
У нас основное питание 3,3В. Получается оно из 5В, которое выдаёт AC-DC преобразователь. А само 5В используется только для электромагнитных реле и LM358. Диапазон сигналов мы приводим примерно к уровню 1...3 В. Для 10-битного АЦП вполне достаточно.
Один контроллер в серии обошёлся в 7500 руб. Разработка серверного ПО стоила примерно 5% от цены всей партии. Вся разработка заняла три месяца.
Код пишется на Си в любом случае. Поэтому битность процессора тут ни при чём. Да и себестоимость надо правильно считать. Она определяется не одним только микроконтроллером.

Информация

В рейтинге
Не участвует
Откуда
Рязань, Рязанская обл., Россия
Дата рождения
Зарегистрирован
Активность