class ComunikaGsm::PDU::PDUDecode

Attributes

connection[RW]
id[RW]
length[RW]
message[RW]
mlenght[RW]
mtype[W]
number[RW]
pdu[RW]
receipt_at[W]
sent_at[W]
size[RW]
sms_id[RW]
smsc[RW]
status[RW]
tp_dcs_popis[RW]
tp_pid[RW]
validity[RW]

Public Class Methods

new(params) click to toggle source
# File lib/comunika_gsm/pdu.rb, line 24
def initialize(params)
  @id = params[:id]; @size = params[:size]; @pdu = params[:pdu]; @mtype = params[:mtype]; @smsc = params[:smsc]
  @number = params[:number]; @sms_id = params[:sms_id]; @sent_at = params[:sent_at]; @discharge_at = params[:receipt_at]
  @status = params[:status]; @tp_pid = params[:tp_pid]; @tp_dcs_popis = params[:tp_dcs_popis]; @message = params[:message]
  @length = params[:mlength]; @validity = params[:validity]; @mtype = params[:mtype]
  @connection = params[:connection]
end

Public Instance Methods

decode() click to toggle source
# File lib/comunika_gsm/pdu.rb, line 32
def decode
  PDU.decode(self.pdu).each {|k,v| instance_variable_set("@#{k.to_s}",v)}
  self
end
delete() click to toggle source
# File lib/comunika_gsm/pdu.rb, line 62
def delete
  @connection.cmd("AT+CMGD=#{@id}\r\n")
end
mtype() click to toggle source
# File lib/comunika_gsm/pdu.rb, line 45
def mtype
  case @mtype
  when 'Receipt requested'
    'INCOMING'
  when 'Status Report'
    'REPORT'
  when 'Unknown Message'
    'REPORT'
  when 'Receive message'
    'INCOMING'
  when 'Data Header'
    'MULTIPART'
  else
    'UNKNOWN'
  end
end
receipt_at() click to toggle source
# File lib/comunika_gsm/pdu.rb, line 41
def receipt_at
  Time.parse(@receipt_at.sub(/(\d+)\D+(\d+)\D+(\d+)/, '\1/\2/20\3')).strftime('%Y/%m/%d %H:%M:%S') rescue nil
end
sent_at() click to toggle source
# File lib/comunika_gsm/pdu.rb, line 37
def sent_at
  Time.parse(@sent_at.sub(/(\d+)\D+(\d+)\D+(\d+)/, '\1/\2/20\3')).strftime('%Y/%m/%d %H:%M:%S') rescue nil
end