2015-02-19 3 views
1

Я полностью начинаю с мозга моих роботов. Все разработано на Python.Шина Python между процессами

Я хочу, чтобы все было максимально модульным и позволяло использовать несколько ядер процессора (малиновый PI 2).

Я думал об использовании нескольких процессов. Один для последовательной связи, по одному для каждого датчика, по одному для каждой более высокой функции. Все подключены рулевой "мозговой" функцией.

Я хочу подключить процессы по сообщениям. Например. Если каждый датчик дробит, это собственный автобус. Более высокие функции и мозг могут войти в автобус. В оптимальном случае я также хотел бы отправить целые объекты.

  • Есть ли хорошие рамки для обеспечения автобусов?
  • возможно ли лучший подход ко всей теме?

Благодаря

Роберт

+0

'multiprocessing' ... его встроенной библиотеки она все называется' Pipe' о том, что делать то, что вы хотите –

+0

Спасибо за быстрый ответ. Я посмотрю на это. Приветствуются предложения по альтернативам или абстрактные рамки, которые облегчают использование. – robvoi

+0

У меня никогда не было возможности на самом деле использовать его, но при поиске похожих вещей dbus продолжает подниматься. Он имеет привязки для нескольких языков и, по крайней мере, dbus-python кажется легко доступным на малине: http://www.freedesktop.org/wiki/Software/DBusBindings/ – Luis

ответ

1

Попробуйте nanomsg (последующий проект в ZeroMQ):

nanomsg библиотека сокет, который обеспечивает несколько общих коммуникационных моделей. Он стремится сделать сетевой слой быстрым, масштабируемым и простым в использовании. Реализованный в C, он работает с широким диапазоном рабочих систем без каких-либо дополнительных зависимостей.

Образцы связи, также называемые «протоколами масштабируемости», составляют базовые блоки для построения распределенных систем. Объединив их, вы можете создать огромный массив распределенных приложений. Следующие масштабируемость протоколов в настоящее время доступны:

  • PAIR - просто один-к-одному связи
  • BUS - просто многие-ко-многим связи
  • REQREP - позволяет строить кластеры без гражданства услуг процесса пользователь запрашивает
  • PubSub - распределяет сообщения больших наборов заинтересованных абонентов
  • ТРУБОПРОВОДОВ - агрегирует сообщения из нескольких источников и противовесов загружать их среди многих направлений
  • ОПРОС - позволяет запрашивать состояние нескольких приложений в одном идти
+0

Thank. Я видел zeromq, но не видел nanomsg. Вы знаете, были ли отправлены объекты python? (да, я могу читать и попробовать, но, возможно, вы знаете это наизусть ;-)) – robvoi

+0

@robvoi посмотрите на pickle https://docs.python.org/2/library/pickle.html – ndpu

+0

Ах круто. С рассолом и nanomsg у меня есть msgbus и отправка объектов. Благодарю. – robvoi

Смежные вопросы