Имя: Пароль:
1C
 
Загрузка BMP в память принтера TSPL
0 travelekb
 
26.10.24
09:24
Добрый день.
Имею TSPL USB-принтер этикеток Gprinter GP-2120TU, прошу помощи в следующем вопросе.
Требуется загрузить в память принтера простейшее статичное BMP изображение, чтобы затем выводить его на печать в этикетке.

Принтер на инструкциях TSPL, в описании сказано что имеет 60К Flash памяти и может загружать в память BMP картинки:
http://joxi.ru/GrqBpauk4aG0mz

Через инструкции TSPL также имеется поддержка загрузки изображения в память принтера:

Download a data file:
DOWNLOAD [n,] “FILENAME”,DATA SIZE,DATA CONTENT

1. Подключаю принтер через net use на LPT1
net use LPT1: \\MyCompuer\MyPrinter
--- подключение успешно, принтер виден через new view

2. Загружаю файл картинки
>>COPY CON LPT1
DOWNLOAD F,"GP.BMP"
Скопировано файлов: 1.

3. Пытаюсь вывести на печать
>>COPY CON LPT1
SIZE 56 mm, 80 mm
GAP 2 mm, 0 mm
CLS
PUTBMP 10,10,"GP.BMP"
PRINT 1,1
^Z
Скопировано файлов: 1.

Принтер печатает пустую этикетку. Измучался с ним уже несколько дней.
В поддержке производителя принтера - глухо, отвечают раз в день и грузят вопросами "на чем разрабатываете", "какой язык пр. используете" и т.д.
Прошу помощи, может кто-то сталкивался с аналогичным вопросом.
1 Garykom
 
26.10.24
11:40
(0)
2. Загружаю файл картинки
>>COPY CON LPT1
DOWNLOAD F,"GP.BMP"
Скопировано файлов: 1.

вот это не понял
обычно картинки грузят через софт принтера
2 Garykom
 
26.10.24
11:45
3 travelekb
 
26.10.24
11:45
(1) у принтера есть только драйвер под Winidows и нет никакого софта более. Они отправили мне документацию, там загрузка производится следующим образом, как понимаю просто копирование BMP в порт с указанием Flash или DRAM памяти для сохранения.
4 Garykom
 
26.10.24
11:49
(2)+ и файл команд перед копированием в принтер картинки неправильный
надо:
1.
COPY CON LPT1
DOWNLOAD "GP.BMP",<размер картинки в байтах>,^Z

а затем уже копировать в порт саму картинку, обязательно указав признак двоичного файла /b
2.
COPY GP.BMP/B LPT1
5 Garykom
 
26.10.24
11:50
кстати вместо COPY CON LPT1 и ввода с консоли
можно команды засунуть в текстовый файл в нужной кодировке
и делать
COPY <имя файла команд> LPT1
6 Garykom
 
26.10.24
11:58
(3) параметр n (Flash или DRAM) необязательный
в отличие от размера DATA SIZE
вместо DATA CONTENT после "," отправляют признак конца файла ^Z
следующая команда COPY фактически отправляет этот контент
7 travelekb
 
26.10.24
12:06
(4) как узнать правильный размер картинки? В мануале написано "size of data file without header". Если открыть BMP файл в HEX редакторе, там есть BM в самом начале - я так понимаю это заголовок. Его вырезать? Указывать размер нужно без него?
8 Garykom
 
26.10.24
12:10
(7) эмм
ну как бы команда dir в dos ))
в примере все есть поищи на скринах 12430
9 travelekb
 
26.10.24
12:11
Я совсем не понимаю формат, сказано:

DOWNLOAD [n,]“FILENAME”, DATA SIZE, DATA CONTENT…where

при этом в секции описания нет ни слова про DATA CONTENT. Что это, откуда брать... Раз не в квадратных скобках - значит обязательный параметр.

пример команды будто вообще из "другой оперы"
DOWNLOAD “DATA”,20,COMPUTER<Enter>
2001<Enter>
21<Enter>
10 travelekb
 
26.10.24
12:12
(8) неправильно выразился. Я понимаю как узнать размер файла, я не понимаю нужно ли вырезать BMP заголовок из файла, т.к. в мануале четко написано "size of data file without header"
11 Garykom
 
26.10.24
12:14
(9) читать (6) до понимания/просветления
и медитировать на скрины (черные) (2) и (3)

несколько (в данном случае 2) команд СOPY подряд (4) составляют одну команду из мануала (зеленоватый фон) (3)
12 Garykom
 
26.10.24
12:13
(10) не надо
13 Garykom
 
26.10.24
12:18
суть команды DOWNLOAD что можно составить всего один текстово-бинарный файл
в котором целиком вся команда, включая DATA CONTENT

и отправить его в порт принтера через COPY c /B
в этом случае размер DATA SIZE не целиком всего файла команды (включая картинку DATA CONTENT) а только секции DATA CONTENT
14 Garykom
 
