Alex_Golubev 0 22 июня, 2017 Опубликовано 22 июня, 2017 · Жалоба Привет. Так и не понял в какой раздел писать решил сюда. В общем проблема, чековый принтер MPRINT G58 не хочет печатать кириллицу, латиницу печатает. Подключил принтер к микроконтроллеру stm32f4. Настроил UART, сделал преобразователь URAT->RS232. Отправляю ABCDEFabcdef все работает печатает норм. Ну думаю сейчас Русский язык заработает и ваще круто.Но нет пишет всякие непонятные символы вместо букв. Может кто решал данную проблему может подсказать какая кодировка, и можно ли исправить на cp1251? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 22 июня, 2017 Опубликовано 22 июня, 2017 · Жалоба . . . Может кто решал данную проблему может подсказать какая кодировка, и можно ли исправить на cp1251? С принетрами дела не имел. Но выводом аналогичен выводу на симв. LCD. 1. Не факт, что в принтере прошита кирилица. И если прошита, то раскладка соотв-ет Cp1251 или 866. Кирилические символы могут быть раскиданы по другим кодам. (для обеспечения большей универсальности) Соответственно печатать кирилицей можно, пропуская выводимую инф. через перекодировочную таблицу (256 байт) 2. Кодовая таблица может включаться или дип-свитчиком, или подачей упр. команд ESC. 3. Чтоб проверить - зашлите последовательно коды от 0 до 255 в принтер (управляющие символы 0x0D 0x0A 0x07 0x1C итд не выдавать) 4. Наличие или отсутствие возможности установки кодовой таблицы проверяется по док-ии на Ваш девайс (в сборе) или по наименованиям микросхом его контроллера. (?) доступна ли док. на девайс ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megajohn 7 22 июня, 2017 Опубликовано 22 июня, 2017 · Жалоба ну вы бы больше рассказали публике, что там за протокол Datamax epl2 ESC-POS SLCS ? далее, можете сниффером посмотреть обмен и увидеть что за команды идут с компового драйвера Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex_Golubev 0 23 июня, 2017 Опубликовано 23 июня, 2017 (изменено) · Жалоба В общем полазив по просторам интернета нашел документ с командами к принтеру меркурий - 119. Попробовал пару простых команд протяжка бумаги и т.д. Понял, что команды подходят к g58. После начал работать с кодировками. В доки есть: [Наименование] Выбрать таблицу кодов символа [Формат] ASCII ESC t n Шестнадцатериный 1B 74 n Десятичный 27 116 n [Диапазон] [По умолчанию] n = 0 [Принтеры, не выполняющие эту команду] Нет [Описание] Выбирает страницу n из таблицы кодов символа как далее: n Таблица кодов символа 0 Страница 0 [PC437 (США, Стандарт. Европ)] 21 Кириллица II (866) 44 Кириллица I (855) 50 Windows Греческий (Win-1253) 52 Windows Кириллица (Win-1251) [Примечание] ■ Буквенно-цифровые символы (20H (десятич. 32) до 7FH (десятич.127)) одинаковые для каждой страницы. Расширенные символы (80H (десятич.128) до FFH (десятич.255)) разные для каждой страницы. [Изменения в зависимости от модели] Нет Отправил команду 1b 74 52 принтер съел. После посмотрел таблицу Win-1251. Русскому символу 'А' соответствует код c0. Отправил его, а получил 'А' с тильдой. В доки есть еще команда: Выбрать международный набор символов но трогать не стал. doc_program_g58.doc Изменено 23 июня, 2017 пользователем Alex_Golubev Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 23 июня, 2017 Опубликовано 23 июня, 2017 · Жалоба Краткий исторический экскурс. Есть спецификация от Epson на ESC-команды (внучка спецификации на матричные принтеры из прошлого века). Там базовый набор - промотать бумагу, установить выравнивание влево-вправо, подчёркивание-италик и т.д. Большинство вендоров этот набор поддерживает, плюс имеет свой собственный набор команд работы с графикой, мильёном разных штрих-кодов и проч. Стандартной команды "выбрать кодовую страницу" не существует; более того, возможно, в Вашем случае не существует и самой 1251-й страницы, а можно пользоваться только user-defined шрифтами, которые надо отдельно загрузить в eeprom. Команды загрузки шрифтов у каждого бренда (да что уж там, у каждой линейки) будут свои, ни с чем не совместимые. Сниффить родной драйвер можно, но с большой вероятностью он переводит принтер в графический режим и дальше гонит туда растеризованную картинку. Писишному программисту так удобнее :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex_Golubev 0 23 июня, 2017 Опубликовано 23 июня, 2017 · Жалоба Да вроде догнал как печатать русские буквы. По крайней мере печатаю. Выманил Доку у тех. поддержки, но походу в ней не все команды. Не могу понять как подчеркнуть. В доки написано: [Name] Turn underline mode on/off [Format] ASCII ESC − n Hex 1B 2D n Decimal 27 45 n [Range] 0 ≤ n ≤ 2, 48 ≤ n ≤ 50 [Default] n = 0 [Description] • Turns underline mode on or off. стр.17. Это получается, что число n дробное? TP801_TP805_TP806__Programming_Manual_Rev1.6.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 26 июня, 2017 Опубликовано 26 июня, 2017 · Жалоба Это получается, что для совместимости (с чем, я никогда не задумывался) команды 0x1B 0x2D 0x01 и 0x1B 0x2D 0x31 абсолютно идентичны. Там много таких. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться