Форум: "Начинающим";
Текущий архив: 2018.09.16;
Скачать: [xml.tar.bz2];
ВнизPOS Принтер Найти похожие ветки
← →
Kilkennycat © (2016-08-04 01:30) [40]
> Германн © (04.08.16 01:02) [37]
> Raisa (27.07.16 00:27) [16]
В списке принтеров появился. Попробовала печать из блокнота. Напечатал текст из блокнота на двух метрах бумаги.
но это под управлением драйвера.
← →
DayGaykin © (2016-08-04 13:22) [41]
> Kilkennycat © (04.08.16 01:23) [39]
> и я глянул, дефолтная скорость для него 19200, а Вы ставите
> 9600, flowcontrol по-умолчанию DTR\DSR а у Вас в программе
> по флагу 13...
Можно, кстати, после драйвера или тестовой программы подсмотреть какие настройки остались. Я так делал.
> Kilkennycat © (04.08.16 00:59) [36]
>
> > Ошибка имеется при попытке послать на принтер команду
> печати
> > символа и отреза бумаги?
>
> это вопрос? или сообщается какая-то ошибка? если второе,
> то какая?
Насколько я помню, принтер весьма молчалив. Если только по дополнительным проводам.
← →
Kilkennycat © (2016-08-04 15:53) [42]
> принтер весьма молчалив
еще какой молчун. Просто ошибка не принтера может быть, мож программа вопит.
← →
Raisa (2016-08-05 00:30) [43]
> DayGaykin © (04.08.16 00:13) [35]
> Принтер не реагирует вообще ни на что или только на специальные
> команды?
Вариантов два:
1. Программа висит после посылки некоторых команд.
2. Принтер не реагирует, то есть делает вид, что не было никаких команд.
← →
Денис11998833 (2016-08-06 15:50) [44]Вот рабочий пример работы с сканером штрих кодов через COM. Когда-то ещё писал на базе этого кода обмен с Citizen S2000, но обыскал всё так и не нашёл куда пример завалился(..
unit uScanThread;
interface
uses
Windows, Classes, Messages, Dialogs, SysUtils, MyUtils, UITypes;
type
TScannerOnReadDataEvent = function(ReadData: string): string of object;
TScanThread = class(TThread)
public
private
{ Private declarations }
PH: THandle;
Msg1: String;
ComData: AnsiString;
nToRead: Cardinal;
nRead: Cardinal;
ComStat: TComStat;
Errs: Dword;
Buff: array[0..1023] of AnsiChar;
procedure OnReadData;
procedure VCL_ShowMessage;
public
PortName: string;
PortBaudRate, PortParity, PortByteSize, PortStopBits: word;
protected
procedure Execute; override;
end;
Var
Nom:integer;
FormActive:string;
implementation
uses uMainForm;
procedure TScanThread.OnReadData;
var nComData: string;
begin
ComData:=Trim(ComData);
ShowMessage("Событие сканнера штрих-кода. Прочитано: "+ComData);
MainForm.ScannerOnReadData(ComData);
end;
procedure TScanThread.VCL_ShowMessage;
begin
ShowMessage(Msg1);
end;
procedure TScanThread.Execute;
Var
DCB:TDCB;
CommTimeouts:TCommTimeouts;
begin
PH:=Windows.CreateFile(PChar("\\.\"+PortName), GENERIC_READ,
FILE_SHARE_READ,
nil, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, 0);
if (PH=INVALID_HANDLE_VALUE) then
begin
Msg1:="Невозможно открыть порт сканера: "+PortName+#10#13+SysErrorMessage(GetLastError);
Synchronize(VCL_ShowMessage);
end;
GetCommState(PH, DCB);
DCB.BaudRate:=PortBaudRate;
DCB.Parity:=PortParity;
DCB.ByteSize:=PortByteSize;
DCB.StopBits:=PortStopBits;
SetCommState(PH, DCB);
GetCommTimeouts(PH, CommTimeouts);
CommTimeouts.ReadIntervalTimeout :=MAXDWORD;
CommTimeouts.ReadTotalTimeoutMultiplier := 0;
CommTimeouts.ReadTotalTimeoutConstant := 0;
CommTimeouts.WriteTotalTimeoutMultiplier := 0;
CommTimeouts.WriteTotalTimeoutConstant := 0;
SetCommTimeouts(PH, CommTimeouts);
repeat
if Terminated then Break;
Sleep(500);
if Terminated then Break;
ClearCommError(PH,Errs,@ComStat);
nToRead:=ComStat.cbInQue;
if nToRead=0 then Continue;
ReadFile(PH,Buff,SizeOf(Buff),nRead,nil);
ComData:=Trim(String(Buff));
FillChar(Buff, SizeOf(Buff), #0);
if Terminated then Break;
Synchronize(OnReadData);
until (Terminated);
CloseHandle(PH);
end;
end.
Советую начать с опроса. Отправить что типа:
$1D$49
В конце не забыть перевод строки. Эскейп символ для него - перевод строки.
http://www.sensis.ru/files/PPU-700_700IICMD110E.pdf
$1D$49 - команда "GS I n"
← →
Денис11998833 (2016-08-06 15:57) [45]Так же можно отправить команду тестовой печати "GS ( A pL pH n m", если сомневаетесь в правильности кода/проводов/настроек принтера для приёма.
Если принтер зажужжит, напечатает инфу о себе, значит данные в принтер уходят нормально, что-то с приёмом данных от принтера, а это уже половина проблемы.
← →
Kilkennycat © (2016-08-06 17:13) [46]
> отправить команду тестовой печати "GS ( A pL pH n m", если
> сомневаетесь в правильности кода/проводов/настроек принтера
> для приёма
волшебство
← →
Денис11998833 (2016-08-06 20:57) [47]А в чем вы здесь волшебство узрели?
← →
Kilkennycat © (2016-08-07 01:19) [48]
> Денис11998833 (06.08.16 20:57) [47]
В том, что тестовая печать - это тест принтера, когда всё остальное не вызывает сомнений, а не наоборот. Когда наоборот, пробуют запросить принтер че-нить ответить, например, версию прошивки.
Чтобы принтер зажужжал, достаточно послать аски-код любой цифры.
> что-то с приёмом данных от принтера,
это ваще тут как бэ пофиг. Как и пример работы с устройством, которое посылает данные в комп, а не наоборот.
Ну и "вы" в данном случае надо с большой буквы, или ваще не писать.
← →
Игорь Шевченко © (2016-08-07 10:48) [49]
> Ну и "вы" в данном случае надо с большой буквы, или ваще
> не писать.
Еще одна жертва неграмостности, блин. Учи русский!
← →
Raisa (2016-08-10 01:09) [50]Принтер заработал.
Без провода USB принтер работает.
Спасибо всем.
Благодаря приведенному ниже сообщению я исправила скорость на 19200, и принтер стал печатать.
> Kilkennycat © (04.08.16 01:23) [39]
> и я глянул, дефолтная скорость для него 19200, а Вы ставите
> 9600, flowcontrol по-умолчанию DTR\DSR а у Вас в программе
> по флагу 13...
Больше ничего не меняла, так как не знаю, что и на что надо менять. Флаг 13 так и остался.
>
> Денис11998833 (06.08.16 15:50) [44]
Спасибо за выложенный кусок программы. Не исключено, что может пригодиться.
← →
Kilkennycat © (2016-08-12 00:41) [51]
> Raisa (10.08.16 01:09) [50]
> Принтер заработал.
Ура :)
Вы - молодец, добились всё-таки результата.
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2018.09.16;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.004 c