comunika_gsm 0.1.26 → 0.1.27

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 717beda74b5fbfc2aa3d9707ad88405ebdb6d28d
4
- data.tar.gz: 7acc93a732ff29b6077efb438bc10ad489b66987
3
+ metadata.gz: 316087df89662febc0b11a4b79949a5a8ca07895
4
+ data.tar.gz: d91e4b5cef87d9adf91888b5b27317bc34bc712c
5
5
  SHA512:
6
- metadata.gz: e1fd2dd26aeab6e2c93a07a7c62091d0809810ab5301e0bc2cc79128ff8b34303a8ce15eb5b5d91231af5808476ca1ebbe37994967cf26aaa8dc68c3b8f6e07e
7
- data.tar.gz: 7249ecfa3de3561d2869d4894f1df7817be7b0fd71c758178ad45ecf1940ef88e53a099c7538ad17015a6e8725c4bf10a02628a045b881a9ac0259d0be2fb089
6
+ metadata.gz: 89d2dd57711efa2c42e1c5d9d61b914a79fd0767200747ed412c3b8cb648aaf0c4cdc5176fd3d6b12db7ada5d454ca385d067370b2686c7a90f9a52a8d7c2ded
7
+ data.tar.gz: 9f93f03e4e7e0c1f0988b9fc697390ea699148fa2f859ce45ffe95616f1947ef4c683e3444b4d51cb99945162fb1280db5ca296f869cceb061881ed23b2bb0ba
@@ -1,26 +1,27 @@
1
1
  module ComunikaGsm
2
2
  class GSM2
3
- attr_accessor :status, :imei, :iccid, :provider, :signal_level, :msgs
3
+ attr_accessor :status, :imei, :iccid, :provider, :signal_level, :busy, :last_send_at, :port, :debug
4
4
 
5
- def initialize(params = {})
5
+ def initialize(port,params = {})
6
6
  raise "Invalid params" if params.empty?
7
+ self.busy = false
7
8
 
8
9
  begin
9
- @@port = SerialPort.new("/dev/#{params[:port]}",19200,8,1, SerialPort::NONE)
10
- @@port.read_timeout = params[:read_timeout] || 150 ## Set timeout of command
10
+ self.port = SerialPort.new("/dev/#{port}",19200,8,1, SerialPort::NONE)
11
+ self.port.read_timeout = params[:read_timeout] || 150 ## Set timeout of command
11
12
 
12
- @@debug = params[:debug] || false
13
+ self.debug = params[:debug] || false
13
14
 
14
15
  res = cmd("ATE0\r\n") ## Set echo off
15
16
  if res.length > 0
16
17
  cmd("AT+CMGF=0\r\n") ## Set PDU mode
17
- @status = true
18
+ self.status = true
18
19
 
19
- if params[:load_settings]
20
- alpha(:imei)
21
- alpha(:iccid)
22
- alpha(:provider)
23
- alpha(:signal_level)
20
+ if params[:load_infos]
21
+ info("imei")
22
+ info("iccid")
23
+ info("provider")
24
+ info("signal_level")
24
25
  end
25
26
  else
26
27
  return @status = false
@@ -33,44 +34,45 @@ module ComunikaGsm
33
34
 
34
35
  def cmd(c)
35
36
  begin
36
- @@port.write(c)
37
+ self.port.write(c)
37
38
  normalize(c,wait)
38
39
  rescue => ex
39
40
  puts ex
40
- @status = false
41
- #close
41
+ self.status = false
42
+ close if self.port
42
43
  end
43
44
  end
44
45
 
45
46
  def wait
46
- buffer = @@port.read
47
- puts buffer if @@debug
48
- @@port.flush()
47
+ buffer = self.port.read
48
+ puts buffer if self.debug
49
+ self.port.flush()
49
50
  buffer
50
51
  end
51
52
 
52
53
  def close
53
- puts "Fechando conexão" if @@debug
54
- @@port.close if @@port
55
- @status = false
54
+ puts "Fechando conexão" if self.debug
55
+ self.port.close if self.port
56
+ self.status = false
56
57
  end
57
58
 
58
59
  def send_sms(num,msg,params = {})
59
- puts "-- Send message to #{num} -- msg #{msg}"
60
- if num.length == 0 || num.length < 11 || msg.length == 0
60
+ self.busy = true
61
+ puts "-- Send message to #{num} -- msg #{msg}" if self.debug
62
+ if num.length == 0 || num.length < 11 || num.length > 11 || msg.length == 0
61
63
  {id: nil, status: "ERROR", code: "600"}
62
64
  else
63
65
  ## GENERATE PDU TO MESSAGE ##
64
- pdu = PDU.encode(:number => "+55" + num, :message => msg, :smsc => params[:smsc])
66
+ pdu = PDU.encode("+55" + num, msg, :smsc => params[:smsc])
65
67
 
66
68
  cmd("AT+CMGS=#{pdu[:size]}\r")
67
69
  res = cmd("#{pdu[:pdu]}#{26.chr}")
68
70
 
69
- puts "--- Resultado do envio: #{res}" if @@debug
71
+ puts "--- Resultado do envio: #{res}" if self.debug
70
72
 
71
73
  sleep 3
72
- while res.to_s.length == 0
73
- puts "--- Esperando resultado envio: #{res}" if @@debug
74
+ while res.length == 0
75
+ puts "--- Esperando resultado envio: #{res}" if self.debug
74
76
  res = wait
75
77
  end
76
78
 
@@ -86,28 +88,34 @@ module ComunikaGsm
86
88
  id = nil
87
89
  end
88
90
 
91
+ self.busy = false
92
+ self.last_send_at = Time.now
89
93
  {:id => id, :code => code, :status => status}
90
94
  end
91
95
  end
92
96
 
93
97
  def messages
98
+ self.busy = true
94
99
  sms = cmd("AT+CMGL=4\r\n")
95
- @msgs = sms.scan(/\+CMGL\:\s*?(\d+),\s*?(\d+),.*?\,s*?(\d+)\r\n(.*)/)
100
+ msgs = sms.scan(/\+CMGL\:\s*?(\d+),\s*?(\d+),.*?\,s*?(\d+)\r\n(.*)/)
96
101
 
97
102
  ## IDS: 0 - ID, 1 -- ,2 - size, 3 - PDU
98
- @msgs.collect!{ |m| PDU::PDUDecode.new(connection: self, id: m[0], size: m[2], pdu: m[3].chomp).decode }# rescue nil
103
+ self.busy = false
104
+ msgs.collect!{ |m| PDU::PDUDecode.new(connection: self, id: m[0], size: m[2], pdu: m[3].chomp).decode }# rescue nil
99
105
  end
100
106
 
101
- def alpha(type)
107
+ def info(type)
102
108
  case type
103
- when :imei
104
- @imei = cmd("AT+CGSN\r\n")
105
- when :iccid
106
- @iccid = cmd("AT+CRSM=176,12258,0,0,10\r\n")
107
- when :provider
108
- @provider = cmd("AT+COPS?\r\n")
109
- when :signal_level
110
- @signal_level = cmd("AT+CSQ\r\n")
109
+ when "imei"
110
+ self.imei = cmd("AT+CGSN\r\n")
111
+ when "iccid"
112
+ self.iccid = cmd("AT+CRSM=176,12258,0,0,10\r\n")
113
+ when "provider"
114
+ self.provider = cmd("AT+COPS?\r\n")
115
+ when "signal_level"
116
+ self.signal_level = cmd("AT+CSQ\r\n")
117
+ when "port"
118
+ self.port
111
119
  else
112
120
  cmd("AT\r\n")
113
121
  end
@@ -1,10 +1,10 @@
1
1
  module ComunikaGsm
2
2
  module PDU
3
3
  include ComunikaGsm
4
- def self.encode(params)
5
- return unless params[:message]
6
- return unless params[:number]
7
- result = @@pdu_converter.call("stringToPDU",params[:message],params[:number],params[:smsc] || '',params[:ecoding] || 7,params[:sms_class] || 1,params[:valid],params[:deliver] || true,params[:valid_flag] || false)
4
+ def self.encode(num, message, params = {})
5
+ return unless message
6
+ return unless num
7
+ result = @@pdu_converter.call("stringToPDU",message,num,params[:smsc] || '',params[:ecoding] || 7,params[:sms_class] || 1,params[:valid],params[:deliver] || true,params[:valid_flag] || false)
8
8
  self.parse_json(result)
9
9
  end
10
10
 
@@ -1,3 +1,3 @@
1
1
  module ComunikaGsm
2
- VERSION = "0.1.26"
2
+ VERSION = "0.1.27"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: comunika_gsm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.26
4
+ version: 0.1.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jefferson Silva
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-30 00:00:00.000000000 Z
11
+ date: 2017-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler