Найти - Пользователи
Полная версия: чтение/запись устройства
Начало » Python для новичков » чтение/запись устройства
1
viktand
Здравствуйте.

Мне потребовалось переделать программу, написанную на C# и работающую под mono на Raspberri Pi на аналог на python. Я в python'е не очень понимаю и столкнулся с такой проблемой:

Программа управляет чековым принтером и просто пишет и читает байты в /dev/usb/lp0

Я использовал конструкцию вида

 with open('/dev/usb/lp0', 'wb') as prnDev:
            for b in byte:
                prnDev.write(chr(b))

первый раз (при старте) туда передается массив byte с последовательностью байтов инициализации принтера и это работает. Как мне кажется. Но при следующих обращениях к принтеру программа виснет на последней строке этого фрагмента. И даже перезапуск не помогает. Только перезагрузка Rospberry. Такое ощущение, что /dev/usb/lp0 не освобождается после выхода из with и поэтому все последующие попытки что-то читать/писать оказываются безуспешными. В чем может быть проблема? как гарантированно закрыть подключение к устройству?
DamMercul
Так просто ты туда ничего не запишешь, а если и запишешь то совешишь большую ошибку. Есть такая штука - файловая система. Перезаписав хотябы несколько байт первого раздела - file system kapec. И туда ты уже ничего не запишешь.
А чтобы закрыть стрим надо использовать:
 prnDev.close()
UPDATE: про несколько байт овеврайта перегнул. Но все-равно как то странно ты подходишь к задаче.
JOHN_16
DamMercul
вы бы думали прежде чем писали. Блочные устройства в UNIX подобных ОС вам о чем нибудь говорит?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB