сканер штрихкодов

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 почта разделы кострома жилье лечение щитовидный железа пекарня циклон батарейный сканер штрихкодов программа шифрование акриловый вставка вкладыш экг сервис сканер штрихкодов