Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
11-1267379542
tippa
2010-02-28 20:52
2018.09.16
в Memo влазит только 29998 байт текста


2-1469453166
Raisa
2016-07-25 16:26
2018.09.16
POS Принтер


2-1470486053
Денис11998833
2016-08-06 15:20
2018.09.16
Инициализация значений компонента


15-1474880632
Кто б сомневался
2016-09-26 12:03
2018.09.16
Как принять сообщение с WhatsApp?


2-1470299345
novichoks
2016-08-04 11:29
2018.09.16
StretchBlt





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский