Module: Driver::Epson::Fiscal

Defined in:
app/models/extface/driver/epson/fiscal.rb

Defined Under Namespace

Modules: Control, General, NonFiscal, Printer, Vouchers Classes: Frame

Constant Summary collapse

STX =
0x02
ETX =
0x03
SEP =
0x1c
DC2 =
0x12
DC4 =
0x14
NAK =
0x15

Instance Method Summary collapse

Instance Method Details

#build_packet(cmd, fields = []) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'app/models/extface/driver/epson/fiscal.rb', line 56

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

#handle(buffer) ⇒ Object



46
47
48
49
50
51
52
53
54
# File 'app/models/extface/driver/epson/fiscal.rb', line 46

def handle(buffer)
  bytes_processed = 0
  if frame_match = buffer.match(/\x02.*\x03.{4}/n)
    frame_data = frame_match.to_s
    rpush frame_data
    bytes_processed = frame_match.pre_match.length + frame_data.length
  end
  return bytes_processed
end