quelink-mg 0.3.0 → 0.5.0

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
  SHA256:
3
- metadata.gz: 0a0af54e62d43bd9f96b5c7484e1d7ba16baf9ff80d059df46f2115c2881d16f
4
- data.tar.gz: 893631f6758dbbecad9d30105a4b1dc31a39a1b110a7ca964ced515150badba1
3
+ metadata.gz: aecc401524a83220d52f8701ec5b962d018210a06f251deca1bc2288c4a9907d
4
+ data.tar.gz: 8131ba15fee8e4df4364044b95d6e912af84aa9ad02995063e47c72741e8d13f
5
5
  SHA512:
6
- metadata.gz: b18949ccbd99be47bce8d7d09c425d5a455992e747cb4f86745ef2291e4d3c6c09c944dcc8f260e654fa9d68df4d2e73b9bca63eecc37d02700e8c19be5dc3e7
7
- data.tar.gz: 0abbc95935c06ea5de36e285f3b3bb8edae223672d593c336009affdebfb6199929c7d1a655b40a7650a2a0fdcaf8d76ae7116d85372f006049c9ce0f9f6a8ce
6
+ metadata.gz: d510ef78406b1e6b71e67f8980b13658302f6bc33582fd6644ef4e512bbcf4cda3814601309bb8862e995efe3cb1c9471ecff5a98bac9311c1ead3724737acef
7
+ data.tar.gz: 7705c5fecdb15542faf78db9b25a83bb56b079e2808318e2685f8900f3645f383c5c077b7037ee0160cd7d46e0b8bb6edd81939d1eb9f6e84ee1c92cab64ad77
@@ -22,7 +22,7 @@ module QuelinkMg
22
22
  def date?(value)
23
23
  date = DateTime.strptime(value, QUELINK_DATE_FORMAT)
24
24
 
25
- !date.nil? && (date - DateTime.now).abs < 3 * 365
25
+ !date.nil? && (date - DateTime.now).abs < 25 * 365
26
26
  rescue Date::Error
27
27
  false
28
28
  end
@@ -19,13 +19,23 @@ module QuelinkMg
19
19
  private
20
20
 
21
21
  def verify_params(acceptable_values, error)
22
+ required_values.each do |rv|
23
+ raise_error(rv, error) if @params.fetch(rv, nil).nil?
24
+ end
25
+
22
26
  acceptable_values.each do |k, v|
23
- next if v.include?(@params.fetch(k, nil))
27
+ value = @params.fetch(k, nil)
28
+
29
+ next if value.nil? || value == '' || v.include?(value)
24
30
 
25
31
  raise_error(k, error)
26
32
  end
27
33
  end
28
34
 
35
+ def required_values
36
+ %i[password serial_number]
37
+ end
38
+
29
39
  def raise_error(type, error)
30
40
  raise error, "Wrong #{type}: #{@params}"
31
41
  end
@@ -25,7 +25,7 @@ module QuelinkMg
25
25
  mode: (0..5),
26
26
  discard_no_fix: (0..1),
27
27
  check_interval: (1..86_400),
28
- send_interval: (5..86_400),
28
+ send_interval: (1..86_400),
29
29
  ignition_check_interval: (5..86_400),
30
30
  ignition_send_interval: (5..86_400),
31
31
  distance: (50..65_535),
@@ -22,7 +22,7 @@ module QuelinkMg
22
22
  def date?(value)
23
23
  date = DateTime.strptime(value, QUELINK_DATE_FORMAT)
24
24
 
25
- !date.nil? && (date - DateTime.now).abs < 3 * 365
25
+ !date.nil? && (date - DateTime.now).abs < 25 * 365
26
26
  rescue Date::Error
27
27
  false
28
28
  end
@@ -31,13 +31,13 @@ module QuelinkMg
31
31
  Time.use_zone('UTC') { Time.zone.parse(value) }.in_time_zone
32
32
  end
33
33
 
34
- def unify_keys(hash)
34
+ def unify_keys(hash, skip_number_change=false)
35
35
  hash.transform_values do |v|
36
36
  if date?(v)
37
37
  transform_with_timezone(v)
38
- elsif integer?(v)
38
+ elsif integer?(v) && !skip_number_change
39
39
  v.to_i
40
- elsif float?(v)
40
+ elsif float?(v) && !skip_number_change
41
41
  v.to_f
42
42
  else
