![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
_ПУ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.11.2006 Репутация: 1 Всего: 1 |
вот такая задачка. имеется прикладушка, доступ к которой возможен посредством питоновских команд.
есть ли у pythonwin или похожего интерпретатора возможность получать команды на C и переводить их в питонный язык? взаимодействие в обе стороны ну, попытаюсь ещё разок. есть приложение, с которым можно говорить на питоне (вызывать, обмениваться информацией, закрывать). назовём её П1. общаться можно из встроенного в него интерпретатора или из внешнего (например, питонвин). кто-то написал под это дело длл на ц, назвав её типа драйвером (Д). на самом деле, ц-функции формируют строки в питоновском синтаксе и исполняют их в свою очередь вызовом функции из стандартной(?) библиотеки питон22.либ. сделано это так запутанно по причине наличий подобный приложений П2, ..., ПН от других производителей, которые на самом деле делают железки, а ПО пишут для контроля за ними (поэтому так странно пишут, наверное). вот этот Д является прослойкой для другого приложения (ДП), которое не хочет знать ничего о железе, но хочет с ним говорить (надо только правильный Д подсунуть). вся эта конструкция работает, но очень нестабильно. при этом питоновские объекты пропадают, что приносит массу неприятностей и неудобств. особенно клинит при закрытии и последующем запуске П1. все работает замечательно, если отсечь ц-часть и говорить, например, через питонвин на чистом питоне. тогда всё мега-стабильно и мега-оптимально, т.к. питоновские объекты находятся под непосредственным контролем и их не всегда надо заново создавать. но тогда я не могу переслать данные для ДП... вот и подумалось мне. может, есть такой внешний интерпретатор, который я могу из ц-программы запустить (что-то в роде сервера) и разговаривать с ним на чистом ц (или слать уже готовые строки на питоне), а он будет красиво переводить в питон и выплёвывать команды, а потом возвращать добытую после коммуникации с П1 инфу? при этом я могу контролировать, запущено ли П1 и т.п. (что сейчас практически невозможно). вот хочу найти такой коммуникатор. пока лучше объяснить не получается... заранее благодарен за помощь |
|||
|
||||
albertn |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
Поясни еще раз, каким образом "общаются" программы различных разработчиков |
|||
|
||||
_ПУ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.11.2006 Репутация: 1 Всего: 1 |
в этой цепи все модули для меня чужие
![]() пойдём снизу вверх. внизу железка от фирмы О. она видна через гуи от той же фирмы О. с гуи можно поговорить на питоне, например, из питонвина: стартануть, закрыть, спросить время, место и прочее. там же есть встроенная командная страка для питона. теперь пусть будет пустое место. идём теперь сверху. наверху система автоматизации. она говорит что, где и когда считать. ей подсовывают вот то самое гуи. гуи не слышит сишных запросов системы. тогда между ними кладут драйвер/интерфейс/как угодно назови, который получает запрос на си от системы. переводит его в строку с синтаксисом питона. и через вызов какой-нибудь функции из питон22.длл говорит с гуи, получая иногда ответ. вот тут происходит встреча. так вот нет стабильности. запарка есть. стабильности нет. |
|||
|
||||
setq |
|
|||
Unregistered |
В принципе, интерпретатор Питона можно вызвать из программы на C. В принципе, из Питона можно вызвать библиотеку, написанную на C. Обе темы освещены в стандартной документации по Питону (Extending and embedding). Я не знаю, что именно тебе нужно, но рекоммендую эту главу прочитать.
|
|||
|
||||
_ПУ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 23.11.2006 Репутация: 1 Всего: 1 |
интерпретатор я вызываю сейчас. питон расширят нет необходимости. а как лучше организовать сервачок, который будет стартовать и управляться из ц и говорить питоном? надеялся, что питонвин имеет какую-нибудь дырочку для ц, но... (похоже) увы... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |