rsmp 0.17.4 → 0.18.1

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
  SHA256:
3
- metadata.gz: 17b5f6f4b2a3b5c9280497906b2111d7739956f2fdb08b1052b919b77e9d093f
4
- data.tar.gz: bab9a1e34d857fb60a15c8c1849dd0e6e24483753d9e5a3052f1ba9f162a0e96
3
+ metadata.gz: c13ff840a61dbc75246df268480d7951f4ca33df2428029a57447e6fb22ea8f9
4
+ data.tar.gz: a1aa8675badf8c95bc50dba84a214a06a15192fb8fb6ff8b4b6bc0e023cc1277
5
5
  SHA512:
6
- metadata.gz: ba268e1647b9de5b401a285b462d4f83108266a14eab597bd3203f37a36118ee7952e6eb3ce6edf7bcdac61472337032efaf4073da3b7c7059284b5cd18b3fa8
7
- data.tar.gz: 5ad8ba86f07b8159c33a47420875d29fecdd02684b16e7ea5c6bb7329f64b4a8b44928347438cef32dc51f2462ece94197ad95c5802d0118b2273d82d633bb86
6
+ metadata.gz: de8156a19d3d090deb7c44bdd915141a615dd405ad82e0c0ac5612097bffaf89f0986d379a83787b0ed2bb9c3bae67ff98108c4b42879ed7d5edac0e067294af
7
+ data.tar.gz: 9c41f6118a666513e778fe549cd44b7ac22b94dc98dfe4ae9ae64a5b2583aa505b7addf65cd18afa5290449005c3ef9558f54a09bd7565b7faf51364d43812ef
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rsmp (0.17.4)
4
+ rsmp (0.18.1)
5
5
  async (~> 1.30.3)
6
6
  async-io (~> 1.33.0)
7
7
  colorize (~> 0.8.1)
@@ -30,6 +30,13 @@ module RSMP
30
30
  'rvs' => rvs
31
31
  }
32
32
  end
33
+
34
+ def acknowledge
35
+ change, @acknowledged = !@acknowledged, true
36
+ update_timestamp if change
37
+ change
38
+ end
39
+
33
40
  def suspend
34
41
  change, @suspended = !@suspended, true
35
42
  update_timestamp if change
@@ -42,8 +49,11 @@ module RSMP
42
49
  change
43
50
  end
44
51
 
52
+ # according to the rsmp core spec, the only time an alarm changes to unanknowledged,
53
+ # is when it's activated. See:
54
+ # https://rsmp-nordic.org/rsmp_specifications/core/3.2/applicability/basic_structure.html#alarm-status
45
55
  def activate
46
- change, @active = !@active, true
56
+ change, @active, @acknowledged = !@active, true, false
47
57
  update_timestamp if change
48
58
  change
49
59
  end
@@ -13,6 +13,16 @@ module RSMP
13
13
  raise UnknownStatus.new "Status #{status_code}/#{status_name} not implemented by #{self.class}"
14
14
  end
15
15
 
16
+ def acknowledge_alarm alarm_code
17
+ alarm = get_alarm_state alarm_code
18
+ if alarm.acknowledge
19
+ log "Acknowledging alarm #{alarm_code}", level: :info
20
+ @node.alarm_acknowledged alarm
21
+ else
22
+ log "Alarm #{alarm_code} already acknowledged", level: :info
23
+ end
24
+ end
25
+
16
26
  def suspend_alarm alarm_code
17
27
  alarm = get_alarm_state alarm_code
18
28
  if alarm.suspend
data/lib/rsmp/site.rb CHANGED
@@ -96,6 +96,11 @@ module RSMP
96
96
  end
97
97
  end
98
98
 
99
+ def alarm_acknowledged alarm_state
100
+ alarm = AlarmIssue.new( alarm_state.to_hash.merge('aSp' => 'Issue') )
101
+ send_alarm alarm
102
+ end
103
+
99
104
  def alarm_suspended_or_resumed alarm_state
100
105
  alarm = AlarmIssue.new( alarm_state.to_hash.merge('aSp' => 'Suspend') )
101
106
  send_alarm alarm
@@ -210,6 +210,16 @@ module RSMP
210
210
  end
211
211
  end
212
212
 
213
+ # handle incoming alarm acknowledge
214
+ def handle_alarm_acknowledge message
215
+ component_id = message.attributes["cId"]
216
+ component = @site.find_component component_id
217
+ alarm_code = message.attribute("aCId")
218
+ log "Received #{message.type} #{alarm_code} acknowledgement", message: message, level: :log
219
+ acknowledge message
220
+ component.acknowledge_alarm alarm_code
221
+ end
222
+
213
223
  # handle incoming alarm suspend
214
224
  def handle_alarm_suspend message
215
225
  component_id = message.attributes["cId"]
data/lib/rsmp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module RSMP
2
- VERSION = "0.17.4"
2
+ VERSION = "0.18.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsmp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.4
4
+ version: 0.18.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emil Tin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-25 00:00:00.000000000 Z
11
+ date: 2023-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async