SV-SoftWare
Советы
по
программированию
и
подключению
кассовых
аппаратов и
сканеров
штрих кодов к
PC.
Многие
фирмы
продают для
различных
кассовых
аппаратов
свои
драйвера,
некоторые
драйвера
идут вместе с
прикладной
программой -
например в 1С
есть
драйвера на
некоторые
модели
кассовых
аппаратов и
сканеров
штрих кодов.
Хотя многие
программисты
пишут свои
программы и
возникают
вопросы по
поводу
программного
и
аппаратного
подключения.
Попробую
ответить на
некоторые
вопросы и
привести
немного кода
используемого
для
написания
софта.
При
использовании
при
подключении
через COM port есть
особенности
его
использования
.
Распайка
кабеля при 9-pin
разьёме Com port's PC
Пример
открытия Com
порта сканер штрихкодов обработка
событий используя Win API
Управляющие
коды и
последовательности
кодов на
некоторые
кассовые
аппараты.
Что
делать если
нет
документации
по
управляющим
кодам на
кассовый
аппарат.
Подключение
сканера
штрих-кодов.
Пример
программы
на кассовый
аппарат и
сканер
штрих-кодов.
Ссылки на
компоненты
для
обработки и
печати
штрих-кодов.
Обычно схема
подключения дана в паспорте аппарата.Приведеная
схема используется с ККМ Меркурий 111Ф
Открытие сканер штрихкодов обработка Com
порта.....
HANDLE hCom;
OVERLAPPED o;
BOOL fSuccess;
DWORD dwEvtMask;
hCom = CreateFile("COM1",
GENERIC_READ | GENERIC_WRITE,
0, /* exclusive access */
NULL, /* no security attrs */
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
NULL
);
if (hCom == INVALID_HANDLE_VALUE) {
/* Deal with the error. */
}
/* Set the event mask. */
fSuccess = SetCommMask(hCom, EV_CTS | EV_DSR);
if (!fSuccess) {
/* deal with error */
}
/* Create an event object for use in WaitCommEvent. */
o.hEvent = CreateEvent(NULL, /* no security attributes */
FALSE, /* auto reset event */
FALSE, /* not signaled */
NULL /* no name */
);
assert(o.hEvent);
if (WaitCommEvent(hCom, &dwEvtMask, &o)) {
if (dwEvtMask & EV_DSR) {
/*
* . . .
*/
}
if (dwEvtMask & EV_CTS) {
/*
* . . .
*/
}
}
The following example opens a handle to COM1 and fills in a DCB structure with the current configuration. The DCB structure is then modified and used to reconfigure the device.
DCB dcb;
HANDLE hCom;
DWORD dwError;
BOOL fSuccess;
hCom = CreateFile("COM1",
GENERIC_READ | GENERIC_WRITE,
0, /* comm devices must be opened w/exclusive-access */
NULL, /* no security attrs */
OPEN_EXISTING, /* comm devices must use OPEN_EXISTING */
0, /* not overlapped I/O */
NULL /* hTemplate must be NULL for comm devices */
);
if (hCom == INVALID_HANDLE_VALUE) {
dwError = GetLastError();
/* handle error */
}
/*
* Omit the call to SetupComm to use the default queue sizes.
* Get the current configuration.
*/
fSuccess = GetCommState(hCom, &dcb);
if (!fSuccess) {
/* Handle the error. *
}
/* Fill in the DCB: baud=9600, 8 data bits, no parity, 1 stop bit. */
dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
fSuccess = SetCommState(hCom, &dcb);
if (!fSuccess) {
/* Handle the error. *
}
Following are the functions used with communications devices.
BuildCommDCB BuildCommDCBAndTimeouts
ClearCommBreak
ClearCommError CommConfigDialog
DeviceIoControl
EscapeCommFunction GetCommConfig
GetCommMask
GetCommModemStatus GetCommProperties
GetCommState
GetCommTimeouts GetDefaultCommConfig
PurgeComm
SetCommBreak SetCommConfig
SetCommMask
SetCommState SetCommTimeouts
SetDefaultCommConfig
SetupComm
TransmitCommChar
WaitCommEvent
Более подробно описано в
Help-е Win32 Programmer's Reference поставляемый вместе с
CBuilder or Delphi. Лучше конечно написать Vxd сканер штрихкодов её
использовать. Примеры написания Vxd Вы
можете прочитать на дисках поставляемых с
журналом Компьютер пресс за прошлый год.
Где в инете лежит не знаю. Можно
воспользоваться сканер штрихкодов компонентами сторонних
разработчиков, тем более что они в основном
- бесплатны сканер штрихкодов поставляются с исходным
текстом.
Управляющие
кодовые последовательности для кассовых
аппаратов
Меркурий
Samsung
Test program for
Mercury 111F
Внимание!
Автор этой
статьи не несёт ответственности за
точность предоставляемой информации по
управляющим кодам на кассовые аппараты! Вы
можете их использовать только на свой страх
и риск!
Что
делать если
нет
документации
по
управляющим
кодам на
кассовый
аппарат.
В этой ситуации
есть 3 метода решения проблемы: Первый и
самый банальный сканер штрихкодов простой запросить
документацию у производителя сканер штрихкодов как правило
ни чего не получить! Второй сканер штрихкодов порой более
достоверный в информации - это взять
тестовую программу которая поставляется с
аппаратом , загрузить монитор портов и
просмотреть все команды которыми
обменивается аппарат с PC. Монитор портов
вы можете скачать по этой ссылке portmon98.zip .
Третий метод можно не описывать -
разбираться в программе аппарата - долго и
не у всех хватит квалификации.
При подключении
аппарата к PC - обратите внимание на скорость
обмена Com порта, некоторые аппараты
используют скорость 4800, другие 19200, даже
одна сканер штрихкодов тажа модель может использовать
разные скорости обмена - взависимости от
версии прошивки программы.
Подключение
сканера
штрих-кодов.
Подключение сканера
вообще не представляет сложности и
обработка его аналогична выше сказанному.
Для CBuilder and Delphi есть компоненты freeware
которыми вы можете воспользоваться .
Пример
программы
на кассовый
аппарат и
сканер
штрих-кодов.
example.zip
Ссылки на
компоненты
для
обработки и
печати
штрих-кодов.
1.
2.
Автор этой
страницы будет благодарен если Вы можете
поделиться информацией на другие кассовые
аппараты !
Страница
пока еще не до
конца сделана , так-что
смотрите её
позже!!
Home
26 Февраля 2002
@pochta.ru
@front.ru
@hotbox.ru
@land.ru
@pochtamt.ru
@rbcmail.ru
почта
разделыкострома жильелечение щитовидный железапекарняциклон батарейныйсканер штрихкодовпрограмма шифрованиеакриловый вставка вкладышэкг сервиссканер штрихкодов