26.10.24
12:23
(9)
пример команды будто вообще из "другой оперы"
DOWNLOAD “DATA”,20,COMPUTER<Enter>
2001<Enter>
21<Enter>


этот пример можно переписать в таком виде
DOWNLOAD "DATA",20,COMPUTER\n2001\n21\n...

где \n это символ с кодом 13 (Enter)
а всего длина 20 символов-байт

в данном случае вместо бинарной картинки грузят текстовое содержимое многострочное с именем DATA
которое затем можно разом выводить через соответствующую команду
15 travelekb
 
26.10.24
12:21
(13) сейчас перезагружусь (сам и компьютер) и буду пробовать с "чистого листа" заново
16 Garykom
 
26.10.24
12:31
(14)+ хе прикольно оно .bas программы умеет загруженные через DOWNLOAD исполнять
17 Garykom
 
26.10.24
12:33
тут все простейше
только нужны общие знания о компах и DOS
18 Garykom
 
26.10.24
12:34
(16)+ можно классную шутку запрограммить
что на каждой этикетке
или после нее на следующей
будет само выводить после запятой "бля" или неприличную картинку :)
19 travelekb
 
26.10.24
12:36
(18) тут лишь бы хоть что-то вывести сперва. Третий день бьюсь безуспешно.
20 travelekb
 
26.10.24
12:55
Проделал все по шагам заново

1. Инициализируем принтер на LPT1, ОК

2. Узнали размер файла - 3678, ОК

3. Отправляем команды на принтер - тишина, ничего не происходит и не печатается

на самом деле за эти три дня я каких только комбинаций не перепробовал, в том числе и с размером файла.
21 Garykom
 
26.10.24
13:34
(20) а если F, добавить в первой команде тоже?
DOWNLOAD F,"GP.BMP",3678,^Z
может объема DRAM не хватает

и совсем нет реакции даже пустую этикетку не выводит?
22 Garykom
 
26.10.24
13:34
bmp точно подходящая монохромная?
23 Злоп
 
26.10.24
13:36
А просто как Windows принтер юзать - не вариант?
24 Garykom
 
26.10.24
13:40
и самый большой прикол может быть в
1. Подключаю принтер через net use на LPT1
net use LPT1: \\MyCompuer\MyPrinter


принтер и мануал рассчитаны что он подключен напрямую в порт (com или lpt) компа
а не некая проброска по сети, где хз что происходит
25 Garykom
 
26.10.24
13:44
(23) через Seagull драйвера вин-принтера типо?
https://www.seagullscientific.com/downloads/printer-drivers/gprinter-gp-2120tu/
26 travelekb
 
26.10.24
14:06
(21) если добавить F, как вы написали - печатает пустую этикетку. Видно что, что-то загружается, но выводит пустую на печать.

Следом вывел через TEXT инструкцию для проверки печати в порт  - печатает все хорошо.
27 travelekb
 
26.10.24
14:11
почему-то не отрабатывает команда для вывода всех загруженных файлов:

>>COPY CON LPT1
FILES
^Z

просто ничего не происходит на принтере
28 Garykom
 
26.10.24
14:27
(27) попробуй текстовый файлик закинуть вместо двоичного
и вывести список
есть подозрение на ограничение размера файлов в т.ч. картинок
29 travelekb
 
26.10.24
14:42
(28) УРА! ВЗЛЕТЕЛО!
Garykom, дай бог вам здоровья и всего самого хорошего! Без вашей помощи еще бы 3 дня сидел.

В итоге:

1. Работает только при DOWNLOAD F

2. BMP файл обязательно должен быть монохромным (у меня было 256 bit, как paint по умолчанию).

Остался последний вопрос - при параметре DOWNLOAD F, должен сохранять картинку в постоянной Flash памяти. Но при перезагрузке принтера картинку не находит
>>COPY CON LPT1
SIZE 56 mm, 80 mm
GAP 2 mm, 0 mm
CLS
PUTBMP 50,10,"GP.BMP"
PRINT 1,1
^Z

выводит пустую этикетку.

Если загрузить изображение заново через DOWNLOAD - печатает.
30 travelekb
 
26.10.24
16:55
Мне кажется проблема места сохранения - в самом принтере.
На складе есть еще один принтер этого же производителя, модель GP-3120TUC, попробовал сохранение на нем - все сохраняется во flash и доступно после перезагрузки принтера.

Более того, при SELFTEST печатается содержимое памяти, где совершенно четко видно мой загруженный файл DELPACK.BMP (рис.1). На тестовом же принтере модели GP-2120TU тестовая страница выглядит совсем по другому и не печатает содержимое памяти (рис.2). Также смущает надпись в  тесте "Files is not support", хотя производителем заявляется 60К Flash памяти и возможность сохранения изображений в памяти.