Отправка необработанных команд к связанному Prnter

Я недавно подключил принтер Получения Bixolon SRP-350 к своему полю Ubuntu через параллельный порт. Я смог использовать сервер CUPS для устанавливания принтера со связанным .ppd файлом.

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

Например, на терминале, я должен сначала переключиться на пользователя root sudo su -(не уверенный, почему sudo не работает правильно). Затем я могу отправить отдельные строки с echo "TEST LINE" > /dev/lp0, который распечатает строку на принтере и усовершенствует страницу вверх. Я могу также пойти взаимодействующий с ним при помощи cat > /dev/lp0 и представление линию за линией.

Я заметил, что каждая команда добирается, отправляют, когда я выхожу, возврат (Входят), и принтер отвечает соответственно. Я затем шел вперед и искал лист команды для этого образцового принтера. Я смог получить большинство команд ESC, работающих путем отправки ^[ command таким же образом выше.

Я пытаюсь дать некоторые из других команд к принтеру, но я не уверен относительно того, как инициировать их. Я присоединил лист команды. Command Sheet

Спасибо за любое руководство

  • Dan
1
задан 13 October 2016 в 23:14

1 ответ

Как ESC, другие команды могут обычно быть сгенерированы при использовании cat путем нажатия Ctrl с правильным символом. Это - символ со значением ASCII 0100 восьмеричных больших, чем код управления. Таблица ASCII в man ascii удобно размечается для этого:

   Oct   Dec   Hex   Char                        Oct   Dec   Hex   Char
   ────────────────────────────────────────────────────────────────────────
   000   0     00    NUL '\0' (null character)   100   64    40    @
   001   1     01    SOH (start of heading)      101   65    41    A
   002   2     02    STX (start of text)         102   66    42    B
   003   3     03    ETX (end of text)           103   67    43    C
   004   4     04    EOT (end of transmission)   104   68    44    D
   005   5     05    ENQ (enquiry)               105   69    45    E
   006   6     06    ACK (acknowledge)           106   70    46    F
   007   7     07    BEL '\a' (bell)             107   71    47    G
   010   8     08    BS  '\b' (backspace)        110   72    48    H
   011   9     09    HT  '\t' (horizontal tab)   111   73    49    I
   012   10    0A    LF  '\n' (new line)         112   74    4A    J
   013   11    0B    VT  '\v' (vertical tab)     113   75    4B    K
   014   12    0C    FF  '\f' (form feed)        114   76    4C    L
   015   13    0D    CR  '\r' (carriage ret)     115   77    4D    M
   016   14    0E    SO  (shift out)             116   78    4E    N
   017   15    0F    SI  (shift in)              117   79    4F    O
   020   16    10    DLE (data link escape)      120   80    50    P
   021   17    11    DC1 (device control 1)      121   81    51    Q
   022   18    12    DC2 (device control 2)      122   82    52    R
   023   19    13    DC3 (device control 3)      123   83    53    S
   024   20    14    DC4 (device control 4)      124   84    54    T
   025   21    15    NAK (negative ack.)         125   85    55    U
   026   22    16    SYN (synchronous idle)      126   86    56    V
   027   23    17    ETB (end of trans. blk)     127   87    57    W
   030   24    18    CAN (cancel)                130   88    58    X
   031   25    19    EM  (end of medium)         131   89    59    Y
   032   26    1A    SUB (substitute)            132   90    5A    Z
   033   27    1B    ESC (escape)                133   91    5B    [
   034   28    1C    FS  (file separator)        134   92    5C    \  '\\'
   035   29    1D    GS  (group separator)       135   93    5D    ]
   036   30    1E    RS  (record separator)      136   94    5E    ^
   037   31    1F    US  (unit separator)        137   95    5F    _

Так, например, GS был бы Ctrl + ] , и FS должен быть Ctrl + \.

Однако существует выгода. Ctrl + \, и немногие другие, будет прерван терминалом.

существует однако намного лучший путь. Можно отправить все команды при помощи оболочки, встроенной echo -e со строкой \x??, где ?? корректный шестнадцатеричный код (слева от названия кода управления в приведенной выше таблице). Этой обратной косой черты должны будут также оставить из оболочки.

можно также постараться не отправлять новую строку при помощи echo -ne.

Поэтому снова для FS, для отправки команды "FS p (print NV bit image)" Вы могли ввести:

#          FS p
echo -ne \\x1cp > /dev/lp0

или выходящий с кавычками вместо другой обратной косой черты:

echo -ne '\x1cp' > /dev/lp0
1
ответ дан 7 December 2019 в 15:47

Другие вопросы по тегам:

Похожие вопросы: