Какое максимальное количество ключей в Yun Bridge?
Yun имеет мост для связи между процессорами Arduino и Linux через хэш ключ/значение. В документации говорится, что это фактически хранится на стороне Linux, но не говорится, каков предел.
Сколько пар ключ/значение может хранить Bridge? Каковы практические ограничения?
@Cerin, 👍0
Обсуждение1 ответ
Лучший ответ:
Данные просто хранятся в массиве внутри демона Python. ATMega32U4 просто отправляет команды для установки/получения значений, поэтому нет никаких ограничений, налагаемых стороной ATMega.
Единственным ограничением является размер массива в Python, который ограничивается:
- Объем доступной памяти в Linux и
- Независимо от того, настроено ли у вас пространство подкачки на Yun
Поскольку оба эти параметра очень изменчивы (зависят от того, какие процессы у вас запущены, какова ваша конфигурация и т. д.), ответ может быть только один:
- Довольно много.
Отложив на мгновение память, ответ на этот вопрос на SO гласит:
Согласно исходному коду, максимальный размер списка составляет PY_SSIZE_T_MAX/sizeof(PyObject*). В обычной 32-битной системе это (4294967295 / 2) / 4 или 536870912. Таким образом, максимальный размер списка Python в 32-битной системе составляет 536 870 912 элементов.
Итак, у вас есть меньшее из:
- Максимум, который можно вместить в память Linux, и
- 536,870,912
Majenko, у google translate проблемы с выражением "довольно много". Он может понять "довольно много" или "несколько", а также "довольно много пива", но путается с просто "довольно много". Это "много", верно? Вы использовали arduino yun? Каждая идея, которая приходит мне в голову, оказывается очень сложной для реализации на arduino yun., @Jot
GT часто борется с идиомами. Довольно много = много, но не очень много. Больше, чем несколько, меньше, чем огромное количество. У меня есть Yun, но все, что он делает в данный момент, это является маршрутизатором для подключения моего skybox к WiFi. Yun был хорошей идеей, когда его впервые придумали, но с тех пор технология MCU шагнула вперед, и сейчас он довольно избыточен., @Majenko
- Как получить HTTPS на Arduino?
- Как получить уникальный идентификатор для всех плат Arduino?
- Как поступить с файлом fzz
- Как сделать повторитель Wi-Fi на Arduino?
- Программа arduino выдаёт ошибку expected //primary-expression before ')' token error: //expected ';' before '}' token E
- HTTP-запросы с использованием Arduino
- Как заставить инфракрасный термодатчик MEMS - D6T-44-L06 работать с Arduino?
- Ошибка easy_install pip на Arduino Yun
Я думаю, что ограничением является память в atmega32u4 и ограничение скорости для скрипта python на стороне linux. Около 20 значений не должны быть проблемой, но когда у вас есть 20 различных значений, все обновления и управление этими 20 значениями через мост могут стать проблемой. Когда вам нужно 1000 значений, возможно, вы можете попробовать контролировать все на стороне linux и время от времени запускать скрипт linux со стороны arduino. Лучшим решением будет прекратить использовать yun прямо сейчас, прежде чем вы потратите слишком много времени на борьбу с ним. Посмотрите на платы mkr wifi, или esp32, или raspberry pi., @Jot