comunika_gsm 0.1.14 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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