comunika_gsm 0.1.14 → 0.1.15

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: d7b71d21aced1962e1255d937dcf8be013eba3b4
4
- data.tar.gz: 21210af97b88dee957a2afb2c3584965a93454db
3
+ metadata.gz: bb1b333cccb5acb38a35fb33bb91b1cdea85cef4
4
+ data.tar.gz: 9af089271d67cdf3eaffdff2800d699fb345df56
5
5
  SHA512:
6
- metadata.gz: 14861593cd7ef508a6a03df08a39190294d2b28d30d2c6d96458783c78bda5780df2b1d52ac2eba5504c7d5209693fc1e50751e9c6d1fc756e0ca9f2d5f9447a
7
- data.tar.gz: 5c90bc8be68e91ea4965aedebb55b9fa49ff46067a7b123cb95a9dbe6f2f2b343a41d2ba6b17488bb598bd9036fef95ef5af1dadc55aa3383bce592bf58b9503
6
+ metadata.gz: 9b7cf6ea9fcfd12abfc261c5273c66066afde4d8e6d10bbbd1e152b5abfcbd7aeac2cb1c465bd704ff31c4352af4706e37aa9aa2b2c1793524bcb11ad5f03172
7
+ data.tar.gz: 7b2ae64ab3ed30e426d9b10eee91dd45b4d3592f4248ff870ace40f659678d6b8e9e8e486548bcc8c609c421278ad5b1e36e0638297d873d863af4f0ca929a4d
@@ -1,54 +1,61 @@
1
1
  module ComunikaGsm
2
2
  class GSM2
3
- def initialize(options = {})
4
- begin
5
- @port = SerialPort.new("/dev/#{options[:port]}",19200,8,1, SerialPort::NONE)
6
- @port.read_timeout = 500
7
- @debug = options[:debug]
8
- @status = true
9
-
10
- ##cmd("ATE0\r\n")
11
- cmd("ATE0\r\n")
12
- #cmd("AT+CMGF=1\r\n")
13
- cmd("AT+CMGF=0\r\n")
14
-
3
+ include Celluloid
4
+ attr_accessor :status, :imei, :iccid, :provider, :signal_level, :msgs
15
5
 
16
- # Set SMSC number
17
- #cmd("AT+CSCA=\"#{SMSC}\"")
6
+ def initialize(params = {})
7
+ raise "Invalid params" if params.empty?
8
+
9
+ begin
10
+ @@port = SerialPort.new("/dev/#{params[:port]}",19200,8,1, SerialPort::NONE)
11
+ @@port.read_timeout = params[:read_timeout] || 150 ## Set timeout of command
12
+
13
+ @@debug = params[:debug] || false
14
+
15
+ res = cmd("ATE0\r\n") ## Set echo off
16
+ if res.length > 0
17
+ cmd("AT+CMGF=0\r\n") ## Set PDU mode
18
+ @status = true
19
+
20
+ if params[:load_settings]
21
+ async.alpha(:imei)
22
+ async.alpha(:iccid)
23
+ async.alpha(:provider)
24
+ async.alpha(:signal_level)
25
+ end
26
+ else
27
+ return @status = false
28
+ end
18
29
  rescue => ex
19
- puts ex.message
20
- @status = false
30
+ puts ex.message if @debug
31
+ return @status = false
21
32
  end
22
33
  end
23
34
 
24
- def status
25
- @status
26
- end
27
-
28
- def set_status(status)
29
- @status = status
30
- end
31
-
32
- def close
33
- @port.close
34
- end
35
-
36
- def cmd(cmd)
35
+ def cmd(c)
37
36
  begin
38
- @port.flush()
39
- @port.write(cmd)
40
- normalize(cmd,wait)
37
+ @@port.write(c)
38
+ normalize(c,wait)
41
39
  rescue => ex
40
+ puts ex
42
41
  @status = false
42
+ #close
43
43
  end
44
44
  end
45
45
 
46
46
  def wait
47
- buffer = @port.read
48
- puts buffer if @debug
47
+ buffer = @@port.read
48
+ puts buffer if @@debug
49
+ @@port.flush()
49
50
  buffer
50
51
  end
51
52
 
53
+ def close
54
+ puts "Fechando conexão"
55
+ @@port.close
56
+ @status = false
57
+ end
58
+
52
59
  def send_sms(msg)
53
60
  return {id: nil, status: "ERROR", code: "304"} if msg[:number].length == 0
54
61
  return {id: nil, status: "ERROR", code: "304"} if msg[:number].length < 11
@@ -82,16 +89,31 @@ module ComunikaGsm
82
89
 
83
90
  def messages
84
91
  sms = cmd("AT+CMGL=4\r\n")
85
- msgs = sms.scan(/\+CMGL\:\s*?(\d+),\s*?(\d+),.*?\,s*?(\d+)\r\n(.*)/)
92
+ @msgs = sms.scan(/\+CMGL\:\s*?(\d+),\s*?(\d+),.*?\,s*?(\d+)\r\n(.*)/)
86
93
 
87
94
  ## IDS: 0 - ID, 1 -- ,2 - size, 3 - PDU
88
- msgs.collect!{ |m| PDU::PDUDecode.new(connection: self, id: m[0], size: m[2], pdu: m[3].chomp).decode }# rescue nil
95
+ @msgs.collect!{ |m| PDU::PDUDecode.new(connection: self, id: m[0], size: m[2], pdu: m[3].chomp).decode }# rescue nil
96
+ end
97
+
98
+ def alpha(type)
99
+ case type
100
+ when :imei
101
+ @imei = cmd("AT+CGSN\r\n")
102
+ when :iccid
103
+ @iccid = cmd("AT+CRSM=176,12258,0,0,10\r\n")
104
+ when :provider
105
+ @provider = cmd("AT+COPS?\r\n")
106
+ when :signal_level
107
+ @signal_level = cmd("AT+CSQ\r\n")
108
+ else
109
+ cmd("AT\r\n")
110
+ end
89
111
  end
90
112
 
91
113
  private
92
114
  def normalize(cmd,res)
93
115
  case cmd.gsub(/\r\n/,'')
94
- when 'AT'
116
+ when 'AT' || 'ATE0'
95
117
  res.scan(/\r\n(\S+)\r\n/)[0].first unless res.empty?
96
118
  when 'AT+COPS?'
97
119
  res.scan(/\"(.*?)\"/)[0].first
@@ -1,6 +1,5 @@
1
1
  module ComunikaGsm
2
2
  module Device
3
- #TODO run methed of the usb_modeswith
4
3
  @@devices = []
5
4
 
6
5
  def self.ports
@@ -1,3 +1,3 @@
1
1
  module ComunikaGsm
2
- VERSION = "0.1.14"
2
+ VERSION = "0.1.15"
3
3
  end
data/lib/comunika_gsm.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'serialport'
2
2
  require 'time'
3
3
  require 'execjs'
4
+ require 'celluloid'
4
5
 
5
6
  require "comunika_gsm/version"
6
7
  require "comunika_gsm/gsm"
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.14
4
+ version: 0.1.15
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-20 00:00:00.000000000 Z
11
+ date: 2017-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '2.7'
69
+ - !ruby/object:Gem::Dependency
70
+ name: celluloid
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.17.3
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.17.3
69
83
  description: Comunication of with GSM modem
70
84
  email:
71
85
  - jefferson.silva@assertivasolucoes.com.br