Доступ к параллельному порту с использованием собственного клиента Google (NaCl)

Я пытаюсь написать приложение для Chrome, которое поддерживало бы печать на старых принтерах, подключенных к компьютеру через параллельный порт. Я узнал, что приложения Chrome не могут использовать какие-либо плагины NPAPI, поэтому о них не может быть и речи. Остался вариант с плагином NaCl или PPAPI. Но поддерживает ли PPAPI, перец или NaCl (я не очень хорошо знаком ни с одним из них и, вероятно, использую их в неправильном контексте) доступ к параллельному порту? Можно ли написать плагин PPAPI, поддерживающий связь через параллельный порт? Спасибо за ваше время и усилия.


person dexter    schedule 20.02.2014    source источник


Ответы (2)


Обычно вы можете писать в параллельный порт, как в файл. (прошло несколько десятилетий с тех пор, как я делал это в последний раз)

в Linux используйте /dev/lp0 в качестве имени файла
см. также https://superuser.com/questions/301753/how-do-i-print-directly-to-lpt-port-in-ubuntu

в Windows LPT0

см. также
* https://developers.google.com/native-client/dev/devguide/coding/file-io

ИЗМЕНИТЬ
Я думал, что приложениям, упакованным в Chrome, разрешен доступ к локальной файловой системе.
Если это ограничено изолированной областью, доступ к параллельному порту может быть запрещен.
Использование NaCl, кажется, поддерживает неограниченный доступ к локальным файлам, так что это, вероятно, сработает.

person Günter Zöchbauer    schedule 02.03.2014
comment
Вы уверены, что это сработает? Я почти уверен, что произвольный доступ к файловой системе запрещен. См. nacl_dangerous_enable_file_access - person Janus Troelsen; 12.01.2015

Упакованные приложения имеют доступ к USB-портам, а также к последовательным портам. http://developer.chrome.com/apps/api_index Если вы пишете приложение JavaScript, вы можете получить доступ к этой функции без написания собственного клиентского приложения, однако, если вы пишете на C/C++, подмножество этих API-интерфейсов доступно с использованием API-интерфейсов Pepper.

person NaClPM    schedule 20.02.2014
comment
Я знаю, что есть API для USB и последовательных портов. Я не про них спрашивал. Я конкретно про параллельный порт спрашивал. Извините, но я не вижу уместности в вашем ответе. Тем не менее, спасибо за потраченное время и усилия. - person dexter; 21.02.2014
comment
Ответ правильный и полный. Поддержки параллельного порта нет, и, к сожалению, крайне маловероятно, что вы когда-нибудь ее увидите. Причина существования USB/serial заключается в том, что все еще производится современное оборудование, использующее эти интерфейсы (последовательный интерфейс, конечно, часто виртуализируется). Лучше всего исследовать собственный обмен сообщениями (developer.chrome.com/extensions/messaging #native-messaging-host), но это будет означать поставку вашего собственного прокси-сервера с параллельным интерфейсом, написанного на собственном коде, для каждой хост-платформы, которую вы хотите поддерживать. - person sowbug; 21.02.2014
comment
Также попробуйте следующее: amazon.com/C2G-16899-IEEE -1284-Parallel-Printer/dp/B000UX21PY/, то вы можете напрямую использовать ответ NaClPM. - person sowbug; 21.02.2014
comment
@sowbug: Как ответ NaCIPM может быть правильным и полным, если он не по теме? Я спрашивал о поддержке параллельного порта в NaCl, и он ни разу не упомянул об этом в ответе. На самом деле, Ваш ответ намного лучше (цитата: Нет поддержки параллельного порта, ...), поскольку он говорит о вещах, о которых я действительно спрашивал. Ваше предложение о собственном обмене сообщениями кажется единственным рабочим вариантом (NPAPI не разрешен), если я хочу использовать приложения Chrome, но я думаю, что это слишком сложное решение, чтобы просто сказать, что я использовал в нем приложения Chrome. Если вы правы, пришло время искать решения за пределами приложений Chrome. - person dexter; 21.02.2014
comment
@sowbug Я не могу использовать кабель, потому что принтер должен работать со старыми приложениями, которые, возможно, не могут обмениваться данными через USB. Спасибо за помощь. - person dexter; 21.02.2014