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 +4 -4
- data/lib/comunika_gsm/gsm2.rb +59 -37
- data/lib/comunika_gsm/modem.rb +0 -1
- data/lib/comunika_gsm/version.rb +1 -1
- data/lib/comunika_gsm.rb +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb1b333cccb5acb38a35fb33bb91b1cdea85cef4
|
4
|
+
data.tar.gz: 9af089271d67cdf3eaffdff2800d699fb345df56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b7cf6ea9fcfd12abfc261c5273c66066afde4d8e6d10bbbd1e152b5abfcbd7aeac2cb1c465bd704ff31c4352af4706e37aa9aa2b2c1793524bcb11ad5f03172
|
7
|
+
data.tar.gz: 7b2ae64ab3ed30e426d9b10eee91dd45b4d3592f4248ff870ace40f659678d6b8e9e8e486548bcc8c609c421278ad5b1e36e0638297d873d863af4f0ca929a4d
|
data/lib/comunika_gsm/gsm2.rb
CHANGED
@@ -1,54 +1,61 @@
|
|
1
1
|
module ComunikaGsm
|
2
2
|
class GSM2
|
3
|
-
|
4
|
-
|
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
|
-
|
17
|
-
|
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
|
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
|
-
|
39
|
-
|
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 =
|
48
|
-
puts buffer if
|
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
|
data/lib/comunika_gsm/modem.rb
CHANGED
data/lib/comunika_gsm/version.rb
CHANGED
data/lib/comunika_gsm.rb
CHANGED
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.
|
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-
|
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
|