Так основная проблема в текущем виде - цена, даже если не заморачиваться со своей платой, то можно уложиться в сильно меньшую стоимость
Не соглашусь с ценобразованием. Одноплатник стоит 1500р-2000р с али. Сколько будет стоить разработка и поддержка ПО для МК (ПО должно выполнять все те же функции, что сейчас выполняет наш детектор)? Сколько будет стоить инженерка? Сколько будет стоить ошибка в инженерке или ПО?
заведомо отъедая одно ядро на мало эффективную работу
Это осознанный шаг. Баланс между простотой реализации и удобством поддержки. Аргументы против нашего решения:
ОС не может использовать это одно ядро
В ОС нет рабочей нагрузки, которой бы это ядро было нужно. Здесь нет GUI и абсолютная отывчивость ОС ни к чему
малая энергоэффективность
Это вообще мимо. Используем малошумящий линейный БП, о какой энергоэффективности может идти речь
на МК можно делать все то же самое, но лучше
Жертвуем "лучшестью", ради удобства и скорости развития. Когда детектор обретет конечный функционал, можно будет переходить на МК
цена
Часть ценообразования описал выше. Хорошая инженерка обойдется гораздо дороже. И если в какой-то момент нужно будет, что-то доработать или переделать, то сумму увеличиваем
именно что не лает, но и в дом не пускает - это у плохих програмистов :) так то никто не запрещает но как минимум для этого есть dma а проц занимается более сложным нежели байты перебрасывать
Вы так и не сказали, что плохого в том, что процессор работает. Ниже картинка нагрузки на одноплатник. Одноплатник не греется, ресурсов достаточно.
Загрузка одноплатника
Дополнительно можем запускать стрим сигнала с ФНЧ и децимацией (все в одном ядре) с удаленного детектора к себе на ПК. И вот уже пара ядер в сотку. Но одноплатнику все еще норм. У него целых 2 ядра простаивает, температура не растет.
Стримминг сигнала с удаленного детектора, с одновременным отловом молний
Трансформатроный БП с линейным стабилизатором в 2025 ? монструозно
Зато шумит меньше
Хотя, реально все впихнуть внутрь "антенны", на базе микроконтроллера со встроенным ацп, ethernet и запитать через PoE
Всё так, у нас не было такой цели
чтение gpio реализовано? userspace или драйвер ядра
userspace, лезем через /dev/mem. Пробовали писать драйвер ядра на прерываниях, получили в районе 100 кГц. Знаем, что можно быстрее, не хотелось с этим возиться, Если уж писать драйвер для такого, проще уходить на МК
какое поличество семплов получается относительно периода PPS? стабильное значение или разброс
Конечно разброс есть, так как нынче GPS поддавливают и на него сложно полагаться. А модуль свой PPS рассчитывает исходя из фиксации со спутниками и коррекцией времени по ним
Сеплы между PPS (ticks), длина импульса до спада сигнала (ticks down)
Не соглашусь. Вся инкапсуляция завязана на "ты это поле не трогай, оно начинается с _ или __ и оно не для тебя". Это просто условность, которой все следуют. При этом ты спокойно получаешь досту к "приватным" полям и методам.
А как вам такое?
class A:
def hello(self):
return self.b_name()
class B(A):
def __init__(self, name):
self._name = name
def b_name(self):
return self._name
b = B('Vasya')
b.hello()
Класс "А" обращается к методу дочернего класса. Можно притянуть, что тут даже функции - это инстанс типа "function", и все состоит из объектов.
Не соглашусь с ценобразованием. Одноплатник стоит 1500р-2000р с али. Сколько будет стоить разработка и поддержка ПО для МК (ПО должно выполнять все те же функции, что сейчас выполняет наш детектор)? Сколько будет стоить инженерка? Сколько будет стоить ошибка в инженерке или ПО?
Это осознанный шаг. Баланс между простотой реализации и удобством поддержки. Аргументы против нашего решения:
ОС не может использовать это одно ядро
В ОС нет рабочей нагрузки, которой бы это ядро было нужно. Здесь нет GUI и абсолютная отывчивость ОС ни к чему
малая энергоэффективность
Это вообще мимо. Используем малошумящий линейный БП, о какой энергоэффективности может идти речь
на МК можно делать все то же самое, но лучше
Жертвуем "лучшестью", ради удобства и скорости развития. Когда детектор обретет конечный функционал, можно будет переходить на МК
цена
Часть ценообразования описал выше. Хорошая инженерка обойдется гораздо дороже. И если в какой-то момент нужно будет, что-то доработать или переделать, то сумму увеличиваем
ПО детектирования - C++
ПО WEB-консоли - Python
Тестовые утилиты для отладки - Python + C++
на данном этапе развития проекта - не интересно
Вы судите по прототипу о том, какую мы имеем квалификацию. Данный прототип справляется на отлично с задачами, которые на него возложены
Вы так и не сказали, что плохого в том, что процессор работает. Ниже картинка нагрузки на одноплатник. Одноплатник не греется, ресурсов достаточно.
Дополнительно можем запускать стрим сигнала с ФНЧ и децимацией (все в одном ядре) с удаленного детектора к себе на ПК. И вот уже пара ядер в сотку. Но одноплатнику все еще норм. У него целых 2 ядра простаивает, температура не растет.
Зато шумит меньше
Всё так, у нас не было такой цели
userspace, лезем через /dev/mem. Пробовали писать драйвер ядра на прерываниях, получили в районе 100 кГц. Знаем, что можно быстрее, не хотелось с этим возиться, Если уж писать драйвер для такого, проще уходить на МК
Конечно разброс есть, так как нынче GPS поддавливают и на него сложно полагаться. А модуль свой PPS рассчитывает исходя из фиксации со спутниками и коррекцией времени по ним
MyClass::MyClass(): m_worker{std::thread{[this]{
std::lock_guard l{m_mutex};
...
}}} {}
А что вы ожидали, когда пытались запустить в потоке лямбду с захваченным this, который не сконструирован?
Запусти вы поток внутри тела конструктора, без проблем.
Не соглашусь. Вся инкапсуляция завязана на "ты это поле не трогай, оно начинается с _ или __ и оно не для тебя". Это просто условность, которой все следуют. При этом ты спокойно получаешь досту к "приватным" полям и методам.
А как вам такое?
Класс "А" обращается к методу дочернего класса. Можно притянуть, что тут даже функции - это инстанс типа "function", и все состоит из объектов.