43
43
  v
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module QuelinkMg
4
+ module Resp
5
+ class Gtver < Base
6
+ GTVER_RESP_KEYS = %w[protocol_version unique_id device_name device_type firmware_version hardware_version reserved
7
+ modem_hardware_version modem_software_version send_time count_number].freeze
8
+
9
+ def hash
10
+ unify_keys(GTVER_RESP_KEYS.zip(@response.split(',')).to_h, true)
11
+ end
12
+ end
13
+ end
14
+ end
data/lib/quelink_mg.rb CHANGED
@@ -23,6 +23,7 @@ require File.expand_path('quelink-mg/resp/gtinf.rb', __dir__)
23
23
  require File.expand_path('quelink-mg/resp/gtsos.rb', __dir__)
24
24
  require File.expand_path('quelink-mg/resp/gtstt.rb', __dir__)
25
25
  require File.expand_path('quelink-mg/resp/gtupc.rb', __dir__)
26
+ require File.expand_path('quelink-mg/resp/gtver.rb', __dir__)
26
27
 
27
28
  require File.expand_path('quelink-mg/ack/base.rb', __dir__)
28
29
  require File.expand_path('quelink-mg/ack/gtbsi.rb', __dir__)
data/quelink-mg.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'quelink-mg'
5
- s.version = '0.3.0'
5
+ s.version = '0.5.0'
6
6
  s.summary = 'Quelink devices command reader and writer'
7
7
  s.description = 'Quelink devices command reader and writer'
8
8
  s.authors = ['Stanislaw Zawadzki']
@@ -34,6 +34,16 @@ RSpec.describe QuelinkMg::At::Gtcfg do
34
34
  '300,2,0,20491231235959,0,0000,0,10,,,FFFF$'
35
35
  end
36
36
 
37
+ it 'creates message if some params available' do
38
+ params =
39
+ {
40
+ password: 'gl310m',
41
+ gps_on_need: 1,
42
+ serial_number: 'FFFF'
43
+ }
44
+ expect(described_class.new(params:).message).to eq 'AT+GTCFG=gl310m,,,,,1,,,,,,,,,,,,,,,,,,,FFFF$'
45
+ end
46
+
37
47
  it 'raises error on missing params' do
38
48
  expect { described_class.new(params: {}).message }.to raise_error(InvalidATGTCFGException)
39
49
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe QuelinkMg::Resp::Gtver do
6
+ it 'parses valid response' do
7
+ response = 'C30303,860201065688841,,GL320M_B7K1,0C09,0108,,BG95-M5,BG95M5LAR02A03,20250824185409,0006$'
8
+
9
+ parsed_response = described_class.new(response:).hash
10
+ expect(parsed_response).not_to eq({})
11
+ expect(parsed_response['device_type']).to eq 'GL320M_B7K1'
12
+ expect(parsed_response['firmware_version']).to eq '0C09'
13
+ expect(parsed_response['hardware_version']).to eq '0108'
14
+ end
15
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quelink-mg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stanislaw Zawadzki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-09 00:00:00.000000000 Z
11
+ date: 2025-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -119,8 +119,8 @@ files:
119
119
  - lib/quelink-mg/resp/gtsos.rb
120
120
  - lib/quelink-mg/resp/gtstt.rb
121
121
  - lib/quelink-mg/resp/gtupc.rb
122
+ - lib/quelink-mg/resp/gtver.rb
122
123
  - lib/quelink_mg.rb
123
- - pkg/quelink-mg.gem
124
124
  - quelink-mg.gemspec
125
125
  - spec/quelink_mg/ack/gtbsi_spec.rb
126
126
  - spec/quelink_mg/ack/gtcfg_spec.rb
@@ -145,6 +145,7 @@ files:
145
145
  - spec/quelink_mg/resp/gtsos_spec.rb
146
146
  - spec/quelink_mg/resp/gtstt_spec.rb
147
147
  - spec/quelink_mg/resp/gtupc_spec.rb
148
+ - spec/quelink_mg/resp/gtver_spec.rb
148
149
  - spec/spec_helper.rb
149
150
  homepage:
150
151
  licenses:
@@ -166,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
167
  - !ruby/object:Gem::Version
167
168
  version: '0'
168
169
  requirements: []
169
- rubygems_version: 3.3.7
170
+ rubygems_version: 3.5.18
170
171
  signing_key:
171
172
  specification_version: 4
172
173
  summary: Quelink devices command reader and writer
data/pkg/quelink-mg.gem DELETED
Binary file