-
Notifications
You must be signed in to change notification settings - Fork 6
/
sia.c
663 lines (653 loc) · 25.8 KB
/
sia.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
/*
SIA-HS Alarm Monitoring Service
Copyright (C) Wilco Baan Hofman <[email protected]> 2012
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include "sia.h"
const struct {
const char *code;
const char *string;
const char *description;
} sia_codes[] = {
{ "AA", "Alarm panel substitution",
"An attempt to substitute an alternate alarm panel for a secure panel has been made" },
{ "AB", "User Abort",
"An event message was not sent due to User action" },
{ "AN", "Analog Restore",
"An analog fire sensor has been restored to normal operation" },
{ "AR", "AC Restore",
"AC Power has been restored" },
{ "AS", "Analog Service",
"An analog fire sensor needs to be cleaned or calibrated" },
{ "AT", "AC Trouble",
"AC power has been failed" },
{ "BA", "Burglary Alarm",
"Burglary zone has been violated while armed" },
{ "BB", "Burglary Bypass",
"Burglary zone has been bypassed" },
{ "BC", "Burglary Cancel",
"Alarm has been cancelled by authorized user" },
{ "BD", "Swinger Trouble",
"A non-fire zone has been violated after a Swinger Shutdown on the zone" },
{ "BE", "Swinger Trouble restore",
"A non-fire zone restores to normal from a Swinger Trouble state" },
{ "BG", "Unverified Event - Burglary",
"A point assigned to a Cross Point group has gone into alarm but the Cross Point remained normal" },
{ "BH", "Burglary Alarm restore",
"Burglary Alarm condition eliminated" },
{ "BJ", "Burglary Trouble restore",
"Burglary Trouble condition eliminated" },
{ "BM", "Burglary Alarm cross point",
"Burglary alarm w/cross point also in alarm - alarm verified" },
{ "BR", "Burglary Restore",
"Alarm/trouble condition has been eliminated" },
{ "BS", "Burglary Supervisory",
"Unsafe intrusion detection system condition" },
{ "BT", "Burglary Trouble",
"Burglary zone disabled by fault" },
{ "BU", "Burglary Unbypass",
"Zone bypass has been removed" },
{ "BV", "Burglary Verified",
"A burglary alarm has occurred and been verified within programmed conditions. (zone or point not sent)" },
{ "BX", "Burglary Test",
"Burglary zone activated during testing" },
{ "BZ", "Missing Supervision",
"A non-fire Supervisory point has gone missing" },
{ "CA", "Automatic Closing",
"System armed automatically" },
{ "CD", "Closing delinquent",
"The system has not been armed for a programmed amount of time" },
{ "CE", "Closing extend",
"Extend closing time" },
{ "CF", "Forced Closing",
"System armed, some zones not ready" },
{ "CG", "Close Area",
"System has been partially armed" },
{ "CI", "Fail to Close",
"An area has not been armed at the end of the closing window" },
{ "CJ", "Late Close",
"An area was armed after the closing window" },
{ "CK", "Early Close",
"An area was armed before the closing window" },
{ "CL", "Closing Report",
"System armed, normal" },
{ "CM", "Missing Alarm - Recent Closing",
"A point has gone missing within 2 minutes of closing" },
{ "CO", "Command Sent",
"A command has been sent to an expansion/peripheral device" },
{ "CP", "Automatic Closing",
"System armed automatically" },
{ "CQ", "Remote Closing",
"The system was armed from a remote location" },
{ "CS", "Closing Keyswitch",
"Account has been armed by keyswitch" },
{ "CT", "Late to Open",
"System was not disarmed on time" },
{ "CW", "Was Force Armed",
"Header for a force armed session, forced point msgs may follow" },
{ "CX", "Custom Function Executed",
"The panel has executed a preprogrammed set of instructions" },
{ "CZ", "Point Closing",
"A point, as opposed to a whole area or account, has closed" },
{ "DA", "Card Assigned",
"An access ID has been added to the controller" },
{ "DB", "Card Deleted",
"An access ID has been deleted from the controller" },
{ "DC", "Access Closed",
"Access to all users prohibited" },
{ "DD", "Access Denied",
"Access denied, unknown code" },
{ "DE", "Request to Enter",
"An access point was opened via a Request to Enter device" },
{ "DF", "Door Forced",
"Door opened without access request" },
{ "DG", "Access Granted",
"Door access granted" },
{ "DH", "Door Left Open - Restoral",
"An access point in a Door Left Open state has restored" },
{ "DI", "Access Denied - Passback",
"Access denied because credential has not exited area before attempting to re-enter same area" },
{ "DJ", "Door Forced - Trouble",
"An access point has been forced open in an unarmed area" },
{ "DK", "Access Lockout",
"Access denied, known code" },
{ "DL", "Door Left Open - Alarm",
"An open access point when open time expired in an armed area" },
{ "DM", "Door Left Open - Trouble",
"An open access point when open time expired in an unarmed area" },
{ "DN", "Door Left Open",
"An access point was open when the door cycle time expired" },
{ "DO", "Access Open",
"Access to authorized users allowed" },
{ "DP", "Access Denied - Unauthorized Time",
"An access request was denied because the request is occurring outside the user’s authorized time window(s)" },
{ "DQ", "Access Denied - Unauthorized Arming State",
"An access request was denied because the user was not authorized in this area when the area was armed" },
{ "DR", "Door Restoral",
"Access alarm/trouble condition eliminated" },
{ "DS", "Door Station",
"Identifies door for next report" },
{ "DT", "Access Trouble",
"Access system trouble" },
{ "DU", "Dealer ID",
"Dealer ID number" },
{ "DV", "Access Denied - Unauthorized Entry Level",
"An access request was denied because the user is not authorized in this area" },
{ "DW", "Access Denied - Interlock",
"An access request was denied because the doors associated interlock point is open" },
{ "DX", "Request to Exit",
"An access point was opened via a Request to Exit device" },
{ "DY", "Door Locked",
"The door’s lock has been engaged" },
{ "DZ", "Access Denied - Door Secured",
"An access request was denied because the door has been placed in an Access Closed state" },
{ "EA", "Exit Alarm",
"An exit zone remained violated at the end of the exit delay period" },
{ "EE", "Exit Error",
"An exit zone remained violated at the end of the exit delay period ?! Trouble?" },
{ "EJ", "Expansion Tamper Restore",
"Expansion device tamper restoral" },
{ "EM", "Expansion Device Missing",
"Expansion device missing" },
{ "EN", "Expansion Missing Restore",
"Expansion device communications re-established" },
{ "ER", "Expansion Restoral",
"Expansion device trouble eliminated" },
{ "ES", "Expansion Device Tamper",
"Expansion device enclosure tamper" },
{ "ET", "Expansion Trouble",
"Expansion device trouble" },
{ "EX", "External Device Condition",
"A specific reportable condition is detected on an external device" },
{ "EZ", "Missing Alarm - Exit Error",
"A point remained missing at the end of the exit delay period" },
{ "FA", "Fire Alarm",
"Fire condition detected" },
{ "FB", "Fire Bypass",
"Fire zone has been bypassed" },
{ "FC", "Fire Cancel",
"A Fire Alarm has been cancelled by an authorized person" },
{ "FG", "Unverified Event - Fire",
"A point assigned to a Cross Point group has gone into alarm but the Cross Point remained normal" },
{ "FH", "Fire Alarm Restore",
"Fire alarm condition eliminated" },
{ "FI", "Fire Test Begin",
"The transmitter area's fire test has begun" },
{ "FJ", "Fire Trouble Restore",
"Fire trouble condition eliminated" },
{ "FK", "Fire Test End",
"The transmitter area's fire test has ended" },
{ "FL", "Fire Alarm Silenced",
"The fire panel’s sounder was silenced by command" },
{ "FM", "Fire Alarm - Cross point",
"Fire Alarm with Cross Point also in alarm verifying the Fire Alarm" },
{ "FQ", "Fire Supervisory Trouble Restore",
"A fire supervisory zone that was in trouble condition has now restored to normal" },
{ "FR", "Fire Restoral",
"A fire supervisory zone that was in trouble condition has now restored to normal" },
{ "FS", "Fire Supervisory",
"Unsafe fire detection system condition" },
{ "FT", "Fire Trouble",
"Fire Zone disabled by fault" },
{ "FU", "Fire Unbypass",
"Fire Bypass has been removed" },
{ "FV", "Fire Supervision Restore",
"A fire supervision zone that was in alarm has restored to normal" },
{ "FW", "Fire Supervisory Trouble",
"A fire supervisory zone is now in a trouble condition" },
{ "FX", "Fire Test",
"Fire zone activated during test" },
{ "FY", "Missing Fire Trouble",
"A fire point is now logically missing" },
{ "FZ", "Missing Fire Supervision",
"A Fire Supervisory point has gone missing" },
{ "GA", "Gas Alarm",
"Gas alarm condition detected" },
{ "GB", "Gas Bypass",
"Gas zone has been bypassed" },
{ "GH", "Gas Alarm Restore",
"Gas alarm condition eliminated" },
{ "GJ", "Gas Trouble Restore",
"Gas trouble condition eliminated" },
{ "GR", "Gas Restore",
"Gas alarm/trouble condition has been eliminated" },
{ "GS", "Gas Supervisory",
"Unsafe gas detection system condition" },
{ "GT", "Gas Trouble",
"Gas zone disabled by fault" },
{ "GU", "Gas Unbypass",
"Gas bypass has been removed" },
{ "GX", "Gas Test",
"Gas zone activated during test" },
{ "HA", "Holdup Alarm",
"Silent alarm, user under duress" },
{ "HB", "Holdup Bypass",
"Holdup zone has been bypassed" },
{ "HH", "Holdup Alarm Restore",
"Holdup alarm condition eliminated" },
{ "HJ", "Holdup Trouble Restore",
"Holdup trouble condition eliminated" },
{ "HR", "Holdup Restoral",
"Holdup alarm/trouble condition has been eliminated" },
{ "HS", "Holdup Supervisory",
"Unsafe holdup system condition" },
{ "HT", "Holdup Trouble",
"Holdup zone disabled by fault" },
{ "HU", "Holdup Unbypass",
"Holdup bypass has been removed" },
{ "IA", "Equipment Failure Condition",
"A specific, reportable condition is detected on a device" },
{ "IR", "Equipment Fail - Restoral",
"The equipment condition has been restored to normal" },
{ "JA", "User Code Tamper",
"Too many unsuccessful attempts have been made to enter a user ID" },
{ "JD", "Date Changed",
"The date was changed in the transmitter/receiver" },
{ "JH", "Holiday Changed",
"The transmitter's holiday schedule has been changed" },
{ "JK", "Latchkey Alert",
"A designated user passcode has not been entered during a scheduled time window" },
{ "JL", "Log Treshold",
"The transmitter's log memory has reached its threshold level" },
{ "JO", "Log Overflow",
"The transmitter's log memory has overflowed" },
{ "JP", "User on Premises",
"A designated user passcode has been used to gain access to the premises." },
{ "JR", "Schedule Executed",
"An automatic scheduled event was executed" },
{ "JS", "Schedule Changed",
"An automatic schedule was changed" },
{ "JT", "Time Changed",
"The time was changed in the transmitter/receiver" },
{ "JV", "User Code Changed",
"A user's code has been changed" },
{ "JX", "User Code Deleted",
"A user's code has been removed" },
{ "JY", "User Code Added",
"A user’s code has been added" },
{ "JZ", "User Level Set",
"A user's authority level has been set" },
{ "KA", "Heat Alarm",
"High temperature detected on premise" },
{ "KB", "Heat Bypass",
"Heat zone has been bypassed" },
{ "KH", "Heat Alarm Restore",
"Heat alarm condition eliminated" },
{ "KJ", "Heat Trouble Restore",
"Heat trouble condition eliminated" },
{ "KR", "Heat Restoral",
"Heat alarm/trouble condition eliminated" },
{ "KS", "Heat Supervisory",
"Unsafe heat detection system condition" },
{ "KT", "Heat Trouble",
"Heat zone disabled by fault" },
{ "KU", "Heat Unbypass",
"Heat zone bypass has been removed" },
{ "LB", "Local Program",
"Begin local programming" },
{ "LD", "Local Program Denied",
"Local program access code incorrect" },
{ "LE", "Listen-in Ended",
"The listen-in session has been terminated" },
{ "LF", "Listen-In Begin",
"The listen-in session with the RECEIVER has begun" },
{ "LR", "Phone Line Restoral",
"Phone line restored to service" },
{ "LS", "Local Program Success",
"Local programming successful" },
{ "LT", "Phone Line Trouble",
"Phone line trouble report" },
{ "LU", "Local Program Fail",
"Local programming unsuccessful" },
{ "LX", "Local Program Ended",
"A local programming session has been terminated" },
{ "MA", "Medical Alarm",
"Emergency assistance request" },
{ "MB", "Medical Bypass",
"Medical zone has been bypassed" },
{ "MH", "Medical Alarm Restore",
"Medical alarm condition eliminated" },
{ "MI", "Message",
"A canned message is being sent? Say What?" },
{ "MJ", "Medical Trouble Restore",
"Medical Trouble condition eliminated" },
{ "MR", "Medical Restoral",
"Medical alarm/trouble condition has been eliminated" },
{ "MS", "Medical Supervisory",
"Unsafe medical system condition exists" },
{ "MT", "Medical Trouble",
"Medical zone disabled by fault" },
{ "MU", "Medical Unbypass",
"Medical bypass has been removed" },
{ "NA", "No Activity",
"There has been no zone activity for a programmed amount of time" },
{ "NC", "Network Condition",
"A communications network has a specific reportable condition" },
{ "NF", "Forced Perimeter Alarm",
"Some zones/points not ready" },
{ "NL", "Perimeter Armed",
"An area has been perimeter armed" },
{ "NM", "Perimeter Armed - User Defined",
"A user defined area has been perimeter armed" },
{ "NR", "Network Restoral",
"A communications network has returned to normal operation" },
{ "NS", "Activity Resumed",
"A zone has detected activity after an alert" },
{ "NT", "Network Failure",
"A communications network has failed" },
{ "OA", "Automatic Opening",
"System has disarmed automatically" },
{ "OC", "Cancel Report",
"Untyped zone cancel" },
{ "OG", "Open Area",
"System has been partially disarmed" },
{ "OH", "Early to Open from Alarm",
"An area in alarm was disarmed before the opening window" },
{ "OI", "Fail to Open",
"An area has not been armed at the end of the opening window" },
{ "OJ", "Late Open",
"An area was disarmed after the opening window" },
{ "OK", "Early Open",
"An area was disarmed before the opening window" },
{ "OL", "Late to Open from Alarm",
"An area in alarm was disarmed after the opening window" },
{ "OP", "Opening Report",
"Account was disarmed" },
{ "OQ", "Remote Opening",
"The system was disarmed from a remote location" },
{ "OR", "Disarm From Alarm",
"Account in alarm was reset/disarmed" },
{ "OS", "Opening Keyswitch",
"Account has been disarmed by keyswitch" },
{ "OT", "Late to Close",
"System was not armed on time" },
{ "OU", "Output State - Trouble",
"An output on a peripheral device or NAC is not functioning" },
{ "OV", "Output State - Restore",
"An output on a peripheral device or NAC is back to normal operation" },
{ "OZ", "Point Opening",
"A point, rather than a full area or account, disarmed" },
{ "PA", "Panic Alarm",
"Panic emergency assistance request, manually activated" },
{ "PB", "Panic Bypass",
"Panic zone has been bypassed" },
{ "PH", "Panic Alarm Restore",
"Panic alarm condition eliminated" },
{ "PJ", "Panic Trouble Restore",
"Panic trouble condition eliminated" },
{ "PR", "Panic Restoral",
"Panic alarm/trouble condition eliminated" },
{ "PS", "Panic Supervisory",
"Unsafe panic system condition exists" },
{ "PT", "Panic Trouble",
"Panic zone disabled by fault" },
{ "PU", "Panic Unbypass",
"Panic zone bypass has been removed" },
{ "QA", "Emergency Alarm",
"Emergency assistance request" },
{ "QB", "Emergency Bypass",
"Emergency zone has been bypassed" },
{ "QH", "Emergency Alarm Restore",
"Emergency alarm condition eliminated" },
{ "QJ", "Emergency Trouble Restore",
"Emergency trouble condition eliminated" },
{ "QR", "Emergency Restoral",
"Emergency alarm/trouble condition eliminated" },
{ "QS", "Emergency Supervisory",
"Unsafe emergency system condition exists" },
{ "QT", "Emergency Trouble",
"Emergency zone disabled by fault" },
{ "QU", "Panic Unbypass",
"Emergency zone bypass has been removed" },
{ "RA", "Remote Programmer Call Failed",
"Transmitter failed to communicate with the remote programmer" },
{ "RB", "Remote Program Begin",
"Remote programming session initiated " },
{ "RC", "Relay Close",
"A relay has energized" },
{ "RD", "Remote Program Denied",
"Remote Program access passcode incorrect" },
{ "RN", "Remote Reset",
"A TRANSMITTER was reset via a remote programmer" },
{ "RP", "Automatic Test",
"Automatic communication test report" },
{ "RR", "Power Up",
"System lost power, is now restored" },
{ "RS", "Remote Program Success",
"Remote programming successful" },
{ "RT", "Data Lost",
"Dialer data lost, transmission error" },
{ "RU", "Remote Program Fail",
"Remote programming unsuccessful" },
{ "RX", "Manual Test",
"Manual communication test report" },
{ "RY", "Test Off Normal",
"Test signal(s) indicates abnormal condition(s) exist" },
{ "SA", "Sprinkler Alarm",
"Sprinkler flow condition exists" },
{ "SB", "Sprinkler Bypass",
"Sprinkler zone has been bypassed" },
{ "SC", "Change of State",
"An expansion/peripheral device is reporting a new condition or state change" },
{ "SH", "Sprinkler Alarm Restore",
"Sprinkler alarm condition eliminated" },
{ "SJ", "Sprinkler Trouble Restore",
"Sprinkler trouble condition eliminated" },
{ "SR", "Sprinkler Restoral",
"Sprinkler alarm/trouble condition eliminated" },
{ "SS", "Sprinkler Supervisory",
"Unsafe sprinkler system condition exists" },
{ "ST", "Sprinkler Trouble",
"Sprinkler zone disabled by fault" },
{ "SU", "Sprinkler Unbypass",
"Sprinkler zone bypass has been removed" },
{ "TA", "Tamper Alarm",
"Alarm equipment enclosure opened" },
{ "TB", "Tamper Bypass",
"Tamper detection has been bypassed" },
{ "TC", "All Points Tested",
"All points tested" },
{ "TE", "Test End",
"Communicator restored to operation" },
{ "TH", "Tamper Alarm Restore",
"An Expansion Device’s tamper switch restores to normal from an Alarm state" },
{ "TJ", "Tamper Trouble Restore",
"An Expansion Device’s tamper switch restores to normal from a Trouble state" },
{ "TP", "Walk Test Point",
"This point was tested during a Walk Test" },
{ "TR", "Tamper Restoral",
"Alarm equipment enclosure has been closed" },
{ "TS", "Test Start",
"Communicator taken out of operation" },
{ "TT", "Tamper trouble",
"Equipment enclosure opened in disarmed state" },
{ "TU", "Tamper Unbypass",
"Tamper detection bypass has been removed" },
{ "TW", "Area Watch Start",
"Area watch feature has been activated" },
{ "TX", "Test Report",
"An unspecified (manual or automatic) communicator test" },
{ "TZ", "Area Watch End",
"Area watch feature has been deactivated" },
{ "UA", "Untyped Zone Alarm",
"Untyped zone has been violated while armed" },
{ "UB", "Untyped Zone Bypass",
"Untyped zone has been bypassed" },
{ "UG", "Unverified Event - Untyped",
"A point assigned to a Cross Point group has gone into alarm but the Cross Point remained normal" },
{ "UH", "Untyped Zone Alarm Restore",
"Untyped Alarm condition eliminated" },
{ "UJ", "Untyped Zone Trouble restore",
"Untyped Trouble condition eliminated" },
{ "UM", "Untyped ZoneAlarm cross point",
"Untyped alarm w/cross point also in alarm - alarm verified" },
{ "UR", "Untyped Zone Restore",
"Untyped Alarm/trouble condition has been eliminated" },
{ "US", "Untyped Zone Supervisory",
"Unsafe untyped zone system condition" },
{ "UT", "Untyped Zone Trouble",
"Untyped zone disabled by fault" },
{ "UU", "Untyped Zone Unbypass",
"Untyped zone bypass has been removed" },
{ "UX", "Undefined",
"An undefined alarm condition has occurred" },
{ "UY", "Untyped Missing Trouble",
"A point or device which was not armed is now logically missing" },
{ "UZ", "Untyped Missing Alarm",
"A point or device which was armed is now logically missing" },
{ "VI", "Printer Paper In",
"TRANSMITTER or RECEIVER paper in" },
{ "VO", "Printer Paper Out",
"TRANSMITTER or RECEIVER paper out" },
{ "VR", "Printer Restore",
"TRANSMITTER or RECEIVER trouble restored" },
{ "VT", "Printer Trouble",
"TRANSMITTER or RECEIVER trouble" },
{ "VX", "Printer Test",
"TRANSMITTER or RECEIVER test" },
{ "VY", "Printer Online",
"RECEIVER’S printer is now online" },
{ "VZ", "Printer Offline",
"RECEIVER’S printer is now offline" },
{ "WA", "Water Alarm",
"Water detected at protected premises" },
{ "WB", "Water Bypass",
"Water detection has been bypassed" },
{ "WH", "Water Alarm Restore",
"Water alarm condition eliminated" },
{ "WJ", "Water Trouble Restore",
"Water trouble condition eliminated" },
{ "WR", "Water Restoral",
"Water alarm/trouble condition has been eliminated" },
{ "WS", "Water Supervisory",
"Water unsafe water detection system condition" },
{ "WT", "Water Trouble",
"Water zone disabled by fault" },
{ "WU", "Water Unbypass",
"Water detection bypass has been removed" },
{ "XA", "Extra Account Report",
"CS RECEIVER has received an event from a non-existent account" },
{ "XE", "Extra Point",
"Panel has sensed an extra point not specified for this site" },
{ "XF", "Extra RF Point",
"Panel has sensed an extra RF point not specified for this site" },
{ "XH", "RF Interference Restoral",
"A radio device is no longer detecting RF Interference" },
{ "XI", "Sensor Reset",
"A user has reset a sensor" },
{ "XJ", "RF Receiver Tamper Restoral",
"A Tamper condition at a premises RF Receiver has been restored" },
{ "XL", "Low Received Signal Strength",
"The RF signal strength of a reported event is below minimum level" },
{ "XM", "Missing Alarm - Cross point",
"Missing Alarm verified by Cross Point in Alarm (or missing)" },
{ "XQ", "RF Interference",
"A radio device is detecting RF Interference" },
{ "XR", "Transmitter Battery Restoral",
"Low battery has been corrected" },
{ "XS", "RF Receiver Tamper",
"A Tamper condition at a premises receiver is detected" },
{ "XT", "Transmitter Battery Trouble",
"Low battery in wireless transmitter" },
{ "XW", "Forced Point",
"A point was forced out of the system at arm time" },
{ "XX", "Fail to Test",
"A specific test from a panel was not received" },
{ "YA", "Bell Fault",
"A trouble condition has been detected on a Local Bell, Siren, or Annunciator" },
{ "YB", "Busy Seconds",
"Percent of time receiver's line card is on-line" },
{ "YC", "Communications Fail",
"RECEIVER and TRANSMITTER communicatie failure" },
{ "YD", "Receiver Line Card Trouble",
"A line card identified by the passed address is in trouble" },
{ "YE", "Receiver Line Card Restored",
"A line card identified by the passed address is restored" },
{ "YF", "Parameter Checksum Fail",
"System data corrupted" },
{ "YG", "Parameter Changed",
"A TRANSMITTER’S parameters have been changed" },
{ "YH", "Bell Restored",
"A trouble condition has been restored on a Local Bell, Siren, or Annunciator" },
{ "YI", "Overcurrent Trouble",
"An Expansion Device has detected an overcurrent condition" },
{ "YJ", "Overcurrent Restore",
"An Expansion Device has restored from an overcurrent condition" },
{ "YK", "Communications Restoral",
"TRANSMITTER has resumed communication with a RECEIVER" },
{ "YM", "System Battery Missing",
"TRANSMITTER/RECEIVER battery is missing" },
{ "YN", "Invalid Report",
"TRANSMITTER has sent a packet with invalid data" },
{ "YO", "Unknown Message",
"An unknown message was received from automation or the printer" },
{ "YP", "Power Supply Trouble",
"TRANSMITTER/RECEIVER has a problem with the power supply" },
{ "YQ", "Power Supply Restored",
"TRANSMITTER'S/RECEIVERS'S power supply has been restored" },
{ "YR", "System Battery Restoral",
"Low battery has been corrected" },
{ "YS", "Communications Trouble",
"RECEIVER and TRANSMITTER fail to communicate" },
{ "YT", "System Battery Trouble",
"Low battery in control/communicator" },
{ "YU", "Diagnostic Error",
"An expansion/peripheral device is reporting a diagnostic error" },
{ "YW", "Watchdoc Reset",
"The TRANSMITTER created an internal reset" },
{ "YX", "Service Required",
"A TRANSMITTER/RECEIVER needs service" },
{ "YY", "Status Report",
"Account status report transmission" },
{ "YZ", "Service Completed",
"Required TRANSMITTER / RECEIVER service completed" },
{ "ZA", "Freeze Alarm",
"Freeze emergency assistance request, manually activated" },
{ "ZB", "Freeze Bypass",
"Freeze zone has been bypassed" },
{ "ZH", "Freeze Alarm Restore",
"Freeze alarm condition eliminated" },
{ "ZJ", "Freeze Trouble Restore",
"Freeze trouble condition eliminated" },
{ "ZR", "Freeze Restoral",
"Freeze alarm/trouble condition eliminated" },
{ "ZS", "Freeze Supervisory",
"Unsafe freeze system condition exists" },
{ "ZT", "Freeze Trouble",
"Freeze zone disabled by fault" },
{ "ZU", "Freeze Unbypass",
"Freeze zone bypass has been removed" },
{ NULL, NULL, NULL },
};
const char *sia_code_str(const char *code) {
uint16_t i;
for (i = 0; sia_codes[i].code != NULL; i++) {
if (strncmp(code, sia_codes[i].code, 2) != 0) {
continue;
}
return sia_codes[i].string;
}
return NULL;
}
const char *sia_code_desc(const char *code) {
uint16_t i;
for (i = 0; sia_codes[i].code != NULL; i++) {
if (strncmp(code, sia_codes[i].code, 2) != 0) {
continue;
}
return sia_codes[i].description;
}
return NULL;
}