Sha256: c627a9cfd279d4cc8f0fbc6de4a1597bf48498840049cad57e70ecec93df5818
Contents?: true
Size: 1.74 KB
Versions: 1
Compression:
Stored size: 1.74 KB
Contents
module Extface module Driver::Epson::Fiscal STX = 0x02 ETX = 0x03 SEP = 0x1c DC2 = 0x12 DC4 = 0x14 NAK = 0x15 module Control STATUS_IF = 0x38 X_Z_REPORTS = 0x39 FISC_MEM_REPORT_DATE = 0x3a FISC_MEM_REPORT = 0x3b end module Vouchers OPEN_FISCAL_VOUCHER = 0x40 PRINT_FISCAL_TEXT = 0x41 PRINT_FISCAL_ARTICLE = 0x42 SUBTOTAL_FISCAL = 0x43 FISCAL_VOUCHER = 0x44 # pay / cancel / discount in CLOSE_FISCAL_VOUCHER = 0x45 end module NonFiscal OPEN_NON_FISCAL_DOC = 0x48 PRINT_NON_FISCAL_TEXT = 0x49 CLOSE_NON_FISCAL_DOC = 0x4a end module Printer CUT_PAPER = 0x4b ADVANCE_PAPER = 0x50 ACTIVATE_SLIP = 0xa0 #TMU950, TMU675 DISABLE_SLIP = 0xa1 FORMAT_CHECKS = 0xaa FORMAT_ENDOSEMENT = 0xab end module General SET_DATE_HOUR = 0x58 GET_DATE_HOUR = 0x59 HEADED = 0x5d FOOT_OF_PAGE = 0x5e OPEN_DRAWER_1 = 0x7b OPEN_DRAWER_2 = 0x7c end def build_packet(cmd, fields = []) String.new.tap() do |frame| frame << STX frame << sequence_number frame << cmd fields.each do |field| frame << SEP frame << field end frame << ETX frame << bcc(frame) end end private def bcc(buffer) sum = 0 buffer.each_byte do |b| sum += b end sum.to_s(16).rjust(4, '0') end def sequence_number(increment = true) @seq ||= 0x20 @seq += 1 if increment @seq = 0x20 if @seq == 0x7f @seq end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
extface-0.1.8 | app/models/extface/driver/epson/fiscal.rb |