Code Monkey home page Code Monkey logo

icecash's Introduction

Новости:
Скачать веб оснастку с драйвером и сервером драйвера можно тут http://icecash.ru:8181/dIceWWW.tar.bz2
Скрипты создания mysql таблиц тут http://icecash.ru:8181/dIceMysql.tar.bz2
Образ диска установщика кассы на debian 6 http://icecash.ru:8181/IceCash.iso
[email protected] 09/06/2015

IceCash v 3.014
Драйвер штрих-м и сервер для этого драйвера.
Драйвер я немного дописал.


Это давно не обновлялось:
-----------------------------------------------------------------
Здесь вы найдете:
1. Драйвер для штрих-М
2.Сервер этого драйвера для управления фискальником и кассой.
3.php оснастка для рабочего места кассира
4.клиент для автоматического обмена прайсами и обновления программы.

ФРК управляется драйвером kkmdrv.KKM через объект frk.frk.
Сам frk помещается в демон dIceCash и там инициализируется.
В dIceCash также помещается объект dbIce - база данных mysql (транзакции, прайс, настройки) и сокетный клиент для ограниченного 
(в данном случае одного) количества активных пользователей.

Для тестов работы сервера и ФРК можно использовать сокетного клиента cIceCash, предварительно набрав все команды в текстовый файл:
  Команда должна иметь вид: <Номер кассы>;<объект назначения>;<команда>;<параметр1>;<параметр2>,...
  Объекты назначения: db - база данных, frk - фискальник, frkr - фискальник (запросы без результата), self - собственные.
    db   - запросы к базе данных (найти товар по коду, найти дисконтную карту, провести транзакцию скидки)
    frk  - запросы к ФРК, они направляются напрямую в объект frk через метод parsingCmd, при этом необходимые транзакции пишутся в базу данных автоматически
    frkr - запросы на получение номера текущего чека, статуса объекта frk
    self - изменение переменной, отвечающей за режим работы без ФРК, а также команды загрузки-выгрузки обменных файлов в формате Штрих-М.

  Для запросов frk, пересылается клиенту ответ от фискальника (0 - операция прошла успешно, err - ошибка фискальника)
  ПРИМЕР:
   echo "1;frk;connect;/dev/ttyS0;115200" >txt
   echo "1;frk;disconnect" >>txt
   ./dIceCash.py &
   cat txt | ./cIceCash.py 

Можно использовать просто telnet (только в этом случае будет действовать ограничение на один открытый коннект, до тех пор пока вы не отключитесь):
  ПРИМЕР:
    telnet localhost 7171
    1;frk;connect;/dev/ttyS0;115200

Таким образом можно управлять фискальником через сеть, посредством сервера dIceCash. Может у кого возникнет желание написать сетевого консольного клиента?
Также можно подключить несколько клиентов, если это необходимо к одному фискальнику через демон dIceCash. 
В этом случае, образуется очередь подключения, так как есть ограничение на количество активных клиентов. Клиент же должен сначала подготовить весь чек, 
затем обратится к демону и дождавшись своей очереди, соединится и напечатать весь чек. Затем отсоединиться и освободить очередь. 
Ожидание очереди происходит автоматически, если пользоваться клиентом cIcecCash.

В данном случае используется WEB клиент (PHP на стороне сервера) для взаимодействия с сервером dIceCash.


1. Базовые исходники kkmdrv.py и надстройка frk.py
-------------------------------------------------------------------------------
В основе работы с ФРК ШТРИХ-М лежит написанный объект-драйвер неким Dmitry Shamov <[email protected]>, взятый отсюда: http://sourceforge.net/projects/pyshtrih/.
Использовался только файл "kkmdrv.py" версии 1.0.4. В драйвер были добавлены некоторые, функции, возможно автор внесет их в новую версию. 

Описание драйвера:
Для удобства, был создан файл frk.py и одноименный объект, который включает в себя базовый объект kkmdrv.KKM.
frk
__init__ 
    только задает начальные свойства (пароли, порт, скорость порта)
connect 
    создает объект KKM, открывает порт, опрашивает регистратор.
disconnect
    закрывает порт.

Все используемые методы объекта KKM вынесены в объекте frk и помещены в обработку исключений. В некоторых методах сокращены параметры для удобства (setDate setTime ...)
Добавлены методы в базовый драйвер и вынесены в frk:
cut - отрезка чека
renull - технологическое обнуление
open_box - открытие ящика
writesets - запись трёх настроек ФРК (автообнуление наличности, автоотрезка чека, автоокрытие ящика)
writesets_text - запись трёх строк в заголовке чека (12,13,14 строка в настройках текста в чеке)

frk также содержит метод parsingCmd, который получает универсальные параметры для использования собственных методов.
Таким образом с ФРК можно работать например так:
D=frk(kkmdrv.DEFAULT_PASSWORD,kkmdrv.DEFAULT_ADM_PASSWORD,'/dev/ttyS0',115200)
D.connect()
D.writesets(1,1,1)
D.openCheck(0)
D.Sale(2,20,'PIVO ZVERSKOE')
D.closeCheck(100,10,20)
D.disconnect

Или так:
D=frk(kkmdrv.DEFAULT_PASSWORD,kkmdrv.DEFAULT_ADM_PASSWORD,'/dev/ttyS0',115200)
D.connect()
D.parsingCmd('open_check',[0])
D.parsingCmd('sale',[float(1),float(20.5),"PIVASIK"])
D.parsingCmd('close_check',[float(100),float(10),float(20)])



icecash's People

Contributors

redeyser avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.