/src/wireshark/epan/dissectors/packet-assa_r3.c
Line | Count | Source |
1 | | /* packet-assa_r3.c |
2 | | * Routines for R3 packet dissection |
3 | | * Copyright (c) 2009 Assa Abloy USA <jcwren[AT]assaabloyusa.com> |
4 | | * |
5 | | * R3 is an electronic lock management protocol for configuring operational |
6 | | * parameters, adding/removing/altering users, dumping log files, etc. |
7 | | * |
8 | | * Wireshark - Network traffic analyzer |
9 | | * By Gerald Combs <gerald@wireshark.org> |
10 | | * Copyright 1998 Gerald Combs |
11 | | * |
12 | | * SPDX-License-Identifier: GPL-2.0-or-later |
13 | | */ |
14 | | |
15 | | #include "config.h" |
16 | | |
17 | | #include <epan/packet.h> |
18 | | #include <epan/expert.h> |
19 | | #include <epan/tfs.h> |
20 | | #include <epan/crc16-tvb.h> |
21 | | #include "packet-tcp.h" |
22 | | |
23 | | void proto_register_r3(void); |
24 | | void proto_reg_handoff_r3(void); |
25 | | |
26 | | #if 0 |
27 | | /* */ |
28 | | /* System limits */ |
29 | | /* */ |
30 | | #define MAX_USERS 2400 |
31 | | #define MAX_TIMEZONES 32 |
32 | | #define MAX_EXCEPTIONS 64 |
33 | | #define MAX_EXCEPTIONGROUPS 64 |
34 | | #define MAX_EVENTENTRIES 10000 |
35 | | #define MAX_DECLINEDENTRIES 500 |
36 | | #define MAX_ALARMENTRIES 200 |
37 | | #endif |
38 | | |
39 | | /* |
40 | | * Enumerations |
41 | | */ |
42 | | typedef enum |
43 | | { |
44 | | ACCESSMODE_NONE = 0, /* 0 - No access mode (not used, not legal, I think) */ |
45 | | ACCESSMODE_PRIMARYONLY, /* 1 - Primary only */ |
46 | | ACCESSMODE_PRIMARYORAUX, /* 2 - Primary or aux field */ |
47 | | ACCESSMODE_PRIMARYANDAUX, /* 3 - Primary and aux field */ |
48 | | ACCESSMODE_PRIMARYTHENAUX, /* 4 - Primary required first, then aux */ |
49 | | ACCESSMODE_LAST /* 5 - Dummy, for range checking */ |
50 | | } |
51 | | accessMode_e; |
52 | | |
53 | | typedef enum |
54 | | { |
55 | | ADDUSERPARAMTYPE_DISPOSITION = 0, /* 0 - What we're supposed to do (add, delete, etc) */ |
56 | | ADDUSERPARAMTYPE_USERNO, /* 1 - User to manage (user number, U16) */ |
57 | | ADDUSERPARAMTYPE_ACCESSALWAYS, /* 2 - Access always (boolean) */ |
58 | | ADDUSERPARAMTYPE_ACCESSMODE, /* 3 - Access type (accessMode_e) */ |
59 | | ADDUSERPARAMTYPE_CACHED, /* 4 - Entry is managed by cache system (boolean) */ |
60 | | ADDUSERPARAMTYPE_USERTYPE, /* 5 - User type (userType_e) */ |
61 | | ADDUSERPARAMTYPE_PRIMARYFIELD, /* 6 - Primary field (MAX_CREDENTIALBYTES) */ |
62 | | ADDUSERPARAMTYPE_PRIMARYFIELDTYPE, /* 7 - Primary field type (fieldType_e); */ |
63 | | ADDUSERPARAMTYPE_AUXFIELD, /* 8 - Auxiliary field (MAX_CREDENTIALBYTES) */ |
64 | | ADDUSERPARAMTYPE_AUXFIELDTYPE, /* 9 - Auxiliary field type (fieldType_e) */ |
65 | | ADDUSERPARAMTYPE_TIMEZONE, /* 10 - Timezone bitmap (U32) */ |
66 | | ADDUSERPARAMTYPE_EXPIREON, /* 11 - Date on which user no longer granted access, if non-0 */ |
67 | | ADDUSERPARAMTYPE_USECOUNT, /* 12 - Use count */ |
68 | | ADDUSERPARAMTYPE_EXCEPTIONGROUP, /* 13 - Exception group */ |
69 | | ADDUSERPARAMTYPE_LAST |
70 | | } |
71 | | addUserParamType_e; |
72 | | |
73 | | typedef enum |
74 | | { |
75 | | ALARMID_NONE = 0, /* 0 - No alarm */ |
76 | | ALARMID_VALIDIN, /* 1 - Valid entry */ |
77 | | ALARMID_DENIEDACCESS, /* 2 - Denied access (bad credential) */ |
78 | | ALARMID_SECURED, /* 3 - Door closed & secured (only seen after alarms 3 or 4) */ |
79 | | ALARMID_DOORFORCED, /* 4 - Door forced */ |
80 | | ALARMID_KEYOVERRIDE, /* 5 - Key override */ |
81 | | ALARMID_INVALIDENTRY, /* 6 - Door open but invalid entry (key used?) */ |
82 | | ALARMID_DOORAJAR, /* 7 - Door ajar (needs .ja woman with Engrish accent) */ |
83 | | ALARMID_LOWBATTERY, /* 8 - Low battery alarm */ |
84 | | ALARMID_RXHELD, /* 9 - RX held */ |
85 | | ALARMID_LAST |
86 | | } |
87 | | alarmID_e; |
88 | | |
89 | | typedef enum |
90 | | { |
91 | | CAPABILITIES_USERS = 0, /* 0 - Number of users supported */ |
92 | | CAPABILITIES_TIMEZONES, /* 1 - Number of timezone supported */ |
93 | | CAPABILITIES_EXCEPTIONS, /* 2 - Number of exceptions supported */ |
94 | | CAPABILITIES_EXCEPTIONGROUPS, /* 3 - Number of exception groups supported */ |
95 | | CAPABILITIES_EVENTLOG, /* 4 - Number of event log entries supported */ |
96 | | CAPABILITIES_DECLINEDLOG, /* 5 - Number of declined log entries supported */ |
97 | | CAPABILITIES_ALARMLOG, /* 6 - Number of alarm log entries supported */ |
98 | | CAPABILITIES_TOTALEVENTS, /* 7 - Total events (EVENT_LAST - 1) */ |
99 | | CAPABILITIES_LAST |
100 | | } |
101 | | capabilities_e; |
102 | | |
103 | | typedef enum |
104 | | { |
105 | | CHECKSUMRESULT_CONFIGURATIONNVRAM = 0, /* 0 - Checksum results of the configuration NVRAM */ |
106 | | CHECKSUMRESULT_EXCEPTIONS, /* 1 - Checksum results of the exceptions NVRAM */ |
107 | | CHECKSUMRESULT_EXCEPTIONGROUPS, /* 2 - Checksum results of the exception groups NVRAM */ |
108 | | CHECKSUMRESULT_TZCALENDARS, /* 3 - Checksum results of the time zone calendar NVRAM */ |
109 | | CHECKSUMRESULT_TIMEZONES, /* 4 - Checksum results of the time zone NVRAM */ |
110 | | CHECKSUMRESULT_USERS, /* 5 - Checksum results of the users NVRAM */ |
111 | | CHECKSUMRESULT_CACHELRU, /* 6 - Checksum results of the cache LRU */ |
112 | | CHECKSUMRESULT_LAST |
113 | | } |
114 | | checksumResult_e; |
115 | | |
116 | | typedef enum |
117 | | { |
118 | | CMD_RESPONSE = 0, /* 0 - Response to command */ |
119 | | CMD_HANDSHAKE, /* 1 - Establish session */ |
120 | | CMD_KILLSESSION, /* 2 - Kill session */ |
121 | | CMD_QUERYSERIALNUMBER, /* 3 - Query serial number */ |
122 | | CMD_QUERYVERSION, /* 4 - Query version */ |
123 | | CMD_SETDATETIME, /* 5 - Set date and time */ |
124 | | CMD_QUERYDATETIME, /* 6 - Query date and time */ |
125 | | CMD_SETCONFIG, /* 7 - Set configuration options */ |
126 | | CMD_GETCONFIG, /* 8 - Read configuration options */ |
127 | | CMD_MANAGEUSER, /* 9 - Manage users (add/delete/replace/update) */ |
128 | | CMD_DELETEUSERS, /* 10 - Delete users (all/most/cached) */ |
129 | | CMD_DEFINEEXCEPTION, /* 11 - Define exception (old block holiday) */ |
130 | | CMD_DEFINEEXCEPTIONGROUP, /* 12 - Define exception group */ |
131 | | CMD_DEFINECALENDAR, /* 13 - Define calendar */ |
132 | | CMD_DEFINETIMEZONE, /* 14 - Define time zone */ |
133 | | CMD_RMTAUTHRETRY, /* 15 - Remote authorization retry */ |
134 | | CMD_FILTERS, /* 16 - Event log filter configuration */ |
135 | | CMD_ALARMCONFIGURE, /* 17 - Alarm condition configuration */ |
136 | | CMD_EVENTLOGDUMP, /* 18 - Dump event log */ |
137 | | CMD_DECLINEDLOGDUMP, /* 19 - Dump declined log */ |
138 | | CMD_ALARMLOGDUMP, /* 20 - Dump alarm log */ |
139 | | CMD_DOWNLOADFIRMWARE, /* 21 - Download firmware */ |
140 | | CMD_DOWNLOADFIRMWARETIMEOUT, /* 22 - Download firmware timeout (internal command only) */ |
141 | | CMD_POWERTABLESELECTION, /* 23 - Power table selection */ |
142 | | CMD_CLEARNVRAM, /* 24 - Clear nvram (config/event log/declined log/etc) */ |
143 | | CMD_DPAC, /* 25 - DPAC manipulation commands */ |
144 | | CMD_SELFTEST, /* 26 - Selftest (heh) */ |
145 | | CMD_RESET, /* 27 - Restart controller */ |
146 | | CMD_LOGWRITE, /* 28 - Write event to event log */ |
147 | | CMD_MFGCOMMAND, /* 29 - Manufacturing commands */ |
148 | | CMD_NVRAMBACKUP, /* 30 - Backup/restore/erase NVRAM */ |
149 | | CMD_EXTENDEDRESPONSE, /* 31 - Response to command (extended version) */ |
150 | | CMD_LAST |
151 | | } |
152 | | cmdCommand_e; |
153 | | |
154 | | typedef enum |
155 | | { |
156 | | CMDMFG_SETSERIALNUMBER = 0, /* 0 - Set serial number */ |
157 | | CMDMFG_SETCRYPTKEY, /* 1 - Set encryption key */ |
158 | | CMDMFG_DUMPNVRAM, /* 2 - Dump NVRAM */ |
159 | | CMDMFG_TERMINAL, /* 3 - DPAC terminal mode */ |
160 | | CMDMFG_REMOTEUNLOCK, /* 4 - Remote unlock (only on 'd' builds) */ |
161 | | CMDMFG_AUXCTLRVERSION, /* 5 - Request version of auxiliary controller */ |
162 | | CMDMFG_IOPINS, /* 6 - Read I/O pin states */ |
163 | | CMDMFG_ADCS, /* 7 - Read ADC values */ |
164 | | CMDMFG_HARDWAREID, /* 8 - Read hardware ID and CPU ID */ |
165 | | CMDMFG_CHECKPOINTLOGDUMP, /* 9 - Dump checkpoint log */ |
166 | | CMDMFG_CHECKPOINTLOGCLEAR, /* 10 - Clear checkpoint log */ |
167 | | CMDMFG_READREGISTERS, /* 11 - Read selected CPU registers */ |
168 | | CMDMFG_FORCEOPTIONS, /* 12 - Force I/O lines to certain states */ |
169 | | CMDMFG_COMMUSER, /* 13 - Fake a comm user entry */ |
170 | | CMDMFG_DUMPKEYPAD, /* 14 - Dump keypad debugging buffer */ |
171 | | CMDMFG_BATTERYCHECK, /* 15 - Force battery check */ |
172 | | CMDMFG_RAMREFRESH, /* 16 - Refresh RAM variables from NVRAM */ |
173 | | CMDMFG_TASKFLAGS, /* 17 - Dump task flags */ |
174 | | CMDMFG_TIMERCHAIN, /* 18 - Dump active timer chains */ |
175 | | CMDMFG_PEEKPOKE, /* 19 - Peek/poke CPU RAM memory */ |
176 | | CMDMFG_LOCKSTATE, /* 20 - Display global gLockState variable */ |
177 | | CMDMFG_CAPABILITIES, /* 21 - Read firmware capabilities (# users/event log entries, etc) */ |
178 | | CMDMFG_DUMPM41T81, /* 22 - Dump M41T81 RTC registers */ |
179 | | CMDMFG_DEBUGLOGDUMP, /* 23 - Dump debugging log */ |
180 | | CMDMFG_DEBUGLOGCLEAR, /* 24 - Clear debugging log */ |
181 | | CMDMFG_TESTWDT, /* 25 - Test watchdog */ |
182 | | CMDMFG_QUERYCKSUM, /* 26 - Query NVRAM checksum value */ |
183 | | CMDMFG_VALIDATECHECKSUMS, /* 27 - Validate checksums */ |
184 | | CMDMFG_REBUILDLRUCACHE, /* 28 - Rebuild LRU cache */ |
185 | | CMDMFG_TZUPDATE, /* 29 - Send TZCHANGE to tod.c */ |
186 | | CMDMFG_TESTPRESERVE, /* 30 - Test preserve save/restore code */ |
187 | | CMDMFG_MORTISESTATELOGDUMP, /* 31 - Dump the mortise state log */ |
188 | | CMDMFG_MORTISESTATELOGCLEAR, /* 32 - Clear the mortise state log */ |
189 | | CMDMFG_MORTISEPINS, /* 33 - Display current mortise pin status */ |
190 | | CMDMFG_HALTANDCATCHFIRE, /* 34 - Stop processor (optionally catch fire) */ |
191 | | CMDMFG_LAST |
192 | | } |
193 | | cmdMfgCommand_e; |
194 | | |
195 | | typedef enum |
196 | | { |
197 | | CONFIGITEM_SERIAL_NUMBER = 0, /* 0 - Ye olde serial number */ |
198 | | CONFIGITEM_CRYPT_KEY, /* 1 - The encryption/decryption key */ |
199 | | CONFIGITEM_HARDWARE_OPTIONS_MFG, /* 2 - Bit map of hardware options at manufacturing time (hardwareOptions_e) */ |
200 | | CONFIGITEM_HARDWARE_OPTIONS, /* 3 - Bit map of hardware options at runtime time (hardwareOptions_e) */ |
201 | | CONFIGITEM_NVRAM_CHANGES, /* 4 - Log of NVRAM changes since reset (which blocks were reset) */ |
202 | | |
203 | | CONFIGITEM_NVRAMDIRTY, /* 5 - NVRAM is (or might be) dirty */ |
204 | | CONFIGITEM_NVRAM_WV, /* 6 - NVRAM write verify (I2C parts only) */ |
205 | | CONFIGITEM_ENABLE_WDT, /* 7 - If true, and OPT_WATCHDOG enabled, enables WDT */ |
206 | | CONFIGITEM_EARLY_ACK, /* 8 - Generates early RESPONSE_COMMANDRECEIVED message for commands that take some time */ |
207 | | CONFIGITEM_CONSOLE_AES_ONLY, /* 9 - If set, requires AES encryption on serial communications */ |
208 | | CONFIGITEM_RADIO_AES_ONLY, /* 10 - If set, requires AES encryption on radio communications */ |
209 | | CONFIGITEM_NDRLE, /* 11 - RLE (Run Length Encoding) NVRAM dump enable/disable */ |
210 | | CONFIGITEM_SOMF, /* 12 - Stop on mortise failure */ |
211 | | CONFIGITEM_NOGAF, /* 13 - Prevents what should be fatal errors from being fatal (i.e, No One Gives A Flip) */ |
212 | | CONFIGITEM_CARD_READER_POWER, /* 14 - External mag reader power supply control */ |
213 | | CONFIGITEM_PROX_ENABLE, /* 15 - Prox into permanent sleep mode */ |
214 | | CONFIGITEM_CKSUMCONFIG, /* 16 - Configuration NVRAM checksum enable/disable */ |
215 | | CONFIGITEM_DAILY_BATTERY_CHECK, /* 17 - Enable/disable daily battery check */ |
216 | | CONFIGITEM_DAILY_BATTERY_CHECK_HOUR, /* 18 - If daily battery check enabled, top of the hour to check at */ |
217 | | CONFIGITEM_BATTERY_LOW, /* 19 - Return low battery status (true = low) */ |
218 | | |
219 | | CONFIGITEM_LRU_HEAD, /* 20 - Cache LRU head pointer */ |
220 | | CONFIGITEM_LRU_TAIL, /* 21 - Cache LRU tail pointer */ |
221 | | CONFIGITEM_RTC_CALIBRATION, /* 22 - Signed 6 bit value written to M41T81 calibration register */ |
222 | | CONFIGITEM_ACVREQUESTER, /* 23 - Auxiliary controller version requester (fromDevice_e, internal variable) */ |
223 | | CONFIGITEM_LOCAL_LED, /* 24 - Local LED function assignment */ |
224 | | |
225 | | CONFIGITEM_ERRCNT_XORLEN, /* 25 - Error counter for XOR length not matching in protocol.c */ |
226 | | CONFIGITEM_ERRCNT_CRC, /* 26 - Error counter for bad CRC in protocol.c */ |
227 | | CONFIGITEM_ERRCNT_NOTSIGIL, /* 27 - Error counter for character received was not sigil in protocol.c */ |
228 | | CONFIGITEM_ERRCNT_TIMEOUT, /* 28 - Error counter for timeout in protocol.c */ |
229 | | CONFIGITEM_ERRCNT_TOOLONG, /* 29 - Error counter for packet too long in protocol.c */ |
230 | | CONFIGITEM_ERRCNT_TOOSHORT, /* 30 - Error counter for packet too short in protocol.c */ |
231 | | CONFIGITEM_ERRCNT_HITDEFAULT, /* 31 - Error counter for hitting default handler in protocol.c */ |
232 | | CONFIGITEM_ERRCNT_OVERRUN, /* 32 - Error counter for serial buffer overrun in serial.c */ |
233 | | CONFIGITEM_ERRCNT_UARTFE, /* 33 - Error counter for UART framing error in serial.c */ |
234 | | CONFIGITEM_ERRCNT_UARTOE, /* 34 - Error counter for UART overrun error in serial.c */ |
235 | | |
236 | | CONFIGITEM_DST_SET, /* 35 - Daylight savings time currently active */ |
237 | | CONFIGITEM_DST_MODE, /* 36 - Determines if repeating month/date, repeating month/day, or specific month/date (dstMode_e) */ |
238 | | CONFIGITEM_DST_FORWARD_MONTH, /* 37 - Month to skip forward on (1-12) (DSTMODE_REPEATINGDATE, DSTMODE_REPEATINGDOW, DSTMODE_ONETIMEDATE) */ |
239 | | CONFIGITEM_DST_FORWARD_DOM, /* 38 - Day of month to skip forward on (1-31) (DSTMODE_REPEATINGDATE, DSTMODE_ONETIMEDATE) */ |
240 | | CONFIGITEM_DST_FORWARD_OOD, /* 39 - Occurrence number of CONFIGITEM_DST_FORWARD_DOW to skip forward on (1-5) (DSTMODE_REPEATINGDOW) */ |
241 | | CONFIGITEM_DST_FORWARD_DOW, /* 40 - Day of week to skip forward on (1-7) (DSTMODE_REPEATINGDOW) */ |
242 | | CONFIGITEM_DST_FORWARD_HOUR, /* 41 - Hour of day of month to skip forward on (0-23) (DSTMODE_REPEATINGDATE, DSTMODE_REPEATINGDOW, DSTMODE_ONETIMEDATE) */ |
243 | | CONFIGITEM_DST_FORWARD_MINUTE, /* 42 - Hour of day of month to skip forward on (0-23) (DSTMODE_REPEATINGDATE, DSTMODE_REPEATINGDOW, DSTMODE_ONETIMEDATE) */ |
244 | | CONFIGITEM_DST_FORWARD_ADJUST, /* 43 - Number of minutes to move forward */ |
245 | | CONFIGITEM_DST_BACK_MONTH, /* 44 - Month to fall back on (1-12) (DSTMODE_REPEATINGDATE, DSTMODE_REPEATINGDAY, DSTMODE_ONETIMEDATE) */ |
246 | | CONFIGITEM_DST_BACK_DOM, /* 45 - Day of month to fall back on (1-31) (DSTMODE_REPEATINGDATE, DSTMODE_ONETIMEDATE) */ |
247 | | CONFIGITEM_DST_BACK_OOD, /* 46 - Occurrence number of CONFIGITEM_DST_BACK_DOW to fall back on (1-5) (DSTMODE_REPEATINGDOW) */ |
248 | | CONFIGITEM_DST_BACK_DOW, /* 47 - Day of week to fall back on (1-7) (DSTMODE_REPEATINGDATE, DSTMODE_ONETIMEDATE) */ |
249 | | CONFIGITEM_DST_BACK_HOUR, /* 48 - Hour of day of month to fall back on (0-23) (DSTMODE_REPEATINGDATE, DSTMODE_REPEATINGDOW, DSTMODE_ONETIMEDATE) */ |
250 | | CONFIGITEM_DST_BACK_MINUTE, /* 49 - Hour of day of month to fall back on (0-23) (DSTMODE_REPEATINGDATE, DSTMODE_REPEATINGDOW, DSTMODE_ONETIMEDATE) */ |
251 | | CONFIGITEM_DST_BACK_ADJUST, /* 50 - Number of minutes to move backwards */ |
252 | | |
253 | | CONFIGITEM_EVENTLOG_ZEROMEM, /* 51 - If set, event log memory is zeroed when event log cleared */ |
254 | | CONFIGITEM_EVENTLOG_BEGIN, /* 52 - Beginning record number when event log cleared */ |
255 | | CONFIGITEM_EVENTLOG_RECORD, /* 53 - Next event log record to write */ |
256 | | CONFIGITEM_EVENTLOG_ENTRIES, /* 54 - Number of entries in event log */ |
257 | | CONFIGITEM_EVENTLOG_WARNDEVICE, /* 55 - Event log warning device */ |
258 | | CONFIGITEM_EVENTLOG_WARNEVERY, /* 56 - Warn at every 'n' records (more or less) */ |
259 | | CONFIGITEM_EVENTLOG_RMTDEVICE, /* 57 - Device event log entries copied to (fromDevice_e) */ |
260 | | |
261 | | CONFIGITEM_DECLINEDLOG_ZEROMEM, /* 58 - If set, declined log memory is zeroed when declined log cleared */ |
262 | | CONFIGITEM_DECLINEDLOG_BEGIN, /* 59 - Beginning record number when declined log cleared */ |
263 | | CONFIGITEM_DECLINEDLOG_RECORD, /* 60 - Next declined log record to write */ |
264 | | CONFIGITEM_DECLINEDLOG_ENTRIES, /* 61 - Number of entries in declined log */ |
265 | | CONFIGITEM_DECLINEDLOG_WARNDEVICE, /* 62 - Declined record warning device */ |
266 | | CONFIGITEM_DECLINEDLOG_WARNEVERY, /* 63 - Warn at every 'n' records (more or less) */ |
267 | | CONFIGITEM_DECLINEDLOG_RMTDEVICE, /* 64 - Device declined entries copied to (fromDevice_e) */ |
268 | | |
269 | | CONFIGITEM_ALARMLOG_ZEROMEM, /* 65 - If set, alarm log memory is zeroed when alarm log cleared */ |
270 | | CONFIGITEM_ALARMLOG_BEGIN, /* 66 - Beginning record number when alarm log cleared */ |
271 | | CONFIGITEM_ALARMLOG_RECORD, /* 67 - Next alarm log record to write */ |
272 | | CONFIGITEM_ALARMLOG_ENTRIES, /* 68 - Number of entries in alarm log */ |
273 | | CONFIGITEM_ALARMLOG_WARNDEVICE, /* 69 - Alarm record warning device */ |
274 | | CONFIGITEM_ALARMLOG_WARNEVERY, /* 70 - Warn at every 'n' records (more or less) */ |
275 | | CONFIGITEM_ALARMLOG_RMTDEVICE, /* 71 - Device alarm entries copied to (fromDevice_e) */ |
276 | | |
277 | | CONFIGITEM_VISIBLE_FEEDBACK, /* 72 - Visible feedback on keypad presses enabled */ |
278 | | CONFIGITEM_AUDIBLE_FEEDBACK, /* 73 - Audible feedback on keypad presses enabled */ |
279 | | CONFIGITEM_VISIBLE_INDICATORS, /* 74 - Visible indicators on all actions (run dark) */ |
280 | | CONFIGITEM_AUDIBLE_INDICATORS, /* 75 - Audible indicators on all actions (run silent) */ |
281 | | CONFIGITEM_2NDPINDURATION, /* 76 - Number of seconds to wait for second PIN */ |
282 | | CONFIGITEM_LOCKOUT_ATTEMPTS, /* 77 - Number of pin/prox/magcard attempts before lockout */ |
283 | | CONFIGITEM_LOCKOUT_DURATION, /* 78 - Duration of lockout, in penta-seconds */ |
284 | | CONFIGITEM_KEYPAD_INACTIVITY, /* 79 - Duration in seconds with no key entries before key buffer cleared */ |
285 | | CONFIGITEM_ICIDLE_DURATION, /* 80 - If last credential was invalid, invalid attempt counter reset after this many seconds */ |
286 | | CONFIGITEM_WRITE_DECLINED_LOG, /* 81 - Declined log writing enable/disable */ |
287 | | CONFIGITEM_LOW_BATTERY_INDICATOR, /* 82 - Low battery audio/visual indicator enable/disable */ |
288 | | |
289 | | CONFIGITEM_PANIC_MODE, /* 83 - Enable/disable panic mode */ |
290 | | |
291 | | CONFIGITEM_TIMEZONE_ENABLE, /* 84 - Timezones enabled (applies to users, not passage modes) */ |
292 | | CONFIGITEM_EXCEPTION_ENABLE, /* 85 - Exceptions enabled (applies to users and passage modes) */ |
293 | | CONFIGITEM_AUTOUNLOCK_ENABLE, /* 86 - Auto-unlocking (schedule based) enabled */ |
294 | | |
295 | | CONFIGITEM_LOCK_PRIORITY_EMERGENCY, /* 87 - DPAC/PWM lock priority for emergency users (lockPriority_e) */ |
296 | | CONFIGITEM_LOCK_PRIORITY_SUPERVISOR, /* 88 - DPAC/PWM lock priority for supervisors (lockPriority_e) */ |
297 | | CONFIGITEM_LOCK_PRIORITY_USER, /* 89 - DPAC/PWM lock priority for users (lockPriority_e) */ |
298 | | CONFIGITEM_LOCK_PRIORITY_PASSAGE, /* 90 - DPAC/PWM lock priority for passage mode (lockPriority_e) */ |
299 | | CONFIGITEM_LOCK_PRIORITY_PANIC, /* 91 - DPAC/PWM lock priority for panic mode/panic users (lockPriority_e) */ |
300 | | CONFIGITEM_LOCK_PRIORITY_LOCKOUT, /* 92 - DPAC/PWM lock priority for remote unlock (lockPriority_e) */ |
301 | | CONFIGITEM_LOCK_PRIORITY_RELOCK, /* 93 - DPAC/PWM lock priority for remote unlock (lockPriority_e) */ |
302 | | CONFIGITEM_LOCK_PRIORITY_BOLTTHROWN, /* 94 - DPAC/PWM lock priority for bolt thrown (lockPriority_e) */ |
303 | | CONFIGITEM_LOCK_PRIORITY_CONFIGCHANGE, /* 95 - DPAC/PWM lock priority for configuration change (CONFIGITEM_LOCK_TYPE) (lockPriority_e) */ |
304 | | CONFIGITEM_LOCK_PRIORITY_REMOTE, /* 96 - DPAC/PWM lock priority for remote unlock (lockPriority_e) */ |
305 | | CONFIGITEM_LOCK_TYPE, /* 97 - Type of lock (PWM, electric, magnetic) */ |
306 | | CONFIGITEM_DOUBLE_PULSE, /* 98 - Lock double pulse enabled */ |
307 | | CONFIGITEM_DOUBLE_DELAY, /* 99 - Delay between double pulses, in centiseconds */ |
308 | | CONFIGITEM_MOTOR_DURATION, /* 100 - Duration lock motor to run, in centiseconds */ |
309 | | CONFIGITEM_MORTISE_TYPE, /* 101 - Type of mortise connected to controller */ |
310 | | CONFIGITEM_UNLOCK_TIME, /* 102 - Normal unlock duration in seconds */ |
311 | | CONFIGITEM_EXT_UNLOCK_TIME, /* 103 - Extended unlock duration, in seconds */ |
312 | | CONFIGITEM_DOOR_AJAR_TIME, /* 104 - Time before door considered stuck open, in seconds */ |
313 | | |
314 | | CONFIGITEM_SESSION_TIMEOUT, /* 105 - Session timeout, in seconds */ |
315 | | CONFIGITEM_RETRY_ON_TIMEOUT, /* 106 - Retry lock-initiated sessions if comm session timed out (instead of terminated by remote end) */ |
316 | | |
317 | | CONFIGITEM_UNSOLICITED_ENCRYPT, /* 107 - Unsolicited messages are encrypted (encryptionScheme_e) */ |
318 | | CONFIGITEM_RMT_AUTH_TIMEOUT, /* 108 - Seconds to wait for remote authorization timeout (0 = no remote auth) */ |
319 | | CONFIGITEM_RMT_AUTH_DEVICE, /* 109 - Device remote authorization requests sent over (fromDevice_e) */ |
320 | | CONFIGITEM_ALARM_DEVICE, /* 110 - Device alarm condition connects via */ |
321 | | CONFIGITEM_NOTIFY_DEVICE, /* 111 - Notify user device */ |
322 | | CONFIGITEM_COMMUSER_DEVICE, /* 112 - Device comm user connects via */ |
323 | | CONFIGITEM_SCHEDULER_DEVICE, /* 113 - Device scheduler connects via */ |
324 | | |
325 | | CONFIGITEM_SCHEDULER_TYPE, /* 114 - Scheduling algorithm to use (schedulerType_e) */ |
326 | | CONFIGITEM_SCHEDULER_AWAKE, /* 115 - Number of decaseconds scheduler is awake for */ |
327 | | CONFIGITEM_SCHEDULER_PERIOD, /* 116 - Interval in minutes between scheduled wakeups (SCHEDULERTYPE_SIMPLE) */ |
328 | | CONFIGITEM_SCHEDULER_HOD, /* 117 - Hour of day map (SCHEDULERTYPE_HOD) */ |
329 | | CONFIGITEM_SCHEDULER_DOW, /* 118 - Day of month map (SCHEDULERTYPE_DOW) */ |
330 | | CONFIGITEM_SCHEDULER_DOM, /* 119 - Day of month map (SCHEDULERTYPE_DOM) */ |
331 | | CONFIGITEM_SCHEDULER_HM1, /* 120 - On at hour:minute #1 */ |
332 | | CONFIGITEM_SCHEDULER_HM2, /* 121 - On at hour:minute #2 */ |
333 | | CONFIGITEM_SCHEDULER_HM3, /* 122 - On at hour:minute #3 */ |
334 | | CONFIGITEM_SCHEDULER_HM4, /* 123 - On at hour:minute #4 */ |
335 | | |
336 | | CONFIGITEM_RADIO_TYPE, /* 124 - Radio type (None, DPAC, WiPort, etc) */ |
337 | | CONFIGITEM_RADIO_MODE, /* 125 - Radio mode (DPAC=active/passive) */ |
338 | | CONFIGITEM_RADIO_TIMEOUT, /* 126 - Number of seconds before we decide server didn't hear us (only in RADIOMODE_LOCKINITIATED) */ |
339 | | CONFIGITEM_RADIO_ATTEMPTS, /* 127 - Number of times to attempt connection to server (only in RADIOMODE_LOCKINITIATED) */ |
340 | | CONFIGITEM_RADIO_HOUSEKEEPING, /* 128 - Time we allow for radio housekeeping (associate with AP, etc) */ |
341 | | CONFIGITEM_RADIO_LEAPUSERNAME, /* 129 - LEAP username */ |
342 | | CONFIGITEM_RADIO_LEAPPASSWORD, /* 130 - LEAP password */ |
343 | | |
344 | | CONFIGITEM_INHIBIT_VOLTAGE, /* 131 - Voltage when battery is considered dead */ |
345 | | CONFIGITEM_LOW_VOLTAGE, /* 132 - Voltage when battery is considered low */ |
346 | | CONFIGITEM_PT_RANGE_1, /* 133 - Power table for 0.00 to 5.99 volts */ |
347 | | CONFIGITEM_PT_RANGE_2, /* 134 - Power table for 6.00 to 6.49 volts */ |
348 | | CONFIGITEM_PT_RANGE_3, /* 135 - Power table for 6.50 to 6.99 volts */ |
349 | | CONFIGITEM_PT_RANGE_4, /* 136 - Power table for 7.00 to 7.49 volts */ |
350 | | CONFIGITEM_PT_RANGE_5, /* 137 - Power table for 7.50 to 7.99 volts */ |
351 | | CONFIGITEM_PT_RANGE_6, /* 138 - Power table for 8.00 to 8.49 volts */ |
352 | | CONFIGITEM_PT_RANGE_7, /* 139 - Power table for 8.50 to 8.99 volts */ |
353 | | CONFIGITEM_PT_RANGE_8, /* 140 - Power table for 9.00 and up volts */ |
354 | | |
355 | | CONFIGITEM_MAGCARD_IFS, /* 141 - Include field separator character in returned data */ |
356 | | CONFIGITEM_MAGCARD_FIELDS, /* 142 - Mag card fields to include */ |
357 | | CONFIGITEM_MAGCARD_OFFSET, /* 143 - Offset into concatenated field */ |
358 | | CONFIGITEM_MAGCARD_DIGITS, /* 144 - Number of digits to return past offset */ |
359 | | |
360 | | CONFIGITEM_ALARMS, /* 145 - Alarms (not writable) */ |
361 | | CONFIGITEM_FILTERS, /* 146 - Event filter storage (not writable) */ |
362 | | CONFIGITEM_ALARMSTATE, /* 147 - Current alarm state (alarmID_e) */ |
363 | | CONFIGITEM_DOORSTATE, /* 148 - Current door state (doorState_e) */ |
364 | | |
365 | | CONFIGITEM_DPACDEBUG, /* 149 - Enable DPAC debug events to event log */ |
366 | | CONFIGITEM_FAILOPENSECURE, /* 150 - Fail open (false) or secure (true) on battery dead */ |
367 | | |
368 | | CONFIGITEM_REPLACED_VOLTAGE, /* 151 - If battery above this voltage, it's been replaced */ |
369 | | |
370 | | CONFIGITEM_RX_HELD_TIME, /* 152 - If RX held longer than this, sent RX held alarm */ |
371 | | CONFIGITEM_PACKET_TIMEOUT, /* 153 - Time (in seconds) that a complete packet must arrive in */ |
372 | | |
373 | | CONFIGITEM_EXTENDEDRESPONSE, /* 154 - Enables extended response (which includes original sequence number) */ |
374 | | CONFIGITEM_PASSAGEMODEINDICATOR, /* 155 - When lock in passage mode, LEDs show denied if set, granted if cleared (Squish #1133) */ |
375 | | |
376 | | CONFIGITEM_PFMRETURNTIME, /* 156 - Number of seconds power must be present to exit power fail death loop */ |
377 | | |
378 | | CONFIGITEM_LAST /* Must be last item defined (All non-virtual items added above) */ |
379 | | |
380 | | #if 0 /* XXX: unused ? */ |
381 | | , |
382 | | CONFIGITEM_MAGIC_FIRST = 239, /* Next item is first magic command */ |
383 | | CONFIGITEM_MAGIC_USERFIELD, /* 240 - Virtual command to delete PIN '8989', add user '8989' */ |
384 | | CONFIGITEM_MAGIC_USERADD, /* 241 - Virtual command to add a user (PIN only) */ |
385 | | CONFIGITEM_MAGIC_USERDELETE, /* 242 - Virtual command to delete a user */ |
386 | | CONFIGITEM_MAGIC_NVRAMBACKUP, /* 243 - Virtual command to backup NVRAM to FLASH */ |
387 | | CONFIGITEM_MAGIC_NVRAMRESTORE, /* 244 - Virtual command to restore NVRAM from FLASH */ |
388 | | CONFIGITEM_MAGIC_NVRAMERASE, /* 245 - Virtual command to erase backed-up NVRAM */ |
389 | | CONFIGITEM_MAGIC_LAST /* *Really* the last item */ |
390 | | #endif |
391 | | } |
392 | | configItem_e; |
393 | | |
394 | | typedef enum |
395 | | { |
396 | | DELETEUSERS_ALL = 0, /* 0 - Delete ALL users, including master and emergency, restores default users */ |
397 | | DELETEUSERS_CACHED, /* 1 - Delete only cached users */ |
398 | | DELETEUSERS_LAST |
399 | | } |
400 | | deleteUsers_e; |
401 | | |
402 | | typedef enum |
403 | | { |
404 | | DISPOSITION_ADD = 0, /* 0 - Add, must not exist (by user number only) */ |
405 | | DISPOSITION_REPLACE, /* 1 - Replace, (add, but overwrite if necessary) */ |
406 | | DISPOSITION_UPDATE, /* 2 - Update, must already exist */ |
407 | | DISPOSITION_DELETE, /* 3 - Delete, exists or not is irrelevant */ |
408 | | DISPOSITION_RETRIEVE, /* 4 - Retrieve, must exist */ |
409 | | DISPOSITION_LAST |
410 | | } |
411 | | disposition_e; |
412 | | |
413 | | #if 0 |
414 | | typedef enum |
415 | | { |
416 | | DOORSTATE_NONE = 0, /* 0 - No door state available */ |
417 | | DOORSTATE_SECURED, /* 1 - Door closed & secured */ |
418 | | DOORSTATE_DOORFORCED, /* 2 - Door forced */ |
419 | | DOORSTATE_KEYOVERRIDE, /* 3 - Key override */ |
420 | | DOORSTATE_DOORAJAR, /* 4 - Door ajar */ |
421 | | DOORSTATE_LAST |
422 | | } |
423 | | doorState_e; |
424 | | #endif |
425 | | |
426 | | #if 0 |
427 | | typedef enum |
428 | | { |
429 | | DSTMODE_NONE, /* 0 - Automatic DST switching disabled */ |
430 | | DSTMODE_REPEATINGDOM, /* 1 - Particular day on a particular month (Apr 2nd) */ |
431 | | DSTMODE_REPEATINGDOW, /* 2 - Day of week on a particular week of a particular month (Sunday of last week of April) */ |
432 | | DSTMODE_ONETIMEDOM, /* 3 - Like DSTMODE_REPEATINGDOM, but clears CONFIGITEM_DST_[FORWARD|BACK][MONTH|DAY] items */ |
433 | | DSTMODE_ONETIMEDOW, /* 4 - Like DSTMODE_REPEATINGDOW, but clears CONFIGITEM_DST_[FORWARD|BACK][MONTH|OOD|DOW] items */ |
434 | | DSTMODE_LAST |
435 | | } |
436 | | dstMode_e; |
437 | | #endif |
438 | | |
439 | | typedef enum |
440 | | { |
441 | | ENCRYPTIONSCHEME_NONE = 0, /* 0 - No encryption */ |
442 | | ENCRYPTIONSCHEME_ROLLING, /* 1 - XOR with crypt key, shift each byte */ |
443 | | ENCRYPTIONSCHEME_SN, /* 2 - XOR with serial number, shift each byte */ |
444 | | ENCRYPTIONSCHEME_AESIV, /* 3 - AES implementation (set initial vector) */ |
445 | | ENCRYPTIONSCHEME_AES, /* 4 - AES implementation */ |
446 | | ENCRYPTIONSCHEME_LAST |
447 | | } |
448 | | encryptionScheme_e; |
449 | | |
450 | | typedef enum |
451 | | { |
452 | | EVENT_INVALIDPIN = 0, /* 0 - Entered PIN was invalid */ |
453 | | EVENT_USER, /* 1 - Regular user has been granted access */ |
454 | | EVENT_ONETIME, /* 2 - One-time user has been granted access */ |
455 | | EVENT_PASSAGEBEGIN, /* 3 - Lock has unlocked because of auto-unlock mode */ |
456 | | EVENT_PASSAGEEND, /* 4 - Lock has relocked because of auto-unlock mode */ |
457 | | EVENT_BADTIME, /* 5 - Access attempted outside of allowed time/date */ |
458 | | EVENT_LOCKEDOUT, /* 6 - Access attempted during panic or lockout */ |
459 | | EVENT_LOWBATTERY, /* 7 - Battery is low */ |
460 | | EVENT_DEADBATTERY, /* 8 - Battery is dead */ |
461 | | EVENT_BATTERYREPLACED, /* 9 - Battery has been replaced */ |
462 | | EVENT_USERADDED, /* 10 - User added or changed */ |
463 | | EVENT_USERDELETED, /* 11 - User deleted */ |
464 | | EVENT_EMERGENCY, /* 12 - The emergency code was entered */ |
465 | | EVENT_PANIC, /* 13 - Somebody pushed the panic button */ |
466 | | EVENT_RELOCK, /* 14 - Relock code was entered */ |
467 | | EVENT_LOCKOUTBEGIN, /* 15 - Lockout code was entered */ |
468 | | EVENT_LOCKOUTEND, /* 16 - Lockout code was entered again */ |
469 | | EVENT_RESET, /* 17 - Lock was reset (restarted) */ |
470 | | EVENT_DATETIMESET, /* 18 - System date & time was set */ |
471 | | EVENT_LOGCLEARED, /* 19 - Event log cleared */ |
472 | | EVENT_DBRESET, /* 20 - User database reset */ |
473 | | EVENT_COMMSTARTED, /* 21 - Communications session started */ |
474 | | EVENT_COMMENDED, /* 22 - Communications session ended */ |
475 | | EVENT_FIRMWAREABORT, /* 23 - A firmware update aborted */ |
476 | | EVENT_FIRMWAREERROR, /* 24 - A firmware update encountered an error */ |
477 | | EVENT_FIRMWARETIMEOUT, /* 25 - Timeout expecting firmware download data record */ |
478 | | EVENT_DSTFALLBACK, /* 26 - Clock set back */ |
479 | | EVENT_DSTSPRINGFORWARD, /* 27 - Clock set forward */ |
480 | | EVENT_BOLTTHROWN, /* 28 - Bolt thrown */ |
481 | | EVENT_BOLTRETRACTED, /* 29 - Bolt retracted */ |
482 | | EVENT_MASTERCODE, /* 30 - Master code entered (clears panic, relock, and lockout) */ |
483 | | EVENT_COMMUSER, /* 31 - A comm user was activated */ |
484 | | EVENT_DPACDISABLED, /* 32 - DPAC disabled */ |
485 | | EVENT_NOTIFY, /* 33 - Notify user has been granted access */ |
486 | | EVENT_EXPIRED, /* 34 - Expired user attempted access */ |
487 | | EVENT_SUPERVISOR, /* 35 - The supervisor code was entered */ |
488 | | EVENT_MCCENTER, /* 36 - Entered MCC programming mode */ |
489 | | EVENT_MCCEXIT, /* 37 - Exited MCC programming mode */ |
490 | | EVENT_SERIALRXOVERRUN, /* 38 - Serial receiver overrun */ |
491 | | EVENT_DPACRXOVERRUN, /* 39 - DPAC receiver overrun */ |
492 | | EVENT_NVRAMPBCLEAR, /* 40 - NVRAM cleared by pushybutton */ |
493 | | EVENT_NVRAMLAYOUTCHANGE, /* 41 - NVRAM cleared by revision */ |
494 | | EVENT_NVRAMOK, /* 42 - NVRAM wasn't changed */ |
495 | | EVENT_USERREPLACED, /* 43 - User replaced */ |
496 | | EVENT_RADIOTIMEOUT, /* 44 - Radio timed out waiting for remote login */ |
497 | | EVENT_SUSPENDEDUSER, /* 45 - Suspended user attempted access */ |
498 | | EVENT_USERUPDATED, /* 46 - User updated */ |
499 | | EVENT_DOORBOLTED, /* 47 - Access denied because door is bolted */ |
500 | | EVENT_PANICACTIVE, /* 48 - Access denied because lock is in panic mode */ |
501 | | EVENT_PASSAGEACTIVE, /* 49 - Access denied because lock is in passage mode */ |
502 | | EVENT_PASSAGEINACTIVE, /* 50 - Access denied because lock is not in passage mode */ |
503 | | EVENT_BADACCESSMODE, /* 51 - Access denied because access mode is weird */ |
504 | | EVENT_CLOCKERR, /* 52 - Error reading RTC */ |
505 | | EVENT_REMOTEUNLOCK, /* 53 - Remote unlock */ |
506 | | EVENT_TZHAUDISABLED, /* 54 - Time zone, exceptions, and auto-unlock functionality disabled */ |
507 | | EVENT_EVENTLOGWRAPPED, /* 55 - Event log wrapped */ |
508 | | EVENT_DECLINEDLOGWRAPPED, /* 56 - Declined log wrapped */ |
509 | | EVENT_ALARMLOGWRAPPED, /* 57 - Alarm log wrapped */ |
510 | | EVENT_RADIOBUSYEMERGENCY, /* 58 - Access denied because radio is busy */ |
511 | | EVENT_RADIOBUSYSUPERVISOR, /* 59 - Access denied because radio is busy */ |
512 | | EVENT_RADIOBUSYONETIME, /* 60 - Access denied because radio is busy */ |
513 | | EVENT_RADIOBUSYUSER, /* 61 - Access denied because radio is busy */ |
514 | | EVENT_RADIOBUSYPANIC, /* 62 - Access denied because radio is busy */ |
515 | | EVENT_RADIOBUSYREX, /* 63 - Access denied because radio is busy */ |
516 | | EVENT_RADIOBUSYLOCKOUT, /* 64 - Access denied because radio is busy */ |
517 | | EVENT_RADIOBUSYRELOCK, /* 65 - Access denied because radio is busy */ |
518 | | EVENT_BATTERYCHECKHELDOFF, /* 66 - Battery check was not performed (user number says why) */ |
519 | | EVENT_RMTAUTHREQUEST, /* 67 - Remote authorization request made */ |
520 | | EVENT_FIRMWAREUPDATE, /* 68 - A firmware update was attempted, and succeeded */ |
521 | | EVENT_FIRMWAREUPDATEFAILED, /* 69 - A firmware update was attempted, and failed */ |
522 | | EVENT_MSMFAILURE, /* 70 - Mortise state machine failure */ |
523 | | EVENT_CLOCKRESET, /* 71 - The RTC was reset, likely due to ESD */ |
524 | | EVENT_POWERFAIL, /* 72 - Power Fail Monitor (PFM) circuit triggered */ |
525 | | EVENT_DPAC501WENTSTUPID, /* 73 - DPAC-501 failed to release CTS on power up */ |
526 | | /* |
527 | | * These are all internal debugging events. Real events should go before these. |
528 | | */ |
529 | | EVENT_CHECKSUMCONFIG, /* 74 - Performing checksum on configuration NVRAM */ |
530 | | EVENT_CHECKSUMTZ, /* 75 - Performing checksum on timezone data NVRAM */ |
531 | | EVENT_DEBUG, /* 76 - Debug event, could mean anything (programmer discretion) */ |
532 | | EVENT_LAST /* 77 - Everything must go before this entry */ |
533 | | } |
534 | | event_e; |
535 | | |
536 | | typedef enum |
537 | | { |
538 | | FIELDTYPE_NONE = 0, /* 0 - Field contains nothing */ |
539 | | FIELDTYPE_PIN, /* 1 - Field contains PIN */ |
540 | | FIELDTYPE_PROX, /* 2 - Field contains Prox card */ |
541 | | FIELDTYPE_MAGCARD, /* 3 - Field contains mag card */ |
542 | | FIELDTYPE_LAST |
543 | | } |
544 | | fieldType_e; |
545 | | |
546 | | #if 0 |
547 | | typedef enum |
548 | | { |
549 | | FILTERMODE_NORMAL = 0, /* 0 - Filters events specified */ |
550 | | FILTERMODE_INVERT, /* 1 - Filters events not specified */ |
551 | | FILTERMODE_LAST |
552 | | } |
553 | | filterMode_e; |
554 | | #endif |
555 | | |
556 | | typedef enum |
557 | | { |
558 | | FILTERSELECT_RECORDING = 0, /* 0 - Recording filters */ |
559 | | FILTERSELECT_REPORTING, /* 1 - Reporting filters */ |
560 | | FILTERSELECT_LAST |
561 | | } |
562 | | filterSelect_e; |
563 | | |
564 | | |
565 | | /* XXX: enum vals don't all match vals in comments ??? */ |
566 | | typedef enum |
567 | | { |
568 | | FORCEITEM_RADIOPOWER = 0, /* 0 - Radio power */ |
569 | | FORCEITEM_RADIOENABLE, /* 1 - Radio enable */ |
570 | | FORCEITEM_LEDRED, /* 2 - Red keypad LED */ |
571 | | FORCEITEM_LEDGREEN, /* 3 - Green keypad LED */ |
572 | | FORCEITEM_LEDYELLOW, /* 4 - Yellow keypad LED */ |
573 | | FORCEITEM_PIEZO, /* 5 - Keypad peizo */ |
574 | | FORCEITEM_MAGPOWER, /* 6 - Mag card reader power supply */ |
575 | | FORCEITEM_MAGLEDA, /* 7 - Mag card LED A (usually red) */ |
576 | | FORCEITEM_MAGLEDB, /* 8 - Mag card LED B (usually green) */ |
577 | | FORCEITEM_PROXPOWER, /* 13 - Prox circuitry power (opamps, etc) */ |
578 | | FORCEITEM_PROXPING, /* 14 - Prox PIC12F629 ping/sleep mode */ |
579 | | FORCEITEM_PROXMODE, /* 15 - Prox ping/read mode (selects 50hz/125KHz filters) */ |
580 | | FORCEITEM_I2CPOWER, /* 16 - I2C power */ |
581 | | FORCEITEM_MOTORARUN, /* 17 - Motor A run (to H-bridge) */ |
582 | | FORCEITEM_MOTORBRUN, /* 18 - Motor B run (to H-bridge) */ |
583 | | FORCEITEM_VMON, /* 19 - VMon (ADC 0 battery sense) */ |
584 | | FORCEITEM_PROX, /* 20 - Prox test mode (continuous 125KHz read) */ |
585 | | FORCEITEM_MORTISETEST, /* 21 - Force mortise into test mode */ |
586 | | FORCEITEM_KEYPADTEST, /* 22 - Force keypad into test mode */ |
587 | | FORCEITEM_MAGTEST, /* 23 - Force mag card test mode */ |
588 | | FORCEITEM_PROXTEST, /* 24 - Force prox card test mode */ |
589 | | FORCEITEM_ICLASSPOWER, /* 25 - iClass Prox power */ |
590 | | FORCEITEM_ICLASSRESET, /* 26 - iClass Prox reset */ |
591 | | FORCEITEM_LAST |
592 | | } |
593 | | forceItem_e; |
594 | | |
595 | | typedef enum |
596 | | { |
597 | | FROMDEVICE_NONE = 0, /* 0 - Used to indicate no device */ |
598 | | FROMDEVICE_INTERNAL, /* 1 - Generated internally */ |
599 | | FROMDEVICE_KEYPAD, /* 2 - Generated from keypad */ |
600 | | FROMDEVICE_CONSOLE, /* 3 - Generated from console */ |
601 | | FROMDEVICE_WIFI, /* 4 - Generated from wi-fi (DPAC) */ |
602 | | FROMDEVICE_LAST |
603 | | } |
604 | | fromDevice_e; |
605 | | |
606 | | #if 0 |
607 | | typedef enum |
608 | | { |
609 | | HARDWAREOPTIONS_NONE = 0x0000, /* No options installed (?!) */ |
610 | | HARDWAREOPTIONS_CLOCK = 0x0001, /* Has RTC installed (always set) */ |
611 | | HARDWAREOPTIONS_CONSOLE = 0x0002, /* Has serial console (always set) */ |
612 | | HARDWAREOPTIONS_KEYPAD = 0x0004, /* Has keypad installed */ |
613 | | HARDWAREOPTIONS_PROXREADER = 0x0008, /* Has Prox card circuitry installed */ |
614 | | HARDWAREOPTIONS_MAGREADER = 0x0010, /* Has magnetic card reader attached */ |
615 | | HARDWAREOPTIONS_1WIRE = 0x0020, /* Has Dallas 1-wire interface installed */ |
616 | | HARDWAREOPTIONS_WIFI = 0x0040, /* Has WiFi module installed (DPAC only, for now) */ |
617 | | HARDWAREOPTIONS_RS485 = 0x0080, /* Has RS-485 optioning (RS-232 assumed if not) */ |
618 | | HARDWAREOPTIONS_IR = 0x0100, /* Has IR LED communications interface installed */ |
619 | | HARDWAREOPTIONS_PUSHBUTTON = 0x0200, /* Has MCC pushbutton */ |
620 | | HARDWAREOPTIONS_WATCHDOG = 0x0400, /* Has watchdog option compiled in */ |
621 | | HARDWAREOPTIONS_ICLASSREADER = 0x0800, /* Has iClass OEM75 prox reader installed */ |
622 | | HARDWAREOPTIONS_AVAIL1000 = 0x1000, /* Not defined */ |
623 | | HARDWAREOPTIONS_AVAIL2000 = 0x2000, /* Not defined */ |
624 | | HARDWAREOPTIONS_AVAIL4000 = 0x4000, /* Not defined */ |
625 | | HARDWAREOPTIONS_AVAIL8000 = 0x8000, /* Not defined */ |
626 | | |
627 | | HARDWAREOPTIONS_RADIO = (HARDWAREOPTIONS_WIFI), |
628 | | |
629 | | HARDWAREOPTIONS_LAST = 0xffff /* Place holder, don't use */ |
630 | | } |
631 | | hardwareOptions_e; |
632 | | #endif |
633 | | |
634 | | #if 0 |
635 | | typedef enum |
636 | | { |
637 | | LOCALLED_NONE = 0, /* 0 - No assignment */ |
638 | | LOCALLED_RADIOPOWER, /* 1 - Follows radio power supply (lit=power on) */ |
639 | | LOCALLED_LOCKUNLOCKED, /* 2 - Follows strike state (lit=locked) */ |
640 | | LOCALLED_I2CPOWER, /* 3 - Follows I2C power (lit=power on) */ |
641 | | LOCALLED_AUTHCONSOLE, /* 4 - Follows authorization from console port (lit=authorized) */ |
642 | | LOCALLED_AUTHWIFI, /* 5 - Follows authorization from Wifi port (lit=authorized) */ |
643 | | LOCALLED_BATTERYLOW, /* 6 - Follows battery low status (lit=low) */ |
644 | | LOCALLED_BATTERYDEAD, /* 7 - Follows battery dead status (lit=battery dead) */ |
645 | | LOCALLED_PROXREADY, /* 8 - Follows Prox ready to read (lit=ready) */ |
646 | | LOCALLED_APACQUIRED, /* 9 - Follows WAP acquired via DPAC (lit=acquired) */ |
647 | | LOCALLED_PASSMODE, /* 10 - Follows DPAC entering pass mode (lit=pass mode successful) */ |
648 | | LOCALLED_PROXREAD, /* 11 - Follows receiving a prox read event (PROXCARDEVENT_READCARD) */ |
649 | | LOCALLED_CONNECTED, /* 12 - Follows the DPAC interrupt line, indicating connection status */ |
650 | | LOCALLED_DPACCTSTIMER, /* 13 - Follows DPAC CTS line, if asserted more than 5 seconds */ |
651 | | LOCALLED_PFMCHARGING, /* 14 - Follows the state of the PFM super-cap charger */ |
652 | | LOCALLED_LAST |
653 | | } |
654 | | localLED_e; |
655 | | #endif |
656 | | |
657 | | #if 0 |
658 | | typedef enum |
659 | | { |
660 | | LOCKPRIORITY_NONE = 0, /* 0 - Radio is not shut down for motor run, access not denied if radio is on */ |
661 | | LOCKPRIORITY_DPAC, /* 1 - Radio is not shut down for motor run, access denied if radio is on */ |
662 | | LOCKPRIORITY_LOCK, /* 2 - Radio is shut down for motor run, access not denied if radio is on */ |
663 | | LOCKPRIORITY_LAST |
664 | | } |
665 | | lockPriority_e; |
666 | | #endif |
667 | | |
668 | | #if 0 |
669 | | typedef enum |
670 | | { |
671 | | LOCKTYPE_NONE = 0, /* 0 - No lock present */ |
672 | | LOCKTYPE_PWM, /* 1 - PWM motor */ |
673 | | LOCKTYPE_ELECTRIC_STRIKE, /* 2 - Electric strike (normally de-energized, uses Motor A side of H-bridge) */ |
674 | | LOCKTYPE_MAGNETIC_LOCK, /* 3 - Magnetic lock (normally energized, uses Motor A side of H-bridge) */ |
675 | | LOCKTYPE_RELAY, /* 4 - Relay (normally de-energized, uses Motor B side of H-bridge) */ |
676 | | LOCKTYPE_LAST |
677 | | } |
678 | | lockType_e; |
679 | | #endif |
680 | | |
681 | | typedef enum |
682 | | { |
683 | | MFGFIELD_IOPINS = 0, /* 0 - Contains data about the state of the IO pins */ |
684 | | MFGFIELD_ADCS, /* 1 - Contains raw ADC data */ |
685 | | MFGFIELD_HARDWAREID, /* 2 - Contains hardware ID & revision of PIC */ |
686 | | MFGFIELD_CHECKPOINTLOG, /* 3 - Contains the checkpoint log data */ |
687 | | MFGFIELD_CPUREGISTERS, /* 4 - Contains the contents of selected PIC registers */ |
688 | | MFGFIELD_TASKFLAGS, /* 5 - Contains a list of all task flag values */ |
689 | | MFGFIELD_TIMERCHAIN, /* 6 - Contains a complete list of all active timers (timerData_t) */ |
690 | | MFGFIELD_PEEKPOKE, /* 7 - Contains results of peeking memory (U8, U16, U32, or string) */ |
691 | | MFGFIELD_LOCKSTATE, /* 8 - Contains the current passage mode flags (lockState_t) */ |
692 | | MFGFIELD_CAPABILITIES, /* 9 - Contains lock capability info (# users, event log entries, etc) */ |
693 | | MFGFIELD_DUMPM41T81, /* 10 - Contains a complete dump of the M41T81 RTC registers */ |
694 | | MFGFIELD_NVRAMCHECKSUMVALUE, /* 11 - Contains the 32-bit NVRAM checksum value */ |
695 | | MFGFIELD_CHECKSUMRESULTS, /* 12 - Contains results from checksumming exceptions, exceptiong roups, time zone calendars and time zones */ |
696 | | MFGFIELD_MORTISESTATELOG, /* 13 - Contains the last 32 mortise state changes */ |
697 | | MFGFIELD_MORTISEPINS, /* 14 - Contains the mortise pin status (S1,S2,S3,S4) */ |
698 | | MFGFIELD_KEYPADCHAR, /* 15 - Contains a character from the keypad */ |
699 | | MFGFIELD_MAGCARD, /* 16 - Contains mag card data */ |
700 | | MFGFIELD_PROXCARD, /* 17 - Contains prox card data */ |
701 | | MFGFIELD_LAST |
702 | | } |
703 | | mfgField_e; |
704 | | |
705 | | typedef enum |
706 | | { |
707 | | MORTISETYPE_NONE = 0, /* 0 - No mortise installed */ |
708 | | MORTISETYPE_S82276, /* 1 - Sargent 82276 mortise (A) */ |
709 | | MORTISETYPE_S82277, /* 2 - Sargent 82277 mortise, no cylinder (B) */ |
710 | | MORTISETYPE_S82278, /* 3 - Sargent 82278 mortise, no deadbolt (C) */ |
711 | | MORTISETYPE_S82279, /* 4 - Sargent 82279 mortise, no cylinder or deadbolt (D) */ |
712 | | MORTISETYPE_S10G77, /* 5 - Sargent 10G77 bored lock body (E) */ |
713 | | MORTISETYPE_S8877, /* 6 - Sargent 8877 mortise exit device (F) */ |
714 | | MORTISETYPE_S8878, /* 7 - Sargent 8878 mortise exit device, no cylinder (G) */ |
715 | | MORTISETYPE_S8977, /* 8 - Sargent 8977 mortise exit device (H) */ |
716 | | MORTISETYPE_S8978, /* 9 - Sargent 8978 mortise exit device, no cylinder (I) */ |
717 | | MORTISETYPE_CRML20x36, /* 10 - Corbin-Russwin ML20736/ML20836 mortise (J) */ |
718 | | MORTISETYPE_CRML20x35, /* 11 - Corbin-Russwin ML20735/ML20835 mortise, no cylinder (K) */ |
719 | | MORTISETYPE_CRML20x34, /* 12 - Corbin-Russwin ML20734/ML20834 mortise, no deadbolt (L) */ |
720 | | MORTISETYPE_CRML20x33, /* 13 - Corbin-Russwin ML20733/ML20833 mortise, no cylinder or deadbolt (M) */ |
721 | | MORTISETYPE_CRCL33x34, /* 14 - Corbin-Russwin CL33734/CL33834 bored lock body (N) */ |
722 | | MORTISETYPE_CR9X34, /* 15 - Corbin-Russwin 9734/9834 bored lock body (O) */ |
723 | | MORTISETYPE_CR9X33, /* 16 - Corbin-Russwin 9833/9833 bored lock body, no cylinder (P) */ |
724 | | MORTISETYPE_CR9MX34, /* 17 - Corbin-Russwin 9M734/9M834 bored lock body (Q) */ |
725 | | MORTISETYPE_CR9MX33, /* 18 - Corbin-Russwin 9M733/9M833 bored lock body, no cylinder (R) */ |
726 | | MORTISETYPE_LAST |
727 | | } |
728 | | mortiseType_e; |
729 | | |
730 | | #if 0 |
731 | | typedef enum |
732 | | { |
733 | | NVRAMCLEAROPTIONS_NONE = 0x0000, /* Place holder */ |
734 | | NVRAMCLEAROPTIONS_CFGINSTALLER = 0x0001, /* Options settable by the installer (lock type, etc) */ |
735 | | NVRAMCLEAROPTIONS_CFGADMIN = 0x0002, /* Options settable by the lock administrator (time, date, etc) */ |
736 | | NVRAMCLEAROPTIONS_EXCEPTIONS = 0x0004, /* The exceptions definitions */ |
737 | | NVRAMCLEAROPTIONS_EXCEPTIONGROUPS = 0x0008, /* The exception group definitions */ |
738 | | NVRAMCLEAROPTIONS_CALENDARS = 0x0010, /* The timezones calendar definitions */ |
739 | | NVRAMCLEAROPTIONS_TIMEZONES = 0x0020, /* The timezones definitions */ |
740 | | NVRAMCLEAROPTIONS_FILTERS = 0x0040, /* Recording filters */ |
741 | | NVRAMCLEAROPTIONS_EVENTLOG = 0x0080, /* The event log */ |
742 | | NVRAMCLEAROPTIONS_USERDATA = 0x0100, /* The actual user database */ |
743 | | NVRAMCLEAROPTIONS_DECLINEDLOG = 0x0200, /* Declined credentials log */ |
744 | | NVRAMCLEAROPTIONS_ALARMLOG = 0x0400, /* Alarm log */ |
745 | | NVRAMCLEAROPTIONS_LRUCACHE = 0x0800, /* LRU cache for remote authorization (status, user doesn't clear explicitly) */ |
746 | | NVRAMCLEAROPTIONS_DBHASH = 0x1000, /* User database hash (status, user doesn't clear explicitly) */ |
747 | | NVRAMCLEAROPTIONS_CFGSYSTEM = 0x2000, /* Factory settable options, system variables (status, user doesn't clear explicitly) */ |
748 | | NVRAMCLEAROPTIONS_AVAIL4000 = 0x4000, /* Unused */ |
749 | | NVRAMCLEAROPTIONS_ALL = 0x7fff, /* All of the above */ |
750 | | NVRAMCLEAROPTIONS_USEBACKUP = 0x8000 /* If set, installer and admin options are set according from NVRAM backup (if valid) */ |
751 | | } |
752 | | nvramClearOptions_e; |
753 | | #endif |
754 | | |
755 | | #if 0 |
756 | | typedef enum |
757 | | { |
758 | | NVRAMCOMMAND_BACKUP = 0, /* 0 - Backup NVRAM to backup region */ |
759 | | NVRAMCOMMAND_ERASE, /* 1 - Erase backup region */ |
760 | | NVRAMCOMMAND_RESTORE, /* 2 - Restore NVRAM from backup region */ |
761 | | NVRAMCOMMAND_LAST |
762 | | } |
763 | | nvramCommand_e; |
764 | | #endif |
765 | | |
766 | | #if 0 |
767 | | typedef enum |
768 | | { |
769 | | NVRAMDUMPSELECT_ALL = 0, /* 0 - Dump all */ |
770 | | NVRAMDUMPSELECT_PIC, /* 1 - Dump NVRAM on PIC */ |
771 | | NVRAMDUMPSELECT_USER, /* 2 - Dump I2C NVRAM containing user data, exceptions, exception groups, calendars, timezones */ |
772 | | NVRAMDUMPSELECT_EVENT, /* 3 - Dump I2C NVRAM containing event log, declined log, alarm log, LRU cache */ |
773 | | NVRAMDUMPSELECT_LAST |
774 | | } |
775 | | nvramDumpSelect_e; |
776 | | #endif |
777 | | |
778 | | typedef enum |
779 | | { |
780 | | PEEKPOKE_READU8 = 0, /* 0 - Read 8 bit value */ |
781 | | PEEKPOKE_READU16, /* 1 - Read 16 bit value */ |
782 | | PEEKPOKE_READU24, /* 2 - Read 24 bit value */ |
783 | | PEEKPOKE_READU32, /* 3 - Read 32 bit value */ |
784 | | PEEKPOKE_READSTRING, /* 4 - Read 'n' 8 bit values */ |
785 | | PEEKPOKE_WRITEU8, /* 5 - Write 8 bit value */ |
786 | | PEEKPOKE_WRITEU16, /* 6 - Write 16 bit value */ |
787 | | PEEKPOKE_WRITEU24, /* 7 - Write 24 bit value */ |
788 | | PEEKPOKE_WRITEU32, /* 8 - Write 32 bit value */ |
789 | | PEEKPOKE_WRITESTRING, /* 9 - Write 'n' 8 bit values */ |
790 | | PEEKPOKE_LAST |
791 | | } |
792 | | peekPoke_e; |
793 | | |
794 | | typedef enum |
795 | | { |
796 | | PPMISOURCE_NONE = 0, /* 0 - PPMI came from nowhere (not set) */ |
797 | | PPMISOURCE_PIN, /* 1 - PPMI came from PIN */ |
798 | | PPMISOURCE_PROX, /* 2 - PPMI came from Prox */ |
799 | | PPMISOURCE_MAGCARD, /* 3 - PPMI came from mag card */ |
800 | | PPMISOURCE_LAST |
801 | | } |
802 | | ppmiSource_e; |
803 | | |
804 | | #if 0 |
805 | | typedef enum |
806 | | { |
807 | | RADIOMODE_HOSTINITIATED = 0, /* 0 - DPAC in listen mode (default) */ |
808 | | RADIOMODE_LOCKINITIATED, /* 1 - DPAC in pass-through mode */ |
809 | | RADIOMODE_LAST |
810 | | } |
811 | | radioMode_e; |
812 | | #endif |
813 | | |
814 | | #if 0 |
815 | | typedef enum |
816 | | { |
817 | | RADIOTYPE_NONE = 0, /* 0 - No radio present */ |
818 | | RADIOTYPE_WIPORTNR, /* 1 - WiPortNR */ |
819 | | RADIOTYPE_DPAC80211B, /* 2 - DPAC 802.11b */ |
820 | | RADIOTYPE_DPAC80211BG, /* 3 - DPAC 802.11bg */ |
821 | | RADIOTYPE_LAST |
822 | | } |
823 | | radioType_e; |
824 | | #endif |
825 | | |
826 | | typedef enum |
827 | | { |
828 | | RESPONSETYPE_OK = 0, /* 0 - All is well */ |
829 | | RESPONSETYPE_ERROR, /* 1 - Generic error */ |
830 | | RESPONSETYPE_HASDATA, /* 2 - Response has data */ |
831 | | RESPONSETYPE_NOHANDLER, /* 3 - Command requested with no handler (internal error) */ |
832 | | RESPONSETYPE_NOSESSION, /* 4 - No session established */ |
833 | | RESPONSETYPE_BADCOMMAND, /* 5 - Bad command value */ |
834 | | RESPONSETYPE_BADPARAMETER, /* 6 - Bad parameter (can mean a lot of things) */ |
835 | | RESPONSETYPE_BADPARAMETERLEN, /* 7 - Bad parameter length (too short, too long) */ |
836 | | RESPONSETYPE_MISSINGPARAMETER, /* 8 - Missing parameter (something was required, what'd you forget?) */ |
837 | | RESPONSETYPE_DUPLICATEPARAMETER, /* 9 - Parameter supplied more than once (D'oh!) */ |
838 | | RESPONSETYPE_PARAMETERCONFLICT, /* 10 - Parameters conflict (usually mutually exclusive items) */ |
839 | | RESPONSETYPE_BADDEVICE, /* 11 - Bad device (command came from a device that's not allowed) */ |
840 | | RESPONSETYPE_NVRAMERROR, /* 12 - Hardware problem... */ |
841 | | RESPONSETYPE_NVRAMERRORNOACK, /* 13 - Hardware problem... */ |
842 | | RESPONSETYPE_NVRAMERRORNOACK32, /* 14 - Hardware problem... */ |
843 | | RESPONSETYPE_NOTI2CADDRESS, /* 15 - Illegal I2C address in i2cStart */ |
844 | | RESPONSETYPE_FIRMWAREERROR, /* 16 - Generic firmware upload error (can mean lots of things) */ |
845 | | RESPONSETYPE_DUMPINPROGRESS, /* 17 - Can't do something, a dump is in progress */ |
846 | | RESPONSETYPE_INTERNALERROR, /* 18 - Something Bad Happened(tm) */ |
847 | | RESPONSETYPE_NOTIMPLEMENTED, /* 19 - Command or function not implemented */ |
848 | | RESPONSETYPE_PINFORMATERROR, /* 20 - Error in formatting of PIN (non hex character) */ |
849 | | RESPONSETYPE_PINEXISTS, /* 21 - PIN already exists in database */ |
850 | | RESPONSETYPE_PINNOTFOUND, /* 22 - PIN wasn't found (actionManageUsers) */ |
851 | | RESPONSETYPE_USERACTIVE, /* 23 - The record for this user is active (not deleted or free) */ |
852 | | RESPONSETYPE_USERINACTIVE, /* 24 - The record for this user is inactive (not in use) */ |
853 | | RESPONSETYPE_PARENTNOTFOUND, /* 25 - Users parent couldn't be found (used internally by dbmgr.c) */ |
854 | | RESPONSETYPE_NOCHAIN, /* 26 - No users in chain (used internally by dbmgr.c) */ |
855 | | RESPONSETYPE_CAUGHTINLOOP, /* 27 - Caught in a loop somewhere */ |
856 | | RESPONSETYPE_EVENTFILTERED, /* 28 - Event record was filtered (eventlog.c) */ |
857 | | RESPONSETYPE_PAYLOADTOOLARGE, /* 29 - Message payload too large (protocol.c) */ |
858 | | RESPONSETYPE_ENDOFDATA, /* 30 - No more data (used internally by eventlog.c) */ |
859 | | RESPONSETYPE_RMTAUTHREJECTED, /* 31 - Remote authorization rejected (lockmgr.c) */ |
860 | | RESPONSETYPE_NVRAMVERSIONERROR, /* 32 - NVRAM version doesn't match expected value */ |
861 | | RESPONSETYPE_NOHARDWARE, /* 33 - Operation requested for unsupported hardware */ |
862 | | RESPONSETYPE_SCHEDULERCONFLICT, /* 34 - Scheduler not in correct mode for this operation */ |
863 | | RESPONSETYPE_NVRAMWRITEERROR, /* 35 - NVRAM write compare error */ |
864 | | RESPONSETYPE_DECLINEDFILTERED, /* 36 - Declined record was filtered (declinedlog.c) */ |
865 | | RESPONSETYPE_NECONFIGPARM, /* 37 - Non-existent configuration parameter */ |
866 | | RESPONSETYPE_FLASHERASEERROR, /* 38 - Error erasing FLASH */ |
867 | | RESPONSETYPE_FLASHWRITEERROR, /* 39 - Error writing FLASH */ |
868 | | RESPONSETYPE_BADNVBACKUP, /* 40 - NVBackup length doesn't match sizeof (configParametersNV_t) */ |
869 | | RESPONSETYPE_EARLYACK, /* 41 - Sent prior to long commands if CONFIGITEM_EARLYACK set */ |
870 | | RESPONSETYPE_ALARMFILTERED, /* 42 - Alarm record was filtered (alarm.c) */ |
871 | | RESPONSETYPE_ACVFAILURE, /* 43 - Auxiliary controller version request failure */ |
872 | | RESPONSETYPE_USERCHECKSUMERROR, /* 44 - User checksum value error */ |
873 | | RESPONSETYPE_CHECKSUMERROR, /* 45 - Generic checksum error */ |
874 | | RESPONSETYPE_RTCSQWFAILURE, /* 46 - RTC isn't generating square wave */ |
875 | | RESPONSETYPE_PRIORITYSHUTDOWN, /* 47 - Session terminated early because lock has priority over communications */ |
876 | | RESPONSETYPE_NOTMODIFIABLE, /* 48 - Configuration parameter is not user modifiable */ |
877 | | RESPONSETYPE_CANTPRESERVE, /* 49 - Can't preserve configuration (config.c, not enough space) */ |
878 | | RESPONSETYPE_INPASSAGEMODE, /* 50 - Lock is in passage mode, can't do remote unlock */ |
879 | | RESPONSETYPE_LAST |
880 | | #if 0 |
881 | | , |
882 | | /* |
883 | | * These should not be exposed to the user |
884 | | */ |
885 | | RESPONSETYPE_NOREPLY, /* 51 - Do not send a reply, subroutine is posting its own */ |
886 | | RESPONSETYPE_TAKEABREAK, /* 52 - Intermediate return result, when log searches taking too long */ |
887 | | RESPONSETYPE_DPACBLOCKS, /* 53 - PWM lock, battery powered, DPAC takes priority */ |
888 | | RESPONSETYPE_ACKNAKTIMEOUT, /* 54 - Added for console.c, not used in lock firmware */ |
889 | | RESPONSETYPE_UNKNOWNCPUSPEED /* 55 - Unknown CPU speed (utils.c, utilCalculateClockRate()) */ |
890 | | #endif |
891 | | } |
892 | | responseType_e; |
893 | | |
894 | | #if 0 |
895 | | typedef enum |
896 | | { |
897 | | SCHEDULERTYPE_HARDON = 0, /* 0 - Radio is always on */ |
898 | | SCHEDULERTYPE_SIMPLE, /* 1 - Simple 'x' minutes off, 'y' seconds on scheduler */ |
899 | | SCHEDULERTYPE_DOM, /* 2 - Day of month scheduling */ |
900 | | SCHEDULERTYPE_DOW, /* 3 - Day of week scheduling */ |
901 | | SCHEDULERTYPE_COMMUSER, /* 4 - Only a comm user triggers power on */ |
902 | | SCHEDULERTYPE_HOD, /* 5 - Hour of day scheduling */ |
903 | | SCHEDULERTYPE_OFF, /* 6 - Nothing wakes up radio */ |
904 | | SCHEDULERTYPE_LAST |
905 | | } |
906 | | schedulerType_e; |
907 | | #endif |
908 | | |
909 | | typedef enum |
910 | | { |
911 | | TIMEZONEMODE_NORMAL = 0, /* 0 - Timezone is applied to user, no auto unlocking */ |
912 | | TIMEZONEMODE_EXCLUSION, /* 1 - User NOT permitted access if in this zone at this time */ |
913 | | TIMEZONEMODE_AUTOTIME, /* 2 - Auto unlock at the start of the TZ, lock at end */ |
914 | | TIMEZONEMODE_AUTOFPT, /* 3 - Unlock on first person through, lock at end */ |
915 | | TIMEZONEMODE_UAPM, /* 4 - Permits user activated passage mode when active */ |
916 | | TIMEZONEMODE_LAST |
917 | | } |
918 | | timeZoneMode_e; |
919 | | |
920 | | #if 0 |
921 | | typedef enum |
922 | | { |
923 | | UNLOCKMODE_NORMAL = 0, /* 0 - Normal unlock (CONFIGITEM_UNLOCK_TIME duration) */ |
924 | | UNLOCKMODE_UNLOCK, /* 1 - Unlock, switching to passage mode */ |
925 | | UNLOCKMODE_LOCK, /* 2 - Lock, regardless of mode */ |
926 | | UNLOCKMODE_LAST |
927 | | } |
928 | | unlockMode_e; |
929 | | #endif |
930 | | |
931 | | /* XXX: enum vals don't all match vals in comments ??? */ |
932 | | typedef enum |
933 | | { |
934 | | UPSTREAMCOMMAND_RESERVED = 0, /* 0 - Not used */ |
935 | | UPSTREAMCOMMAND_DEBUGMSG, /* 1 - Debug message (zero terminated) */ |
936 | | UPSTREAMCOMMAND_QUERYVERSION, /* 2 - Version string (zero terminated) */ |
937 | | UPSTREAMCOMMAND_QUERYDATETIME, /* 3 - Current date/time */ |
938 | | UPSTREAMCOMMAND_QUERYSERIALNUMBER, /* 5 - Serial number (MAX_SERIALNUM_LENGTH bytes) */ |
939 | | UPSTREAMCOMMAND_DUMPEVENTLOG, /* 6 - Event log record */ |
940 | | UPSTREAMCOMMAND_DUMPNVRAM, /* 7 - NVRAM dump record */ |
941 | | UPSTREAMCOMMAND_RMTAUTHREQUEST, /* 8 - Remote authorization request */ |
942 | | UPSTREAMCOMMAND_RETRIEVEUSER, /* 9 - Retrieve user record */ |
943 | | UPSTREAMCOMMAND_QUERYCONFIG, /* 10 - Query configuration */ |
944 | | UPSTREAMCOMMAND_RMTEVENTLOGRECORD, /* 11 - Remote event log record */ |
945 | | UPSTREAMCOMMAND_DPAC, /* 12 - DPAC related message */ |
946 | | UPSTREAMCOMMAND_NOTIFY, /* 14 - Notify user message */ |
947 | | UPSTREAMCOMMAND_MFG, /* 15 - Manufacturing data */ |
948 | | UPSTREAMCOMMAND_EVENTLOGWARNING, /* 16 - Event log warning level message */ |
949 | | UPSTREAMCOMMAND_DUMPNVRAMRLE, /* 17 - Run Length Encoded (RLE) NVRAM dump record */ |
950 | | UPSTREAMCOMMAND_RMTDECLINEDRECORD, /* 18 - Remote declined log record */ |
951 | | UPSTREAMCOMMAND_DECLINEDWARNING, /* 19 - Declined log warning level message */ |
952 | | UPSTREAMCOMMAND_DUMPDECLINEDLOG, /* 20 - Declined log record dump */ |
953 | | UPSTREAMCOMMAND_RMTALARMRECORD, /* 21 - Remote alarm log record */ |
954 | | UPSTREAMCOMMAND_ALARMWARNING, /* 22 - Alarm log warning level message */ |
955 | | UPSTREAMCOMMAND_DUMPALARMLOG, /* 23 - Alarm log record dump */ |
956 | | UPSTREAMCOMMAND_CONNECTSCHEDULER, /* 24 - Connection because of scheduler, contains serial number */ |
957 | | UPSTREAMCOMMAND_CONNECTCOMMUSER, /* 25 - Connection because of comm user, contains serial number */ |
958 | | UPSTREAMCOMMAND_CONNECTALARM, /* 26 - Connection because of alarm event, contains serial number */ |
959 | | UPSTREAMCOMMAND_DUMPDEBUGLOG, /* 27 - Debug log dump record */ |
960 | | UPSTREAMCOMMAND_LAST |
961 | | } |
962 | | upstreamCommand_e; |
963 | | |
964 | | /* XXX: enum vals don't all match vals in comments ??? */ |
965 | | typedef enum |
966 | | { |
967 | | UPSTREAMFIELD_NOTUSED = 0, /* 0 - Not used */ |
968 | | UPSTREAMFIELD_SERIALNUMBER, /* 1 - Contains unit serial number */ |
969 | | UPSTREAMFIELD_NAR, /* 2 - Contains 16 bit Next Available Record */ |
970 | | UPSTREAMFIELD_ENTRYDEVICE, /* 3 - Contains a ppmSource_e */ |
971 | | UPSTREAMFIELD_PPMIFIELDTYPE, /* 4 - Contains a type of _PIN (auxFieldType_e) */ |
972 | | UPSTREAMFIELD_PIN, /* 5 - Contains a PIN, Prox, mag key */ |
973 | | UPSTREAMFIELD_SEQUENCENUMBER, /* 6 - Contains 16 bit sequence number */ |
974 | | UPSTREAMFIELD_RESPONSEWINDOW, /* 7 - Contains 8 bit response window (number of seconds) */ |
975 | | UPSTREAMFIELD_USERNUMBER, /* 8 - Contains 16 bit user number */ |
976 | | UPSTREAMFIELD_VERSION, /* 9 - Contains version string */ |
977 | | UPSTREAMFIELD_EVENTLOGRECORD, /* 10 - Contains eventLog_e event log record */ |
978 | | UPSTREAMFIELD_DATETIME, /* 11 - Contains 8 byte date/time data */ |
979 | | UPSTREAMFIELD_EVENTLOGRECORDCOUNT, /* 17 - Contains number of event log records */ |
980 | | UPSTREAMFIELD_DECLINEDRECORDCOUNT, /* 20 - Contains number of declined log records */ |
981 | | UPSTREAMFIELD_DECLINEDRECORD, /* 21 - Contains declinedLog_t declined log record */ |
982 | | UPSTREAMFIELD_USERTYPE, /* 23 - Contains the user type (master, emergency, normal, etc) */ |
983 | | UPSTREAMFIELD_ACCESSALWAYS, /* 24 - Contains the access always mode (true, false) */ |
984 | | UPSTREAMFIELD_CACHED, /* 25 - Contains the cached flag (true, false) */ |
985 | | UPSTREAMFIELD_PRIMARYFIELDTYPE, /* 26 - Contains the primary field type (pin, prox, mag) */ |
986 | | UPSTREAMFIELD_AUXFIELDTYPE, /* 27 - Contains the aux field type (pin, prox, mag) */ |
987 | | UPSTREAMFIELD_ACCESSMODE, /* 28 - Contains the access mode (aux only, aux + pin, aux or pin, etc) */ |
988 | | UPSTREAMFIELD_EXPIREON, /* 29 - Contains the date the user expires on (00/00/00 if not set) */ |
989 | | UPSTREAMFIELD_USECOUNT, /* 30 - Contains the use count (if user type is ONE_TIME) */ |
990 | | UPSTREAMFIELD_TIMEZONE, /* 31 - Contains the timezone bit map */ |
991 | | UPSTREAMFIELD_EXCEPTIONGROUP, /* 32 - Contains the exception group */ |
992 | | UPSTREAMFIELD_PRIMARYPIN, /* 33 - Contains the primary PPMI (ASCII, 0 terminated) */ |
993 | | UPSTREAMFIELD_AUXPIN, /* 34 - Contains the aux PPMI (ASCII, 0 terminated) */ |
994 | | UPSTREAMFIELD_ALARMRECORDCOUNT, /* 35 - Contains number of alarm log records */ |
995 | | UPSTREAMFIELD_ALARMRECORD, /* 36 - Contains alarmLog_t alarm log record */ |
996 | | UPSTREAMFIELD_AUXCTLRVERSION, /* 37 - Contains the version number of the auxiliary controller */ |
997 | | UPSTREAMFIELD_LAST |
998 | | } |
999 | | upstreamField_e; |
1000 | | |
1001 | | typedef enum |
1002 | | { |
1003 | | USERTYPE_NONE = 0, /* 0 - No user */ |
1004 | | USERTYPE_MASTER, /* 1 - Master user (clears panic, relock, lockout and auto open) */ |
1005 | | USERTYPE_EMERGENCY, /* 2 - Opens door regardless of state */ |
1006 | | USERTYPE_SUPERVISOR, /* 3 - Like emergency user, except won't unlock when in panic mode */ |
1007 | | USERTYPE_USER, /* 4 - Generic user */ |
1008 | | USERTYPE_EXTENDED, /* 5 - Same as _USER, but strike can be kept open longer */ |
1009 | | USERTYPE_PASSAGE, /* 6 - Toggles strike between passage and non-passage modes */ |
1010 | | USERTYPE_ONETIME, /* 7 - User may be used one time */ |
1011 | | USERTYPE_PANIC, /* 8 - Locks down locks, no user except master valid */ |
1012 | | USERTYPE_LOCKOUT, /* 9 - Locks out regular, extended, passage, one time, and notify users */ |
1013 | | USERTYPE_RELOCK, /* 10 - Relock cancels passage mode, but can't unlock */ |
1014 | | USERTYPE_NOTIFY, /* 11 - Same as _USER, only sends unsolicited message to server */ |
1015 | | USERTYPE_COMM, /* 12 - Kicks a communications sessions off if not running _HARDON scheduler */ |
1016 | | USERTYPE_SUSPENDED, /* 13 - User is suspended */ |
1017 | | USERTYPE_LAST |
1018 | | } |
1019 | | userType_e; |
1020 | | |
1021 | | |
1022 | 15 | #define ASSA_R3_PORT_RANGE "2571,8023" /* Neither are IANA registered */ |
1023 | | |
1024 | | /* |
1025 | | * Wireshark ID of the R3 protocol |
1026 | | */ |
1027 | | static int proto_r3; |
1028 | | |
1029 | | /* |
1030 | | * Packet variables |
1031 | | */ |
1032 | | static int hf_r3_tildex3ds; /* Got ~~~ds */ |
1033 | | |
1034 | | static int hf_r3_header; /* Packet header */ |
1035 | | static int hf_r3_payload; /* Packet payload */ |
1036 | | static int hf_r3_tail; /* Packet tail */ |
1037 | | |
1038 | | static int hf_r3_sigil; /* Packet sigil */ |
1039 | | static int hf_r3_address; /* Packet address */ |
1040 | | static int hf_r3_packetnumber; /* Packet number */ |
1041 | | static int hf_r3_packetlength; /* Packet length */ |
1042 | | static int hf_r3_encryption; /* Packet encryption scheme */ |
1043 | | static int hf_r3_crc; /* Packet CRC */ |
1044 | | static int hf_r3_crc_bad; /* Packet CRC bad (for filtering) */ |
1045 | | static int hf_r3_xor; /* Packet Xor */ |
1046 | | static int hf_r3_xor_bad; /* Packet Xor bad (for filtering) */ |
1047 | | |
1048 | | static int hf_r3_commandlength; /* Command length */ |
1049 | | static int hf_r3_command; /* Command (cmdCommand_e) */ |
1050 | | static int hf_r3_commanddata; /* Command data (not always present) */ |
1051 | | |
1052 | | static int hf_r3_commandmfglength; /* Mfg Command length */ |
1053 | | static int hf_r3_commandmfg; /* Mfg Command (cmdCommand_e) */ |
1054 | | /*static int hf_r3_commandmfgdata;*/ /* Mfg Command data (not always present) */ |
1055 | | |
1056 | | static int hf_r3_responselength; /* Response length */ |
1057 | | static int hf_r3_responsecommand; /* Response command */ |
1058 | | static int hf_r3_responsetype; /* Response type (responseType_e) */ |
1059 | | static int hf_r3_responsetocommand; /* Response to command (cmdCommand_e) */ |
1060 | | /*static int hf_r3_responsedata;*/ /* Response data (not always present) */ |
1061 | | |
1062 | | static int hf_r3_upstreamcommand; |
1063 | | |
1064 | | static int hf_r3_upstreamfield; /* Upstream field (length + type + data) */ |
1065 | | static int hf_r3_upstreamfieldlength; /* Upstream field length */ |
1066 | | static int hf_r3_upstreamfieldtype; /* Upstream field type (upstreamField_e) */ |
1067 | | /*static int hf_r3_upstreamfielddatalen;*/ /* Upstream field data length */ |
1068 | | static int hf_r3_upstreamfielderror; /* Upstream field is unknown type */ |
1069 | | static int hf_r3_upstreamfieldarray[UPSTREAMFIELD_LAST]; |
1070 | | |
1071 | | static int hf_r3_configitems; |
1072 | | static int hf_r3_configitem; |
1073 | | /*static int hf_r3_configfield;*/ |
1074 | | static int hf_r3_configitemlength; |
1075 | | static int hf_r3_configitemtype; |
1076 | | static int hf_r3_configitemdata; |
1077 | | static int hf_r3_configitemdata_bool; |
1078 | | static int hf_r3_configitemdata_8; |
1079 | | static int hf_r3_configitemdata_16; |
1080 | | static int hf_r3_configitemdata_32; |
1081 | | static int hf_r3_configitemdata_string; |
1082 | | |
1083 | | static int hf_r3_timezonearray0; |
1084 | | static int hf_r3_timezonearray1; |
1085 | | static int hf_r3_timezonearray2; |
1086 | | static int hf_r3_timezonearray3; |
1087 | | static int hf_r3_timezonearray4; |
1088 | | static int hf_r3_timezonearray5; |
1089 | | static int hf_r3_timezonearray6; |
1090 | | static int hf_r3_timezonearray7; |
1091 | | static int hf_r3_timezonearray8; |
1092 | | static int hf_r3_timezonearray9; |
1093 | | static int hf_r3_timezonearray10; |
1094 | | static int hf_r3_timezonearray11; |
1095 | | static int hf_r3_timezonearray12; |
1096 | | static int hf_r3_timezonearray13; |
1097 | | static int hf_r3_timezonearray14; |
1098 | | static int hf_r3_timezonearray15; |
1099 | | static int hf_r3_timezonearray16; |
1100 | | static int hf_r3_timezonearray17; |
1101 | | static int hf_r3_timezonearray18; |
1102 | | static int hf_r3_timezonearray19; |
1103 | | static int hf_r3_timezonearray20; |
1104 | | static int hf_r3_timezonearray21; |
1105 | | static int hf_r3_timezonearray22; |
1106 | | static int hf_r3_timezonearray23; |
1107 | | static int hf_r3_timezonearray24; |
1108 | | static int hf_r3_timezonearray25; |
1109 | | static int hf_r3_timezonearray26; |
1110 | | static int hf_r3_timezonearray27; |
1111 | | static int hf_r3_timezonearray28; |
1112 | | static int hf_r3_timezonearray29; |
1113 | | static int hf_r3_timezonearray30; |
1114 | | static int hf_r3_timezonearray31; |
1115 | | |
1116 | | static int hf_r3_expireon_year; |
1117 | | static int hf_r3_expireon_month; |
1118 | | static int hf_r3_expireon_day; |
1119 | | |
1120 | | static int hf_r3_datetime_year; |
1121 | | static int hf_r3_datetime_month; |
1122 | | static int hf_r3_datetime_day; |
1123 | | static int hf_r3_datetime_dow; |
1124 | | static int hf_r3_datetime_hours; |
1125 | | static int hf_r3_datetime_minutes; |
1126 | | static int hf_r3_datetime_seconds; |
1127 | | static int hf_r3_datetime_dst; |
1128 | | |
1129 | | static int hf_r3_eventlog_recordnumber; |
1130 | | static int hf_r3_eventlog_year; |
1131 | | static int hf_r3_eventlog_month; |
1132 | | static int hf_r3_eventlog_day; |
1133 | | static int hf_r3_eventlog_hour; |
1134 | | static int hf_r3_eventlog_minute; |
1135 | | static int hf_r3_eventlog_second; |
1136 | | static int hf_r3_eventlog_usernumber; |
1137 | | static int hf_r3_eventlog_event; |
1138 | | |
1139 | | static int hf_r3_declinedlog_recordnumber; |
1140 | | static int hf_r3_declinedlog_year; |
1141 | | static int hf_r3_declinedlog_month; |
1142 | | static int hf_r3_declinedlog_day; |
1143 | | static int hf_r3_declinedlog_hour; |
1144 | | static int hf_r3_declinedlog_minute; |
1145 | | static int hf_r3_declinedlog_second; |
1146 | | static int hf_r3_declinedlog_usernumber; |
1147 | | static int hf_r3_declinedlog_cred1type; |
1148 | | static int hf_r3_declinedlog_cred2type; |
1149 | | static int hf_r3_declinedlog_cred1; |
1150 | | static int hf_r3_declinedlog_cred2; |
1151 | | |
1152 | | static int hf_r3_alarmlog_recordnumber; |
1153 | | static int hf_r3_alarmlog_year; |
1154 | | static int hf_r3_alarmlog_month; |
1155 | | static int hf_r3_alarmlog_day; |
1156 | | static int hf_r3_alarmlog_hour; |
1157 | | static int hf_r3_alarmlog_minute; |
1158 | | static int hf_r3_alarmlog_second; |
1159 | | static int hf_r3_alarmlog_id; |
1160 | | static int hf_r3_alarmlog_usernumber; |
1161 | | |
1162 | | static int hf_r3_debugmsg; |
1163 | | |
1164 | | static int hf_r3_setdate_year; |
1165 | | static int hf_r3_setdate_month; |
1166 | | static int hf_r3_setdate_day; |
1167 | | static int hf_r3_setdate_dow; |
1168 | | static int hf_r3_setdate_hours; |
1169 | | static int hf_r3_setdate_minutes; |
1170 | | static int hf_r3_setdate_seconds; |
1171 | | |
1172 | | static int hf_r3_deleteusers; |
1173 | | |
1174 | | static int hf_r3_defineexception_number; |
1175 | | static int hf_r3_defineexception_startdate_month; |
1176 | | static int hf_r3_defineexception_startdate_day; |
1177 | | static int hf_r3_defineexception_startdate_hours; |
1178 | | static int hf_r3_defineexception_startdate_minutes; |
1179 | | static int hf_r3_defineexception_enddate_month; |
1180 | | static int hf_r3_defineexception_enddate_day; |
1181 | | static int hf_r3_defineexception_enddate_hours; |
1182 | | static int hf_r3_defineexception_enddate_minutes; |
1183 | | |
1184 | | static int hf_r3_defineexceptiongroup_number; |
1185 | | static int hf_r3_defineexceptiongroup_bits; |
1186 | | |
1187 | | static int hf_r3_definecalendar_number; |
1188 | | static int hf_r3_definecalendar_bits; |
1189 | | |
1190 | | static int hf_r3_definetimezone_number; |
1191 | | static int hf_r3_definetimezone_starttime_hours; |
1192 | | static int hf_r3_definetimezone_starttime_minutes; |
1193 | | static int hf_r3_definetimezone_endtime_hours; |
1194 | | static int hf_r3_definetimezone_endtime_minutes; |
1195 | | static int hf_r3_definetimezone_daymap; |
1196 | | static int hf_r3_definetimezone_daymap0; |
1197 | | static int hf_r3_definetimezone_daymap1; |
1198 | | static int hf_r3_definetimezone_daymap2; |
1199 | | static int hf_r3_definetimezone_daymap3; |
1200 | | static int hf_r3_definetimezone_daymap4; |
1201 | | static int hf_r3_definetimezone_daymap5; |
1202 | | static int hf_r3_definetimezone_daymap6; |
1203 | | static int hf_r3_definetimezone_exceptiongroup; |
1204 | | static int hf_r3_definetimezone_mode; |
1205 | | static int hf_r3_definetimezone_calendar; |
1206 | | |
1207 | | static int hf_r3_rmtauthretry_sequence; |
1208 | | static int hf_r3_rmtauthretry_retry; |
1209 | | |
1210 | | static int hf_r3_eventlogdump_starttime_year; |
1211 | | static int hf_r3_eventlogdump_starttime_month; |
1212 | | static int hf_r3_eventlogdump_starttime_day; |
1213 | | static int hf_r3_eventlogdump_starttime_hours; |
1214 | | static int hf_r3_eventlogdump_starttime_minutes; |
1215 | | static int hf_r3_eventlogdump_endtime_year; |
1216 | | static int hf_r3_eventlogdump_endtime_month; |
1217 | | static int hf_r3_eventlogdump_endtime_day; |
1218 | | static int hf_r3_eventlogdump_endtime_hours; |
1219 | | static int hf_r3_eventlogdump_endtime_minutes; |
1220 | | static int hf_r3_eventlogdump_user; |
1221 | | |
1222 | | static int hf_r3_declinedlogdump_starttime_year; |
1223 | | static int hf_r3_declinedlogdump_starttime_month; |
1224 | | static int hf_r3_declinedlogdump_starttime_day; |
1225 | | static int hf_r3_declinedlogdump_starttime_hours; |
1226 | | static int hf_r3_declinedlogdump_starttime_minutes; |
1227 | | static int hf_r3_declinedlogdump_endtime_year; |
1228 | | static int hf_r3_declinedlogdump_endtime_month; |
1229 | | static int hf_r3_declinedlogdump_endtime_day; |
1230 | | static int hf_r3_declinedlogdump_endtime_hours; |
1231 | | static int hf_r3_declinedlogdump_endtime_minutes; |
1232 | | |
1233 | | static int hf_r3_alarmlogdump_starttime_year; |
1234 | | static int hf_r3_alarmlogdump_starttime_month; |
1235 | | static int hf_r3_alarmlogdump_starttime_day; |
1236 | | static int hf_r3_alarmlogdump_starttime_hours; |
1237 | | static int hf_r3_alarmlogdump_starttime_minutes; |
1238 | | static int hf_r3_alarmlogdump_endtime_year; |
1239 | | static int hf_r3_alarmlogdump_endtime_month; |
1240 | | static int hf_r3_alarmlogdump_endtime_day; |
1241 | | static int hf_r3_alarmlogdump_endtime_hours; |
1242 | | static int hf_r3_alarmlogdump_endtime_minutes; |
1243 | | |
1244 | | static int hf_r3_nvramclearoptions; |
1245 | | static int hf_r3_nvramclearoptions0; |
1246 | | static int hf_r3_nvramclearoptions1; |
1247 | | static int hf_r3_nvramclearoptions2; |
1248 | | static int hf_r3_nvramclearoptions3; |
1249 | | static int hf_r3_nvramclearoptions4; |
1250 | | static int hf_r3_nvramclearoptions5; |
1251 | | static int hf_r3_nvramclearoptions6; |
1252 | | static int hf_r3_nvramclearoptions7; |
1253 | | static int hf_r3_nvramclearoptions8; |
1254 | | static int hf_r3_nvramclearoptions9; |
1255 | | static int hf_r3_nvramclearoptions10; |
1256 | | static int hf_r3_nvramclearoptions11; |
1257 | | static int hf_r3_nvramclearoptions12; |
1258 | | static int hf_r3_nvramclearoptions13; |
1259 | | static int hf_r3_nvramclearoptions14; |
1260 | | static int hf_r3_nvramclearoptions15; |
1261 | | |
1262 | | static int hf_r3_writeeventlog_user; |
1263 | | static int hf_r3_writeeventlog_event; |
1264 | | |
1265 | | static int hf_r3_powertableselection; |
1266 | | |
1267 | | static int hf_r3_filter_type; |
1268 | | static int hf_r3_filter_list; |
1269 | | |
1270 | | static int hf_r3_alarm_length; |
1271 | | static int hf_r3_alarm_id; |
1272 | | static int hf_r3_alarm_state; |
1273 | | |
1274 | | static int hf_r3_dpac_action; |
1275 | | static int hf_r3_dpac_waittime; |
1276 | | static int hf_r3_dpac_command; |
1277 | | |
1278 | | static int hf_r3_dpacreply_stuff; |
1279 | | static int hf_r3_dpacreply_length; |
1280 | | static int hf_r3_dpacreply_reply; |
1281 | | |
1282 | | static int hf_r3_mfgfield_length; |
1283 | | static int hf_r3_mfgfield; |
1284 | | /*static int hf_r3_mfgfield_data;*/ |
1285 | | |
1286 | | static int hf_r3_mfgsetserialnumber; |
1287 | | static int hf_r3_mfgsetcryptkey; |
1288 | | static int hf_r3_mfgdumpnvram; |
1289 | | static int hf_r3_mfgremoteunlock; |
1290 | | static int hf_r3_mfgtestpreserve; |
1291 | | |
1292 | | static int hf_r3_adc [8]; |
1293 | | |
1294 | | static int hf_r3_hardwareid_board; |
1295 | | static int hf_r3_hardwareid_cpuid; |
1296 | | static int hf_r3_hardwareid_cpurev; |
1297 | | |
1298 | | static int hf_r3_testkeypad; |
1299 | | static int hf_r3_testmagcard; |
1300 | | static int hf_r3_testproxcard; |
1301 | | |
1302 | | static int hf_r3_nvramdump_record; |
1303 | | static int hf_r3_nvramdump_length; |
1304 | | static int hf_r3_nvramdump_data; |
1305 | | |
1306 | | static int hf_r3_nvramdumprle_record; |
1307 | | static int hf_r3_nvramdumprle_length; |
1308 | | static int hf_r3_nvramdumprle_data; |
1309 | | |
1310 | | static int hf_r3_iopins_lat; |
1311 | | static int hf_r3_iopins_port; |
1312 | | static int hf_r3_iopins_tris; |
1313 | | |
1314 | | static int hf_r3_mortisepins_s1; |
1315 | | static int hf_r3_mortisepins_s2; |
1316 | | static int hf_r3_mortisepins_s3; |
1317 | | static int hf_r3_mortisepins_s4; |
1318 | | |
1319 | | static int hf_r3_checksumresults; |
1320 | | static int hf_r3_checksumresults_field; |
1321 | | static int hf_r3_checksumresults_length; |
1322 | | static int hf_r3_checksumresults_state; |
1323 | | |
1324 | | static int hf_r3_forceoptions_length; |
1325 | | static int hf_r3_forceoptions_item; |
1326 | | static int hf_r3_forceoptions_state_8; |
1327 | | static int hf_r3_forceoptions_state_16; |
1328 | | static int hf_r3_forceoptions_state_24; |
1329 | | static int hf_r3_forceoptions_state_32; |
1330 | | |
1331 | | static int hf_r3_peekpoke_operation; |
1332 | | static int hf_r3_peekpoke_address; |
1333 | | static int hf_r3_peekpoke_length; |
1334 | | static int hf_r3_peekpoke_poke8; |
1335 | | static int hf_r3_peekpoke_poke16; |
1336 | | static int hf_r3_peekpoke_poke24; |
1337 | | static int hf_r3_peekpoke_poke32; |
1338 | | static int hf_r3_peekpoke_pokestring; |
1339 | | |
1340 | | static int hf_r3_firmwaredownload_length; |
1341 | | static int hf_r3_firmwaredownload_record; |
1342 | | static int hf_r3_firmwaredownload_action; |
1343 | | static int hf_r3_firmwaredownload_timeout; |
1344 | | static int hf_r3_firmwaredownload_nvram; |
1345 | | static int hf_r3_firmwaredownload_address; |
1346 | | static int hf_r3_firmwaredownload_bytes; |
1347 | | static int hf_r3_firmwaredownload_data; |
1348 | | static int hf_r3_firmwaredownload_crc; |
1349 | | static int hf_r3_firmwaredownload_crc_bad; |
1350 | | |
1351 | | static int hf_r3_nvramchecksumvalue; |
1352 | | static int hf_r3_nvramchecksumvalue_fixup; |
1353 | | |
1354 | | static int hf_r3_capabilities; |
1355 | | static int hf_r3_capabilities_length; |
1356 | | static int hf_r3_capabilities_type; |
1357 | | static int hf_r3_capabilities_value; |
1358 | | |
1359 | | static int hf_r3_lockstate; |
1360 | | static int hf_r3_lockstate_passage; |
1361 | | static int hf_r3_lockstate_panic; |
1362 | | static int hf_r3_lockstate_lockout; |
1363 | | static int hf_r3_lockstate_relock; |
1364 | | static int hf_r3_lockstate_autoopen; |
1365 | | static int hf_r3_lockstate_nextauto; |
1366 | | static int hf_r3_lockstate_lockstate; |
1367 | | static int hf_r3_lockstate_wantstate; |
1368 | | static int hf_r3_lockstate_remote; |
1369 | | static int hf_r3_lockstate_update; |
1370 | | static int hf_r3_lockstate_exceptionspresent; |
1371 | | static int hf_r3_lockstate_exceptionsactive; |
1372 | | static int hf_r3_lockstate_timezonespresent; |
1373 | | static int hf_r3_lockstate_timezonesactive; |
1374 | | static int hf_r3_lockstate_autounlockspresent; |
1375 | | static int hf_r3_lockstate_autounlocksactive; |
1376 | | static int hf_r3_lockstate_uapmspresent; |
1377 | | static int hf_r3_lockstate_uapmsactive; |
1378 | | static int hf_r3_lockstate_uapmrelockspresent; |
1379 | | static int hf_r3_lockstate_uapmreslocksactive; |
1380 | | static int hf_r3_lockstate_nvramprotect; |
1381 | | static int hf_r3_lockstate_nvramchecksum; |
1382 | | |
1383 | | /*static int hf_r3_mortisestatelog;*/ |
1384 | | static int hf_r3_mortisestatelog_pointer; |
1385 | | static int hf_r3_mortisestatelog_mortisetype; |
1386 | | static int hf_r3_mortisestatelog_waiting; |
1387 | | static int hf_r3_mortisestatelog_state; |
1388 | | static int hf_r3_mortisestatelog_last; |
1389 | | static int hf_r3_mortisestatelog_event; |
1390 | | |
1391 | | static int hf_r3_timerchain_newtick; |
1392 | | static int hf_r3_timerchain_currentboundary; |
1393 | | static int hf_r3_timerchain_tasktag; |
1394 | | static int hf_r3_timerchain_address; |
1395 | | static int hf_r3_timerchain_reload; |
1396 | | static int hf_r3_timerchain_boundary; |
1397 | | static int hf_r3_timerchain_count; |
1398 | | static int hf_r3_timerchain_flags; |
1399 | | |
1400 | | static int hf_r3_taskflags_taskid; |
1401 | | static int hf_r3_taskflags_flags; |
1402 | | |
1403 | | static int hf_r3_checkpointlog_entryptr; |
1404 | | static int hf_r3_checkpointlog_rcon; |
1405 | | static int hf_r3_checkpointlog_checkpoint; |
1406 | | |
1407 | | static int hf_r3_cpuregisters_intcon; |
1408 | | static int hf_r3_cpuregisters_intcon2; |
1409 | | static int hf_r3_cpuregisters_intcon3; |
1410 | | static int hf_r3_cpuregisters_pir1; |
1411 | | static int hf_r3_cpuregisters_pir2; |
1412 | | static int hf_r3_cpuregisters_pir3; |
1413 | | static int hf_r3_cpuregisters_pie1; |
1414 | | static int hf_r3_cpuregisters_pie2; |
1415 | | static int hf_r3_cpuregisters_pie3; |
1416 | | static int hf_r3_cpuregisters_ipr1; |
1417 | | static int hf_r3_cpuregisters_ipr2; |
1418 | | static int hf_r3_cpuregisters_ipr3; |
1419 | | static int hf_r3_cpuregisters_rcon; |
1420 | | static int hf_r3_cpuregisters_osccon; |
1421 | | static int hf_r3_cpuregisters_rcsta; |
1422 | | static int hf_r3_cpuregisters_txsta; |
1423 | | static int hf_r3_cpuregisters_rcsta2; |
1424 | | static int hf_r3_cpuregisters_txsta2; |
1425 | | static int hf_r3_cpuregisters_wdtcon; |
1426 | | |
1427 | | static int hf_r3_cpuregisters_intcon_rbif; |
1428 | | static int hf_r3_cpuregisters_intcon_int0if; |
1429 | | static int hf_r3_cpuregisters_intcon_tmr0if; |
1430 | | static int hf_r3_cpuregisters_intcon_rbie; |
1431 | | static int hf_r3_cpuregisters_intcon_int0ie; |
1432 | | static int hf_r3_cpuregisters_intcon_tmr0ie; |
1433 | | static int hf_r3_cpuregisters_intcon_giel; |
1434 | | static int hf_r3_cpuregisters_intcon_gieh; |
1435 | | static int hf_r3_cpuregisters_intcon2_rbip; |
1436 | | static int hf_r3_cpuregisters_intcon2_int3ip; |
1437 | | static int hf_r3_cpuregisters_intcon2_tmr0ip; |
1438 | | static int hf_r3_cpuregisters_intcon2_intedg3; |
1439 | | static int hf_r3_cpuregisters_intcon2_intedg2; |
1440 | | static int hf_r3_cpuregisters_intcon2_intedg1; |
1441 | | static int hf_r3_cpuregisters_intcon2_intedg0; |
1442 | | static int hf_r3_cpuregisters_intcon2_rbpu; |
1443 | | static int hf_r3_cpuregisters_intcon3_int1if; |
1444 | | static int hf_r3_cpuregisters_intcon3_int2if; |
1445 | | static int hf_r3_cpuregisters_intcon3_int3if; |
1446 | | static int hf_r3_cpuregisters_intcon3_int1ie; |
1447 | | static int hf_r3_cpuregisters_intcon3_int2ie; |
1448 | | static int hf_r3_cpuregisters_intcon3_int3ie; |
1449 | | static int hf_r3_cpuregisters_intcon3_int1ip; |
1450 | | static int hf_r3_cpuregisters_intcon3_int2ip; |
1451 | | static int hf_r3_cpuregisters_pir1_tmr1if; |
1452 | | static int hf_r3_cpuregisters_pir1_tmr2if; |
1453 | | static int hf_r3_cpuregisters_pir1_ccp1if; |
1454 | | static int hf_r3_cpuregisters_pir1_ssp1if; |
1455 | | static int hf_r3_cpuregisters_pir1_tx1if; |
1456 | | static int hf_r3_cpuregisters_pir1_rc1if; |
1457 | | static int hf_r3_cpuregisters_pir1_adif; |
1458 | | static int hf_r3_cpuregisters_pir1_pspif; |
1459 | | static int hf_r3_cpuregisters_pir2_ccp2if; |
1460 | | static int hf_r3_cpuregisters_pir2_tmr3if; |
1461 | | static int hf_r3_cpuregisters_pir2_hlvdif; |
1462 | | static int hf_r3_cpuregisters_pir2_bcl1if; |
1463 | | static int hf_r3_cpuregisters_pir2_eeif; |
1464 | | static int hf_r3_cpuregisters_pir2_unused5; |
1465 | | static int hf_r3_cpuregisters_pir2_cmif; |
1466 | | static int hf_r3_cpuregisters_pir2_oscfif; |
1467 | | static int hf_r3_cpuregisters_pir3_ccp3if; |
1468 | | static int hf_r3_cpuregisters_pir3_ccp4if; |
1469 | | static int hf_r3_cpuregisters_pir3_ccp5if; |
1470 | | static int hf_r3_cpuregisters_pir3_tmr4if; |
1471 | | static int hf_r3_cpuregisters_pir3_tx2if; |
1472 | | static int hf_r3_cpuregisters_pir3_rc2if; |
1473 | | static int hf_r3_cpuregisters_pir3_bcl2if; |
1474 | | static int hf_r3_cpuregisters_pir3_ssp2if; |
1475 | | static int hf_r3_cpuregisters_pie1_tmr1ie; |
1476 | | static int hf_r3_cpuregisters_pie1_tmr2ie; |
1477 | | static int hf_r3_cpuregisters_pie1_ccp1ie; |
1478 | | static int hf_r3_cpuregisters_pie1_ssp1ie; |
1479 | | static int hf_r3_cpuregisters_pie1_tx1ie; |
1480 | | static int hf_r3_cpuregisters_pie1_rc1ie; |
1481 | | static int hf_r3_cpuregisters_pie1_adie; |
1482 | | static int hf_r3_cpuregisters_pie1_pspie; |
1483 | | static int hf_r3_cpuregisters_pie2_oscfie; |
1484 | | static int hf_r3_cpuregisters_pie2_cmie; |
1485 | | static int hf_r3_cpuregisters_pie2_unused2; |
1486 | | static int hf_r3_cpuregisters_pie2_eeie; |
1487 | | static int hf_r3_cpuregisters_pie2_bcl1ie; |
1488 | | static int hf_r3_cpuregisters_pie2_hlvdie; |
1489 | | static int hf_r3_cpuregisters_pie2_tmr3ie; |
1490 | | static int hf_r3_cpuregisters_pie2_ccp2ie; |
1491 | | static int hf_r3_cpuregisters_pie3_ccp3ie; |
1492 | | static int hf_r3_cpuregisters_pie3_ccp4ie; |
1493 | | static int hf_r3_cpuregisters_pie3_ccp5ie; |
1494 | | static int hf_r3_cpuregisters_pie3_tmr4ie; |
1495 | | static int hf_r3_cpuregisters_pie3_tx2ie; |
1496 | | static int hf_r3_cpuregisters_pie3_rc2ie; |
1497 | | static int hf_r3_cpuregisters_pie3_bcl2ie; |
1498 | | static int hf_r3_cpuregisters_pie3_ssp2ie; |
1499 | | static int hf_r3_cpuregisters_ipr1_tmr1ip; |
1500 | | static int hf_r3_cpuregisters_ipr1_tmr2ip; |
1501 | | static int hf_r3_cpuregisters_ipr1_ccp1ip; |
1502 | | static int hf_r3_cpuregisters_ipr1_ssp1ip; |
1503 | | static int hf_r3_cpuregisters_ipr1_tx1ip; |
1504 | | static int hf_r3_cpuregisters_ipr1_rc1ip; |
1505 | | static int hf_r3_cpuregisters_ipr1_adip; |
1506 | | static int hf_r3_cpuregisters_ipr1_pspip; |
1507 | | static int hf_r3_cpuregisters_ipr2_ccp2ip; |
1508 | | static int hf_r3_cpuregisters_ipr2_tmr3ip; |
1509 | | static int hf_r3_cpuregisters_ipr2_hlvdip; |
1510 | | static int hf_r3_cpuregisters_ipr2_bcl1ip; |
1511 | | static int hf_r3_cpuregisters_ipr2_eeip; |
1512 | | static int hf_r3_cpuregisters_ipr2_unused5; |
1513 | | static int hf_r3_cpuregisters_ipr2_cmip; |
1514 | | static int hf_r3_cpuregisters_ipr2_oscfip; |
1515 | | static int hf_r3_cpuregisters_ipr3_ccp2ip; |
1516 | | static int hf_r3_cpuregisters_ipr3_ccp4ip; |
1517 | | static int hf_r3_cpuregisters_ipr3_ccp5ip; |
1518 | | static int hf_r3_cpuregisters_ipr3_tmr4ip; |
1519 | | static int hf_r3_cpuregisters_ipr3_tx2ip; |
1520 | | static int hf_r3_cpuregisters_ipr3_rc2ip; |
1521 | | static int hf_r3_cpuregisters_ipr3_bcl2ip; |
1522 | | static int hf_r3_cpuregisters_ipr3_ssp2ip; |
1523 | | static int hf_r3_cpuregisters_rcon_bor; |
1524 | | static int hf_r3_cpuregisters_rcon_por; |
1525 | | static int hf_r3_cpuregisters_rcon_pd; |
1526 | | static int hf_r3_cpuregisters_rcon_to; |
1527 | | static int hf_r3_cpuregisters_rcon_unused4; |
1528 | | static int hf_r3_cpuregisters_rcon_ri; |
1529 | | static int hf_r3_cpuregisters_rcon_sboren; |
1530 | | static int hf_r3_cpuregisters_rcon_ipen; |
1531 | | static int hf_r3_cpuregisters_osccon_scs0; |
1532 | | static int hf_r3_cpuregisters_osccon_scs1; |
1533 | | static int hf_r3_cpuregisters_osccon_iofs; |
1534 | | static int hf_r3_cpuregisters_osccon_osts; |
1535 | | static int hf_r3_cpuregisters_osccon_ircf0; |
1536 | | static int hf_r3_cpuregisters_osccon_ircf1; |
1537 | | static int hf_r3_cpuregisters_osccon_ircf2; |
1538 | | static int hf_r3_cpuregisters_osccon_idlen; |
1539 | | static int hf_r3_cpuregisters_rcsta_rx9d; |
1540 | | static int hf_r3_cpuregisters_rcsta_oerr; |
1541 | | static int hf_r3_cpuregisters_rcsta_ferr; |
1542 | | static int hf_r3_cpuregisters_rcsta_adden; |
1543 | | static int hf_r3_cpuregisters_rcsta_cren; |
1544 | | static int hf_r3_cpuregisters_rcsta_sren; |
1545 | | static int hf_r3_cpuregisters_rcsta_rx9; |
1546 | | static int hf_r3_cpuregisters_rcsta_spen; |
1547 | | static int hf_r3_cpuregisters_txsta_tx9d; |
1548 | | static int hf_r3_cpuregisters_txsta_trmt; |
1549 | | static int hf_r3_cpuregisters_txsta_brgh; |
1550 | | static int hf_r3_cpuregisters_txsta_sendb; |
1551 | | static int hf_r3_cpuregisters_txsta_sync; |
1552 | | static int hf_r3_cpuregisters_txsta_txen; |
1553 | | static int hf_r3_cpuregisters_txsta_tx9; |
1554 | | static int hf_r3_cpuregisters_txsta_csrc; |
1555 | | static int hf_r3_cpuregisters_rcsta2_rx9d; |
1556 | | static int hf_r3_cpuregisters_rcsta2_oerr; |
1557 | | static int hf_r3_cpuregisters_rcsta2_ferr; |
1558 | | static int hf_r3_cpuregisters_rcsta2_adden; |
1559 | | static int hf_r3_cpuregisters_rcsta2_cren; |
1560 | | static int hf_r3_cpuregisters_rcsta2_sren; |
1561 | | static int hf_r3_cpuregisters_rcsta2_rx9; |
1562 | | static int hf_r3_cpuregisters_rcsta2_spen; |
1563 | | static int hf_r3_cpuregisters_txsta2_tx9d; |
1564 | | static int hf_r3_cpuregisters_txsta2_trmt; |
1565 | | static int hf_r3_cpuregisters_txsta2_brgh; |
1566 | | static int hf_r3_cpuregisters_txsta2_sendb; |
1567 | | static int hf_r3_cpuregisters_txsta2_sync; |
1568 | | static int hf_r3_cpuregisters_txsta2_txen; |
1569 | | static int hf_r3_cpuregisters_txsta2_tx9; |
1570 | | static int hf_r3_cpuregisters_txsta2_csrc; |
1571 | | static int hf_r3_cpuregisters_wdtcon_swdten; |
1572 | | static int hf_r3_cpuregisters_wdtcon_unused1; |
1573 | | static int hf_r3_cpuregisters_wdtcon_unused2; |
1574 | | static int hf_r3_cpuregisters_wdtcon_unused3; |
1575 | | static int hf_r3_cpuregisters_wdtcon_unused4; |
1576 | | static int hf_r3_cpuregisters_wdtcon_unused5; |
1577 | | static int hf_r3_cpuregisters_wdtcon_unused6; |
1578 | | static int hf_r3_cpuregisters_wdtcon_unused7; |
1579 | | |
1580 | | static int hf_r3_dumpm41t81_reg00; |
1581 | | static int hf_r3_dumpm41t81_reg01; |
1582 | | static int hf_r3_dumpm41t81_reg02; |
1583 | | static int hf_r3_dumpm41t81_reg03; |
1584 | | static int hf_r3_dumpm41t81_reg04; |
1585 | | static int hf_r3_dumpm41t81_reg05; |
1586 | | static int hf_r3_dumpm41t81_reg06; |
1587 | | static int hf_r3_dumpm41t81_reg07; |
1588 | | static int hf_r3_dumpm41t81_reg08; |
1589 | | static int hf_r3_dumpm41t81_reg09; |
1590 | | static int hf_r3_dumpm41t81_reg0a; |
1591 | | static int hf_r3_dumpm41t81_reg0b; |
1592 | | static int hf_r3_dumpm41t81_reg0c; |
1593 | | static int hf_r3_dumpm41t81_reg0d; |
1594 | | static int hf_r3_dumpm41t81_reg0e; |
1595 | | static int hf_r3_dumpm41t81_reg0f; |
1596 | | static int hf_r3_dumpm41t81_reg10; |
1597 | | static int hf_r3_dumpm41t81_reg11; |
1598 | | static int hf_r3_dumpm41t81_reg12; |
1599 | | static int hf_r3_dumpm41t81_reg13; |
1600 | | |
1601 | | static int hf_r3_dumpm41t81_reg00_sec1; |
1602 | | static int hf_r3_dumpm41t81_reg00_sec01; |
1603 | | static int hf_r3_dumpm41t81_reg01_st; |
1604 | | static int hf_r3_dumpm41t81_reg01_10sec; |
1605 | | static int hf_r3_dumpm41t81_reg01_1sec; |
1606 | | static int hf_r3_dumpm41t81_reg02_notused; |
1607 | | static int hf_r3_dumpm41t81_reg02_10min; |
1608 | | static int hf_r3_dumpm41t81_reg02_1min; |
1609 | | static int hf_r3_dumpm41t81_reg03_cbe; |
1610 | | static int hf_r3_dumpm41t81_reg03_cb; |
1611 | | static int hf_r3_dumpm41t81_reg03_10hour; |
1612 | | static int hf_r3_dumpm41t81_reg03_1hour; |
1613 | | static int hf_r3_dumpm41t81_reg04_notused; |
1614 | | static int hf_r3_dumpm41t81_reg04_dow; |
1615 | | static int hf_r3_dumpm41t81_reg05_notused; |
1616 | | static int hf_r3_dumpm41t81_reg05_10day; |
1617 | | static int hf_r3_dumpm41t81_reg05_1day; |
1618 | | static int hf_r3_dumpm41t81_reg06_notused; |
1619 | | static int hf_r3_dumpm41t81_reg06_10month; |
1620 | | static int hf_r3_dumpm41t81_reg06_1month; |
1621 | | static int hf_r3_dumpm41t81_reg07_10year; |
1622 | | static int hf_r3_dumpm41t81_reg07_1year; |
1623 | | static int hf_r3_dumpm41t81_reg08_out; |
1624 | | static int hf_r3_dumpm41t81_reg08_ft; |
1625 | | static int hf_r3_dumpm41t81_reg08_s; |
1626 | | static int hf_r3_dumpm41t81_reg08_cal; |
1627 | | static int hf_r3_dumpm41t81_reg09_notused; |
1628 | | static int hf_r3_dumpm41t81_reg09_bmb; |
1629 | | static int hf_r3_dumpm41t81_reg09_rb; |
1630 | | static int hf_r3_dumpm41t81_reg0a_afe; |
1631 | | static int hf_r3_dumpm41t81_reg0a_sqwe; |
1632 | | static int hf_r3_dumpm41t81_reg0a_abe; |
1633 | | static int hf_r3_dumpm41t81_reg0a_10monthalm; |
1634 | | static int hf_r3_dumpm41t81_reg0a_1monthalm; |
1635 | | static int hf_r3_dumpm41t81_reg0b_rpt5; |
1636 | | static int hf_r3_dumpm41t81_reg0b_rpt4; |
1637 | | static int hf_r3_dumpm41t81_reg0b_10dayalm; |
1638 | | static int hf_r3_dumpm41t81_reg0b_1dayalm; |
1639 | | static int hf_r3_dumpm41t81_reg0c_rpt3; |
1640 | | static int hf_r3_dumpm41t81_reg0c_ht; |
1641 | | static int hf_r3_dumpm41t81_reg0c_10houralm; |
1642 | | static int hf_r3_dumpm41t81_reg0c_1houralm; |
1643 | | static int hf_r3_dumpm41t81_reg0d_rpt2; |
1644 | | static int hf_r3_dumpm41t81_reg0d_10minalm; |
1645 | | static int hf_r3_dumpm41t81_reg0d_1minalm; |
1646 | | static int hf_r3_dumpm41t81_reg0e_rpt1; |
1647 | | static int hf_r3_dumpm41t81_reg0e_10secalm; |
1648 | | static int hf_r3_dumpm41t81_reg0e_1secalm; |
1649 | | static int hf_r3_dumpm41t81_reg0f_wdf; |
1650 | | static int hf_r3_dumpm41t81_reg0f_af; |
1651 | | static int hf_r3_dumpm41t81_reg0f_notused; |
1652 | | static int hf_r3_dumpm41t81_reg10_notused; |
1653 | | static int hf_r3_dumpm41t81_reg11_notused; |
1654 | | static int hf_r3_dumpm41t81_reg12_notused; |
1655 | | static int hf_r3_dumpm41t81_reg13_rs; |
1656 | | static int hf_r3_dumpm41t81_reg13_notused; |
1657 | | |
1658 | | static int hf_r3_sn_manufacturer; |
1659 | | static int hf_r3_sn_year; |
1660 | | static int hf_r3_sn_week; |
1661 | | static int hf_r3_sn_model; |
1662 | | static int hf_r3_sn_sequence; |
1663 | | static int hf_r3_sn_group; |
1664 | | static int hf_r3_sn_nid; |
1665 | | static int hf_r3_sn_hid; |
1666 | | static int hf_r3_sn_power_supply; |
1667 | | static int hf_r3_sn_mortise; |
1668 | | |
1669 | | static int hf_r3_debuglog_recordnumber; |
1670 | | static int hf_r3_debuglog_flags; |
1671 | | static int hf_r3_debuglog_tick; |
1672 | | |
1673 | | static int hf_r3_adduserparamtype; |
1674 | | static int hf_r3_adduserparamtypelength; |
1675 | | static int hf_r3_adduserparamtypetype; |
1676 | | /*static int hf_r3_adduserparamtypedatalen;*/ |
1677 | | /*static int hf_r3_adduserparamtypeerror;*/ |
1678 | | static int hf_r3_adduserparamtypearray [ADDUSERPARAMTYPE_LAST]; |
1679 | | |
1680 | | static int ett_r3; |
1681 | | static int ett_r3header; |
1682 | | static int ett_r3tail; |
1683 | | static int ett_r3payload; |
1684 | | static int ett_r3cmd; |
1685 | | static int ett_r3configitem; |
1686 | | static int ett_r3upstreamcommand; |
1687 | | static int ett_r3upstreamfield; |
1688 | | static int ett_r3timezone; |
1689 | | static int ett_r3expireon; |
1690 | | static int ett_r3datetime; |
1691 | | static int ett_r3eventlogrecord; |
1692 | | static int ett_r3declinedlogrecord; |
1693 | | static int ett_r3alarmlogrecord; |
1694 | | static int ett_r3debugmsg; |
1695 | | static int ett_r3defineexceptionstartdate; |
1696 | | static int ett_r3defineexceptionenddate; |
1697 | | static int ett_r3defineexceptiongroupbits; |
1698 | | static int ett_r3definecalendarmonth[13]; |
1699 | | static int ett_r3definetimezonestarttime; |
1700 | | static int ett_r3definetimezoneendtime; |
1701 | | static int ett_r3definetimezonedaymap; |
1702 | | static int ett_r3eventlogdumpstarttime; |
1703 | | static int ett_r3eventlogdumpendtime; |
1704 | | static int ett_r3declinedlogdumpstarttime; |
1705 | | static int ett_r3declinedlogdumpendtime; |
1706 | | static int ett_r3alarmlogdumpstarttime; |
1707 | | static int ett_r3alarmlogdumpendtime; |
1708 | | static int ett_r3clearnvram; |
1709 | | static int ett_r3filters; |
1710 | | static int ett_r3alarmlist; |
1711 | | static int ett_r3alarmcfg; |
1712 | | static int ett_r3commandmfg; |
1713 | | static int ett_r3serialnumber; |
1714 | | static int ett_r3iopins; |
1715 | | static int ett_r3checksumresults; |
1716 | | static int ett_r3checksumresultsfield; |
1717 | | static int ett_r3forceoptions; |
1718 | | static int ett_r3peekpoke; |
1719 | | static int ett_r3downloadfirmware; |
1720 | | static int ett_r3capabilities; |
1721 | | static int ett_r3lockstate; |
1722 | | static int ett_r3mortisestatelog; |
1723 | | static int ett_r3timerchain; |
1724 | | static int ett_r3taskflags; |
1725 | | static int ett_r3taskflagsentry; |
1726 | | static int ett_r3checkpointlog; |
1727 | | static int ett_r3checkpointlogentry; |
1728 | | static int ett_r3cpuregisters; |
1729 | | static int ett_r3cpuregister; |
1730 | | static int ett_r3m41t81registers; |
1731 | | static int ett_r3m41t81register; |
1732 | | static int ett_r3debuglogrecord; |
1733 | | static int ett_r3setdatetime; |
1734 | | static int ett_r3manageuser; |
1735 | | |
1736 | | static expert_field ei_r3_response_hasdata_octet_2; |
1737 | | static expert_field ei_r3_mfgfield_too_many_adc_values; |
1738 | | static expert_field ei_r3_peekpoke_operation; |
1739 | | static expert_field ei_r3_response_hasdata_octet_1; |
1740 | | static expert_field ei_r3_reserved_upstream_command_value; |
1741 | | static expert_field ei_r3_firmwaredownload_action; |
1742 | | static expert_field ei_r3_malformed_length; |
1743 | | static expert_field ei_r3_mfgfield; |
1744 | | static expert_field ei_r3_unknown_command_value; |
1745 | | static expert_field ei_r3_response_hasdata_octet_3; |
1746 | | static expert_field ei_r3_cmd_downloadfirmwaretimeout; |
1747 | | |
1748 | | static dissector_handle_t r3_handle; |
1749 | | |
1750 | | /* |
1751 | | * Indicates next command to be processed as a manufacturing command |
1752 | | */ |
1753 | | static int mfgCommandFlag; |
1754 | | |
1755 | | /* |
1756 | | * Some enums that don't exist in public.h and should |
1757 | | */ |
1758 | | typedef enum |
1759 | | { |
1760 | | CHECKPOINT_NONE = 0, |
1761 | | CHECKPOINT_ADC, |
1762 | | CHECKPOINT_DPAC1, |
1763 | | CHECKPOINT_DPAC2, |
1764 | | CHECKPOINT_I2C1, |
1765 | | CHECKPOINT_I2C2, |
1766 | | CHECKPOINT_I2C3, |
1767 | | CHECKPOINT_I2C4, |
1768 | | CHECKPOINT_I2C5, |
1769 | | CHECKPOINT_I2C6, |
1770 | | CHECKPOINT_I2C7, |
1771 | | CHECKPOINT_I2C8, |
1772 | | CHECKPOINT_I2C9, |
1773 | | CHECKPOINT_I2C10, |
1774 | | CHECKPOINT_I2C11, |
1775 | | CHECKPOINT_I2C12, |
1776 | | CHECKPOINT_I2C13, |
1777 | | CHECKPOINT_I2C14, |
1778 | | CHECKPOINT_I2C15, |
1779 | | CHECKPOINT_I2C16, |
1780 | | CHECKPOINT_I2C17, |
1781 | | CHECKPOINT_I2C18, |
1782 | | CHECKPOINT_I2C19, |
1783 | | CHECKPOINT_I2C20, |
1784 | | CHECKPOINT_I2C21, |
1785 | | CHECKPOINT_I2C22, |
1786 | | CHECKPOINT_I2C23, |
1787 | | CHECKPOINT_I2C24, |
1788 | | CHECKPOINT_I2C25, |
1789 | | CHECKPOINT_I2C26, |
1790 | | CHECKPOINT_I2C27, |
1791 | | CHECKPOINT_I2C28, |
1792 | | CHECKPOINT_I2C29, |
1793 | | CHECKPOINT_I2C30, |
1794 | | CHECKPOINT_I2C31, |
1795 | | CHECKPOINT_I2C32, |
1796 | | CHECKPOINT_I2C33, |
1797 | | CHECKPOINT_I2C34, |
1798 | | CHECKPOINT_I2C35, |
1799 | | CHECKPOINT_I2C36, |
1800 | | CHECKPOINT_I2C37, |
1801 | | CHECKPOINT_I2C38, |
1802 | | CHECKPOINT_I2C39, |
1803 | | CHECKPOINT_I2C40, |
1804 | | CHECKPOINT_I2C41, |
1805 | | CHECKPOINT_I2C42, |
1806 | | CHECKPOINT_I2C43, |
1807 | | CHECKPOINT_I2C44, |
1808 | | CHECKPOINT_I2C45, |
1809 | | CHECKPOINT_NVRAM, |
1810 | | CHECKPOINT_SERIAL1, |
1811 | | CHECKPOINT_SERIAL2, |
1812 | | CHECKPOINT_SERIAL3, |
1813 | | CHECKPOINT_WANDERING, |
1814 | | CHECKPOINT_STRAYHPINT, |
1815 | | CHECKPOINT_STRAYLPINT, |
1816 | | CHECKPOINT_TESTWDT, |
1817 | | CHECKPOINT_DPACDEBUG, |
1818 | | CHECKPOINT_LAST |
1819 | | } |
1820 | | checkPoint_e; |
1821 | | |
1822 | | typedef enum |
1823 | | { |
1824 | | CONFIGTYPE_NONE = 0, |
1825 | | CONFIGTYPE_BOOL, |
1826 | | CONFIGTYPE_8, |
1827 | | CONFIGTYPE_16, |
1828 | | CONFIGTYPE_32, |
1829 | | CONFIGTYPE_STRING, |
1830 | | CONFIGTYPE_LAST |
1831 | | } |
1832 | | configType_e; |
1833 | | |
1834 | | typedef enum |
1835 | | { |
1836 | | DOWNLOADFIRMWARE_START = 0, |
1837 | | DOWNLOADFIRMWARE_DATA, |
1838 | | DOWNLOADFIRMWARE_COMPLETE, |
1839 | | DOWNLOADFIRMWARE_ABORT, |
1840 | | DOWNLOADFIRMWARE_RESET, |
1841 | | DOWNLOADFIRMWARE_LAST |
1842 | | } |
1843 | | downloadFirmware_e; |
1844 | | |
1845 | | typedef enum |
1846 | | { |
1847 | | MORTISEEVENT_DX_THROWN = 0, |
1848 | | MORTISEEVENT_DX_RETRACTED, |
1849 | | MORTISEEVENT_LX_RETRACTED, |
1850 | | MORTISEEVENT_LX_EXTENDED, |
1851 | | MORTISEEVENT_AX_EXTENDED, |
1852 | | MORTISEEVENT_AX_RETRACTED, |
1853 | | MORTISEEVENT_RX_DEPRESSED, |
1854 | | MORTISEEVENT_RX_RELEASED, |
1855 | | MORTISEEVENT_PX_OPEN, |
1856 | | MORTISEEVENT_PX_CLOSED, |
1857 | | MORTISEEVENT_MX_UNLOCKED, |
1858 | | MORTISEEVENT_MX_LOCKED, |
1859 | | MORTISEEVENT_LAST, |
1860 | | MORTISEEVENT_IGNORE |
1861 | | } |
1862 | | mortiseEvent_e; |
1863 | | |
1864 | | /* |
1865 | | * Print things with nice textual names |
1866 | | */ |
1867 | | static const value_string r3_accessmodenames [] = |
1868 | | { |
1869 | | { ACCESSMODE_NONE, "ACCESSMODE_NONE" }, |
1870 | | { ACCESSMODE_PRIMARYONLY, "ACCESSMODE_PRIMARYONLY" }, |
1871 | | { ACCESSMODE_PRIMARYORAUX, "ACCESSMODE_PRIMARYORAUX" }, |
1872 | | { ACCESSMODE_PRIMARYANDAUX, "ACCESSMODE_PRIMARYANDAUX" }, |
1873 | | { ACCESSMODE_PRIMARYTHENAUX, "ACCESSMODE_PRIMARYTHENAUX" }, |
1874 | | { 0, NULL } |
1875 | | }; |
1876 | | static value_string_ext r3_accessmodenames_ext = VALUE_STRING_EXT_INIT(r3_accessmodenames); |
1877 | | |
1878 | | static const value_string r3_adduserparamtypenames [] = |
1879 | | { |
1880 | | { ADDUSERPARAMTYPE_DISPOSITION, "ADDUSERPARAMTYPE_DISPOSITION" }, |
1881 | | { ADDUSERPARAMTYPE_USERNO, "ADDUSERPARAMTYPE_USERNO" }, |
1882 | | { ADDUSERPARAMTYPE_ACCESSALWAYS, "ADDUSERPARAMTYPE_ACCESSALWAYS" }, |
1883 | | { ADDUSERPARAMTYPE_ACCESSMODE, "ADDUSERPARAMTYPE_ACCESSMODE" }, |
1884 | | { ADDUSERPARAMTYPE_CACHED, "ADDUSERPARAMTYPE_CACHED" }, |
1885 | | { ADDUSERPARAMTYPE_USERTYPE, "ADDUSERPARAMTYPE_USERTYPE" }, |
1886 | | { ADDUSERPARAMTYPE_PRIMARYFIELD, "ADDUSERPARAMTYPE_PRIMARYFIELD" }, |
1887 | | { ADDUSERPARAMTYPE_PRIMARYFIELDTYPE, "ADDUSERPARAMTYPE_PRIMARYFIELDTYPE" }, |
1888 | | { ADDUSERPARAMTYPE_AUXFIELD, "ADDUSERPARAMTYPE_AUXFIELD" }, |
1889 | | { ADDUSERPARAMTYPE_AUXFIELDTYPE, "ADDUSERPARAMTYPE_AUXFIELDTYPE" }, |
1890 | | { ADDUSERPARAMTYPE_TIMEZONE, "ADDUSERPARAMTYPE_TIMEZONE" }, |
1891 | | { ADDUSERPARAMTYPE_EXPIREON, "ADDUSERPARAMTYPE_EXPIREON" }, |
1892 | | { ADDUSERPARAMTYPE_USECOUNT, "ADDUSERPARAMTYPE_USECOUNT" }, |
1893 | | { ADDUSERPARAMTYPE_EXCEPTIONGROUP, "ADDUSERPARAMTYPE_EXCEPTIONGROUP" }, |
1894 | | { 0, NULL } |
1895 | | }; |
1896 | | static value_string_ext r3_adduserparamtypenames_ext = VALUE_STRING_EXT_INIT(r3_adduserparamtypenames); |
1897 | | |
1898 | | static const value_string r3_alarmidnames [] = |
1899 | | { |
1900 | | { ALARMID_NONE, "ALARMID_NONE" }, |
1901 | | { ALARMID_VALIDIN, "ALARMID_VALIDIN" }, |
1902 | | { ALARMID_DENIEDACCESS, "ALARMID_DENIEDACCESS" }, |
1903 | | { ALARMID_SECURED, "ALARMID_SECURED" }, |
1904 | | { ALARMID_DOORFORCED, "ALARMID_DOORFORCED" }, |
1905 | | { ALARMID_KEYOVERRIDE, "ALARMID_KEYOVERRIDE" }, |
1906 | | { ALARMID_INVALIDENTRY, "ALARMID_INVALIDENTRY" }, |
1907 | | { ALARMID_DOORAJAR, "ALARMID_DOORAJAR" }, |
1908 | | { ALARMID_LOWBATTERY, "ALARMID_LOWBATTERY" }, |
1909 | | { ALARMID_RXHELD, "ALARMID_RXHELD" }, |
1910 | | { 0, NULL } |
1911 | | }; |
1912 | | static value_string_ext r3_alarmidnames_ext = VALUE_STRING_EXT_INIT(r3_alarmidnames); |
1913 | | |
1914 | | static const value_string r3_capabilitiesnames [] = |
1915 | | { |
1916 | | { CAPABILITIES_USERS, "CAPABILITIES_USERS" }, |
1917 | | { CAPABILITIES_TIMEZONES, "CAPABILITIES_TIMEZONES" }, |
1918 | | { CAPABILITIES_EXCEPTIONS, "CAPABILITIES_EXCEPTIONS" }, |
1919 | | { CAPABILITIES_EXCEPTIONGROUPS, "CAPABILITIES_EXCEPTIONGROUPS" }, |
1920 | | { CAPABILITIES_EVENTLOG, "CAPABILITIES_EVENTLOG" }, |
1921 | | { CAPABILITIES_DECLINEDLOG, "CAPABILITIES_DECLINEDLOG" }, |
1922 | | { CAPABILITIES_ALARMLOG, "CAPABILITIES_ALARMLOG" }, |
1923 | | { CAPABILITIES_TOTALEVENTS, "CAPABILITIES_TOTALEVENTS" }, |
1924 | | { 0, NULL } |
1925 | | }; |
1926 | | static value_string_ext r3_capabilitiesnames_ext = VALUE_STRING_EXT_INIT(r3_capabilitiesnames); |
1927 | | |
1928 | | static const value_string r3_checkpointnames [] = |
1929 | | { |
1930 | | { CHECKPOINT_NONE, "CHECKPOINT_NONE" }, |
1931 | | { CHECKPOINT_ADC, "CHECKPOINT_ADC" }, |
1932 | | { CHECKPOINT_DPAC1, "CHECKPOINT_DPAC1" }, |
1933 | | { CHECKPOINT_DPAC2, "CHECKPOINT_DPAC2" }, |
1934 | | { CHECKPOINT_I2C1, "CHECKPOINT_I2C1" }, |
1935 | | { CHECKPOINT_I2C2, "CHECKPOINT_I2C2" }, |
1936 | | { CHECKPOINT_I2C3, "CHECKPOINT_I2C3" }, |
1937 | | { CHECKPOINT_I2C4, "CHECKPOINT_I2C4" }, |
1938 | | { CHECKPOINT_I2C5, "CHECKPOINT_I2C5" }, |
1939 | | { CHECKPOINT_I2C6, "CHECKPOINT_I2C6" }, |
1940 | | { CHECKPOINT_I2C7, "CHECKPOINT_I2C7" }, |
1941 | | { CHECKPOINT_I2C8, "CHECKPOINT_I2C8" }, |
1942 | | { CHECKPOINT_I2C9, "CHECKPOINT_I2C9" }, |
1943 | | { CHECKPOINT_I2C10, "CHECKPOINT_I2C10" }, |
1944 | | { CHECKPOINT_I2C11, "CHECKPOINT_I2C11" }, |
1945 | | { CHECKPOINT_I2C12, "CHECKPOINT_I2C12" }, |
1946 | | { CHECKPOINT_I2C13, "CHECKPOINT_I2C13" }, |
1947 | | { CHECKPOINT_I2C14, "CHECKPOINT_I2C14" }, |
1948 | | { CHECKPOINT_I2C15, "CHECKPOINT_I2C15" }, |
1949 | | { CHECKPOINT_I2C16, "CHECKPOINT_I2C16" }, |
1950 | | { CHECKPOINT_I2C17, "CHECKPOINT_I2C17" }, |
1951 | | { CHECKPOINT_I2C18, "CHECKPOINT_I2C18" }, |
1952 | | { CHECKPOINT_I2C19, "CHECKPOINT_I2C19" }, |
1953 | | { CHECKPOINT_I2C20, "CHECKPOINT_I2C20" }, |
1954 | | { CHECKPOINT_I2C21, "CHECKPOINT_I2C21" }, |
1955 | | { CHECKPOINT_I2C22, "CHECKPOINT_I2C22" }, |
1956 | | { CHECKPOINT_I2C23, "CHECKPOINT_I2C23" }, |
1957 | | { CHECKPOINT_I2C24, "CHECKPOINT_I2C24" }, |
1958 | | { CHECKPOINT_I2C25, "CHECKPOINT_I2C25" }, |
1959 | | { CHECKPOINT_I2C26, "CHECKPOINT_I2C26" }, |
1960 | | { CHECKPOINT_I2C27, "CHECKPOINT_I2C27" }, |
1961 | | { CHECKPOINT_I2C28, "CHECKPOINT_I2C28" }, |
1962 | | { CHECKPOINT_I2C29, "CHECKPOINT_I2C29" }, |
1963 | | { CHECKPOINT_I2C30, "CHECKPOINT_I2C30" }, |
1964 | | { CHECKPOINT_I2C31, "CHECKPOINT_I2C31" }, |
1965 | | { CHECKPOINT_I2C32, "CHECKPOINT_I2C32" }, |
1966 | | { CHECKPOINT_I2C33, "CHECKPOINT_I2C33" }, |
1967 | | { CHECKPOINT_I2C34, "CHECKPOINT_I2C34" }, |
1968 | | { CHECKPOINT_I2C35, "CHECKPOINT_I2C35" }, |
1969 | | { CHECKPOINT_I2C36, "CHECKPOINT_I2C36" }, |
1970 | | { CHECKPOINT_I2C37, "CHECKPOINT_I2C37" }, |
1971 | | { CHECKPOINT_I2C38, "CHECKPOINT_I2C38" }, |
1972 | | { CHECKPOINT_I2C39, "CHECKPOINT_I2C39" }, |
1973 | | { CHECKPOINT_I2C40, "CHECKPOINT_I2C40" }, |
1974 | | { CHECKPOINT_I2C41, "CHECKPOINT_I2C41" }, |
1975 | | { CHECKPOINT_I2C42, "CHECKPOINT_I2C42" }, |
1976 | | { CHECKPOINT_I2C43, "CHECKPOINT_I2C43" }, |
1977 | | { CHECKPOINT_I2C44, "CHECKPOINT_I2C44" }, |
1978 | | { CHECKPOINT_I2C45, "CHECKPOINT_I2C45" }, |
1979 | | { CHECKPOINT_NVRAM, "CHECKPOINT_NVRAM" }, |
1980 | | { CHECKPOINT_SERIAL1, "CHECKPOINT_SERIAL1" }, |
1981 | | { CHECKPOINT_SERIAL2, "CHECKPOINT_SERIAL2" }, |
1982 | | { CHECKPOINT_SERIAL3, "CHECKPOINT_SERIAL3" }, |
1983 | | { CHECKPOINT_WANDERING, "CHECKPOINT_WANDERING" }, |
1984 | | { CHECKPOINT_STRAYHPINT, "CHECKPOINT_STRAYHPINT" }, |
1985 | | { CHECKPOINT_STRAYLPINT, "CHECKPOINT_STRAYLPINT" }, |
1986 | | { CHECKPOINT_TESTWDT, "CHECKPOINT_TESTWDT" }, |
1987 | | { CHECKPOINT_DPACDEBUG, "CHECKPOINT_DPACDEBUG" }, |
1988 | | { 0, NULL } |
1989 | | }; |
1990 | | static value_string_ext r3_checkpointnames_ext = VALUE_STRING_EXT_INIT(r3_checkpointnames); |
1991 | | |
1992 | | static const value_string r3_checksumresultnames [] = |
1993 | | { |
1994 | | { CHECKSUMRESULT_CONFIGURATIONNVRAM, "CHECKSUMRESULT_CONFIGURATIONNVRAM" }, |
1995 | | { CHECKSUMRESULT_EXCEPTIONS, "CHECKSUMRESULT_EXCEPTIONS" }, |
1996 | | { CHECKSUMRESULT_EXCEPTIONGROUPS, "CHECKSUMRESULT_EXCEPTIONGROUPS" }, |
1997 | | { CHECKSUMRESULT_TZCALENDARS, "CHECKSUMRESULT_TZCALENDARS" }, |
1998 | | { CHECKSUMRESULT_TIMEZONES, "CHECKSUMRESULT_TIMEZONES" }, |
1999 | | { CHECKSUMRESULT_USERS, "CHECKSUMRESULT_USERS" }, |
2000 | | { CHECKSUMRESULT_CACHELRU, "CHECKSUMRESULT_CACHELRU" }, |
2001 | | { 0, NULL } |
2002 | | }; |
2003 | | static value_string_ext r3_checksumresultnames_ext = VALUE_STRING_EXT_INIT(r3_checksumresultnames); |
2004 | | |
2005 | | static const value_string r3_cmdnames [] = |
2006 | | { |
2007 | | { CMD_RESPONSE, "CMD_RESPONSE" }, |
2008 | | { CMD_HANDSHAKE, "CMD_HANDSHAKE" }, |
2009 | | { CMD_KILLSESSION, "CMD_KILLSESSION" }, |
2010 | | { CMD_QUERYSERIALNUMBER, "CMD_QUERYSERIALNUMBER" }, |
2011 | | { CMD_QUERYVERSION, "CMD_QUERYVERSION" }, |
2012 | | { CMD_SETDATETIME, "CMD_SETDATETIME" }, |
2013 | | { CMD_QUERYDATETIME, "CMD_QUERYDATETIME" }, |
2014 | | { CMD_SETCONFIG, "CMD_SETCONFIG" }, |
2015 | | { CMD_GETCONFIG, "CMD_GETCONFIG" }, |
2016 | | { CMD_MANAGEUSER, "CMD_MANAGEUSER" }, |
2017 | | { CMD_DELETEUSERS, "CMD_DELETEUSERS" }, |
2018 | | { CMD_DEFINEEXCEPTION, "CMD_DEFINEEXCEPTION" }, |
2019 | | { CMD_DEFINEEXCEPTIONGROUP, "CMD_DEFINEEXCEPTIONGROUP" }, |
2020 | | { CMD_DEFINECALENDAR, "CMD_DEFINECALENDAR" }, |
2021 | | { CMD_DEFINETIMEZONE, "CMD_DEFINETIMEZONE" }, |
2022 | | { CMD_RMTAUTHRETRY, "CMD_RMTAUTHRETRY" }, |
2023 | | { CMD_FILTERS, "CMD_FILTERS" }, |
2024 | | { CMD_ALARMCONFIGURE, "CMD_ALARMCONFIGURE" }, |
2025 | | { CMD_EVENTLOGDUMP, "CMD_EVENTLOGDUMP" }, |
2026 | | { CMD_DECLINEDLOGDUMP, "CMD_DECLINEDLOGDUMP" }, |
2027 | | { CMD_ALARMLOGDUMP, "CMD_ALARMLOGDUMP" }, |
2028 | | { CMD_DOWNLOADFIRMWARE, "CMD_DOWNLOADFIRMWARE" }, |
2029 | | { CMD_DOWNLOADFIRMWARETIMEOUT, "CMD_DOWNLOADFIRMWARETIMEOUT" }, |
2030 | | { CMD_POWERTABLESELECTION, "CMD_POWERTABLESELECTION" }, |
2031 | | { CMD_CLEARNVRAM, "CMD_CLEARNVRAM" }, |
2032 | | { CMD_DPAC, "CMD_DPAC" }, |
2033 | | { CMD_SELFTEST, "CMD_SELFTEST" }, |
2034 | | { CMD_RESET, "CMD_RESET" }, |
2035 | | { CMD_LOGWRITE, "CMD_LOGWRITE" }, |
2036 | | { CMD_MFGCOMMAND, "CMD_MFGCOMMAND" }, |
2037 | | { CMD_NVRAMBACKUP, "CMD_NVRAMBACKUP" }, |
2038 | | { CMD_EXTENDEDRESPONSE, "CMD_EXTENDEDRESPONSE" }, |
2039 | | { 0, NULL } |
2040 | | }; |
2041 | | static value_string_ext r3_cmdnames_ext = VALUE_STRING_EXT_INIT(r3_cmdnames); |
2042 | | |
2043 | | static const value_string r3_cmdmfgnames [] = |
2044 | | { |
2045 | | { CMDMFG_SETSERIALNUMBER, "CMDMFG_SETSERIALNUMBER" }, |
2046 | | { CMDMFG_SETCRYPTKEY, "CMDMFG_SETCRYPTKEY" }, |
2047 | | { CMDMFG_DUMPNVRAM, "CMDMFG_DUMPNVRAM" }, |
2048 | | { CMDMFG_TERMINAL, "CMDMFG_TERMINAL" }, |
2049 | | { CMDMFG_REMOTEUNLOCK, "CMDMFG_REMOTEUNLOCK" }, |
2050 | | { CMDMFG_AUXCTLRVERSION, "CMDMFG_AUXCTLRVERSION" }, |
2051 | | { CMDMFG_IOPINS, "CMDMFG_IOPINS" }, |
2052 | | { CMDMFG_ADCS, "CMDMFG_ADCS" }, |
2053 | | { CMDMFG_HARDWAREID, "CMDMFG_HARDWAREID" }, |
2054 | | { CMDMFG_CHECKPOINTLOGDUMP, "CMDMFG_CHECKPOINTLOGDUMP" }, |
2055 | | { CMDMFG_CHECKPOINTLOGCLEAR, "CMDMFG_CHECKPOINTLOGCLEAR" }, |
2056 | | { CMDMFG_READREGISTERS, "CMDMFG_READREGISTERS" }, |
2057 | | { CMDMFG_FORCEOPTIONS, "CMDMFG_FORCEOPTIONS" }, |
2058 | | { CMDMFG_COMMUSER, "CMDMFG_COMMUSER" }, |
2059 | | { CMDMFG_DUMPKEYPAD, "CMDMFG_DUMPKEYPAD" }, |
2060 | | { CMDMFG_BATTERYCHECK, "CMDMFG_BATTERYCHECK" }, |
2061 | | { CMDMFG_RAMREFRESH, "CMDMFG_RAMREFRESH" }, |
2062 | | { CMDMFG_TASKFLAGS, "CMDMFG_TASKFLAGS" }, |
2063 | | { CMDMFG_TIMERCHAIN, "CMDMFG_TIMERCHAIN" }, |
2064 | | { CMDMFG_PEEKPOKE, "CMDMFG_PEEKPOKE" }, |
2065 | | { CMDMFG_LOCKSTATE, "CMDMFG_LOCKSTATE" }, |
2066 | | { CMDMFG_CAPABILITIES, "CMDMFG_CAPABILITIES" }, |
2067 | | { CMDMFG_DUMPM41T81, "CMDMFG_DUMPM41T81" }, |
2068 | | { CMDMFG_DEBUGLOGDUMP, "CMDMFG_DEBUGLOGDUMP" }, |
2069 | | { CMDMFG_DEBUGLOGCLEAR, "CMDMFG_DEBUGLOGCLEAR" }, |
2070 | | { CMDMFG_TESTWDT, "CMDMFG_TESTWDT" }, |
2071 | | { CMDMFG_QUERYCKSUM, "CMDMFG_QUERYCKSUM" }, |
2072 | | { CMDMFG_VALIDATECHECKSUMS, "CMDMFG_VALIDATECHECKSUMS" }, |
2073 | | { CMDMFG_REBUILDLRUCACHE, "CMDMFG_REBUILDLRUCACHE" }, |
2074 | | { CMDMFG_TZUPDATE, "CMDMFG_TZUPDATE" }, |
2075 | | { CMDMFG_TESTPRESERVE, "CMDMFG_TESTPRESERVE" }, |
2076 | | { CMDMFG_MORTISESTATELOGDUMP, "CMDMFG_MORTISESTATELOGDUMP" }, |
2077 | | { CMDMFG_MORTISESTATELOGCLEAR, "CMDMFG_MORTISESTATELOGCLEAR" }, |
2078 | | { CMDMFG_MORTISEPINS, "CMDMFG_MORTISEPINS" }, |
2079 | | { CMDMFG_HALTANDCATCHFIRE, "CMDMFG_HALTANDCATCHFIRE" }, |
2080 | | { 0, NULL } |
2081 | | }; |
2082 | | static value_string_ext r3_cmdmfgnames_ext = VALUE_STRING_EXT_INIT(r3_cmdmfgnames); |
2083 | | |
2084 | | static const value_string r3_configitemnames [] = |
2085 | | { |
2086 | | { CONFIGITEM_SERIAL_NUMBER, "CONFIGITEM_SERIAL_NUMBER" }, |
2087 | | { CONFIGITEM_CRYPT_KEY, "CONFIGITEM_CRYPT_KEY" }, |
2088 | | { CONFIGITEM_HARDWARE_OPTIONS_MFG, "CONFIGITEM_HARDWARE_OPTIONS_MFG" }, |
2089 | | { CONFIGITEM_HARDWARE_OPTIONS, "CONFIGITEM_HARDWARE_OPTIONS" }, |
2090 | | { CONFIGITEM_NVRAM_CHANGES, "CONFIGITEM_NVRAM_CHANGES" }, |
2091 | | { CONFIGITEM_NVRAMDIRTY, "CONFIGITEM_NVRAMDIRTY" }, |
2092 | | { CONFIGITEM_NVRAM_WV, "CONFIGITEM_NVRAM_WV" }, |
2093 | | { CONFIGITEM_ENABLE_WDT, "CONFIGITEM_ENABLE_WDT" }, |
2094 | | { CONFIGITEM_EARLY_ACK, "CONFIGITEM_EARLY_ACK" }, |
2095 | | { CONFIGITEM_CONSOLE_AES_ONLY, "CONFIGITEM_CONSOLE_AES_ONLY" }, |
2096 | | { CONFIGITEM_RADIO_AES_ONLY, "CONFIGITEM_RADIO_AES_ONLY" }, |
2097 | | { CONFIGITEM_NDRLE, "CONFIGITEM_NDRLE" }, |
2098 | | { CONFIGITEM_SOMF, "CONFIGITEM_SOMF" }, |
2099 | | { CONFIGITEM_NOGAF, "CONFIGITEM_NOGAF" }, |
2100 | | { CONFIGITEM_CARD_READER_POWER, "CONFIGITEM_CARD_READER_POWER" }, |
2101 | | { CONFIGITEM_PROX_ENABLE, "CONFIGITEM_PROX_ENABLE" }, |
2102 | | { CONFIGITEM_CKSUMCONFIG, "CONFIGITEM_CKSUMCONFIG" }, |
2103 | | { CONFIGITEM_DAILY_BATTERY_CHECK, "CONFIGITEM_DAILY_BATTERY_CHECK" }, |
2104 | | { CONFIGITEM_DAILY_BATTERY_CHECK_HOUR, "CONFIGITEM_DAILY_BATTERY_CHECK_HOUR" }, |
2105 | | { CONFIGITEM_BATTERY_LOW, "CONFIGITEM_BATTERY_LOW" }, |
2106 | | { CONFIGITEM_LRU_HEAD, "CONFIGITEM_LRU_HEAD" }, |
2107 | | { CONFIGITEM_LRU_TAIL, "CONFIGITEM_LRU_TAIL" }, |
2108 | | { CONFIGITEM_RTC_CALIBRATION, "CONFIGITEM_RTC_CALIBRATION" }, |
2109 | | { CONFIGITEM_ACVREQUESTER, "CONFIGITEM_ACVREQUESTER" }, |
2110 | | { CONFIGITEM_LOCAL_LED, "CONFIGITEM_LOCAL_LED" }, |
2111 | | { CONFIGITEM_ERRCNT_XORLEN, "CONFIGITEM_ERRCNT_XORLEN" }, |
2112 | | { CONFIGITEM_ERRCNT_CRC, "CONFIGITEM_ERRCNT_CRC" }, |
2113 | | { CONFIGITEM_ERRCNT_NOTSIGIL, "CONFIGITEM_ERRCNT_NOTSIGIL" }, |
2114 | | { CONFIGITEM_ERRCNT_TIMEOUT, "CONFIGITEM_ERRCNT_TIMEOUT" }, |
2115 | | { CONFIGITEM_ERRCNT_TOOLONG, "CONFIGITEM_ERRCNT_TOOLONG" }, |
2116 | | { CONFIGITEM_ERRCNT_TOOSHORT, "CONFIGITEM_ERRCNT_TOOSHORT" }, |
2117 | | { CONFIGITEM_ERRCNT_HITDEFAULT, "CONFIGITEM_ERRCNT_HITDEFAULT" }, |
2118 | | { CONFIGITEM_ERRCNT_OVERRUN, "CONFIGITEM_ERRCNT_OVERRUN" }, |
2119 | | { CONFIGITEM_ERRCNT_UARTFE, "CONFIGITEM_ERRCNT_UARTFE" }, |
2120 | | { CONFIGITEM_ERRCNT_UARTOE, "CONFIGITEM_ERRCNT_UARTOE" }, |
2121 | | { CONFIGITEM_DST_SET, "CONFIGITEM_DST_SET" }, |
2122 | | { CONFIGITEM_DST_MODE, "CONFIGITEM_DST_MODE" }, |
2123 | | { CONFIGITEM_DST_FORWARD_MONTH, "CONFIGITEM_DST_FORWARD_MONTH" }, |
2124 | | { CONFIGITEM_DST_FORWARD_DOM, "CONFIGITEM_DST_FORWARD_DOM" }, |
2125 | | { CONFIGITEM_DST_FORWARD_OOD, "CONFIGITEM_DST_FORWARD_OOD" }, |
2126 | | { CONFIGITEM_DST_FORWARD_DOW, "CONFIGITEM_DST_FORWARD_DOW" }, |
2127 | | { CONFIGITEM_DST_FORWARD_HOUR, "CONFIGITEM_DST_FORWARD_HOUR" }, |
2128 | | { CONFIGITEM_DST_FORWARD_MINUTE, "CONFIGITEM_DST_FORWARD_MINUTE" }, |
2129 | | { CONFIGITEM_DST_FORWARD_ADJUST, "CONFIGITEM_DST_FORWARD_ADJUST" }, |
2130 | | { CONFIGITEM_DST_BACK_MONTH, "CONFIGITEM_DST_BACK_MONTH" }, |
2131 | | { CONFIGITEM_DST_BACK_DOM, "CONFIGITEM_DST_BACK_DOM" }, |
2132 | | { CONFIGITEM_DST_BACK_OOD, "CONFIGITEM_DST_BACK_OOD" }, |
2133 | | { CONFIGITEM_DST_BACK_DOW, "CONFIGITEM_DST_BACK_DOW" }, |
2134 | | { CONFIGITEM_DST_BACK_HOUR, "CONFIGITEM_DST_BACK_HOUR" }, |
2135 | | { CONFIGITEM_DST_BACK_MINUTE, "CONFIGITEM_DST_BACK_MINUTE" }, |
2136 | | { CONFIGITEM_DST_BACK_ADJUST, "CONFIGITEM_DST_BACK_ADJUST" }, |
2137 | | { CONFIGITEM_EVENTLOG_ZEROMEM, "CONFIGITEM_EVENTLOG_ZEROMEM" }, |
2138 | | { CONFIGITEM_EVENTLOG_BEGIN, "CONFIGITEM_EVENTLOG_BEGIN" }, |
2139 | | { CONFIGITEM_EVENTLOG_RECORD, "CONFIGITEM_EVENTLOG_RECORD" }, |
2140 | | { CONFIGITEM_EVENTLOG_ENTRIES, "CONFIGITEM_EVENTLOG_ENTRIES" }, |
2141 | | { CONFIGITEM_EVENTLOG_WARNDEVICE, "CONFIGITEM_EVENTLOG_WARNDEVICE" }, |
2142 | | { CONFIGITEM_EVENTLOG_WARNEVERY, "CONFIGITEM_EVENTLOG_WARNEVERY" }, |
2143 | | { CONFIGITEM_EVENTLOG_RMTDEVICE, "CONFIGITEM_EVENTLOG_RMTDEVICE" }, |
2144 | | { CONFIGITEM_DECLINEDLOG_ZEROMEM, "CONFIGITEM_DECLINEDLOG_ZEROMEM" }, |
2145 | | { CONFIGITEM_DECLINEDLOG_BEGIN, "CONFIGITEM_DECLINEDLOG_BEGIN" }, |
2146 | | { CONFIGITEM_DECLINEDLOG_RECORD, "CONFIGITEM_DECLINEDLOG_RECORD" }, |
2147 | | { CONFIGITEM_DECLINEDLOG_ENTRIES, "CONFIGITEM_DECLINEDLOG_ENTRIES" }, |
2148 | | { CONFIGITEM_DECLINEDLOG_WARNDEVICE, "CONFIGITEM_DECLINEDLOG_WARNDEVICE" }, |
2149 | | { CONFIGITEM_DECLINEDLOG_WARNEVERY, "CONFIGITEM_DECLINEDLOG_WARNEVERY" }, |
2150 | | { CONFIGITEM_DECLINEDLOG_RMTDEVICE, "CONFIGITEM_DECLINEDLOG_RMTDEVICE" }, |
2151 | | { CONFIGITEM_ALARMLOG_ZEROMEM, "CONFIGITEM_ALARMLOG_ZEROMEM" }, |
2152 | | { CONFIGITEM_ALARMLOG_BEGIN, "CONFIGITEM_ALARMLOG_BEGIN" }, |
2153 | | { CONFIGITEM_ALARMLOG_RECORD, "CONFIGITEM_ALARMLOG_RECORD" }, |
2154 | | { CONFIGITEM_ALARMLOG_ENTRIES, "CONFIGITEM_ALARMLOG_ENTRIES" }, |
2155 | | { CONFIGITEM_ALARMLOG_WARNDEVICE, "CONFIGITEM_ALARMLOG_WARNDEVICE" }, |
2156 | | { CONFIGITEM_ALARMLOG_WARNEVERY, "CONFIGITEM_ALARMLOG_WARNEVERY" }, |
2157 | | { CONFIGITEM_ALARMLOG_RMTDEVICE, "CONFIGITEM_ALARMLOG_RMTDEVICE" }, |
2158 | | { CONFIGITEM_VISIBLE_FEEDBACK, "CONFIGITEM_VISIBLE_FEEDBACK" }, |
2159 | | { CONFIGITEM_AUDIBLE_FEEDBACK, "CONFIGITEM_AUDIBLE_FEEDBACK" }, |
2160 | | { CONFIGITEM_VISIBLE_INDICATORS, "CONFIGITEM_VISIBLE_INDICATORS" }, |
2161 | | { CONFIGITEM_AUDIBLE_INDICATORS, "CONFIGITEM_AUDIBLE_INDICATORS" }, |
2162 | | { CONFIGITEM_2NDPINDURATION, "CONFIGITEM_2NDPINDURATION" }, |
2163 | | { CONFIGITEM_LOCKOUT_ATTEMPTS, "CONFIGITEM_LOCKOUT_ATTEMPTS" }, |
2164 | | { CONFIGITEM_LOCKOUT_DURATION, "CONFIGITEM_LOCKOUT_DURATION" }, |
2165 | | { CONFIGITEM_KEYPAD_INACTIVITY, "CONFIGITEM_KEYPAD_INACTIVITY" }, |
2166 | | { CONFIGITEM_ICIDLE_DURATION, "CONFIGITEM_ICIDLE_DURATION" }, |
2167 | | { CONFIGITEM_WRITE_DECLINED_LOG, "CONFIGITEM_WRITE_DECLINED_LOG" }, |
2168 | | { CONFIGITEM_LOW_BATTERY_INDICATOR, "CONFIGITEM_LOW_BATTERY_INDICATOR" }, |
2169 | | { CONFIGITEM_PANIC_MODE, "CONFIGITEM_PANIC_MODE" }, |
2170 | | { CONFIGITEM_TIMEZONE_ENABLE, "CONFIGITEM_TIMEZONE_ENABLE" }, |
2171 | | { CONFIGITEM_EXCEPTION_ENABLE, "CONFIGITEM_EXCEPTION_ENABLE" }, |
2172 | | { CONFIGITEM_AUTOUNLOCK_ENABLE, "CONFIGITEM_AUTOUNLOCK_ENABLE" }, |
2173 | | { CONFIGITEM_LOCK_PRIORITY_EMERGENCY, "CONFIGITEM_LOCK_PRIORITY_EMERGENCY" }, |
2174 | | { CONFIGITEM_LOCK_PRIORITY_SUPERVISOR, "CONFIGITEM_LOCK_PRIORITY_SUPERVISOR" }, |
2175 | | { CONFIGITEM_LOCK_PRIORITY_USER, "CONFIGITEM_LOCK_PRIORITY_USER" }, |
2176 | | { CONFIGITEM_LOCK_PRIORITY_PASSAGE, "CONFIGITEM_LOCK_PRIORITY_PASSAGE" }, |
2177 | | { CONFIGITEM_LOCK_PRIORITY_PANIC, "CONFIGITEM_LOCK_PRIORITY_PANIC" }, |
2178 | | { CONFIGITEM_LOCK_PRIORITY_LOCKOUT, "CONFIGITEM_LOCK_PRIORITY_LOCKOUT" }, |
2179 | | { CONFIGITEM_LOCK_PRIORITY_RELOCK, "CONFIGITEM_LOCK_PRIORITY_RELOCK" }, |
2180 | | { CONFIGITEM_LOCK_PRIORITY_BOLTTHROWN, "CONFIGITEM_LOCK_PRIORITY_BOLTTHROWN" }, |
2181 | | { CONFIGITEM_LOCK_PRIORITY_CONFIGCHANGE, "CONFIGITEM_LOCK_PRIORITY_CONFIGCHANGE" }, |
2182 | | { CONFIGITEM_LOCK_PRIORITY_REMOTE, "CONFIGITEM_LOCK_PRIORITY_REMOTE" }, |
2183 | | { CONFIGITEM_LOCK_TYPE, "CONFIGITEM_LOCK_TYPE" }, |
2184 | | { CONFIGITEM_DOUBLE_PULSE, "CONFIGITEM_DOUBLE_PULSE" }, |
2185 | | { CONFIGITEM_DOUBLE_DELAY, "CONFIGITEM_DOUBLE_DELAY" }, |
2186 | | { CONFIGITEM_MOTOR_DURATION, "CONFIGITEM_MOTOR_DURATION" }, |
2187 | | { CONFIGITEM_MORTISE_TYPE, "CONFIGITEM_MORTISE_TYPE" }, |
2188 | | { CONFIGITEM_UNLOCK_TIME, "CONFIGITEM_UNLOCK_TIME" }, |
2189 | | { CONFIGITEM_EXT_UNLOCK_TIME, "CONFIGITEM_EXT_UNLOCK_TIME" }, |
2190 | | { CONFIGITEM_DOOR_AJAR_TIME, "CONFIGITEM_DOOR_AJAR_TIME" }, |
2191 | | { CONFIGITEM_SESSION_TIMEOUT, "CONFIGITEM_SESSION_TIMEOUT" }, |
2192 | | { CONFIGITEM_RETRY_ON_TIMEOUT, "CONFIGITEM_RETRY_ON_TIMEOUT" }, |
2193 | | { CONFIGITEM_UNSOLICITED_ENCRYPT, "CONFIGITEM_UNSOLICITED_ENCRYPT" }, |
2194 | | { CONFIGITEM_RMT_AUTH_TIMEOUT, "CONFIGITEM_RMT_AUTH_TIMEOUT" }, |
2195 | | { CONFIGITEM_RMT_AUTH_DEVICE, "CONFIGITEM_RMT_AUTH_DEVICE" }, |
2196 | | { CONFIGITEM_ALARM_DEVICE, "CONFIGITEM_ALARM_DEVICE" }, |
2197 | | { CONFIGITEM_NOTIFY_DEVICE, "CONFIGITEM_NOTIFY_DEVICE" }, |
2198 | | { CONFIGITEM_COMMUSER_DEVICE, "CONFIGITEM_COMMUSER_DEVICE" }, |
2199 | | { CONFIGITEM_SCHEDULER_DEVICE, "CONFIGITEM_SCHEDULER_DEVICE" }, |
2200 | | { CONFIGITEM_SCHEDULER_TYPE, "CONFIGITEM_SCHEDULER_TYPE" }, |
2201 | | { CONFIGITEM_SCHEDULER_AWAKE, "CONFIGITEM_SCHEDULER_AWAKE" }, |
2202 | | { CONFIGITEM_SCHEDULER_PERIOD, "CONFIGITEM_SCHEDULER_PERIOD" }, |
2203 | | { CONFIGITEM_SCHEDULER_HOD, "CONFIGITEM_SCHEDULER_HOD" }, |
2204 | | { CONFIGITEM_SCHEDULER_DOW, "CONFIGITEM_SCHEDULER_DOW" }, |
2205 | | { CONFIGITEM_SCHEDULER_DOM, "CONFIGITEM_SCHEDULER_DOM" }, |
2206 | | { CONFIGITEM_SCHEDULER_HM1, "CONFIGITEM_SCHEDULER_HM1" }, |
2207 | | { CONFIGITEM_SCHEDULER_HM2, "CONFIGITEM_SCHEDULER_HM2" }, |
2208 | | { CONFIGITEM_SCHEDULER_HM3, "CONFIGITEM_SCHEDULER_HM3" }, |
2209 | | { CONFIGITEM_SCHEDULER_HM4, "CONFIGITEM_SCHEDULER_HM4" }, |
2210 | | { CONFIGITEM_RADIO_TYPE, "CONFIGITEM_RADIO_TYPE" }, |
2211 | | { CONFIGITEM_RADIO_MODE, "CONFIGITEM_RADIO_MODE" }, |
2212 | | { CONFIGITEM_RADIO_TIMEOUT, "CONFIGITEM_RADIO_TIMEOUT" }, |
2213 | | { CONFIGITEM_RADIO_ATTEMPTS, "CONFIGITEM_RADIO_ATTEMPTS" }, |
2214 | | { CONFIGITEM_RADIO_HOUSEKEEPING, "CONFIGITEM_RADIO_HOUSEKEEPING" }, |
2215 | | { CONFIGITEM_RADIO_LEAPUSERNAME, "CONFIGITEM_RADIO_LEAPUSERNAME" }, |
2216 | | { CONFIGITEM_RADIO_LEAPPASSWORD, "CONFIGITEM_RADIO_LEAPPASSWORD" }, |
2217 | | { CONFIGITEM_INHIBIT_VOLTAGE, "CONFIGITEM_INHIBIT_VOLTAGE" }, |
2218 | | { CONFIGITEM_LOW_VOLTAGE, "CONFIGITEM_LOW_VOLTAGE" }, |
2219 | | { CONFIGITEM_PT_RANGE_1, "CONFIGITEM_PT_RANGE_1" }, |
2220 | | { CONFIGITEM_PT_RANGE_2, "CONFIGITEM_PT_RANGE_2" }, |
2221 | | { CONFIGITEM_PT_RANGE_3, "CONFIGITEM_PT_RANGE_3" }, |
2222 | | { CONFIGITEM_PT_RANGE_4, "CONFIGITEM_PT_RANGE_4" }, |
2223 | | { CONFIGITEM_PT_RANGE_5, "CONFIGITEM_PT_RANGE_5" }, |
2224 | | { CONFIGITEM_PT_RANGE_6, "CONFIGITEM_PT_RANGE_6" }, |
2225 | | { CONFIGITEM_PT_RANGE_7, "CONFIGITEM_PT_RANGE_7" }, |
2226 | | { CONFIGITEM_PT_RANGE_8, "CONFIGITEM_PT_RANGE_8" }, |
2227 | | { CONFIGITEM_MAGCARD_IFS, "CONFIGITEM_MAGCARD_IFS" }, |
2228 | | { CONFIGITEM_MAGCARD_FIELDS, "CONFIGITEM_MAGCARD_FIELDS" }, |
2229 | | { CONFIGITEM_MAGCARD_OFFSET, "CONFIGITEM_MAGCARD_OFFSET" }, |
2230 | | { CONFIGITEM_MAGCARD_DIGITS, "CONFIGITEM_MAGCARD_DIGITS" }, |
2231 | | { CONFIGITEM_ALARMS, "CONFIGITEM_ALARMS" }, |
2232 | | { CONFIGITEM_FILTERS, "CONFIGITEM_FILTERS" }, |
2233 | | { CONFIGITEM_ALARMSTATE, "CONFIGITEM_ALARMSTATE" }, |
2234 | | { CONFIGITEM_DOORSTATE, "CONFIGITEM_DOORSTATE" }, |
2235 | | { CONFIGITEM_DPACDEBUG, "CONFIGITEM_DPACDEBUG" }, |
2236 | | { CONFIGITEM_FAILOPENSECURE, "CONFIGITEM_FAILOPENSECURE" }, |
2237 | | { CONFIGITEM_REPLACED_VOLTAGE, "CONFIGITEM_REPLACED_VOLTAGE" }, |
2238 | | { CONFIGITEM_RX_HELD_TIME, "CONFIGITEM_RX_HELD_TIME" }, |
2239 | | { CONFIGITEM_PACKET_TIMEOUT, "CONFIGITEM_PACKET_TIMEOUT" }, |
2240 | | { CONFIGITEM_EXTENDEDRESPONSE, "CONFIGITEM_EXTENDEDRESPONSE" }, |
2241 | | { CONFIGITEM_PASSAGEMODEINDICATOR, "CONFIGITEM_PASSAGEMODEINDICATOR" }, |
2242 | | { CONFIGITEM_PFMRETURNTIME, "CONFIGITEM_PFMRETURNTIME" }, |
2243 | | { 0, NULL } |
2244 | | }; |
2245 | | static value_string_ext r3_configitemnames_ext = VALUE_STRING_EXT_INIT(r3_configitemnames); |
2246 | | |
2247 | | static const value_string r3_configtypenames [] = |
2248 | | { |
2249 | | { CONFIGTYPE_NONE, "CONFIGTYPE_NONE" }, |
2250 | | { CONFIGTYPE_BOOL, "CONFIGTYPE_BOOL" }, |
2251 | | { CONFIGTYPE_8, "CONFIGTYPE_8" }, |
2252 | | { CONFIGTYPE_16, "CONFIGTYPE_16" }, |
2253 | | { CONFIGTYPE_32, "CONFIGTYPE_32" }, |
2254 | | { CONFIGTYPE_STRING, "CONFIGTYPE_STRING" }, |
2255 | | { 0, NULL } |
2256 | | }; |
2257 | | static value_string_ext r3_configtypenames_ext = VALUE_STRING_EXT_INIT(r3_configtypenames); |
2258 | | |
2259 | | static const value_string r3_dispositionnames [] = |
2260 | | { |
2261 | | { DISPOSITION_ADD, "DISPOSITION_ADD" }, |
2262 | | { DISPOSITION_REPLACE, "DISPOSITION_REPLACE" }, |
2263 | | { DISPOSITION_UPDATE, "DISPOSITION_UPDATE" }, |
2264 | | { DISPOSITION_DELETE, "DISPOSITION_DELETE" }, |
2265 | | { DISPOSITION_RETRIEVE, "DISPOSITION_RETRIEVE" }, |
2266 | | { 0, NULL } |
2267 | | }; |
2268 | | static value_string_ext r3_dispositionnames_ext = VALUE_STRING_EXT_INIT(r3_dispositionnames); |
2269 | | |
2270 | | static const value_string r3_deleteusersnames [] = |
2271 | | { |
2272 | | { DELETEUSERS_ALL, "DELETEUSERS_ALL" }, |
2273 | | { DELETEUSERS_CACHED, "DELETEUSERS_CACHED" }, |
2274 | | { 0, NULL } |
2275 | | }; |
2276 | | static value_string_ext r3_deleteusersnames_ext = VALUE_STRING_EXT_INIT(r3_deleteusersnames); |
2277 | | |
2278 | | static const value_string r3_downloadfirmwarenames [] = |
2279 | | { |
2280 | | { DOWNLOADFIRMWARE_START, "DOWNLOADFIRMWARE_START" }, |
2281 | | { DOWNLOADFIRMWARE_DATA, "DOWNLOADFIRMWARE_DATA" }, |
2282 | | { DOWNLOADFIRMWARE_COMPLETE, "DOWNLOADFIRMWARE_COMPLETE" }, |
2283 | | { DOWNLOADFIRMWARE_ABORT, "DOWNLOADFIRMWARE_ABORT" }, |
2284 | | { DOWNLOADFIRMWARE_RESET, "DOWNLOADFIRMWARE_RESET" }, |
2285 | | { 0, NULL } |
2286 | | }; |
2287 | | static value_string_ext r3_downloadfirmwarenames_ext = VALUE_STRING_EXT_INIT(r3_downloadfirmwarenames); |
2288 | | |
2289 | | static const value_string r3_encryptionschemenames [] = |
2290 | | { |
2291 | | { ENCRYPTIONSCHEME_NONE, "ENCRYPTIONSCHEME_NONE" }, |
2292 | | { ENCRYPTIONSCHEME_ROLLING, "ENCRYPTIONSCHEME_ROLLING" }, |
2293 | | { ENCRYPTIONSCHEME_SN, "ENCRYPTIONSCHEME_SN" }, |
2294 | | { ENCRYPTIONSCHEME_AESIV, "ENCRYPTIONSCHEME_AESIV" }, |
2295 | | { ENCRYPTIONSCHEME_AES, "ENCRYPTIONSCHEME_AES" }, |
2296 | | { 0, NULL } |
2297 | | }; |
2298 | | static value_string_ext r3_encryptionschemenames_ext = VALUE_STRING_EXT_INIT(r3_encryptionschemenames); |
2299 | | |
2300 | | static const value_string r3_eventnames [] = |
2301 | | { |
2302 | | { EVENT_INVALIDPIN, "EVENT_INVALIDPIN" }, |
2303 | | { EVENT_USER, "EVENT_USER" }, |
2304 | | { EVENT_ONETIME, "EVENT_ONETIME" }, |
2305 | | { EVENT_PASSAGEBEGIN, "EVENT_PASSAGEBEGIN" }, |
2306 | | { EVENT_PASSAGEEND, "EVENT_PASSAGEEND" }, |
2307 | | { EVENT_BADTIME, "EVENT_BADTIME" }, |
2308 | | { EVENT_LOCKEDOUT, "EVENT_LOCKEDOUT" }, |
2309 | | { EVENT_LOWBATTERY, "EVENT_LOWBATTERY" }, |
2310 | | { EVENT_DEADBATTERY, "EVENT_DEADBATTERY" }, |
2311 | | { EVENT_BATTERYREPLACED, "EVENT_BATTERYREPLACED" }, |
2312 | | { EVENT_USERADDED, "EVENT_USERADDED" }, |
2313 | | { EVENT_USERDELETED, "EVENT_USERDELETED" }, |
2314 | | { EVENT_EMERGENCY, "EVENT_EMERGENCY" }, |
2315 | | { EVENT_PANIC, "EVENT_PANIC" }, |
2316 | | { EVENT_RELOCK, "EVENT_RELOCK" }, |
2317 | | { EVENT_LOCKOUTBEGIN, "EVENT_LOCKOUTBEGIN" }, |
2318 | | { EVENT_LOCKOUTEND, "EVENT_LOCKOUTEND" }, |
2319 | | { EVENT_RESET, "EVENT_RESET" }, |
2320 | | { EVENT_DATETIMESET, "EVENT_DATETIMESET" }, |
2321 | | { EVENT_LOGCLEARED, "EVENT_LOGCLEARED" }, |
2322 | | { EVENT_DBRESET, "EVENT_DBRESET" }, |
2323 | | { EVENT_COMMSTARTED, "EVENT_COMMSTARTED" }, |
2324 | | { EVENT_COMMENDED, "EVENT_COMMENDED" }, |
2325 | | { EVENT_FIRMWAREABORT, "EVENT_FIRMWAREABORT" }, |
2326 | | { EVENT_FIRMWAREERROR, "EVENT_FIRMWAREERROR" }, |
2327 | | { EVENT_FIRMWARETIMEOUT, "EVENT_FIRMWARETIMEOUT" }, |
2328 | | { EVENT_DSTFALLBACK, "EVENT_DSTFALLBACK" }, |
2329 | | { EVENT_DSTSPRINGFORWARD, "EVENT_DSTSPRINGFORWARD" }, |
2330 | | { EVENT_BOLTTHROWN, "EVENT_BOLTTHROWN" }, |
2331 | | { EVENT_BOLTRETRACTED, "EVENT_BOLTRETRACTED" }, |
2332 | | { EVENT_MASTERCODE, "EVENT_MASTERCODE" }, |
2333 | | { EVENT_COMMUSER, "EVENT_COMMUSER" }, |
2334 | | { EVENT_DPACDISABLED, "EVENT_DPACDISABLED" }, |
2335 | | { EVENT_NOTIFY, "EVENT_NOTIFY" }, |
2336 | | { EVENT_EXPIRED, "EVENT_EXPIRED" }, |
2337 | | { EVENT_SUPERVISOR, "EVENT_SUPERVISOR" }, |
2338 | | { EVENT_MCCENTER, "EVENT_MCCENTER" }, |
2339 | | { EVENT_MCCEXIT, "EVENT_MCCEXIT" }, |
2340 | | { EVENT_SERIALRXOVERRUN, "EVENT_SERIALRXOVERRUN" }, |
2341 | | { EVENT_DPACRXOVERRUN, "EVENT_DPACRXOVERRUN" }, |
2342 | | { EVENT_NVRAMPBCLEAR, "EVENT_NVRAMPBCLEAR" }, |
2343 | | { EVENT_NVRAMLAYOUTCHANGE, "EVENT_NVRAMLAYOUTCHANGE" }, |
2344 | | { EVENT_NVRAMOK, "EVENT_NVRAMOK" }, |
2345 | | { EVENT_USERREPLACED, "EVENT_USERREPLACED" }, |
2346 | | { EVENT_RADIOTIMEOUT, "EVENT_RADIOTIMEOUT" }, |
2347 | | { EVENT_SUSPENDEDUSER, "EVENT_SUSPENDEDUSER" }, |
2348 | | { EVENT_USERUPDATED, "EVENT_USERUPDATED" }, |
2349 | | { EVENT_DOORBOLTED, "EVENT_DOORBOLTED" }, |
2350 | | { EVENT_PANICACTIVE, "EVENT_PANICACTIVE" }, |
2351 | | { EVENT_PASSAGEACTIVE, "EVENT_PASSAGEACTIVE" }, |
2352 | | { EVENT_PASSAGEINACTIVE, "EVENT_PASSAGEINACTIVE" }, |
2353 | | { EVENT_BADACCESSMODE, "EVENT_BADACCESSMODE" }, |
2354 | | { EVENT_CLOCKERR, "EVENT_CLOCKERR" }, |
2355 | | { EVENT_REMOTEUNLOCK, "EVENT_REMOTEUNLOCK" }, |
2356 | | { EVENT_TZHAUDISABLED, "EVENT_TZHAUDISABLED" }, |
2357 | | { EVENT_EVENTLOGWRAPPED, "EVENT_EVENTLOGWRAPPED" }, |
2358 | | { EVENT_DECLINEDLOGWRAPPED, "EVENT_DECLINEDLOGWRAPPED" }, |
2359 | | { EVENT_ALARMLOGWRAPPED, "EVENT_ALARMLOGWRAPPED" }, |
2360 | | { EVENT_RADIOBUSYEMERGENCY, "EVENT_RADIOBUSYEMERGENCY" }, |
2361 | | { EVENT_RADIOBUSYSUPERVISOR, "EVENT_RADIOBUSYSUPERVISOR" }, |
2362 | | { EVENT_RADIOBUSYONETIME, "EVENT_RADIOBUSYONETIME" }, |
2363 | | { EVENT_RADIOBUSYUSER, "EVENT_RADIOBUSYUSER" }, |
2364 | | { EVENT_RADIOBUSYPANIC, "EVENT_RADIOBUSYPANIC" }, |
2365 | | { EVENT_RADIOBUSYREX, "EVENT_RADIOBUSYREX" }, |
2366 | | { EVENT_RADIOBUSYLOCKOUT, "EVENT_RADIOBUSYLOCKOUT" }, |
2367 | | { EVENT_RADIOBUSYRELOCK, "EVENT_RADIOBUSYRELOCK" }, |
2368 | | { EVENT_BATTERYCHECKHELDOFF, "EVENT_BATTERYCHECKHELDOFF" }, |
2369 | | { EVENT_RMTAUTHREQUEST, "EVENT_RMTAUTHREQUEST" }, |
2370 | | { EVENT_FIRMWAREUPDATE, "EVENT_FIRMWAREUPDATE" }, |
2371 | | { EVENT_FIRMWAREUPDATEFAILED, "EVENT_FIRMWAREUPDATEFAILED" }, |
2372 | | { EVENT_MSMFAILURE, "EVENT_MSMFAILURE" }, |
2373 | | { EVENT_CLOCKRESET, "EVENT_CLOCKRESET" }, |
2374 | | { EVENT_POWERFAIL, "EVENT_POWERFAIL" }, |
2375 | | { EVENT_DPAC501WENTSTUPID, "EVENT_DPAC501WENTSTUPID" }, |
2376 | | { EVENT_CHECKSUMCONFIG, "EVENT_CHECKSUMCONFIG" }, |
2377 | | { EVENT_CHECKSUMTZ, "EVENT_CHECKSUMTZ" }, |
2378 | | { EVENT_DEBUG, "EVENT_DEBUG" }, |
2379 | | { 0, NULL } |
2380 | | }; |
2381 | | static value_string_ext r3_eventnames_ext = VALUE_STRING_EXT_INIT(r3_eventnames); |
2382 | | |
2383 | | static const value_string r3_fieldtypenames [] = |
2384 | | { |
2385 | | { FIELDTYPE_NONE, "FIELDTYPE_NONE" }, |
2386 | | { FIELDTYPE_PIN, "FIELDTYPE_PIN" }, |
2387 | | { FIELDTYPE_PROX, "FIELDTYPE_PROX" }, |
2388 | | { FIELDTYPE_MAGCARD, "FIELDTYPE_MAGCARD" }, |
2389 | | { 0, NULL } |
2390 | | }; |
2391 | | static value_string_ext r3_fieldtypenames_ext = VALUE_STRING_EXT_INIT(r3_fieldtypenames); |
2392 | | |
2393 | | static const value_string r3_filtereventnames [] = |
2394 | | { |
2395 | | { EVENT_INVALIDPIN, "EVENT_INVALIDPIN" }, |
2396 | | { EVENT_USER, "EVENT_USER" }, |
2397 | | { EVENT_ONETIME, "EVENT_ONETIME" }, |
2398 | | { EVENT_PASSAGEBEGIN, "EVENT_PASSAGEBEGIN" }, |
2399 | | { EVENT_PASSAGEEND, "EVENT_PASSAGEEND" }, |
2400 | | { EVENT_BADTIME, "EVENT_BADTIME" }, |
2401 | | { EVENT_LOCKEDOUT, "EVENT_LOCKEDOUT" }, |
2402 | | { EVENT_LOWBATTERY, "EVENT_LOWBATTERY" }, |
2403 | | { EVENT_DEADBATTERY, "EVENT_DEADBATTERY" }, |
2404 | | { EVENT_BATTERYREPLACED, "EVENT_BATTERYREPLACED" }, |
2405 | | { EVENT_USERADDED, "EVENT_USERADDED" }, |
2406 | | { EVENT_USERDELETED, "EVENT_USERDELETED" }, |
2407 | | { EVENT_EMERGENCY, "EVENT_EMERGENCY" }, |
2408 | | { EVENT_PANIC, "EVENT_PANIC" }, |
2409 | | { EVENT_RELOCK, "EVENT_RELOCK" }, |
2410 | | { EVENT_LOCKOUTBEGIN, "EVENT_LOCKOUTBEGIN" }, |
2411 | | { EVENT_LOCKOUTEND, "EVENT_LOCKOUTEND" }, |
2412 | | { EVENT_RESET, "EVENT_RESET" }, |
2413 | | { EVENT_DATETIMESET, "EVENT_DATETIMESET" }, |
2414 | | { EVENT_LOGCLEARED, "EVENT_LOGCLEARED" }, |
2415 | | { EVENT_DBRESET, "EVENT_DBRESET" }, |
2416 | | { EVENT_COMMSTARTED, "EVENT_COMMSTARTED" }, |
2417 | | { EVENT_COMMENDED, "EVENT_COMMENDED" }, |
2418 | | { EVENT_FIRMWAREABORT, "EVENT_FIRMWAREABORT" }, |
2419 | | { EVENT_FIRMWAREERROR, "EVENT_FIRMWAREERROR" }, |
2420 | | { EVENT_FIRMWARETIMEOUT, "EVENT_FIRMWARETIMEOUT" }, |
2421 | | { EVENT_DSTFALLBACK, "EVENT_DSTFALLBACK" }, |
2422 | | { EVENT_DSTSPRINGFORWARD, "EVENT_DSTSPRINGFORWARD" }, |
2423 | | { EVENT_BOLTTHROWN, "EVENT_BOLTTHROWN" }, |
2424 | | { EVENT_BOLTRETRACTED, "EVENT_BOLTRETRACTED" }, |
2425 | | { EVENT_MASTERCODE, "EVENT_MASTERCODE" }, |
2426 | | { EVENT_COMMUSER, "EVENT_COMMUSER" }, |
2427 | | { EVENT_DPACDISABLED, "EVENT_DPACDISABLED" }, |
2428 | | { EVENT_NOTIFY, "EVENT_NOTIFY" }, |
2429 | | { EVENT_EXPIRED, "EVENT_EXPIRED" }, |
2430 | | { EVENT_SUPERVISOR, "EVENT_SUPERVISOR" }, |
2431 | | { EVENT_MCCENTER, "EVENT_MCCENTER" }, |
2432 | | { EVENT_MCCEXIT, "EVENT_MCCEXIT" }, |
2433 | | { EVENT_SERIALRXOVERRUN, "EVENT_SERIALRXOVERRUN" }, |
2434 | | { EVENT_DPACRXOVERRUN, "EVENT_DPACRXOVERRUN" }, |
2435 | | { EVENT_NVRAMPBCLEAR, "EVENT_NVRAMPBCLEAR" }, |
2436 | | { EVENT_NVRAMLAYOUTCHANGE, "EVENT_NVRAMLAYOUTCHANGE" }, |
2437 | | { EVENT_NVRAMOK, "EVENT_NVRAMOK" }, |
2438 | | { EVENT_USERREPLACED, "EVENT_USERREPLACED" }, |
2439 | | { EVENT_RADIOTIMEOUT, "EVENT_RADIOTIMEOUT" }, |
2440 | | { EVENT_SUSPENDEDUSER, "EVENT_SUSPENDEDUSER" }, |
2441 | | { EVENT_USERUPDATED, "EVENT_USERUPDATED" }, |
2442 | | { EVENT_DOORBOLTED, "EVENT_DOORBOLTED" }, |
2443 | | { EVENT_PANICACTIVE, "EVENT_PANICACTIVE" }, |
2444 | | { EVENT_PASSAGEACTIVE, "EVENT_PASSAGEACTIVE" }, |
2445 | | { EVENT_PASSAGEINACTIVE, "EVENT_PASSAGEINACTIVE" }, |
2446 | | { EVENT_BADACCESSMODE, "EVENT_BADACCESSMODE" }, |
2447 | | { EVENT_CLOCKERR, "EVENT_CLOCKERR" }, |
2448 | | { EVENT_REMOTEUNLOCK, "EVENT_REMOTEUNLOCK" }, |
2449 | | { EVENT_TZHAUDISABLED, "EVENT_TZHAUDISABLED" }, |
2450 | | { EVENT_EVENTLOGWRAPPED, "EVENT_EVENTLOGWRAPPED" }, |
2451 | | { EVENT_DECLINEDLOGWRAPPED, "EVENT_DECLINEDLOGWRAPPED" }, |
2452 | | { EVENT_ALARMLOGWRAPPED, "EVENT_ALARMLOGWRAPPED" }, |
2453 | | { EVENT_RADIOBUSYEMERGENCY, "EVENT_RADIOBUSYEMERGENCY" }, |
2454 | | { EVENT_RADIOBUSYSUPERVISOR, "EVENT_RADIOBUSYSUPERVISOR" }, |
2455 | | { EVENT_RADIOBUSYONETIME, "EVENT_RADIOBUSYONETIME" }, |
2456 | | { EVENT_RADIOBUSYUSER, "EVENT_RADIOBUSYUSER" }, |
2457 | | { EVENT_RADIOBUSYPANIC, "EVENT_RADIOBUSYPANIC" }, |
2458 | | { EVENT_RADIOBUSYREX, "EVENT_RADIOBUSYREX" }, |
2459 | | { EVENT_RADIOBUSYLOCKOUT, "EVENT_RADIOBUSYLOCKOUT" }, |
2460 | | { EVENT_RADIOBUSYRELOCK, "EVENT_RADIOBUSYRELOCK" }, |
2461 | | { EVENT_BATTERYCHECKHELDOFF, "EVENT_BATTERYCHECKHELDOFF" }, |
2462 | | { EVENT_RMTAUTHREQUEST, "EVENT_RMTAUTHREQUEST" }, |
2463 | | { EVENT_FIRMWAREUPDATE, "EVENT_FIRMWAREUPDATE" }, |
2464 | | { EVENT_FIRMWAREUPDATEFAILED, "EVENT_FIRMWAREUPDATEFAILED" }, |
2465 | | { EVENT_MSMFAILURE, "EVENT_MSMFAILURE" }, |
2466 | | { EVENT_CLOCKRESET, "EVENT_CLOCKRESET" }, |
2467 | | { EVENT_POWERFAIL, "EVENT_POWERFAIL" }, |
2468 | | { EVENT_DPAC501WENTSTUPID, "EVENT_DPAC501WENTSTUPID" }, |
2469 | | { EVENT_CHECKSUMCONFIG, "EVENT_CHECKSUMCONFIG" }, |
2470 | | { EVENT_CHECKSUMTZ, "EVENT_CHECKSUMTZ" }, |
2471 | | { EVENT_DEBUG, "EVENT_DEBUG" }, |
2472 | | { 0xfe, "(Enable All Filters)" }, |
2473 | | { 0xff, "(Disable All Filters)" }, |
2474 | | { 0, NULL } |
2475 | | }; |
2476 | | static value_string_ext r3_filtereventnames_ext = VALUE_STRING_EXT_INIT(r3_filtereventnames); |
2477 | | |
2478 | | static const value_string r3_filtertypenames [] = |
2479 | | { |
2480 | | { FILTERSELECT_RECORDING, "FILTERSELECT_RECORDING" }, |
2481 | | { FILTERSELECT_REPORTING, "FILTERSELECT_REPORTING" }, |
2482 | | { 0, NULL } |
2483 | | }; |
2484 | | static value_string_ext r3_filtertypenames_ext = VALUE_STRING_EXT_INIT(r3_filtertypenames); |
2485 | | |
2486 | | static const value_string r3_forceitemnames [] = |
2487 | | { |
2488 | | { FORCEITEM_RADIOPOWER, "FORCEITEM_RADIOPOWER" }, |
2489 | | { FORCEITEM_RADIOENABLE, "FORCEITEM_RADIOENABLE" }, |
2490 | | { FORCEITEM_LEDRED, "FORCEITEM_LEDRED" }, |
2491 | | { FORCEITEM_LEDGREEN, "FORCEITEM_LEDGREEN" }, |
2492 | | { FORCEITEM_LEDYELLOW, "FORCEITEM_LEDYELLOW" }, |
2493 | | { FORCEITEM_PIEZO, "FORCEITEM_PIEZO" }, |
2494 | | { FORCEITEM_MAGPOWER, "FORCEITEM_MAGPOWER" }, |
2495 | | { FORCEITEM_MAGLEDA, "FORCEITEM_MAGLEDA" }, |
2496 | | { FORCEITEM_MAGLEDB, "FORCEITEM_MAGLEDB" }, |
2497 | | { FORCEITEM_PROXPOWER, "FORCEITEM_PROXPOWER" }, |
2498 | | { FORCEITEM_PROXPING, "FORCEITEM_PROXPING" }, |
2499 | | { FORCEITEM_PROXMODE, "FORCEITEM_PROXMODE" }, |
2500 | | { FORCEITEM_I2CPOWER, "FORCEITEM_I2CPOWER" }, |
2501 | | { FORCEITEM_MOTORARUN, "FORCEITEM_MOTORARUN" }, |
2502 | | { FORCEITEM_MOTORBRUN, "FORCEITEM_MOTORBRUN" }, |
2503 | | { FORCEITEM_VMON, "FORCEITEM_VMON" }, |
2504 | | { FORCEITEM_PROX, "FORCEITEM_PROX" }, |
2505 | | { FORCEITEM_MORTISETEST, "FORCEITEM_MORTISETEST" }, |
2506 | | { FORCEITEM_KEYPADTEST, "FORCEITEM_KEYPADTEST" }, |
2507 | | { FORCEITEM_MAGTEST, "FORCEITEM_MAGTEST" }, |
2508 | | { FORCEITEM_PROXTEST, "FORCEITEM_PROXTEST" }, |
2509 | | { 0, NULL } |
2510 | | }; |
2511 | | static value_string_ext r3_forceitemnames_ext = VALUE_STRING_EXT_INIT(r3_forceitemnames); |
2512 | | |
2513 | | static const value_string r3_mfgfieldnames [] = |
2514 | | { |
2515 | | { MFGFIELD_IOPINS, "MFGFIELD_IOPINS" }, |
2516 | | { MFGFIELD_ADCS, "MFGFIELD_ADCS" }, |
2517 | | { MFGFIELD_HARDWAREID, "MFGFIELD_HARDWAREID" }, |
2518 | | { MFGFIELD_CHECKPOINTLOG, "MFGFIELD_CHECKPOINTLOG" }, |
2519 | | { MFGFIELD_CPUREGISTERS, "MFGFIELD_CPUREGISTERS" }, |
2520 | | { MFGFIELD_TASKFLAGS, "MFGFIELD_TASKFLAGS" }, |
2521 | | { MFGFIELD_TIMERCHAIN, "MFGFIELD_TIMERCHAIN" }, |
2522 | | { MFGFIELD_PEEKPOKE, "MFGFIELD_PEEKPOKE" }, |
2523 | | { MFGFIELD_LOCKSTATE, "MFGFIELD_LOCKSTATE" }, |
2524 | | { MFGFIELD_CAPABILITIES, "MFGFIELD_CAPABILITIES" }, |
2525 | | { MFGFIELD_DUMPM41T81, "MFGFIELD_DUMPM41T81" }, |
2526 | | { MFGFIELD_NVRAMCHECKSUMVALUE, "MFGFIELD_NVRAMCHECKSUMVALUE" }, |
2527 | | { MFGFIELD_CHECKSUMRESULTS, "MFGFIELD_CHECKSUMRESULTS" }, |
2528 | | { MFGFIELD_MORTISESTATELOG, "MFGFIELD_MORTISESTATELOG" }, |
2529 | | { MFGFIELD_MORTISEPINS, "MFGFIELD_MORTISEPINS" }, |
2530 | | { MFGFIELD_KEYPADCHAR, "MFGFIELD_KEYPADCHAR" }, |
2531 | | { MFGFIELD_MAGCARD, "MFGFIELD_MAGCARD" }, |
2532 | | { MFGFIELD_PROXCARD, "MFGFIELD_PROXCARD" }, |
2533 | | { 0, NULL } |
2534 | | }; |
2535 | | static value_string_ext r3_mfgfieldnames_ext = VALUE_STRING_EXT_INIT(r3_mfgfieldnames); |
2536 | | |
2537 | | static const value_string r3_mortiseeventnames [] = |
2538 | | { |
2539 | | { MORTISEEVENT_DX_THROWN, "MORTISEEVENT_DX_THROWN" }, |
2540 | | { MORTISEEVENT_DX_RETRACTED, "MORTISEEVENT_DX_RETRACTED" }, |
2541 | | { MORTISEEVENT_LX_RETRACTED, "MORTISEEVENT_LX_RETRACTED" }, |
2542 | | { MORTISEEVENT_LX_EXTENDED, "MORTISEEVENT_LX_EXTENDED" }, |
2543 | | { MORTISEEVENT_AX_EXTENDED, "MORTISEEVENT_AX_EXTENDED" }, |
2544 | | { MORTISEEVENT_AX_RETRACTED, "MORTISEEVENT_AX_RETRACTED" }, |
2545 | | { MORTISEEVENT_RX_DEPRESSED, "MORTISEEVENT_RX_DEPRESSED" }, |
2546 | | { MORTISEEVENT_RX_RELEASED, "MORTISEEVENT_RX_RELEASED" }, |
2547 | | { MORTISEEVENT_PX_OPEN, "MORTISEEVENT_PX_OPEN" }, |
2548 | | { MORTISEEVENT_PX_CLOSED, "MORTISEEVENT_PX_CLOSED" }, |
2549 | | { MORTISEEVENT_MX_UNLOCKED, "MORTISEEVENT_MX_UNLOCKED" }, |
2550 | | { MORTISEEVENT_MX_LOCKED, "MORTISEEVENT_MX_LOCKED" }, |
2551 | | { MORTISEEVENT_LAST, "MORTISEEVENT_LAST" }, |
2552 | | { MORTISEEVENT_IGNORE, "MORTISEEVENT_IGNORE" }, |
2553 | | { 0, NULL } |
2554 | | }; |
2555 | | static value_string_ext r3_mortiseeventnames_ext = VALUE_STRING_EXT_INIT(r3_mortiseeventnames); |
2556 | | |
2557 | | static const value_string r3_mortisetypenames [] = |
2558 | | { |
2559 | | { MORTISETYPE_NONE, "MORTISETYPE_NONE" }, |
2560 | | { MORTISETYPE_S82276, "MORTISETYPE_S82276" }, |
2561 | | { MORTISETYPE_S82277, "MORTISETYPE_S82277" }, |
2562 | | { MORTISETYPE_S82278, "MORTISETYPE_S82278" }, |
2563 | | { MORTISETYPE_S82279, "MORTISETYPE_S82279" }, |
2564 | | { MORTISETYPE_S10G77, "MORTISETYPE_S10G77" }, |
2565 | | { MORTISETYPE_S8877, "MORTISETYPE_S8877" }, |
2566 | | { MORTISETYPE_S8878, "MORTISETYPE_S8878" }, |
2567 | | { MORTISETYPE_S8977, "MORTISETYPE_S8977" }, |
2568 | | { MORTISETYPE_S8978, "MORTISETYPE_S8978" }, |
2569 | | { MORTISETYPE_CRML20x36, "MORTISETYPE_CRML20x36" }, |
2570 | | { MORTISETYPE_CRML20x35, "MORTISETYPE_CRML20x35" }, |
2571 | | { MORTISETYPE_CRML20x34, "MORTISETYPE_CRML20x34" }, |
2572 | | { MORTISETYPE_CRML20x33, "MORTISETYPE_CRML20x33" }, |
2573 | | { MORTISETYPE_CRCL33x34, "MORTISETYPE_CRCL33x34" }, |
2574 | | { MORTISETYPE_CR9X34, "MORTISETYPE_CR9X34" }, |
2575 | | { MORTISETYPE_CR9X33, "MORTISETYPE_CR9X33" }, |
2576 | | { MORTISETYPE_CR9MX34, "MORTISETYPE_CR9MX34" }, |
2577 | | { MORTISETYPE_CR9MX33, "MORTISETYPE_CR9MX33" }, |
2578 | | { 0, NULL } |
2579 | | }; |
2580 | | static value_string_ext r3_mortisetypenames_ext = VALUE_STRING_EXT_INIT(r3_mortisetypenames); |
2581 | | |
2582 | | static const value_string r3_peekpokenames [] = |
2583 | | { |
2584 | | { PEEKPOKE_READU8, "PEEKPOKE_READU8" }, |
2585 | | { PEEKPOKE_READU16, "PEEKPOKE_READU16" }, |
2586 | | { PEEKPOKE_READU24, "PEEKPOKE_READU24" }, |
2587 | | { PEEKPOKE_READU32, "PEEKPOKE_READU32" }, |
2588 | | { PEEKPOKE_READSTRING, "PEEKPOKE_READSTRING" }, |
2589 | | { PEEKPOKE_WRITEU8, "PEEKPOKE_WRITEU8" }, |
2590 | | { PEEKPOKE_WRITEU16, "PEEKPOKE_WRITEU16" }, |
2591 | | { PEEKPOKE_WRITEU24, "PEEKPOKE_WRITEU24" }, |
2592 | | { PEEKPOKE_WRITEU32, "PEEKPOKE_WRITEU32" }, |
2593 | | { PEEKPOKE_WRITESTRING, "PEEKPOKE_WRITESTRING" }, |
2594 | | { 0, NULL } |
2595 | | }; |
2596 | | static value_string_ext r3_peekpokenames_ext = VALUE_STRING_EXT_INIT(r3_peekpokenames); |
2597 | | |
2598 | | static const value_string r3_ppmisourcenames [] = |
2599 | | { |
2600 | | { PPMISOURCE_NONE, "PPMISOURCE_NONE" }, |
2601 | | { PPMISOURCE_PIN, "PPMISOURCE_PIN" }, |
2602 | | { PPMISOURCE_PROX, "PPMISOURCE_PROX" }, |
2603 | | { PPMISOURCE_MAGCARD, "PPMISOURCE_MAGCARD" }, |
2604 | | { 0, NULL } |
2605 | | }; |
2606 | | static value_string_ext r3_ppmisourcenames_ext = VALUE_STRING_EXT_INIT(r3_ppmisourcenames); |
2607 | | |
2608 | | static const value_string r3_responsetypenames [] = |
2609 | | { |
2610 | | { RESPONSETYPE_OK, "RESPONSETYPE_OK" }, |
2611 | | { RESPONSETYPE_ERROR, "RESPONSETYPE_ERROR" }, |
2612 | | { RESPONSETYPE_HASDATA, "RESPONSETYPE_HASDATA" }, |
2613 | | { RESPONSETYPE_NOHANDLER, "RESPONSETYPE_NOHANDLER" }, |
2614 | | { RESPONSETYPE_NOSESSION, "RESPONSETYPE_NOSESSION" }, |
2615 | | { RESPONSETYPE_BADCOMMAND, "RESPONSETYPE_BADCOMMAND" }, |
2616 | | { RESPONSETYPE_BADPARAMETER, "RESPONSETYPE_BADPARAMETER" }, |
2617 | | { RESPONSETYPE_BADPARAMETERLEN, "RESPONSETYPE_BADPARAMETERLEN" }, |
2618 | | { RESPONSETYPE_MISSINGPARAMETER, "RESPONSETYPE_MISSINGPARAMETER" }, |
2619 | | { RESPONSETYPE_DUPLICATEPARAMETER, "RESPONSETYPE_DUPLICATEPARAMETER" }, |
2620 | | { RESPONSETYPE_PARAMETERCONFLICT, "RESPONSETYPE_PARAMETERCONFLICT" }, |
2621 | | { RESPONSETYPE_BADDEVICE, "RESPONSETYPE_BADDEVICE" }, |
2622 | | { RESPONSETYPE_NVRAMERROR, "RESPONSETYPE_NVRAMERROR" }, |
2623 | | { RESPONSETYPE_NVRAMERRORNOACK, "RESPONSETYPE_NVRAMERRORNOACK" }, |
2624 | | { RESPONSETYPE_NVRAMERRORNOACK32, "RESPONSETYPE_NVRAMERRORNOACK32" }, |
2625 | | { RESPONSETYPE_NOTI2CADDRESS, "RESPONSETYPE_NOTI2CADDRESS" }, |
2626 | | { RESPONSETYPE_FIRMWAREERROR, "RESPONSETYPE_FIRMWAREERROR" }, |
2627 | | { RESPONSETYPE_DUMPINPROGRESS, "RESPONSETYPE_DUMPINPROGRESS" }, |
2628 | | { RESPONSETYPE_INTERNALERROR, "RESPONSETYPE_INTERNALERROR" }, |
2629 | | { RESPONSETYPE_NOTIMPLEMENTED, "RESPONSETYPE_NOTIMPLEMENTED" }, |
2630 | | { RESPONSETYPE_PINFORMATERROR, "RESPONSETYPE_PINFORMATERROR" }, |
2631 | | { RESPONSETYPE_PINEXISTS, "RESPONSETYPE_PINEXISTS" }, |
2632 | | { RESPONSETYPE_PINNOTFOUND, "RESPONSETYPE_PINNOTFOUND" }, |
2633 | | { RESPONSETYPE_USERACTIVE, "RESPONSETYPE_USERACTIVE" }, |
2634 | | { RESPONSETYPE_USERINACTIVE, "RESPONSETYPE_USERINACTIVE" }, |
2635 | | { RESPONSETYPE_PARENTNOTFOUND, "RESPONSETYPE_PARENTNOTFOUND" }, |
2636 | | { RESPONSETYPE_NOCHAIN, "RESPONSETYPE_NOCHAIN" }, |
2637 | | { RESPONSETYPE_CAUGHTINLOOP, "RESPONSETYPE_CAUGHTINLOOP" }, |
2638 | | { RESPONSETYPE_EVENTFILTERED, "RESPONSETYPE_EVENTFILTERED" }, |
2639 | | { RESPONSETYPE_PAYLOADTOOLARGE, "RESPONSETYPE_PAYLOADTOOLARGE" }, |
2640 | | { RESPONSETYPE_ENDOFDATA, "RESPONSETYPE_ENDOFDATA" }, |
2641 | | { RESPONSETYPE_RMTAUTHREJECTED, "RESPONSETYPE_RMTAUTHREJECTED" }, |
2642 | | { RESPONSETYPE_NVRAMVERSIONERROR, "RESPONSETYPE_NVRAMVERSIONERROR" }, |
2643 | | { RESPONSETYPE_NOHARDWARE, "RESPONSETYPE_NOHARDWARE" }, |
2644 | | { RESPONSETYPE_SCHEDULERCONFLICT, "RESPONSETYPE_SCHEDULERCONFLICT" }, |
2645 | | { RESPONSETYPE_NVRAMWRITEERROR, "RESPONSETYPE_NVRAMWRITEERROR" }, |
2646 | | { RESPONSETYPE_DECLINEDFILTERED, "RESPONSETYPE_DECLINEDFILTERED" }, |
2647 | | { RESPONSETYPE_NECONFIGPARM, "RESPONSETYPE_NECONFIGPARM" }, |
2648 | | { RESPONSETYPE_FLASHERASEERROR, "RESPONSETYPE_FLASHERASEERROR" }, |
2649 | | { RESPONSETYPE_FLASHWRITEERROR, "RESPONSETYPE_FLASHWRITEERROR" }, |
2650 | | { RESPONSETYPE_BADNVBACKUP, "RESPONSETYPE_BADNVBACKUP" }, |
2651 | | { RESPONSETYPE_EARLYACK, "RESPONSETYPE_EARLYACK" }, |
2652 | | { RESPONSETYPE_ALARMFILTERED, "RESPONSETYPE_ALARMFILTERED" }, |
2653 | | { RESPONSETYPE_ACVFAILURE, "RESPONSETYPE_ACVFAILURE" }, |
2654 | | { RESPONSETYPE_USERCHECKSUMERROR, "RESPONSETYPE_USERCHECKSUMERROR" }, |
2655 | | { RESPONSETYPE_CHECKSUMERROR, "RESPONSETYPE_CHECKSUMERROR" }, |
2656 | | { RESPONSETYPE_RTCSQWFAILURE, "RESPONSETYPE_RTCSQWFAILURE" }, |
2657 | | { RESPONSETYPE_PRIORITYSHUTDOWN, "RESPONSETYPE_PRIORITYSHUTDOWN" }, |
2658 | | { RESPONSETYPE_NOTMODIFIABLE, "RESPONSETYPE_NOTMODIFIABLE" }, |
2659 | | { RESPONSETYPE_CANTPRESERVE, "RESPONSETYPE_CANTPRESERVE" }, |
2660 | | { RESPONSETYPE_INPASSAGEMODE, "RESPONSETYPE_INPASSAGEMODE" }, |
2661 | | { 0, NULL } |
2662 | | }; |
2663 | | static value_string_ext r3_responsetypenames_ext = VALUE_STRING_EXT_INIT(r3_responsetypenames); |
2664 | | |
2665 | | static const value_string r3_timezonemodenames [] = |
2666 | | { |
2667 | | { TIMEZONEMODE_NORMAL, "TIMEZONEMODE_NORMAL" }, |
2668 | | { TIMEZONEMODE_EXCLUSION, "TIMEZONEMODE_EXCLUSION" }, |
2669 | | { TIMEZONEMODE_AUTOTIME, "TIMEZONEMODE_AUTOTIME" }, |
2670 | | { TIMEZONEMODE_AUTOFPT, "TIMEZONEMODE_AUTOFPT" }, |
2671 | | { TIMEZONEMODE_UAPM, "TIMEZONEMODE_UAPM" }, |
2672 | | { 0, NULL } |
2673 | | }; |
2674 | | static value_string_ext r3_timezonemodenames_ext = VALUE_STRING_EXT_INIT(r3_timezonemodenames); |
2675 | | |
2676 | | static const value_string r3_upstreamcommandnames [] = |
2677 | | { |
2678 | | { UPSTREAMCOMMAND_RESERVED, "UPSTREAMCOMMAND_RESERVED" }, |
2679 | | { UPSTREAMCOMMAND_DEBUGMSG, "UPSTREAMCOMMAND_DEBUGMSG" }, |
2680 | | { UPSTREAMCOMMAND_QUERYVERSION, "UPSTREAMCOMMAND_QUERYVERSION" }, |
2681 | | { UPSTREAMCOMMAND_QUERYDATETIME, "UPSTREAMCOMMAND_QUERYDATETIME" }, |
2682 | | { UPSTREAMCOMMAND_QUERYSERIALNUMBER, "UPSTREAMCOMMAND_QUERYSERIALNUMBER" }, |
2683 | | { UPSTREAMCOMMAND_DUMPEVENTLOG, "UPSTREAMCOMMAND_DUMPEVENTLOG" }, |
2684 | | { UPSTREAMCOMMAND_DUMPNVRAM, "UPSTREAMCOMMAND_DUMPNVRAM" }, |
2685 | | { UPSTREAMCOMMAND_RMTAUTHREQUEST, "UPSTREAMCOMMAND_RMTAUTHREQUEST" }, |
2686 | | { UPSTREAMCOMMAND_RETRIEVEUSER, "UPSTREAMCOMMAND_RETRIEVEUSER" }, |
2687 | | { UPSTREAMCOMMAND_QUERYCONFIG, "UPSTREAMCOMMAND_QUERYCONFIG" }, |
2688 | | { UPSTREAMCOMMAND_RMTEVENTLOGRECORD, "UPSTREAMCOMMAND_RMTEVENTLOGRECORD" }, |
2689 | | { UPSTREAMCOMMAND_DPAC, "UPSTREAMCOMMAND_DPAC" }, |
2690 | | { UPSTREAMCOMMAND_NOTIFY, "UPSTREAMCOMMAND_NOTIFY" }, |
2691 | | { UPSTREAMCOMMAND_MFG, "UPSTREAMCOMMAND_MFG" }, |
2692 | | { UPSTREAMCOMMAND_EVENTLOGWARNING, "UPSTREAMCOMMAND_EVENTLOGWARNING" }, |
2693 | | { UPSTREAMCOMMAND_DUMPNVRAMRLE, "UPSTREAMCOMMAND_DUMPNVRAMRLE" }, |
2694 | | { UPSTREAMCOMMAND_RMTDECLINEDRECORD, "UPSTREAMCOMMAND_RMTDECLINEDRECORD" }, |
2695 | | { UPSTREAMCOMMAND_DECLINEDWARNING, "UPSTREAMCOMMAND_DECLINEDWARNING" }, |
2696 | | { UPSTREAMCOMMAND_DUMPDECLINEDLOG, "UPSTREAMCOMMAND_DUMPDECLINEDLOG" }, |
2697 | | { UPSTREAMCOMMAND_RMTALARMRECORD, "UPSTREAMCOMMAND_RMTALARMRECORD" }, |
2698 | | { UPSTREAMCOMMAND_ALARMWARNING, "UPSTREAMCOMMAND_ALARMWARNING" }, |
2699 | | { UPSTREAMCOMMAND_DUMPALARMLOG, "UPSTREAMCOMMAND_DUMPALARMLOG" }, |
2700 | | { UPSTREAMCOMMAND_CONNECTSCHEDULER, "UPSTREAMCOMMAND_CONNECTSCHEDULER" }, |
2701 | | { UPSTREAMCOMMAND_CONNECTCOMMUSER, "UPSTREAMCOMMAND_CONNECTCOMMUSER" }, |
2702 | | { UPSTREAMCOMMAND_CONNECTALARM, "UPSTREAMCOMMAND_CONNECTALARM" }, |
2703 | | { UPSTREAMCOMMAND_DUMPDEBUGLOG, "UPSTREAMCOMMAND_DUMPDEBUGLOG" }, |
2704 | | { 0, NULL } |
2705 | | }; |
2706 | | static value_string_ext r3_upstreamcommandnames_ext = VALUE_STRING_EXT_INIT(r3_upstreamcommandnames); |
2707 | | |
2708 | | static const value_string r3_upstreamfieldnames [] = |
2709 | | { |
2710 | | { UPSTREAMFIELD_NOTUSED, "UPSTREAMFIELD_NOTUSED" }, |
2711 | | { UPSTREAMFIELD_SERIALNUMBER, "UPSTREAMFIELD_SERIALNUMBER" }, |
2712 | | { UPSTREAMFIELD_NAR, "UPSTREAMFIELD_NAR" }, |
2713 | | { UPSTREAMFIELD_ENTRYDEVICE, "UPSTREAMFIELD_ENTRYDEVICE" }, |
2714 | | { UPSTREAMFIELD_PPMIFIELDTYPE, "UPSTREAMFIELD_PPMIFIELDTYPE" }, |
2715 | | { UPSTREAMFIELD_PIN, "UPSTREAMFIELD_PIN" }, |
2716 | | { UPSTREAMFIELD_SEQUENCENUMBER, "UPSTREAMFIELD_SEQUENCENUMBER" }, |
2717 | | { UPSTREAMFIELD_RESPONSEWINDOW, "UPSTREAMFIELD_RESPONSEWINDOW" }, |
2718 | | { UPSTREAMFIELD_USERNUMBER, "UPSTREAMFIELD_USERNUMBER" }, |
2719 | | { UPSTREAMFIELD_VERSION, "UPSTREAMFIELD_VERSION" }, |
2720 | | { UPSTREAMFIELD_EVENTLOGRECORD, "UPSTREAMFIELD_EVENTLOGRECORD" }, |
2721 | | { UPSTREAMFIELD_DATETIME, "UPSTREAMFIELD_DATETIME" }, |
2722 | | { UPSTREAMFIELD_EVENTLOGRECORDCOUNT, "UPSTREAMFIELD_EVENTLOGRECORDCOUNT" }, |
2723 | | { UPSTREAMFIELD_DECLINEDRECORDCOUNT, "UPSTREAMFIELD_DECLINEDRECORDCOUNT" }, |
2724 | | { UPSTREAMFIELD_DECLINEDRECORD, "UPSTREAMFIELD_DECLINEDRECORD" }, |
2725 | | { UPSTREAMFIELD_USERTYPE, "UPSTREAMFIELD_USERTYPE" }, |
2726 | | { UPSTREAMFIELD_ACCESSALWAYS, "UPSTREAMFIELD_ACCESSALWAYS" }, |
2727 | | { UPSTREAMFIELD_CACHED, "UPSTREAMFIELD_CACHED" }, |
2728 | | { UPSTREAMFIELD_PRIMARYFIELDTYPE, "UPSTREAMFIELD_PRIMARYFIELDTYPE" }, |
2729 | | { UPSTREAMFIELD_AUXFIELDTYPE, "UPSTREAMFIELD_AUXFIELDTYPE" }, |
2730 | | { UPSTREAMFIELD_ACCESSMODE, "UPSTREAMFIELD_ACCESSMODE" }, |
2731 | | { UPSTREAMFIELD_EXPIREON, "UPSTREAMFIELD_EXPIREON" }, |
2732 | | { UPSTREAMFIELD_USECOUNT, "UPSTREAMFIELD_USECOUNT" }, |
2733 | | { UPSTREAMFIELD_TIMEZONE, "UPSTREAMFIELD_TIMEZONE" }, |
2734 | | { UPSTREAMFIELD_EXCEPTIONGROUP, "UPSTREAMFIELD_EXCEPTIONGROUP" }, |
2735 | | { UPSTREAMFIELD_PRIMARYPIN, "UPSTREAMFIELD_PRIMARYPIN" }, |
2736 | | { UPSTREAMFIELD_AUXPIN, "UPSTREAMFIELD_AUXPIN" }, |
2737 | | { UPSTREAMFIELD_ALARMRECORDCOUNT, "UPSTREAMFIELD_ALARMRECORDCOUNT" }, |
2738 | | { UPSTREAMFIELD_ALARMRECORD, "UPSTREAMFIELD_ALARMRECORD" }, |
2739 | | { UPSTREAMFIELD_AUXCTLRVERSION, "UPSTREAMFIELD_AUXCTLRVERSION" }, |
2740 | | { 0, NULL } |
2741 | | }; |
2742 | | static value_string_ext r3_upstreamfieldnames_ext = VALUE_STRING_EXT_INIT(r3_upstreamfieldnames); |
2743 | | |
2744 | | static const value_string r3_usertypenames [] = |
2745 | | { |
2746 | | { USERTYPE_NONE, "USERTYPE_NONE" }, |
2747 | | { USERTYPE_MASTER, "USERTYPE_MASTER" }, |
2748 | | { USERTYPE_EMERGENCY, "USERTYPE_EMERGENCY" }, |
2749 | | { USERTYPE_SUPERVISOR, "USERTYPE_SUPERVISOR" }, |
2750 | | { USERTYPE_USER, "USERTYPE_USER" }, |
2751 | | { USERTYPE_EXTENDED, "USERTYPE_EXTENDED" }, |
2752 | | { USERTYPE_PASSAGE, "USERTYPE_PASSAGE" }, |
2753 | | { USERTYPE_ONETIME, "USERTYPE_ONETIME" }, |
2754 | | { USERTYPE_PANIC, "USERTYPE_PANIC" }, |
2755 | | { USERTYPE_LOCKOUT, "USERTYPE_LOCKOUT" }, |
2756 | | { USERTYPE_RELOCK, "USERTYPE_RELOCK" }, |
2757 | | { USERTYPE_NOTIFY, "USERTYPE_NOTIFY" }, |
2758 | | { USERTYPE_COMM, "USERTYPE_COMM" }, |
2759 | | { USERTYPE_SUSPENDED, "USERTYPE_SUSPENDED" }, |
2760 | | { 0, NULL } |
2761 | | }; |
2762 | | static value_string_ext r3_usertypenames_ext = VALUE_STRING_EXT_INIT(r3_usertypenames); |
2763 | | |
2764 | | static const value_string r3_mfgnvramdumpnames [] = |
2765 | | { |
2766 | | { 0, "All" }, |
2767 | | { 1, "PIC" }, |
2768 | | { 2, "User" }, |
2769 | | { 3, "Event" }, |
2770 | | { 0, NULL } |
2771 | | }; |
2772 | | static value_string_ext r3_mfgnvramdumpnames_ext = VALUE_STRING_EXT_INIT(r3_mfgnvramdumpnames); |
2773 | | |
2774 | | static const value_string r3_mfgremoteunlocknames [] = |
2775 | | { |
2776 | | { 0, "Normal" }, |
2777 | | { 1, "Unlock" }, |
2778 | | { 2, "Lock" }, |
2779 | | { 0, NULL } |
2780 | | }; |
2781 | | static value_string_ext r3_mfgremoteunlocknames_ext = VALUE_STRING_EXT_INIT(r3_mfgremoteunlocknames); |
2782 | | |
2783 | | static const value_string r3_mfgtestpreservenames [] = |
2784 | | { |
2785 | | { 0, "Save" }, |
2786 | | { 1, "Restore" }, |
2787 | | { 0, NULL } |
2788 | | }; |
2789 | | static value_string_ext r3_mfgtestpreservenames_ext = VALUE_STRING_EXT_INIT(r3_mfgtestpreservenames); |
2790 | | |
2791 | | static const value_string r3_daynames [] = |
2792 | | { |
2793 | | { 0, "Sunday" }, |
2794 | | { 1, "Monday" }, |
2795 | | { 2, "Tuesday" }, |
2796 | | { 3, "Wednesday" }, |
2797 | | { 4, "Thursday" }, |
2798 | | { 5, "Friday" }, |
2799 | | { 6, "Saturday" }, |
2800 | | { 0, NULL } |
2801 | | }; |
2802 | | static value_string_ext r3_daynames_ext = VALUE_STRING_EXT_INIT(r3_daynames); |
2803 | | |
2804 | | static const value_string r3_monthnames [] = |
2805 | | { |
2806 | | { 0, "ERROR!" }, |
2807 | | { 1, "January" }, |
2808 | | { 2, "February" }, |
2809 | | { 3, "March" }, |
2810 | | { 4, "April" }, |
2811 | | { 5, "May" }, |
2812 | | { 6, "June" }, |
2813 | | { 7, "July" }, |
2814 | | { 8, "August" }, |
2815 | | { 9, "September" }, |
2816 | | { 10, "October" }, |
2817 | | { 11, "November" }, |
2818 | | { 12, "December" }, |
2819 | | { 0, NULL } |
2820 | | }; |
2821 | | static value_string_ext r3_monthnames_ext = VALUE_STRING_EXT_INIT(r3_monthnames); |
2822 | | |
2823 | | static const value_string r3_monthdaynames [] = |
2824 | | { |
2825 | | { 0, "ERROR!" }, |
2826 | | { 1, " 1st" }, |
2827 | | { 2, " 2nd" }, |
2828 | | { 3, " 3rd" }, |
2829 | | { 4, " 4th" }, |
2830 | | { 5, " 5th" }, |
2831 | | { 6, " 6th" }, |
2832 | | { 7, " 7th" }, |
2833 | | { 8, " 8th" }, |
2834 | | { 9, " 9th" }, |
2835 | | { 10, "10th" }, |
2836 | | { 11, "11th" }, |
2837 | | { 12, "12th" }, |
2838 | | { 13, "13th" }, |
2839 | | { 14, "14th" }, |
2840 | | { 15, "15th" }, |
2841 | | { 16, "16th" }, |
2842 | | { 17, "17th" }, |
2843 | | { 18, "18th" }, |
2844 | | { 19, "19th" }, |
2845 | | { 20, "20th" }, |
2846 | | { 21, "21st" }, |
2847 | | { 22, "22nd" }, |
2848 | | { 23, "23rd" }, |
2849 | | { 24, "24th" }, |
2850 | | { 25, "25th" }, |
2851 | | { 26, "26th" }, |
2852 | | { 27, "27th" }, |
2853 | | { 28, "28th" }, |
2854 | | { 29, "29th" }, |
2855 | | { 30, "30th" }, |
2856 | | { 31, "31st" }, |
2857 | | { 0, NULL } |
2858 | | }; |
2859 | | static value_string_ext r3_monthdaynames_ext = VALUE_STRING_EXT_INIT(r3_monthdaynames); |
2860 | | |
2861 | | static const value_string r3_powertablenames [] = |
2862 | | { |
2863 | | { 1, "CONFIGITEM_PT_RANGE_1..CONFIGITEM_PT_RANGE_8 = {12, 11, 11, 10, 10, 9, 9, 8}" }, |
2864 | | { 2, "CONFIGITEM_PT_RANGE_1..CONFIGITEM_PT_RANGE_8 = {12, 11, 11, 10, 10, 9, 9, 8}" }, |
2865 | | { 3, "CONFIGITEM_PT_RANGE_1..CONFIGITEM_PT_RANGE_8 = {12, 11, 11, 10, 10, 9, 9, 8}" }, |
2866 | | { 4, "CONFIGITEM_PT_RANGE_1..CONFIGITEM_PT_RANGE_8 = {12, 11, 11, 10, 10, 9, 9, 8}" }, |
2867 | | { 5, "CONFIGITEM_PT_RANGE_1..CONFIGITEM_PT_RANGE_8 = {13, 12, 12, 11, 11, 10, 10, 9}" }, |
2868 | | { 6, "CONFIGITEM_PT_RANGE_1..CONFIGITEM_PT_RANGE_8 = {14, 13, 13, 12, 12, 11, 11, 10}" }, |
2869 | | { 7, "CONFIGITEM_PT_RANGE_1..CONFIGITEM_PT_RANGE_8 = {15, 14, 14, 13, 13, 12, 12, 11}" }, |
2870 | | { 8, "CONFIGITEM_PT_RANGE_1..CONFIGITEM_PT_RANGE_8 = {16, 15, 15, 14, 14, 13, 13, 12}" }, |
2871 | | { 0, NULL } |
2872 | | }; |
2873 | | static value_string_ext r3_powertablenames_ext = VALUE_STRING_EXT_INIT(r3_powertablenames); |
2874 | | |
2875 | | static const true_false_string tfs_rmtauthretry_flags = |
2876 | | { |
2877 | | "Retry", |
2878 | | "Deny" |
2879 | | }; |
2880 | | |
2881 | | static const true_false_string tfs_errornoerror_flags = |
2882 | | { |
2883 | | "Error", |
2884 | | "No Error" |
2885 | | }; |
2886 | | |
2887 | | static const string_string r3_snmanufacturernames [] = |
2888 | | { |
2889 | | { "IT", "ITS" }, |
2890 | | { "KC", "Kimchuk" }, |
2891 | | { NULL, NULL } |
2892 | | }; |
2893 | | |
2894 | | static const string_string r3_snyearnames [] = |
2895 | | { |
2896 | | { "5", "2005" }, |
2897 | | { "6", "2006" }, |
2898 | | { "7", "2007" }, |
2899 | | { "8", "2008" }, |
2900 | | { "9", "2009" }, |
2901 | | { "0", "2010" }, |
2902 | | { "1", "2011" }, |
2903 | | { "2", "2012" }, |
2904 | | { "3", "2013" }, |
2905 | | { "4", "2014" }, |
2906 | | { NULL, NULL } |
2907 | | }; |
2908 | | |
2909 | | static const string_string r3_snmodelnames [] = |
2910 | | { |
2911 | | { "H", "Sx controller" }, |
2912 | | { "J", "Px controller" }, |
2913 | | { "D", "PG offline interface board" }, |
2914 | | { "E", "Px online interface board" }, |
2915 | | { "N", "Ethernet-PD board" }, |
2916 | | { "O", "CAM board" }, |
2917 | | { NULL, NULL } |
2918 | | }; |
2919 | | |
2920 | | static const string_string r3_sngroupnames [] = |
2921 | | { |
2922 | | { "S", "Sargent" }, |
2923 | | { "P", "Persona" }, |
2924 | | { "C", "Corbin-Russwin" }, |
2925 | | { NULL, NULL } |
2926 | | }; |
2927 | | |
2928 | | static const string_string r3_snnidnames [] = |
2929 | | { |
2930 | | { "A", "Ethernet" }, |
2931 | | { "B", "DPAC 802.11b" }, |
2932 | | { "C", "DPAC 802.11bg" }, |
2933 | | { "D", "Zigbee" }, |
2934 | | { "E", "GPRS" }, |
2935 | | { NULL, NULL } |
2936 | | }; |
2937 | | |
2938 | | static const string_string r3_snhidnames [] = |
2939 | | { |
2940 | | { "00", "[None]" }, |
2941 | | { "01", "Keypad" }, |
2942 | | { "02", "eProx" }, |
2943 | | { "03", "eProx, Keypad" }, |
2944 | | { "04", "iProx" }, |
2945 | | { "05", "iProx, Keypad" }, |
2946 | | { "06", "iProx, eProx" }, |
2947 | | { "07", "iProx, eProx, Keypad" }, |
2948 | | { "08", "Mag Card" }, |
2949 | | { "09", "Mag Card, Keypad" }, |
2950 | | { "0a", "Mag Card, eProx" }, |
2951 | | { "0b", "Mag Card, eProx, Keypad" }, |
2952 | | { "0c", "Mag Card, iProx" }, |
2953 | | { "0d", "Mag Card, iProx, Keypad" }, |
2954 | | { "0e", "Mag Card, iProx, eProx" }, |
2955 | | { "0f", "Mag Card, iProx, eProx, Keypad" }, |
2956 | | { "10", "Biometric" }, |
2957 | | { "11", "Biometric, Keypad" }, |
2958 | | { "12", "Biometric, eProx" }, |
2959 | | { "13", "Biometric, eProx, Keypad" }, |
2960 | | { "14", "Biometric, iProx" }, |
2961 | | { "15", "Biometric, iProx, Keypad" }, |
2962 | | { "16", "Biometric, iProx, eProx" }, |
2963 | | { "17", "Biometric, iProx, eProx, Keypad" }, |
2964 | | { "18", "Biometric, Mag Card" }, |
2965 | | { "19", "Biometric, Mag Card, Keypad" }, |
2966 | | { "1a", "Biometric, Mag Card, eProx" }, |
2967 | | { "1b", "Biometric, Mag Card, eProx, Keypad" }, |
2968 | | { "1c", "Biometric, Mag Card, iProx" }, |
2969 | | { "1d", "Biometric, Mag Card, iProx, Keypad" }, |
2970 | | { "1e", "Biometric, Mag Card, iProx, eProx" }, |
2971 | | { "1f", "Biometric, Mag Card, iProx, eProx, Keypad" }, |
2972 | | { NULL, NULL } |
2973 | | }; |
2974 | | |
2975 | | static const string_string r3_snpowersupplynames [] = |
2976 | | { |
2977 | | { "A", "Batteries" }, |
2978 | | { "B", "External power" }, |
2979 | | { "C", "Power over Ethernet" }, |
2980 | | { "D", "External power w/ backup" }, |
2981 | | { "E", "Power over Ethernet w/ backup" }, |
2982 | | { NULL, NULL } |
2983 | | }; |
2984 | | |
2985 | | static const string_string r3_snmortisenames [] = |
2986 | | { |
2987 | | { "A", "Sargent 82276 mortise" }, |
2988 | | { "B", "Sargent 82277 mortise" }, |
2989 | | { "C", "Sargent 82278 mortise" }, |
2990 | | { "D", "Sargent 82279 mortise" }, |
2991 | | { "E", "Sargent 10G77 bored" }, |
2992 | | { "F", "Sargent 8877 exit" }, |
2993 | | { "G", "Sargent 8878 exit" }, |
2994 | | { "H", "Sargent 8977 exit" }, |
2995 | | { "I", "Sargent 8878 exit" }, |
2996 | | { "J", "Corbin-Russwin ML20736/ML20836 mortise" }, |
2997 | | { "K", "Corbin-Russwin ML20735/ML20835 mortise" }, |
2998 | | { "L", "Corbin-Russwin ML20734/ML20834 mortise" }, |
2999 | | { "M", "Corbin-Russwin ML20733/ML20833 mortise" }, |
3000 | | { "N", "Corbin-Russwin CL33734/CL33834 bored" }, |
3001 | | { "O", "Corbin-Russwin 9734/9834 exit" }, |
3002 | | { "P", "Corbin-Russwin 9733/9833 exit" }, |
3003 | | { "Q", "Corbin-Russwin 9M734/9M834 exit" }, |
3004 | | { "R", "Corbin-Russwin 9M733/9M833 exit" }, |
3005 | | { NULL, NULL } |
3006 | | }; |
3007 | | |
3008 | | static int * const r3_timezonearray[] = { |
3009 | | &hf_r3_timezonearray0, |
3010 | | &hf_r3_timezonearray1, |
3011 | | &hf_r3_timezonearray2, |
3012 | | &hf_r3_timezonearray3, |
3013 | | &hf_r3_timezonearray4, |
3014 | | &hf_r3_timezonearray5, |
3015 | | &hf_r3_timezonearray6, |
3016 | | &hf_r3_timezonearray7, |
3017 | | &hf_r3_timezonearray8, |
3018 | | &hf_r3_timezonearray9, |
3019 | | &hf_r3_timezonearray10, |
3020 | | &hf_r3_timezonearray11, |
3021 | | &hf_r3_timezonearray12, |
3022 | | &hf_r3_timezonearray13, |
3023 | | &hf_r3_timezonearray14, |
3024 | | &hf_r3_timezonearray15, |
3025 | | &hf_r3_timezonearray16, |
3026 | | &hf_r3_timezonearray17, |
3027 | | &hf_r3_timezonearray18, |
3028 | | &hf_r3_timezonearray19, |
3029 | | &hf_r3_timezonearray20, |
3030 | | &hf_r3_timezonearray21, |
3031 | | &hf_r3_timezonearray22, |
3032 | | &hf_r3_timezonearray23, |
3033 | | &hf_r3_timezonearray24, |
3034 | | &hf_r3_timezonearray25, |
3035 | | &hf_r3_timezonearray26, |
3036 | | &hf_r3_timezonearray27, |
3037 | | &hf_r3_timezonearray28, |
3038 | | &hf_r3_timezonearray29, |
3039 | | &hf_r3_timezonearray30, |
3040 | | &hf_r3_timezonearray31, |
3041 | | NULL |
3042 | | }; |
3043 | | |
3044 | | static int * const r3_definetimezone_daymap[] = { |
3045 | | &hf_r3_definetimezone_daymap0, |
3046 | | &hf_r3_definetimezone_daymap1, |
3047 | | &hf_r3_definetimezone_daymap2, |
3048 | | &hf_r3_definetimezone_daymap3, |
3049 | | &hf_r3_definetimezone_daymap4, |
3050 | | &hf_r3_definetimezone_daymap5, |
3051 | | &hf_r3_definetimezone_daymap6, |
3052 | | NULL |
3053 | | }; |
3054 | | |
3055 | | static int * const r3_nvramclearoptions[] = { |
3056 | | &hf_r3_nvramclearoptions0, |
3057 | | &hf_r3_nvramclearoptions1, |
3058 | | &hf_r3_nvramclearoptions2, |
3059 | | &hf_r3_nvramclearoptions3, |
3060 | | &hf_r3_nvramclearoptions4, |
3061 | | &hf_r3_nvramclearoptions5, |
3062 | | &hf_r3_nvramclearoptions6, |
3063 | | &hf_r3_nvramclearoptions7, |
3064 | | &hf_r3_nvramclearoptions8, |
3065 | | &hf_r3_nvramclearoptions9, |
3066 | | &hf_r3_nvramclearoptions10, |
3067 | | &hf_r3_nvramclearoptions11, |
3068 | | &hf_r3_nvramclearoptions12, |
3069 | | &hf_r3_nvramclearoptions13, |
3070 | | &hf_r3_nvramclearoptions14, |
3071 | | &hf_r3_nvramclearoptions15, |
3072 | | NULL |
3073 | | }; |
3074 | | |
3075 | | /* |
3076 | | * Mapping table so dissect_r3_cmd_setconfig() knows what the configuration item type is |
3077 | | */ |
3078 | | static const configType_e configMap [] = |
3079 | | { |
3080 | | /* CONFIGITEM_SERIAL_NUMBER */ CONFIGTYPE_STRING, |
3081 | | /* CONFIGITEM_CRYPT_KEY */ CONFIGTYPE_STRING, |
3082 | | /* CONFIGITEM_HARDWARE_OPTIONS_MFG */ CONFIGTYPE_16, |
3083 | | /* CONFIGITEM_HARDWARE_OPTIONS */ CONFIGTYPE_16, |
3084 | | /* CONFIGITEM_NVRAM_CHANGES */ CONFIGTYPE_16, |
3085 | | /* CONFIGITEM_NVRAMDIRTY */ CONFIGTYPE_BOOL, |
3086 | | /* CONFIGITEM_NVRAM_WV */ CONFIGTYPE_BOOL, |
3087 | | /* CONFIGITEM_ENABLE_WDT */ CONFIGTYPE_BOOL, |
3088 | | /* CONFIGITEM_EARLY_ACK */ CONFIGTYPE_BOOL, |
3089 | | /* CONFIGITEM_CONSOLE_AES_ONLY */ CONFIGTYPE_BOOL, |
3090 | | /* CONFIGITEM_RADIO_AES_ONLY */ CONFIGTYPE_BOOL, |
3091 | | /* CONFIGITEM_NDRLE */ CONFIGTYPE_BOOL, |
3092 | | /* CONFIGITEM_SOMF */ CONFIGTYPE_BOOL, |
3093 | | /* CONFIGITEM_NOGAF */ CONFIGTYPE_BOOL, |
3094 | | /* CONFIGITEM_CARD_READER_POWER */ CONFIGTYPE_BOOL, |
3095 | | /* CONFIGITEM_PROX_ENABLE */ CONFIGTYPE_BOOL, |
3096 | | /* CONFIGITEM_CKSUMCONFIG */ CONFIGTYPE_BOOL, |
3097 | | /* CONFIGITEM_DAILY_BATTERY_CHECK */ CONFIGTYPE_BOOL, |
3098 | | /* CONFIGITEM_DAILY_BATTERY_CHECK_HOUR */ CONFIGTYPE_8, |
3099 | | /* CONFIGITEM_BATTERY_LOW */ CONFIGTYPE_BOOL, |
3100 | | /* CONFIGITEM_LRU_HEAD */ CONFIGTYPE_16, |
3101 | | /* CONFIGITEM_LRU_TAIL */ CONFIGTYPE_16, |
3102 | | /* CONFIGITEM_RTC_CALIBRATION */ CONFIGTYPE_8, |
3103 | | /* CONFIGITEM_ACVREQUESTER */ CONFIGTYPE_8, |
3104 | | /* CONFIGITEM_LOCAL_LED */ CONFIGTYPE_8, |
3105 | | /* CONFIGITEM_ERRCNT_XORLEN */ CONFIGTYPE_16, |
3106 | | /* CONFIGITEM_ERRCNT_CRC */ CONFIGTYPE_16, |
3107 | | /* CONFIGITEM_ERRCNT_NOTSIGIL */ CONFIGTYPE_16, |
3108 | | /* CONFIGITEM_ERRCNT_TIMEOUT */ CONFIGTYPE_16, |
3109 | | /* CONFIGITEM_ERRCNT_TOOLONG */ CONFIGTYPE_16, |
3110 | | /* CONFIGITEM_ERRCNT_TOOSHORT */ CONFIGTYPE_16, |
3111 | | /* CONFIGITEM_ERRCNT_HITDEFAULT */ CONFIGTYPE_16, |
3112 | | /* CONFIGITEM_ERRCNT_OVERRUN */ CONFIGTYPE_16, |
3113 | | /* CONFIGITEM_ERRCNT_UARTFE */ CONFIGTYPE_16, |
3114 | | /* CONFIGITEM_ERRCNT_UARTOE */ CONFIGTYPE_16, |
3115 | | /* CONFIGITEM_DST_SET */ CONFIGTYPE_BOOL, |
3116 | | /* CONFIGITEM_DST_MODE */ CONFIGTYPE_8, |
3117 | | /* CONFIGITEM_DST_FORWARD_MONTH */ CONFIGTYPE_8, |
3118 | | /* CONFIGITEM_DST_FORWARD_DOM */ CONFIGTYPE_8, |
3119 | | /* CONFIGITEM_DST_FORWARD_OOD */ CONFIGTYPE_8, |
3120 | | /* CONFIGITEM_DST_FORWARD_DOW */ CONFIGTYPE_8, |
3121 | | /* CONFIGITEM_DST_FORWARD_HOUR */ CONFIGTYPE_8, |
3122 | | /* CONFIGITEM_DST_FORWARD_MINUTE */ CONFIGTYPE_8, |
3123 | | /* CONFIGITEM_DST_FORWARD_ADJUST */ CONFIGTYPE_8, |
3124 | | /* CONFIGITEM_DST_BACK_MONTH */ CONFIGTYPE_8, |
3125 | | /* CONFIGITEM_DST_BACK_DOM */ CONFIGTYPE_8, |
3126 | | /* CONFIGITEM_DST_BACK_OOD */ CONFIGTYPE_8, |
3127 | | /* CONFIGITEM_DST_BACK_DOW */ CONFIGTYPE_8, |
3128 | | /* CONFIGITEM_DST_BACK_HOUR */ CONFIGTYPE_8, |
3129 | | /* CONFIGITEM_DST_BACK_MINUTE */ CONFIGTYPE_8, |
3130 | | /* CONFIGITEM_DST_BACK_ADJUST */ CONFIGTYPE_8, |
3131 | | /* CONFIGITEM_EVENTLOG_ZEROMEM */ CONFIGTYPE_BOOL, |
3132 | | /* CONFIGITEM_EVENTLOG_BEGIN */ CONFIGTYPE_16, |
3133 | | /* CONFIGITEM_EVENTLOG_RECORD */ CONFIGTYPE_16, |
3134 | | /* CONFIGITEM_EVENTLOG_ENTRIES */ CONFIGTYPE_16, |
3135 | | /* CONFIGITEM_EVENTLOG_WARNDEVICE */ CONFIGTYPE_8, |
3136 | | /* CONFIGITEM_EVENTLOG_WARNEVERY */ CONFIGTYPE_16, |
3137 | | /* CONFIGITEM_EVENTLOG_RMTDEVICE */ CONFIGTYPE_8, |
3138 | | /* CONFIGITEM_DECLINEDLOG_ZEROMEM */ CONFIGTYPE_BOOL, |
3139 | | /* CONFIGITEM_DECLINEDLOG_BEGIN */ CONFIGTYPE_16, |
3140 | | /* CONFIGITEM_DECLINEDLOG_RECORD */ CONFIGTYPE_16, |
3141 | | /* CONFIGITEM_DECLINEDLOG_ENTRIES */ CONFIGTYPE_16, |
3142 | | /* CONFIGITEM_DECLINEDLOG_WARNDEVICE */ CONFIGTYPE_8, |
3143 | | /* CONFIGITEM_DECLINEDLOG_WARNEVERY */ CONFIGTYPE_16, |
3144 | | /* CONFIGITEM_DECLINEDLOG_RMTDEVICE */ CONFIGTYPE_8, |
3145 | | /* CONFIGITEM_ALARMLOG_ZEROMEM */ CONFIGTYPE_BOOL, |
3146 | | /* CONFIGITEM_ALARMLOG_BEGIN */ CONFIGTYPE_16, |
3147 | | /* CONFIGITEM_ALARMLOG_RECORD */ CONFIGTYPE_16, |
3148 | | /* CONFIGITEM_ALARMLOG_ENTRIES */ CONFIGTYPE_16, |
3149 | | /* CONFIGITEM_ALARMLOG_WARNDEVICE */ CONFIGTYPE_8, |
3150 | | /* CONFIGITEM_ALARMLOG_WARNEVERY */ CONFIGTYPE_16, |
3151 | | /* CONFIGITEM_ALARMLOG_RMTDEVICE */ CONFIGTYPE_8, |
3152 | | /* CONFIGITEM_VISIBLE_FEEDBACK */ CONFIGTYPE_BOOL, |
3153 | | /* CONFIGITEM_AUDIBLE_FEEDBACK */ CONFIGTYPE_BOOL, |
3154 | | /* CONFIGITEM_VISIBLE_INDICATORS */ CONFIGTYPE_BOOL, |
3155 | | /* CONFIGITEM_AUDIBLE_INDICATORS */ CONFIGTYPE_BOOL, |
3156 | | /* CONFIGITEM_2NDPINDURATION */ CONFIGTYPE_8, |
3157 | | /* CONFIGITEM_LOCKOUT_ATTEMPTS */ CONFIGTYPE_8, |
3158 | | /* CONFIGITEM_LOCKOUT_DURATION */ CONFIGTYPE_8, |
3159 | | /* CONFIGITEM_KEYPAD_INACTIVITY */ CONFIGTYPE_8, |
3160 | | /* CONFIGITEM_ICIDLE_DURATION */ CONFIGTYPE_8, |
3161 | | /* CONFIGITEM_WRITE_DECLINED_LOG */ CONFIGTYPE_BOOL, |
3162 | | /* CONFIGITEM_LOW_BATTERY_INDICATOR */ CONFIGTYPE_BOOL, |
3163 | | /* CONFIGITEM_PANIC_MODE */ CONFIGTYPE_BOOL, |
3164 | | /* CONFIGITEM_TIMEZONE_ENABLE */ CONFIGTYPE_BOOL, |
3165 | | /* CONFIGITEM_EXCEPTION_ENABLE */ CONFIGTYPE_BOOL, |
3166 | | /* CONFIGITEM_AUTOUNLOCK_ENABLE */ CONFIGTYPE_BOOL, |
3167 | | /* CONFIGITEM_LOCK_PRIORITY_EMERGENCY */ CONFIGTYPE_8, |
3168 | | /* CONFIGITEM_LOCK_PRIORITY_SUPERVISOR */ CONFIGTYPE_8, |
3169 | | /* CONFIGITEM_LOCK_PRIORITY_USER */ CONFIGTYPE_8, |
3170 | | /* CONFIGITEM_LOCK_PRIORITY_PASSAGE */ CONFIGTYPE_8, |
3171 | | /* CONFIGITEM_LOCK_PRIORITY_PANIC */ CONFIGTYPE_8, |
3172 | | /* CONFIGITEM_LOCK_PRIORITY_LOCKOUT */ CONFIGTYPE_8, |
3173 | | /* CONFIGITEM_LOCK_PRIORITY_RELOCK */ CONFIGTYPE_8, |
3174 | | /* CONFIGITEM_LOCK_PRIORITY_BOLTTHROWN */ CONFIGTYPE_8, |
3175 | | /* CONFIGITEM_LOCK_PRIORITY_CONFIGCHANGE */ CONFIGTYPE_8, |
3176 | | /* CONFIGITEM_LOCK_PRIORITY_REMOTE */ CONFIGTYPE_8, |
3177 | | /* CONFIGITEM_LOCK_TYPE */ CONFIGTYPE_8, |
3178 | | /* CONFIGITEM_DOUBLE_PULSE */ CONFIGTYPE_BOOL, |
3179 | | /* CONFIGITEM_DOUBLE_DELAY */ CONFIGTYPE_8, |
3180 | | /* CONFIGITEM_MOTOR_DURATION */ CONFIGTYPE_8, |
3181 | | /* CONFIGITEM_MORTISE_TYPE */ CONFIGTYPE_8, |
3182 | | /* CONFIGITEM_UNLOCK_TIME */ CONFIGTYPE_8, |
3183 | | /* CONFIGITEM_EXT_UNLOCK_TIME */ CONFIGTYPE_8, |
3184 | | /* CONFIGITEM_DOOR_AJAR_TIME */ CONFIGTYPE_8, |
3185 | | /* CONFIGITEM_SESSION_TIMEOUT */ CONFIGTYPE_8, |
3186 | | /* CONFIGITEM_RETRY_ON_TIMEOUT */ CONFIGTYPE_BOOL, |
3187 | | /* CONFIGITEM_UNSOLICITED_ENCRYPT */ CONFIGTYPE_8, |
3188 | | /* CONFIGITEM_RMT_AUTH_TIMEOUT */ CONFIGTYPE_8, |
3189 | | /* CONFIGITEM_RMT_AUTH_DEVICE */ CONFIGTYPE_8, |
3190 | | /* CONFIGITEM_ALARM_DEVICE */ CONFIGTYPE_8, |
3191 | | /* CONFIGITEM_NOTIFY_DEVICE */ CONFIGTYPE_8, |
3192 | | /* CONFIGITEM_COMMUSER_DEVICE */ CONFIGTYPE_8, |
3193 | | /* CONFIGITEM_SCHEDULER_DEVICE */ CONFIGTYPE_8, |
3194 | | /* CONFIGITEM_SCHEDULER_TYPE */ CONFIGTYPE_8, |
3195 | | /* CONFIGITEM_SCHEDULER_AWAKE */ CONFIGTYPE_8, |
3196 | | /* CONFIGITEM_SCHEDULER_PERIOD */ CONFIGTYPE_16, |
3197 | | /* CONFIGITEM_SCHEDULER_HOD */ CONFIGTYPE_STRING, |
3198 | | /* CONFIGITEM_SCHEDULER_DOW */ CONFIGTYPE_8, |
3199 | | /* CONFIGITEM_SCHEDULER_DOM */ CONFIGTYPE_32, |
3200 | | /* CONFIGITEM_SCHEDULER_HM1 */ CONFIGTYPE_16, |
3201 | | /* CONFIGITEM_SCHEDULER_HM2 */ CONFIGTYPE_16, |
3202 | | /* CONFIGITEM_SCHEDULER_HM3 */ CONFIGTYPE_16, |
3203 | | /* CONFIGITEM_SCHEDULER_HM4 */ CONFIGTYPE_16, |
3204 | | /* CONFIGITEM_RADIO_TYPE */ CONFIGTYPE_8, |
3205 | | /* CONFIGITEM_RADIO_MODE */ CONFIGTYPE_8, |
3206 | | /* CONFIGITEM_RADIO_TIMEOUT */ CONFIGTYPE_8, |
3207 | | /* CONFIGITEM_RADIO_ATTEMPTS */ CONFIGTYPE_8, |
3208 | | /* CONFIGITEM_RADIO_HOUSEKEEPING */ CONFIGTYPE_8, |
3209 | | /* CONFIGITEM_RADIO_LEAPUSERNAME */ CONFIGTYPE_STRING, |
3210 | | /* CONFIGITEM_RADIO_LEAPPASSWORD */ CONFIGTYPE_STRING, |
3211 | | /* CONFIGITEM_INHIBIT_VOLTAGE */ CONFIGTYPE_8, |
3212 | | /* CONFIGITEM_LOW_VOLTAGE */ CONFIGTYPE_8, |
3213 | | /* CONFIGITEM_PT_RANGE_1 */ CONFIGTYPE_8, |
3214 | | /* CONFIGITEM_PT_RANGE_2 */ CONFIGTYPE_8, |
3215 | | /* CONFIGITEM_PT_RANGE_3 */ CONFIGTYPE_8, |
3216 | | /* CONFIGITEM_PT_RANGE_4 */ CONFIGTYPE_8, |
3217 | | /* CONFIGITEM_PT_RANGE_5 */ CONFIGTYPE_8, |
3218 | | /* CONFIGITEM_PT_RANGE_6 */ CONFIGTYPE_8, |
3219 | | /* CONFIGITEM_PT_RANGE_7 */ CONFIGTYPE_8, |
3220 | | /* CONFIGITEM_PT_RANGE_8 */ CONFIGTYPE_8, |
3221 | | /* CONFIGITEM_MAGCARD_IFS */ CONFIGTYPE_BOOL, |
3222 | | /* CONFIGITEM_MAGCARD_FIELDS */ CONFIGTYPE_8, |
3223 | | /* CONFIGITEM_MAGCARD_OFFSET */ CONFIGTYPE_8, |
3224 | | /* CONFIGITEM_MAGCARD_DIGITS */ CONFIGTYPE_8, |
3225 | | /* CONFIGITEM_ALARMS */ CONFIGTYPE_STRING, |
3226 | | /* CONFIGITEM_FILTERS */ CONFIGTYPE_STRING, |
3227 | | /* CONFIGITEM_ALARMSTATE */ CONFIGTYPE_8, |
3228 | | /* CONFIGITEM_DOORSTATE */ CONFIGTYPE_8, |
3229 | | /* CONFIGITEM_DPACDEBUG */ CONFIGTYPE_BOOL, |
3230 | | /* CONFIGITEM_FAILOPENSECURE */ CONFIGTYPE_BOOL, |
3231 | | /* CONFIGITEM_REPLACED_VOLTAGE */ CONFIGTYPE_8, |
3232 | | /* CONFIGITEM_RX_HELD_TIME */ CONFIGTYPE_8, |
3233 | | /* CONFIGITEM_PACKET_TIMEOUT */ CONFIGTYPE_8, |
3234 | | /* CONFIGITEM_EXTENDEDRESPONSE */ CONFIGTYPE_BOOL, |
3235 | | /* CONFIGITEM_PASSAGEMODEINDICATOR */ CONFIGTYPE_BOOL, |
3236 | | /* CONFIGITEM_PFMRETURNTIME */ CONFIGTYPE_8 |
3237 | | }; |
3238 | | |
3239 | | |
3240 | | /* |
3241 | | * Dissectors for each command |
3242 | | */ |
3243 | | static void dissect_r3_cmd_response (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3244 | | static void dissect_r3_cmd_handshake (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3245 | | static void dissect_r3_cmd_killsession (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3246 | | static void dissect_r3_cmd_queryserialnumber (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3247 | | static void dissect_r3_cmd_queryversion (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3248 | | static void dissect_r3_cmd_setdatetime (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3249 | | static void dissect_r3_cmd_querydatetime (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3250 | | static void dissect_r3_cmd_setconfig (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3251 | | static void dissect_r3_cmd_getconfig (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3252 | | static void dissect_r3_cmd_manageuser (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3253 | | static void dissect_r3_cmd_deleteusers (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3254 | | static void dissect_r3_cmd_defineexception (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3255 | | static void dissect_r3_cmd_defineexceptiongroup (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3256 | | static void dissect_r3_cmd_definecalendar (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3257 | | static void dissect_r3_cmd_definetimezone (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3258 | | static void dissect_r3_cmd_rmtauthretry (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3259 | | static void dissect_r3_cmd_filters (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3260 | | static void dissect_r3_cmd_alarmconfigure (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3261 | | static void dissect_r3_cmd_eventlogdump (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3262 | | static void dissect_r3_cmd_declinedlogdump (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3263 | | static void dissect_r3_cmd_alarmlogdump (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3264 | | static void dissect_r3_cmd_downloadfirmware (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3265 | | static void dissect_r3_cmd_downloadfirmwaretimeout (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3266 | | static void dissect_r3_cmd_powertableselection (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3267 | | static void dissect_r3_cmd_clearnvram (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3268 | | static void dissect_r3_cmd_dpac (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3269 | | static void dissect_r3_cmd_selftest (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3270 | | static void dissect_r3_cmd_reset (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3271 | | static void dissect_r3_cmd_logwrite (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3272 | | static void dissect_r3_cmd_mfgcommand (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3273 | | static void dissect_r3_cmd_nvrambackup (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3274 | | static void dissect_r3_cmd_extendedresponse (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3275 | | |
3276 | | static void (* const r3command_dissect []) (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *r3_tree) = |
3277 | | { |
3278 | | /* CMD_RESPONSE */ dissect_r3_cmd_response, |
3279 | | /* CMD_HANDSHAKE */ dissect_r3_cmd_handshake, |
3280 | | /* CMD_KILLSESSION */ dissect_r3_cmd_killsession, |
3281 | | /* CMD_QUERYSERIALNUMBER */ dissect_r3_cmd_queryserialnumber, |
3282 | | /* CMD_QUERYVERSION */ dissect_r3_cmd_queryversion, |
3283 | | /* CMD_SETDATETIME */ dissect_r3_cmd_setdatetime, |
3284 | | /* CMD_QUERYDATETIME */ dissect_r3_cmd_querydatetime, |
3285 | | /* CMD_SETCONFIG */ dissect_r3_cmd_setconfig, |
3286 | | /* CMD_GETCONFIG */ dissect_r3_cmd_getconfig, |
3287 | | /* CMD_MANAGEUSER */ dissect_r3_cmd_manageuser, |
3288 | | /* CMD_DELETEUSERS */ dissect_r3_cmd_deleteusers, |
3289 | | /* CMD_DEFINEEXCEPTION */ dissect_r3_cmd_defineexception, |
3290 | | /* CMD_DEFINEEXCEPTIONGROUP */ dissect_r3_cmd_defineexceptiongroup, |
3291 | | /* CMD_DEFINECALENDAR */ dissect_r3_cmd_definecalendar, |
3292 | | /* CMD_DEFINETIMEZONE */ dissect_r3_cmd_definetimezone, |
3293 | | /* CMD_RMTAUTHRETRY */ dissect_r3_cmd_rmtauthretry, |
3294 | | /* CMD_FILTERS */ dissect_r3_cmd_filters, |
3295 | | /* CMD_ALARMCONFIGURE */ dissect_r3_cmd_alarmconfigure, |
3296 | | /* CMD_EVENTLOGDUMP */ dissect_r3_cmd_eventlogdump, |
3297 | | /* CMD_DECLINEDLOGDUMP */ dissect_r3_cmd_declinedlogdump, |
3298 | | /* CMD_ALARMLOGDUMP */ dissect_r3_cmd_alarmlogdump, |
3299 | | /* CMD_DOWNLOADFIRMWARE */ dissect_r3_cmd_downloadfirmware, |
3300 | | /* CMD_DOWNLOADFIRMWARETIMEOUT */ dissect_r3_cmd_downloadfirmwaretimeout, |
3301 | | /* CMD_POWERTABLESELECTION */ dissect_r3_cmd_powertableselection, |
3302 | | /* CMD_CLEARNVRAM */ dissect_r3_cmd_clearnvram, |
3303 | | /* CMD_DPAC */ dissect_r3_cmd_dpac, |
3304 | | /* CMD_SELFTEST */ dissect_r3_cmd_selftest, |
3305 | | /* CMD_RESET */ dissect_r3_cmd_reset, |
3306 | | /* CMD_LOGWRITE */ dissect_r3_cmd_logwrite, |
3307 | | /* CMD_MFGCOMMAND */ dissect_r3_cmd_mfgcommand, |
3308 | | /* CMD_NVRAMBACKUP */ dissect_r3_cmd_nvrambackup, |
3309 | | /* CMD_EXTENDEDRESPONSE */ dissect_r3_cmd_extendedresponse |
3310 | | }; |
3311 | | |
3312 | | static void dissect_r3_cmdmfg_setserialnumber (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3313 | | static void dissect_r3_cmdmfg_setcryptkey (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3314 | | static void dissect_r3_cmdmfg_dumpnvram (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3315 | | static void dissect_r3_cmdmfg_terminal (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3316 | | static void dissect_r3_cmdmfg_remoteunlock (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3317 | | static void dissect_r3_cmdmfg_auxctlrversion (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3318 | | static void dissect_r3_cmdmfg_iopins (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3319 | | static void dissect_r3_cmdmfg_adcs (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3320 | | static void dissect_r3_cmdmfg_hardwareid (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3321 | | static void dissect_r3_cmdmfg_checkpointlogdump (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3322 | | static void dissect_r3_cmdmfg_checkpointlogclear (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3323 | | static void dissect_r3_cmdmfg_readregisters (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3324 | | static void dissect_r3_cmdmfg_forceoptions (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3325 | | static void dissect_r3_cmdmfg_commuser (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3326 | | static void dissect_r3_cmdmfg_dumpkeypad (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3327 | | static void dissect_r3_cmdmfg_batterycheck (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3328 | | static void dissect_r3_cmdmfg_ramrefresh (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3329 | | static void dissect_r3_cmdmfg_taskflags (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3330 | | static void dissect_r3_cmdmfg_timerchain (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3331 | | static void dissect_r3_cmdmfg_peekpoke (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3332 | | static void dissect_r3_cmdmfg_lockstate (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3333 | | static void dissect_r3_cmdmfg_capabilities (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3334 | | static void dissect_r3_cmdmfg_dumpm41t81 (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3335 | | static void dissect_r3_cmdmfg_debuglogdump (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3336 | | static void dissect_r3_cmdmfg_debuglogclear (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3337 | | static void dissect_r3_cmdmfg_testwdt (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3338 | | static void dissect_r3_cmdmfg_querycksum (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3339 | | static void dissect_r3_cmdmfg_validatechecksums (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3340 | | static void dissect_r3_cmdmfg_rebuildlrucache (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3341 | | static void dissect_r3_cmdmfg_tzupdate (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3342 | | static void dissect_r3_cmdmfg_testpreserve (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3343 | | static void dissect_r3_cmdmfg_mortisestatelogdump (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3344 | | static void dissect_r3_cmdmfg_mortisestatelogclear (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3345 | | static void dissect_r3_cmdmfg_mortisepins (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3346 | | static void dissect_r3_cmdmfg_haltandcatchfire (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3347 | | |
3348 | | static void (* const r3commandmfg_dissect []) (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *r3_tree) = |
3349 | | { |
3350 | | /* CMDMFG_SETSERIALNUMBER */ dissect_r3_cmdmfg_setserialnumber, |
3351 | | /* CMDMFG_SETCRYPTKEY */ dissect_r3_cmdmfg_setcryptkey, |
3352 | | /* CMDMFG_DUMPNVRAM */ dissect_r3_cmdmfg_dumpnvram, |
3353 | | /* CMDMFG_TERMINAL */ dissect_r3_cmdmfg_terminal, |
3354 | | /* CMDMFG_REMOTEUNLOCK */ dissect_r3_cmdmfg_remoteunlock, |
3355 | | /* CMDMFG_AUXCTLRVERSION */ dissect_r3_cmdmfg_auxctlrversion, |
3356 | | /* CMDMFG_IOPINS */ dissect_r3_cmdmfg_iopins, |
3357 | | /* CMDMFG_ADCS */ dissect_r3_cmdmfg_adcs, |
3358 | | /* CMDMFG_HARDWAREID */ dissect_r3_cmdmfg_hardwareid, |
3359 | | /* CMDMFG_CHECKPOINTLOGDUMP */ dissect_r3_cmdmfg_checkpointlogdump, |
3360 | | /* CMDMFG_CHECKPOINTLOGCLEAR */ dissect_r3_cmdmfg_checkpointlogclear, |
3361 | | /* CMDMFG_READREGISTERS */ dissect_r3_cmdmfg_readregisters, |
3362 | | /* CMDMFG_FORCEOPTIONS */ dissect_r3_cmdmfg_forceoptions, |
3363 | | /* CMDMFG_COMMUSER */ dissect_r3_cmdmfg_commuser, |
3364 | | /* CMDMFG_DUMPKEYPAD */ dissect_r3_cmdmfg_dumpkeypad, |
3365 | | /* CMDMFG_BATTERYCHECK */ dissect_r3_cmdmfg_batterycheck, |
3366 | | /* CMDMFG_RAMREFRESH */ dissect_r3_cmdmfg_ramrefresh, |
3367 | | /* CMDMFG_TASKFLAGS */ dissect_r3_cmdmfg_taskflags, |
3368 | | /* CMDMFG_TIMERCHAIN */ dissect_r3_cmdmfg_timerchain, |
3369 | | /* CMDMFG_PEEKPOKE */ dissect_r3_cmdmfg_peekpoke, |
3370 | | /* CMDMFG_LOCKSTATE */ dissect_r3_cmdmfg_lockstate, |
3371 | | /* CMDMFG_CAPABILITIES */ dissect_r3_cmdmfg_capabilities, |
3372 | | /* CMDMFG_DUMPM41T81 */ dissect_r3_cmdmfg_dumpm41t81, |
3373 | | /* CMDMFG_DEBUGLOGDUMP */ dissect_r3_cmdmfg_debuglogdump, |
3374 | | /* CMDMFG_DEBUGLOGCLEAR */ dissect_r3_cmdmfg_debuglogclear, |
3375 | | /* CMDMFG_TESTWDT */ dissect_r3_cmdmfg_testwdt, |
3376 | | /* CMDMFG_QUERYCKSUM */ dissect_r3_cmdmfg_querycksum, |
3377 | | /* CMDMFG_VALIDATECHECKSUMS */ dissect_r3_cmdmfg_validatechecksums, |
3378 | | /* CMDMFG_REBUILDLRUCACHE */ dissect_r3_cmdmfg_rebuildlrucache, |
3379 | | /* CMDMFG_TZUPDATE */ dissect_r3_cmdmfg_tzupdate, |
3380 | | /* CMDMFG_TESTPRESERVE */ dissect_r3_cmdmfg_testpreserve, |
3381 | | /* CMDMFG_MORTISESTATELOGDUMP */ dissect_r3_cmdmfg_mortisestatelogdump, |
3382 | | /* CMDMFG_MORTISESTATELOGCLEAR */ dissect_r3_cmdmfg_mortisestatelogclear, |
3383 | | /* CMDMFG_MORTISEPINS */ dissect_r3_cmdmfg_mortisepins, |
3384 | | /* CMDMFG_HALTANDCATCHFIRE */ dissect_r3_cmdmfg_haltandcatchfire |
3385 | | }; |
3386 | | |
3387 | | static void dissect_r3_response_singlebyte (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3388 | | static void dissect_r3_response_hasdata (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3389 | | |
3390 | | static void (* const r3response_dissect []) (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *r3_tree) = |
3391 | | { |
3392 | | /* RESPONSETYPE_OK */ dissect_r3_response_singlebyte, |
3393 | | /* RESPONSETYPE_ERROR */ dissect_r3_response_singlebyte, |
3394 | | /* RESPONSETYPE_HASDATA */ dissect_r3_response_hasdata, |
3395 | | /* RESPONSETYPE_NOHANDLER */ dissect_r3_response_singlebyte, |
3396 | | /* RESPONSETYPE_NOSESSION */ dissect_r3_response_singlebyte, |
3397 | | /* RESPONSETYPE_BADCOMMAND */ dissect_r3_response_singlebyte, |
3398 | | /* RESPONSETYPE_BADPARAMETER */ dissect_r3_response_singlebyte, |
3399 | | /* RESPONSETYPE_BADPARAMETERLEN */ dissect_r3_response_singlebyte, |
3400 | | /* RESPONSETYPE_MISSINGPARAMETER */ dissect_r3_response_singlebyte, |
3401 | | /* RESPONSETYPE_DUPLICATEPARAMETER */ dissect_r3_response_singlebyte, |
3402 | | /* RESPONSETYPE_PARAMETERCONFLICT */ dissect_r3_response_singlebyte, |
3403 | | /* RESPONSETYPE_BADDEVICE */ dissect_r3_response_singlebyte, |
3404 | | /* RESPONSETYPE_NVRAMERROR */ dissect_r3_response_singlebyte, |
3405 | | /* RESPONSETYPE_NVRAMERRORNOACK */ dissect_r3_response_singlebyte, |
3406 | | /* RESPONSETYPE_NVRAMERRORNOACK32 */ dissect_r3_response_singlebyte, |
3407 | | /* RESPONSETYPE_NOTI2CADDRESS */ dissect_r3_response_singlebyte, |
3408 | | /* RESPONSETYPE_FIRMWAREERROR */ dissect_r3_response_singlebyte, |
3409 | | /* RESPONSETYPE_DUMPINPROGRESS */ dissect_r3_response_singlebyte, |
3410 | | /* RESPONSETYPE_INTERNALERROR */ dissect_r3_response_singlebyte, |
3411 | | /* RESPONSETYPE_NOTIMPLEMENTED */ dissect_r3_response_singlebyte, |
3412 | | /* RESPONSETYPE_PINFORMATERROR */ dissect_r3_response_singlebyte, |
3413 | | /* RESPONSETYPE_PINEXISTS */ dissect_r3_response_singlebyte, |
3414 | | /* RESPONSETYPE_PINNOTFOUND */ dissect_r3_response_singlebyte, |
3415 | | /* RESPONSETYPE_USERACTIVE */ dissect_r3_response_singlebyte, |
3416 | | /* RESPONSETYPE_USERINACTIVE */ dissect_r3_response_singlebyte, |
3417 | | /* RESPONSETYPE_PARENTNOTFOUND */ dissect_r3_response_singlebyte, |
3418 | | /* RESPONSETYPE_NOCHAIN */ dissect_r3_response_singlebyte, |
3419 | | /* RESPONSETYPE_CAUGHTINLOOP */ dissect_r3_response_singlebyte, |
3420 | | /* RESPONSETYPE_EVENTFILTERED */ dissect_r3_response_singlebyte, |
3421 | | /* RESPONSETYPE_PAYLOADTOOLARGE */ dissect_r3_response_singlebyte, |
3422 | | /* RESPONSETYPE_ENDOFDATA */ dissect_r3_response_singlebyte, |
3423 | | /* RESPONSETYPE_RMTAUTHREJECTED */ dissect_r3_response_singlebyte, |
3424 | | /* RESPONSETYPE_NVRAMVERSIONERROR */ dissect_r3_response_singlebyte, |
3425 | | /* RESPONSETYPE_NOHARDWARE */ dissect_r3_response_singlebyte, |
3426 | | /* RESPONSETYPE_SCHEDULERCONFLICT */ dissect_r3_response_singlebyte, |
3427 | | /* RESPONSETYPE_NVRAMWRITEERROR */ dissect_r3_response_singlebyte, |
3428 | | /* RESPONSETYPE_DECLINEDFILTERED */ dissect_r3_response_singlebyte, |
3429 | | /* RESPONSETYPE_NECONFIGPARM */ dissect_r3_response_singlebyte, |
3430 | | /* RESPONSETYPE_FLASHERASEERROR */ dissect_r3_response_singlebyte, |
3431 | | /* RESPONSETYPE_FLASHWRITEERROR */ dissect_r3_response_singlebyte, |
3432 | | /* RESPONSETYPE_BADNVBACKUP */ dissect_r3_response_singlebyte, |
3433 | | /* RESPONSETYPE_EARLYACK */ dissect_r3_response_singlebyte, |
3434 | | /* RESPONSETYPE_ALARMFILTERED */ dissect_r3_response_singlebyte, |
3435 | | /* RESPONSETYPE_ACVFAILURE */ dissect_r3_response_singlebyte, |
3436 | | /* RESPONSETYPE_USERCHECKSUMERROR */ dissect_r3_response_singlebyte, |
3437 | | /* RESPONSETYPE_CHECKSUMERROR */ dissect_r3_response_singlebyte, |
3438 | | /* RESPONSETYPE_RTCSQWFAILURE */ dissect_r3_response_singlebyte, |
3439 | | /* RESPONSETYPE_PRIORITYSHUTDOWN */ dissect_r3_response_singlebyte, |
3440 | | /* RESPONSETYPE_NOTMODIFIABLE */ dissect_r3_response_singlebyte, |
3441 | | /* RESPONSETYPE_CANTPRESERVE */ dissect_r3_response_singlebyte, |
3442 | | /* RESPONSETYPE_INPASSAGEMODE */ dissect_r3_response_singlebyte |
3443 | | }; |
3444 | | |
3445 | | static void dissect_r3_upstreamcommand_reserved (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3446 | | static void dissect_r3_upstreamcommand_debugmsg (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3447 | | static void dissect_r3_upstreamcommand_queryversion (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3448 | | static void dissect_r3_upstreamcommand_querydatetime (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3449 | | static void dissect_r3_upstreamcommand_queryserialnumber (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3450 | | static void dissect_r3_upstreamcommand_dumpeventlog (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3451 | | static void dissect_r3_upstreamcommand_dumpnvram (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3452 | | static void dissect_r3_upstreamcommand_rmtquthrequest (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3453 | | static void dissect_r3_upstreamcommand_retrieveuser (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3454 | | static void dissect_r3_upstreamcommand_queryconfig (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3455 | | static void dissect_r3_upstreamcommand_rmteventlogrecord (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3456 | | static void dissect_r3_upstreamcommand_dpac (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3457 | | static void dissect_r3_upstreamcommand_notify (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3458 | | static void dissect_r3_upstreamcommand_mfg (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3459 | | static void dissect_r3_upstreamcommand_eventlogwarning (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3460 | | static void dissect_r3_upstreamcommand_dumpnvramrle (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3461 | | static void dissect_r3_upstreamcommand_rmtdeclinedrecord (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3462 | | static void dissect_r3_upstreamcommand_declinedwarning (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3463 | | static void dissect_r3_upstreamcommand_dumpdeclinedlog (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3464 | | static void dissect_r3_upstreamcommand_rmtalarmrecord (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3465 | | static void dissect_r3_upstreamcommand_alarmwarning (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3466 | | static void dissect_r3_upstreamcommand_dumpalarmlog (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3467 | | static void dissect_r3_upstreamcommand_connectscheduler (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3468 | | static void dissect_r3_upstreamcommand_connectcommuser (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3469 | | static void dissect_r3_upstreamcommand_commandalarm (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3470 | | static void dissect_r3_upstreamcommand_dumpdebuglog (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3471 | | |
3472 | | static void (* const r3upstreamcommand_dissect []) (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *r3_tree) = |
3473 | | { |
3474 | | /* UPSTREAMCOMMAND_RESERVED */ dissect_r3_upstreamcommand_reserved, |
3475 | | /* UPSTREAMCOMMAND_DEBUGMSG */ dissect_r3_upstreamcommand_debugmsg, |
3476 | | /* UPSTREAMCOMMAND_QUERYVERSION */ dissect_r3_upstreamcommand_queryversion, |
3477 | | /* UPSTREAMCOMMAND_QUERYDATETIME */ dissect_r3_upstreamcommand_querydatetime, |
3478 | | /* UPSTREAMCOMMAND_QUERYSERIALNUMBER */ dissect_r3_upstreamcommand_queryserialnumber, |
3479 | | /* UPSTREAMCOMMAND_DUMPEVENTLOG */ dissect_r3_upstreamcommand_dumpeventlog, |
3480 | | /* UPSTREAMCOMMAND_DUMPNVRAM */ dissect_r3_upstreamcommand_dumpnvram, |
3481 | | /* UPSTREAMCOMMAND_RMTAUTHREQUEST */ dissect_r3_upstreamcommand_rmtquthrequest, |
3482 | | /* UPSTREAMCOMMAND_RETRIEVEUSER */ dissect_r3_upstreamcommand_retrieveuser, |
3483 | | /* UPSTREAMCOMMAND_QUERYCONFIG */ dissect_r3_upstreamcommand_queryconfig, |
3484 | | /* UPSTREAMCOMMAND_RMTEVENTLOGRECORD */ dissect_r3_upstreamcommand_rmteventlogrecord, |
3485 | | /* UPSTREAMCOMMAND_DPAC */ dissect_r3_upstreamcommand_dpac, |
3486 | | /* UPSTREAMCOMMAND_NOTIFY */ dissect_r3_upstreamcommand_notify, |
3487 | | /* UPSTREAMCOMMAND_MFG */ dissect_r3_upstreamcommand_mfg, |
3488 | | /* UPSTREAMCOMMAND_EVENTLOGWARNING */ dissect_r3_upstreamcommand_eventlogwarning, |
3489 | | /* UPSTREAMCOMMAND_DUMPNVRAMRLE */ dissect_r3_upstreamcommand_dumpnvramrle, |
3490 | | /* UPSTREAMCOMMAND_RMTDECLINEDRECORD */ dissect_r3_upstreamcommand_rmtdeclinedrecord, |
3491 | | /* UPSTREAMCOMMAND_DECLINEDWARNING */ dissect_r3_upstreamcommand_declinedwarning, |
3492 | | /* UPSTREAMCOMMAND_DUMPDECLINEDLOG */ dissect_r3_upstreamcommand_dumpdeclinedlog, |
3493 | | /* UPSTREAMCOMMAND_RMTALARMRECORD */ dissect_r3_upstreamcommand_rmtalarmrecord, |
3494 | | /* UPSTREAMCOMMAND_ALARMWARNING */ dissect_r3_upstreamcommand_alarmwarning, |
3495 | | /* UPSTREAMCOMMAND_DUMPALARMLOG */ dissect_r3_upstreamcommand_dumpalarmlog, |
3496 | | /* UPSTREAMCOMMAND_CONNECTSCHEDULER */ dissect_r3_upstreamcommand_connectscheduler, |
3497 | | /* UPSTREAMCOMMAND_CONNECTCOMMUSER */ dissect_r3_upstreamcommand_connectcommuser, |
3498 | | /* UPSTREAMCOMMAND_CONNECTALARM */ dissect_r3_upstreamcommand_commandalarm, |
3499 | | /* UPSTREAMCOMMAND_DUMPDEBUGLOG */ dissect_r3_upstreamcommand_dumpdebuglog |
3500 | | }; |
3501 | | |
3502 | | static void dissect_r3_upstreammfgfield_iopins (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3503 | | static void dissect_r3_upstreammfgfield_adcs (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3504 | | static void dissect_r3_upstreammfgfield_hardwareid (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3505 | | static void dissect_r3_upstreammfgfield_checkpointlog (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3506 | | static void dissect_r3_upstreammfgfield_cpuregisters (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3507 | | static void dissect_r3_upstreammfgfield_taskflags (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3508 | | static void dissect_r3_upstreammfgfield_timerchain (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3509 | | static void dissect_r3_upstreammfgfield_peekpoke (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3510 | | static void dissect_r3_upstreammfgfield_lockstate (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3511 | | static void dissect_r3_upstreammfgfield_capabilities (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3512 | | static void dissect_r3_upstreammfgfield_dumpm41t81 (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3513 | | static void dissect_r3_upstreammfgfield_nvramchecksumvalue (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3514 | | static void dissect_r3_upstreammfgfield_checksumresults (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3515 | | static void dissect_r3_upstreammfgfield_mortisestatelog (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3516 | | static void dissect_r3_upstreammfgfield_mortisepins (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3517 | | static void dissect_r3_upstreammfgfield_keypadchar (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3518 | | static void dissect_r3_upstreammfgfield_magcard (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3519 | | static void dissect_r3_upstreammfgfield_proxcard (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree); |
3520 | | |
3521 | | static void (* const r3upstreammfgfield_dissect []) (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *r3_tree) = |
3522 | | { |
3523 | | /* MFGFIELD_IOPINS */ dissect_r3_upstreammfgfield_iopins, |
3524 | | /* MFGFIELD_ADCS */ dissect_r3_upstreammfgfield_adcs, |
3525 | | /* MFGFIELD_HARDWAREID */ dissect_r3_upstreammfgfield_hardwareid, |
3526 | | /* MFGFIELD_CHECKPOINTLOG */ dissect_r3_upstreammfgfield_checkpointlog, |
3527 | | /* MFGFIELD_CPUREGISTERS */ dissect_r3_upstreammfgfield_cpuregisters, |
3528 | | /* MFGFIELD_TASKFLAGS */ dissect_r3_upstreammfgfield_taskflags, |
3529 | | /* MFGFIELD_TIMERCHAIN */ dissect_r3_upstreammfgfield_timerchain, |
3530 | | /* MFGFIELD_PEEKPOKE */ dissect_r3_upstreammfgfield_peekpoke, |
3531 | | /* MFGFIELD_LOCKSTATE */ dissect_r3_upstreammfgfield_lockstate, |
3532 | | /* MFGFIELD_CAPABILITIES */ dissect_r3_upstreammfgfield_capabilities, |
3533 | | /* MFGFIELD_DUMPM41T81 */ dissect_r3_upstreammfgfield_dumpm41t81, |
3534 | | /* MFGFIELD_NVRAMCHECKSUMVALUE */ dissect_r3_upstreammfgfield_nvramchecksumvalue, |
3535 | | /* MFGFIELD_CHECKSUMRESULTS */ dissect_r3_upstreammfgfield_checksumresults, |
3536 | | /* MFGFIELD_MORTISESTATELOG */ dissect_r3_upstreammfgfield_mortisestatelog, |
3537 | | /* MFGFIELD_MORTISEPINS */ dissect_r3_upstreammfgfield_mortisepins, |
3538 | | /* MFGFIELD_KEYPADCHAR */ dissect_r3_upstreammfgfield_keypadchar, |
3539 | | /* MFGFIELD_MAGCARD */ dissect_r3_upstreammfgfield_magcard, |
3540 | | /* MFGFIELD_PROXCARD */ dissect_r3_upstreammfgfield_proxcard |
3541 | | }; |
3542 | | |
3543 | | /* |
3544 | | * *************************************************************************** |
3545 | | */ |
3546 | | static void |
3547 | | dissect_serialnumber (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree, int hf_index) |
3548 | 11 | { |
3549 | 11 | proto_item *sn_item; |
3550 | 11 | proto_tree *sn_tree; |
3551 | 11 | const char *s; |
3552 | | |
3553 | 11 | tvb_ensure_bytes_exist (tvb, start_offset, 16); |
3554 | | |
3555 | 11 | if (!tree) |
3556 | 0 | return; |
3557 | | |
3558 | 11 | sn_item = proto_tree_add_item (tree, hf_index, tvb, start_offset, 16, ENC_ASCII|ENC_NA); |
3559 | 11 | sn_tree = proto_item_add_subtree (sn_item, ett_r3serialnumber); |
3560 | | |
3561 | 11 | s = (char *)tvb_get_string_enc (pinfo->pool, tvb, start_offset + 0, 2, ENC_ASCII|ENC_NA); |
3562 | 11 | proto_tree_add_string_format_value(sn_tree, hf_r3_sn_manufacturer, tvb, start_offset + 0, 2, s, "%s (%s)", s, str_to_str_wmem(pinfo->pool, s, r3_snmanufacturernames, "[Unknown]")); |
3563 | 11 | s = (char *)tvb_get_string_enc (pinfo->pool, tvb, start_offset + 2, 1, ENC_ASCII|ENC_NA); |
3564 | 11 | proto_tree_add_string_format_value(sn_tree, hf_r3_sn_year, tvb, start_offset + 2, 1, s, "%s (%s)", s, str_to_str_wmem(pinfo->pool, s, r3_snyearnames, "[Unknown]")); |
3565 | 11 | proto_tree_add_item(sn_tree, hf_r3_sn_week, tvb, start_offset + 3, 2, ENC_ASCII); |
3566 | 11 | s = (char *)tvb_get_string_enc (pinfo->pool, tvb, start_offset + 5, 1, ENC_ASCII|ENC_NA); |
3567 | 11 | proto_tree_add_string_format_value(sn_tree, hf_r3_sn_model, tvb, start_offset + 5, 1, s, "%s (%s)", s, str_to_str_wmem(pinfo->pool, s, r3_snmodelnames, "[Unknown]")); |
3568 | 11 | proto_tree_add_item(sn_tree, hf_r3_sn_sequence, tvb, start_offset + 6, 4, ENC_ASCII); |
3569 | 11 | s = (char *)tvb_get_string_enc (pinfo->pool, tvb, start_offset + 10, 1, ENC_ASCII|ENC_NA); |
3570 | 11 | proto_tree_add_string_format_value(sn_tree, hf_r3_sn_group, tvb, start_offset + 10, 1, s, "%s (%s)", s, str_to_str_wmem(pinfo->pool, s, r3_sngroupnames, "[Unknown]")); |
3571 | 11 | s = (char *)tvb_get_string_enc (pinfo->pool, tvb, start_offset + 11, 1, ENC_ASCII|ENC_NA); |
3572 | 11 | proto_tree_add_string_format_value(sn_tree, hf_r3_sn_nid, tvb, start_offset + 11, 1, s, "%s (%s)", s, str_to_str_wmem(pinfo->pool, s, r3_snnidnames, "[Unknown]")); |
3573 | 11 | s = (char *)tvb_get_string_enc (pinfo->pool, tvb, start_offset + 12, 2, ENC_ASCII|ENC_NA); |
3574 | 11 | proto_tree_add_string_format_value(sn_tree, hf_r3_sn_hid, tvb, start_offset + 12, 2, s, "%s (%s)", s, str_to_str_wmem(pinfo->pool, s, r3_snhidnames, "[Unknown]")); |
3575 | 11 | s = (char *)tvb_get_string_enc (pinfo->pool, tvb, start_offset + 14, 1, ENC_ASCII|ENC_NA); |
3576 | 11 | proto_tree_add_string_format_value(sn_tree, hf_r3_sn_power_supply, tvb, start_offset + 14, 1, s, "%s (%s)", s, str_to_str_wmem(pinfo->pool, s, r3_snpowersupplynames, "[Unknown]")); |
3577 | 11 | s = (char *)tvb_get_string_enc (pinfo->pool, tvb, start_offset + 15, 1, ENC_ASCII|ENC_NA); |
3578 | 11 | proto_tree_add_string_format_value(sn_tree, hf_r3_sn_mortise, tvb, start_offset + 15, 1, s, "%s (%s)", s, str_to_str_wmem(pinfo->pool, s, r3_snmortisenames, "[Unknown]")); |
3579 | 11 | } |
3580 | | |
3581 | | /* |
3582 | | * *************************************************************************** |
3583 | | * |
3584 | | * We've already ensured we have enough bytes in the table via tvb_ensure_bytes_exist() |
3585 | | * |
3586 | | */ |
3587 | | static void |
3588 | | dissect_r3_upstreamfields (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
3589 | 24 | { |
3590 | 24 | uint32_t offset = 0; |
3591 | | |
3592 | 24 | DISSECTOR_ASSERT(start_offset == 0); |
3593 | | |
3594 | 86 | while (offset < tvb_reported_length (tvb)) |
3595 | 77 | { |
3596 | 77 | uint32_t fieldLength = tvb_get_uint8 (tvb, offset + 0); |
3597 | 77 | uint32_t fieldType = tvb_get_uint8 (tvb, offset + 1); |
3598 | 77 | uint32_t dataLength = fieldLength - 2; |
3599 | 77 | proto_item *upstreamfield_item; |
3600 | 77 | proto_item *upstreamfield_length; |
3601 | 77 | proto_tree *upstreamfield_tree; |
3602 | 77 | const char *usfn; |
3603 | | |
3604 | 77 | usfn = val_to_str_ext_const (fieldType, &r3_upstreamfieldnames_ext, "[Unknown Field]"); |
3605 | | |
3606 | 77 | upstreamfield_item = proto_tree_add_none_format (tree, hf_r3_upstreamfield, tvb, offset + 0, fieldLength, "Upstream Field: %s (%u)", usfn, fieldType); |
3607 | 77 | upstreamfield_tree = proto_item_add_subtree (upstreamfield_item, ett_r3upstreamfield); |
3608 | | |
3609 | 77 | upstreamfield_length = proto_tree_add_item (upstreamfield_tree, hf_r3_upstreamfieldlength, tvb, offset + 0, 1, ENC_LITTLE_ENDIAN); |
3610 | 77 | proto_tree_add_item (upstreamfield_tree, hf_r3_upstreamfieldtype, tvb, offset + 1, 1, ENC_LITTLE_ENDIAN); |
3611 | | |
3612 | 77 | if (fieldLength < 2) |
3613 | 28 | { |
3614 | 28 | dataLength = 0; |
3615 | 28 | expert_add_info_format(pinfo, upstreamfield_length, &ei_r3_malformed_length, "Malformed length value -- all fields are at least 2 octets."); |
3616 | 28 | } |
3617 | | |
3618 | 77 | offset += 2; |
3619 | | |
3620 | 77 | switch (fieldType) |
3621 | 77 | { |
3622 | | /* |
3623 | | * Booleans, 8 & 16 bit values |
3624 | | */ |
3625 | 0 | case UPSTREAMFIELD_PRIMARYPIN : |
3626 | 0 | case UPSTREAMFIELD_AUXPIN : |
3627 | 1 | case UPSTREAMFIELD_ACCESSALWAYS : |
3628 | 2 | case UPSTREAMFIELD_CACHED : |
3629 | 6 | case UPSTREAMFIELD_ENTRYDEVICE : |
3630 | 7 | case UPSTREAMFIELD_PPMIFIELDTYPE : |
3631 | 14 | case UPSTREAMFIELD_RESPONSEWINDOW : |
3632 | 14 | case UPSTREAMFIELD_USERTYPE : |
3633 | 15 | case UPSTREAMFIELD_PRIMARYFIELDTYPE : |
3634 | 15 | case UPSTREAMFIELD_AUXFIELDTYPE : |
3635 | 15 | case UPSTREAMFIELD_ACCESSMODE : |
3636 | 15 | case UPSTREAMFIELD_USECOUNT : |
3637 | 15 | case UPSTREAMFIELD_EXCEPTIONGROUP : |
3638 | 19 | case UPSTREAMFIELD_NAR : |
3639 | 20 | case UPSTREAMFIELD_SEQUENCENUMBER : |
3640 | 20 | case UPSTREAMFIELD_USERNUMBER : |
3641 | 21 | case UPSTREAMFIELD_EVENTLOGRECORDCOUNT : |
3642 | 22 | case UPSTREAMFIELD_DECLINEDRECORDCOUNT : |
3643 | 22 | case UPSTREAMFIELD_ALARMRECORDCOUNT : |
3644 | 22 | proto_tree_add_item (upstreamfield_tree, hf_r3_upstreamfieldarray [fieldType], tvb, offset, dataLength, ENC_LITTLE_ENDIAN); |
3645 | 22 | break; |
3646 | | |
3647 | | /* |
3648 | | * Strings |
3649 | | */ |
3650 | 1 | case UPSTREAMFIELD_PIN : |
3651 | 1 | case UPSTREAMFIELD_VERSION : |
3652 | 4 | case UPSTREAMFIELD_AUXCTLRVERSION : |
3653 | 4 | proto_tree_add_item (upstreamfield_tree, hf_r3_upstreamfieldarray [fieldType], tvb, offset, dataLength, ENC_ASCII|ENC_NA); |
3654 | 4 | break; |
3655 | | |
3656 | | /* |
3657 | | * Special types |
3658 | | */ |
3659 | 1 | case UPSTREAMFIELD_SERIALNUMBER : |
3660 | 1 | { |
3661 | 1 | tvbuff_t *sn_tvb = tvb_new_subset_length (tvb, offset, dataLength); |
3662 | | |
3663 | 1 | dissect_serialnumber (sn_tvb, 0, length, pinfo, upstreamfield_tree, hf_r3_upstreamfieldarray [fieldType]); |
3664 | 1 | } |
3665 | 1 | break; |
3666 | | |
3667 | 1 | case UPSTREAMFIELD_EVENTLOGRECORD : |
3668 | 1 | { |
3669 | 1 | if (dataLength != 9) |
3670 | 1 | { |
3671 | 1 | expert_add_info_format(pinfo, upstreamfield_length, &ei_r3_malformed_length, "Malformed event log field -- expected 9 octets"); |
3672 | 1 | } |
3673 | 0 | else |
3674 | 0 | { |
3675 | 0 | proto_tree *eventlog_tree; |
3676 | |
|
3677 | 0 | if (!upstreamfield_tree) |
3678 | 0 | break; |
3679 | | |
3680 | 0 | eventlog_tree = proto_tree_add_subtree(upstreamfield_tree, tvb, offset, 9, ett_r3eventlogrecord, NULL, "Event Log Record"); |
3681 | |
|
3682 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_year, tvb, offset + 0, 1, ENC_LITTLE_ENDIAN); |
3683 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_month, tvb, offset + 1, 1, ENC_LITTLE_ENDIAN); |
3684 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_day, tvb, offset + 2, 1, ENC_LITTLE_ENDIAN); |
3685 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_hour, tvb, offset + 3, 1, ENC_LITTLE_ENDIAN); |
3686 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_minute, tvb, offset + 4, 1, ENC_LITTLE_ENDIAN); |
3687 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_second, tvb, offset + 5, 1, ENC_LITTLE_ENDIAN); |
3688 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_usernumber, tvb, offset + 6, 2, ENC_LITTLE_ENDIAN); |
3689 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_event, tvb, offset + 8, 1, ENC_LITTLE_ENDIAN); |
3690 | 0 | } |
3691 | 1 | } |
3692 | 1 | break; |
3693 | | |
3694 | 1 | case UPSTREAMFIELD_DATETIME : |
3695 | 0 | { |
3696 | 0 | if (dataLength != 8) |
3697 | 0 | { |
3698 | 0 | expert_add_info_format(pinfo, upstreamfield_length, &ei_r3_malformed_length, "Malformed date/time field -- expected 8 octets"); |
3699 | 0 | } |
3700 | 0 | else |
3701 | 0 | { |
3702 | 0 | proto_tree *datetime_tree; |
3703 | |
|
3704 | 0 | if (!upstreamfield_tree) |
3705 | 0 | break; |
3706 | | |
3707 | 0 | datetime_tree = proto_tree_add_subtree_format(upstreamfield_tree, tvb, offset, 8, ett_r3datetime, NULL, |
3708 | 0 | "Date/Time: %02u/%02u/%02u-%u %02u:%02u:%02u %u", |
3709 | 0 | tvb_get_uint8 (tvb, offset + 0), tvb_get_uint8 (tvb, offset + 1), tvb_get_uint8 (tvb, offset + 2), tvb_get_uint8 (tvb, offset + 3), |
3710 | 0 | tvb_get_uint8 (tvb, offset + 4), tvb_get_uint8 (tvb, offset + 5), tvb_get_uint8 (tvb, offset + 6), tvb_get_uint8 (tvb, offset + 7)); |
3711 | |
|
3712 | 0 | proto_tree_add_item (datetime_tree, hf_r3_datetime_year, tvb, offset + 0, 1, ENC_LITTLE_ENDIAN); |
3713 | 0 | proto_tree_add_item (datetime_tree, hf_r3_datetime_month, tvb, offset + 1, 1, ENC_LITTLE_ENDIAN); |
3714 | 0 | proto_tree_add_item (datetime_tree, hf_r3_datetime_day, tvb, offset + 2, 1, ENC_LITTLE_ENDIAN); |
3715 | 0 | proto_tree_add_item (datetime_tree, hf_r3_datetime_dow, tvb, offset + 3, 1, ENC_LITTLE_ENDIAN); |
3716 | 0 | proto_tree_add_item (datetime_tree, hf_r3_datetime_hours, tvb, offset + 4, 1, ENC_LITTLE_ENDIAN); |
3717 | 0 | proto_tree_add_item (datetime_tree, hf_r3_datetime_minutes, tvb, offset + 5, 1, ENC_LITTLE_ENDIAN); |
3718 | 0 | proto_tree_add_item (datetime_tree, hf_r3_datetime_seconds, tvb, offset + 6, 1, ENC_LITTLE_ENDIAN); |
3719 | 0 | proto_tree_add_item (datetime_tree, hf_r3_datetime_dst, tvb, offset + 7, 1, ENC_LITTLE_ENDIAN); |
3720 | 0 | } |
3721 | 0 | } |
3722 | 0 | break; |
3723 | | |
3724 | 0 | case UPSTREAMFIELD_DECLINEDRECORD : |
3725 | 0 | { |
3726 | |
|
3727 | 0 | if (dataLength != 49) |
3728 | 0 | { |
3729 | 0 | expert_add_info_format(pinfo, upstreamfield_length, &ei_r3_malformed_length, "Malformed declined log field -- expected 49 octets"); |
3730 | 0 | } |
3731 | 0 | else |
3732 | 0 | { |
3733 | 0 | proto_tree *declinedlog_tree; |
3734 | 0 | uint8_t cred1type; |
3735 | 0 | uint8_t cred2type; |
3736 | |
|
3737 | 0 | if (!upstreamfield_tree) |
3738 | 0 | break; |
3739 | | |
3740 | 0 | declinedlog_tree = proto_tree_add_subtree(upstreamfield_tree, tvb, offset, 49, ett_r3declinedlogrecord, NULL, "Declined Log Record"); |
3741 | |
|
3742 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_year, tvb, offset + 0, 1, ENC_LITTLE_ENDIAN); |
3743 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_month, tvb, offset + 1, 1, ENC_LITTLE_ENDIAN); |
3744 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_day, tvb, offset + 2, 1, ENC_LITTLE_ENDIAN); |
3745 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_hour, tvb, offset + 3, 1, ENC_LITTLE_ENDIAN); |
3746 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_minute, tvb, offset + 4, 1, ENC_LITTLE_ENDIAN); |
3747 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_second, tvb, offset + 5, 1, ENC_LITTLE_ENDIAN); |
3748 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_usernumber, tvb, offset + 6, 2, ENC_LITTLE_ENDIAN); |
3749 | |
|
3750 | 0 | cred1type = tvb_get_uint8 (tvb, offset + 8) & 0x07; |
3751 | 0 | cred2type = (tvb_get_uint8 (tvb, offset + 8) & 0x38) >> 3; |
3752 | |
|
3753 | 0 | proto_tree_add_uint (declinedlog_tree, hf_r3_declinedlog_cred1type, tvb, offset, 1, cred1type); |
3754 | 0 | proto_tree_add_uint (declinedlog_tree, hf_r3_declinedlog_cred2type, tvb, offset, 1, cred2type); |
3755 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_cred1, tvb, offset + 9, 19, ENC_NA); |
3756 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_cred2, tvb, offset + 28, 19, ENC_NA); |
3757 | 0 | } |
3758 | 0 | } |
3759 | 0 | break; |
3760 | | |
3761 | 0 | case UPSTREAMFIELD_EXPIREON : |
3762 | 0 | { |
3763 | 0 | if (dataLength != 3) |
3764 | 0 | { |
3765 | 0 | expert_add_info_format(pinfo, upstreamfield_length, &ei_r3_malformed_length, "Malformed expiration field -- expected 3 octets"); |
3766 | 0 | } |
3767 | 0 | else |
3768 | 0 | { |
3769 | 0 | proto_tree *expireon_tree; |
3770 | |
|
3771 | 0 | if (!upstreamfield_tree) |
3772 | 0 | break; |
3773 | | |
3774 | 0 | expireon_tree = proto_tree_add_subtree_format(upstreamfield_tree, tvb, offset, 3, ett_r3expireon, NULL, |
3775 | 0 | "Expire YY/MM/DD: %02u/%02u/%02u", |
3776 | 0 | tvb_get_uint8 (tvb, offset + 2), tvb_get_uint8 (tvb, offset + 0), tvb_get_uint8 (tvb, offset + 1)); |
3777 | |
|
3778 | 0 | proto_tree_add_item (expireon_tree, hf_r3_expireon_month, tvb, offset + 0, 1, ENC_LITTLE_ENDIAN); |
3779 | 0 | proto_tree_add_item (expireon_tree, hf_r3_expireon_day, tvb, offset + 1, 1, ENC_LITTLE_ENDIAN); |
3780 | 0 | proto_tree_add_item (expireon_tree, hf_r3_expireon_year, tvb, offset + 2, 1, ENC_LITTLE_ENDIAN); |
3781 | 0 | } |
3782 | 0 | } |
3783 | 0 | break; |
3784 | | |
3785 | 0 | case UPSTREAMFIELD_TIMEZONE : |
3786 | 0 | { |
3787 | 0 | if (dataLength != 4) |
3788 | 0 | { |
3789 | 0 | expert_add_info_format(pinfo, upstreamfield_length, &ei_r3_malformed_length, "Malformed timezone field -- expected 4 octets"); |
3790 | 0 | } |
3791 | 0 | else |
3792 | 0 | { |
3793 | 0 | proto_tree_add_bitmask(upstreamfield_tree, tvb, offset, hf_r3_upstreamfieldarray[fieldType], ett_r3timezone, r3_timezonearray, ENC_LITTLE_ENDIAN); |
3794 | 0 | } |
3795 | 0 | } |
3796 | 0 | break; |
3797 | | |
3798 | 0 | case UPSTREAMFIELD_ALARMRECORD : |
3799 | 0 | { |
3800 | 0 | if (dataLength != 9) |
3801 | 0 | { |
3802 | 0 | expert_add_info_format(pinfo, upstreamfield_length, &ei_r3_malformed_length, "Malformed alarm log field -- expected 9 octets"); |
3803 | 0 | } |
3804 | 0 | else |
3805 | 0 | { |
3806 | 0 | proto_tree *alarmlog_tree; |
3807 | |
|
3808 | 0 | if (!upstreamfield_tree) |
3809 | 0 | break; |
3810 | | |
3811 | 0 | alarmlog_tree = proto_tree_add_subtree(upstreamfield_tree, tvb, offset, 9, ett_r3alarmlogrecord, NULL, "Alarm Record"); |
3812 | |
|
3813 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_year, tvb, offset + 0, 1, ENC_LITTLE_ENDIAN); |
3814 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_month, tvb, offset + 1, 1, ENC_LITTLE_ENDIAN); |
3815 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_day, tvb, offset + 2, 1, ENC_LITTLE_ENDIAN); |
3816 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_hour, tvb, offset + 3, 1, ENC_LITTLE_ENDIAN); |
3817 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_minute, tvb, offset + 4, 1, ENC_LITTLE_ENDIAN); |
3818 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_second, tvb, offset + 5, 1, ENC_LITTLE_ENDIAN); |
3819 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_id, tvb, offset + 6, 1, ENC_LITTLE_ENDIAN); |
3820 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_usernumber, tvb, offset + 7, 2, ENC_LITTLE_ENDIAN); |
3821 | 0 | } |
3822 | 0 | } |
3823 | 0 | break; |
3824 | | |
3825 | 22 | case UPSTREAMFIELD_NOTUSED : |
3826 | 49 | default : |
3827 | 49 | proto_tree_add_none_format (upstreamfield_tree, hf_r3_upstreamfielderror, tvb, offset, dataLength, "Unknown Field Type"); |
3828 | 49 | break; |
3829 | 77 | } |
3830 | | |
3831 | 62 | offset += dataLength; |
3832 | 62 | } |
3833 | 24 | } |
3834 | | |
3835 | | /* |
3836 | | * *************************************************************************** |
3837 | | * |
3838 | | * These are passed a tvb that contains whatever occurs after the [UPSTREAMCOMMAND_*] byte |
3839 | | */ |
3840 | | static void |
3841 | | dissect_r3_upstreamcommand_reserved (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
3842 | 1 | { |
3843 | 1 | proto_tree_add_expert(tree, pinfo, &ei_r3_reserved_upstream_command_value, tvb, start_offset, length); |
3844 | 1 | } |
3845 | | |
3846 | | static void |
3847 | | dissect_r3_upstreamcommand_debugmsg (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
3848 | 2 | { |
3849 | 2 | proto_tree *debugmsg_tree; |
3850 | | |
3851 | 2 | if (!tree) |
3852 | 0 | return; |
3853 | | |
3854 | 2 | DISSECTOR_ASSERT(start_offset == 0); |
3855 | | |
3856 | 2 | debugmsg_tree = proto_tree_add_subtree(tree, tvb, 0, -1, ett_r3debugmsg, NULL, "Debug message"); |
3857 | | |
3858 | 2 | proto_tree_add_item (debugmsg_tree, hf_r3_debugmsg, tvb, 1, -1, ENC_ASCII); |
3859 | 2 | } |
3860 | | |
3861 | | static void |
3862 | | dissect_r3_upstreamcommand_queryversion (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
3863 | 6 | { |
3864 | 6 | dissect_r3_upstreamfields (tvb, start_offset, length, pinfo, tree); |
3865 | 6 | } |
3866 | | |
3867 | | static void |
3868 | | dissect_r3_upstreamcommand_querydatetime (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
3869 | 1 | { |
3870 | 1 | dissect_r3_upstreamfields (tvb, start_offset, length, pinfo, tree); |
3871 | 1 | } |
3872 | | |
3873 | | static void |
3874 | | dissect_r3_upstreamcommand_queryserialnumber (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
3875 | 0 | { |
3876 | 0 | dissect_r3_upstreamfields (tvb, start_offset, length, pinfo, tree); |
3877 | 0 | } |
3878 | | |
3879 | | static void |
3880 | | dissect_r3_upstreamcommand_dumpeventlog (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
3881 | 0 | { |
3882 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
3883 | |
|
3884 | 0 | tvb_ensure_bytes_exist (tvb, 0, 11); |
3885 | |
|
3886 | 0 | if (length != 11) |
3887 | 0 | { |
3888 | 0 | expert_add_info_format(pinfo, proto_tree_get_parent (tree), &ei_r3_malformed_length, "Malformed event log record -- expected 10 octets"); |
3889 | 0 | } |
3890 | 0 | else |
3891 | 0 | { |
3892 | 0 | proto_tree *eventlog_tree; |
3893 | 0 | const char *en; |
3894 | |
|
3895 | 0 | if (!tree) |
3896 | 0 | return; |
3897 | | |
3898 | 0 | en = val_to_str_ext_const (tvb_get_uint8 (tvb, 10), &r3_eventnames_ext, "[Unknown Event]"); |
3899 | |
|
3900 | 0 | eventlog_tree = proto_tree_add_subtree_format(tree, tvb, start_offset, 10, ett_r3eventlogrecord, NULL, |
3901 | 0 | "Event Log Record %u (%s)", tvb_get_letohs (tvb, 0), en); |
3902 | |
|
3903 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_recordnumber, tvb, 0, 2, ENC_LITTLE_ENDIAN); |
3904 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_year, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
3905 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_month, tvb, 3, 1, ENC_LITTLE_ENDIAN); |
3906 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_day, tvb, 4, 1, ENC_LITTLE_ENDIAN); |
3907 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_hour, tvb, 5, 1, ENC_LITTLE_ENDIAN); |
3908 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_minute, tvb, 6, 1, ENC_LITTLE_ENDIAN); |
3909 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_second, tvb, 7, 1, ENC_LITTLE_ENDIAN); |
3910 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_usernumber, tvb, 8, 2, ENC_LITTLE_ENDIAN); |
3911 | 0 | proto_tree_add_item (eventlog_tree, hf_r3_eventlog_event, tvb, 10, 1, ENC_LITTLE_ENDIAN); |
3912 | 0 | } |
3913 | 0 | } |
3914 | | |
3915 | | static void |
3916 | | dissect_r3_upstreamcommand_dumpnvram (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
3917 | 2 | { |
3918 | 2 | DISSECTOR_ASSERT(start_offset == 0); |
3919 | | |
3920 | 2 | tvb_ensure_bytes_exist (tvb, 0, 3); |
3921 | | |
3922 | 2 | if (!tree) |
3923 | 0 | return; |
3924 | | |
3925 | 2 | proto_tree_add_item (tree, hf_r3_nvramdump_record, tvb, 0, 2, ENC_LITTLE_ENDIAN); |
3926 | 2 | proto_tree_add_item (tree, hf_r3_nvramdump_length, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
3927 | 2 | proto_tree_add_item (tree, hf_r3_nvramdump_data, tvb, 3, tvb_get_uint8 (tvb, 2), ENC_NA); |
3928 | 2 | } |
3929 | | |
3930 | | static void |
3931 | | dissect_r3_upstreamcommand_rmtquthrequest (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
3932 | 16 | { |
3933 | 16 | dissect_r3_upstreamfields (tvb, start_offset, length, pinfo, tree); |
3934 | 16 | } |
3935 | | |
3936 | | static void |
3937 | | dissect_r3_upstreamcommand_retrieveuser (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
3938 | 0 | { |
3939 | 0 | dissect_r3_upstreamfields (tvb, start_offset, length, pinfo, tree); |
3940 | 0 | } |
3941 | | |
3942 | | static void |
3943 | | dissect_r3_upstreamcommand_queryconfig (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo, proto_tree *tree) |
3944 | 0 | { |
3945 | 0 | uint32_t offset = 0; |
3946 | |
|
3947 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
3948 | |
|
3949 | 0 | if (!tree) |
3950 | 0 | return; |
3951 | | |
3952 | 0 | while (offset < tvb_reported_length (tvb)) |
3953 | 0 | { |
3954 | 0 | proto_item *pi; |
3955 | 0 | proto_tree *upstreamfield_tree; |
3956 | 0 | const char *ci; |
3957 | 0 | uint8_t item_length; |
3958 | |
|
3959 | 0 | ci = val_to_str_ext_const (tvb_get_uint8 (tvb, offset + 1), &r3_configitemnames_ext, "[Unknown Configuration Item]"); |
3960 | |
|
3961 | 0 | item_length = tvb_get_uint8 (tvb, offset + 0); |
3962 | 0 | upstreamfield_tree = proto_tree_add_subtree_format(tree, tvb, offset + 0, item_length, ett_r3upstreamfield, NULL, |
3963 | 0 | "Config Field: %s (%u)", ci, tvb_get_uint8 (tvb, offset + 1)); |
3964 | |
|
3965 | 0 | pi = proto_tree_add_item (upstreamfield_tree, hf_r3_configitemlength, tvb, offset + 0, 1, ENC_LITTLE_ENDIAN); |
3966 | 0 | if (item_length == 0) { |
3967 | 0 | expert_add_info_format(pinfo, pi, &ei_r3_malformed_length, "Invalid item length"); |
3968 | 0 | return; |
3969 | 0 | } |
3970 | | |
3971 | 0 | proto_tree_add_item (upstreamfield_tree, hf_r3_configitem, tvb, offset + 1, 1, ENC_LITTLE_ENDIAN); |
3972 | 0 | proto_tree_add_item (upstreamfield_tree, hf_r3_configitemtype, tvb, offset + 2, 1, ENC_LITTLE_ENDIAN); |
3973 | |
|
3974 | 0 | switch (tvb_get_uint8 (tvb, offset + 2)) |
3975 | 0 | { |
3976 | 0 | case CONFIGTYPE_NONE : |
3977 | 0 | proto_tree_add_item (upstreamfield_tree, hf_r3_configitemdata, tvb, offset + 3, item_length - 3, ENC_NA); |
3978 | 0 | break; |
3979 | | |
3980 | 0 | case CONFIGTYPE_BOOL : |
3981 | 0 | proto_tree_add_item (upstreamfield_tree, hf_r3_configitemdata_bool, tvb, offset + 3, 1, ENC_LITTLE_ENDIAN); |
3982 | 0 | break; |
3983 | | |
3984 | 0 | case CONFIGTYPE_8 : |
3985 | 0 | proto_tree_add_item (upstreamfield_tree, hf_r3_configitemdata_8, tvb, offset + 3, 1, ENC_LITTLE_ENDIAN); |
3986 | 0 | break; |
3987 | | |
3988 | 0 | case CONFIGTYPE_16 : |
3989 | 0 | proto_tree_add_item (upstreamfield_tree, hf_r3_configitemdata_16, tvb, offset + 3, 2, ENC_LITTLE_ENDIAN); |
3990 | 0 | break; |
3991 | | |
3992 | 0 | case CONFIGTYPE_32 : |
3993 | 0 | proto_tree_add_item (upstreamfield_tree, hf_r3_configitemdata_32, tvb, offset + 3, 4, ENC_LITTLE_ENDIAN); |
3994 | 0 | break; |
3995 | | |
3996 | 0 | case CONFIGTYPE_STRING : |
3997 | 0 | proto_tree_add_item (upstreamfield_tree, hf_r3_configitemdata_string, tvb, offset + 3, item_length - 3, ENC_ASCII); |
3998 | 0 | break; |
3999 | | |
4000 | 0 | default : |
4001 | 0 | proto_tree_add_none_format (upstreamfield_tree, hf_r3_upstreamfielderror, tvb, offset + 3, item_length - 3, "Unknown Field Type"); |
4002 | 0 | break; |
4003 | 0 | } |
4004 | | |
4005 | 0 | offset += item_length; |
4006 | 0 | } |
4007 | 0 | } |
4008 | | |
4009 | | static void |
4010 | | dissect_r3_upstreamcommand_rmteventlogrecord (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
4011 | 0 | { |
4012 | 0 | dissect_r3_upstreamfields (tvb, start_offset, length, pinfo, tree); |
4013 | 0 | } |
4014 | | |
4015 | | static void |
4016 | | dissect_r3_upstreamcommand_dpac (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
4017 | 0 | { |
4018 | 0 | if (tree) |
4019 | 0 | { |
4020 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4021 | | /* XXX: hf[] entries for the following hf indexes originally missing */ |
4022 | 0 | proto_tree_add_item (tree, hf_r3_dpacreply_stuff, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
4023 | 0 | proto_tree_add_item (tree, hf_r3_dpacreply_length, tvb, 3, 1, ENC_LITTLE_ENDIAN); |
4024 | 0 | proto_tree_add_item (tree, hf_r3_dpacreply_reply, tvb, 4, -1, ENC_NA); |
4025 | 0 | } |
4026 | 0 | } |
4027 | | |
4028 | | static void |
4029 | | dissect_r3_upstreamcommand_notify (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
4030 | 1 | { |
4031 | 1 | dissect_r3_upstreamfields (tvb, start_offset, length, pinfo, tree); |
4032 | 1 | } |
4033 | | |
4034 | | static void |
4035 | | dissect_r3_upstreamcommand_mfg (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
4036 | 5 | { |
4037 | 5 | proto_tree *mfg_tree = NULL; |
4038 | 5 | uint8_t mfg_fld; |
4039 | 5 | tvbuff_t *mfg_tvb; |
4040 | 5 | proto_item *mfg_item; |
4041 | 5 | const char *cn; |
4042 | | |
4043 | 5 | DISSECTOR_ASSERT(start_offset == 0); |
4044 | | |
4045 | 5 | mfg_tvb = tvb_new_subset_remaining (tvb, 2); |
4046 | 5 | mfg_fld = tvb_get_uint8 (tvb, 1); |
4047 | | |
4048 | 5 | cn = val_to_str_ext_const (mfg_fld, &r3_mfgfieldnames_ext, "[Unknown Mfg Field]"); |
4049 | | |
4050 | 5 | proto_tree_add_item (tree, hf_r3_mfgfield_length, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
4051 | | |
4052 | 5 | mfg_tree = proto_tree_add_subtree_format(tree, tvb, 1, -1, ett_r3commandmfg, &mfg_item, |
4053 | 5 | "Upstream Manufacturing Field: %s (%u)", cn, mfg_fld); |
4054 | | |
4055 | 5 | proto_tree_add_item (mfg_tree, hf_r3_mfgfield, tvb, 1, 1, ENC_LITTLE_ENDIAN); |
4056 | | |
4057 | 5 | if (mfg_fld >= MFGFIELD_LAST) |
4058 | 1 | { |
4059 | 1 | expert_add_info(pinfo, mfg_item, &ei_r3_mfgfield); |
4060 | 1 | } |
4061 | 4 | else if (r3upstreammfgfield_dissect [mfg_fld]) |
4062 | 4 | (*r3upstreammfgfield_dissect [mfg_fld]) (mfg_tvb, 0, length, pinfo, mfg_tree); |
4063 | 5 | } |
4064 | | |
4065 | | static void |
4066 | | dissect_r3_upstreamcommand_eventlogwarning (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
4067 | 0 | { |
4068 | 0 | dissect_r3_upstreamfields (tvb, start_offset, length, pinfo, tree); |
4069 | 0 | } |
4070 | | |
4071 | | static void |
4072 | | dissect_r3_upstreamcommand_dumpnvramrle (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
4073 | 0 | { |
4074 | 0 | if (!tree) |
4075 | 0 | return; |
4076 | | |
4077 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4078 | |
|
4079 | 0 | proto_tree_add_item (tree, hf_r3_nvramdumprle_record, tvb, 0, 2, ENC_LITTLE_ENDIAN); |
4080 | 0 | proto_tree_add_item (tree, hf_r3_nvramdumprle_length, tvb, 3, 1, ENC_LITTLE_ENDIAN); |
4081 | 0 | proto_tree_add_item (tree, hf_r3_nvramdumprle_data, tvb, 4, tvb_get_uint8 (tvb, 3), ENC_NA); |
4082 | 0 | } |
4083 | | |
4084 | | static void |
4085 | | dissect_r3_upstreamcommand_rmtdeclinedrecord (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
4086 | 0 | { |
4087 | 0 | dissect_r3_upstreamfields (tvb, start_offset, length, pinfo, tree); |
4088 | 0 | } |
4089 | | |
4090 | | static void |
4091 | | dissect_r3_upstreamcommand_declinedwarning (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
4092 | 0 | { |
4093 | 0 | dissect_r3_upstreamfields (tvb, start_offset, length, pinfo, tree); |
4094 | 0 | } |
4095 | | |
4096 | | static void |
4097 | | dissect_r3_upstreamcommand_dumpdeclinedlog (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
4098 | 0 | { |
4099 | 0 | proto_tree *declinedlog_tree; |
4100 | 0 | uint8_t cred1type; |
4101 | 0 | uint8_t cred2type; |
4102 | |
|
4103 | 0 | if (!tree) |
4104 | 0 | return; |
4105 | | |
4106 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4107 | |
|
4108 | 0 | declinedlog_tree = proto_tree_add_subtree_format(tree, tvb, start_offset, 49, |
4109 | 0 | ett_r3declinedlogrecord, NULL, "Declined Log Record %u", tvb_get_letohs (tvb, 0)); |
4110 | |
|
4111 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_recordnumber, tvb, 0, 2, ENC_LITTLE_ENDIAN); |
4112 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_year, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
4113 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_month, tvb, 3, 1, ENC_LITTLE_ENDIAN); |
4114 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_day, tvb, 4, 1, ENC_LITTLE_ENDIAN); |
4115 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_hour, tvb, 5, 1, ENC_LITTLE_ENDIAN); |
4116 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_minute, tvb, 6, 1, ENC_LITTLE_ENDIAN); |
4117 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_second, tvb, 7, 1, ENC_LITTLE_ENDIAN); |
4118 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_usernumber, tvb, 8, 2, ENC_LITTLE_ENDIAN); |
4119 | |
|
4120 | 0 | cred1type = tvb_get_uint8 (tvb, 10) & 0x07; |
4121 | 0 | cred2type = (tvb_get_uint8 (tvb, 10) & 0x38) >> 3; |
4122 | |
|
4123 | 0 | proto_tree_add_uint (declinedlog_tree, hf_r3_declinedlog_cred1type, tvb, 10, 1, cred1type); |
4124 | 0 | proto_tree_add_uint (declinedlog_tree, hf_r3_declinedlog_cred2type, tvb, 10, 1, cred2type); |
4125 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_cred1, tvb, 11, 19, ENC_NA); |
4126 | 0 | proto_tree_add_item (declinedlog_tree, hf_r3_declinedlog_cred2, tvb, 30, 19, ENC_NA); |
4127 | 0 | } |
4128 | | |
4129 | | static void |
4130 | | dissect_r3_upstreamcommand_rmtalarmrecord (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
4131 | 0 | { |
4132 | 0 | dissect_r3_upstreamfields (tvb, start_offset, length, pinfo, tree); |
4133 | 0 | } |
4134 | | |
4135 | | static void |
4136 | | dissect_r3_upstreamcommand_alarmwarning (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
4137 | 0 | { |
4138 | 0 | dissect_r3_upstreamfields (tvb, start_offset, length, pinfo, tree); |
4139 | 0 | } |
4140 | | |
4141 | | static void |
4142 | | dissect_r3_upstreamcommand_dumpalarmlog (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
4143 | 0 | { |
4144 | 0 | proto_tree *alarmlog_tree; |
4145 | |
|
4146 | 0 | if (!tree) |
4147 | 0 | return; |
4148 | | |
4149 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4150 | |
|
4151 | 0 | alarmlog_tree = proto_tree_add_subtree_format(tree, tvb, start_offset, 9, |
4152 | 0 | ett_r3alarmlogrecord, NULL, "Alarm Log Record %u", tvb_get_letohs (tvb, 0)); |
4153 | |
|
4154 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_recordnumber, tvb, 0, 2, ENC_LITTLE_ENDIAN); |
4155 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_year, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
4156 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_month, tvb, 3, 1, ENC_LITTLE_ENDIAN); |
4157 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_day, tvb, 4, 1, ENC_LITTLE_ENDIAN); |
4158 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_hour, tvb, 5, 1, ENC_LITTLE_ENDIAN); |
4159 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_minute, tvb, 6, 1, ENC_LITTLE_ENDIAN); |
4160 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_second, tvb, 7, 1, ENC_LITTLE_ENDIAN); |
4161 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_id, tvb, 8, 1, ENC_LITTLE_ENDIAN); |
4162 | 0 | proto_tree_add_item (alarmlog_tree, hf_r3_alarmlog_usernumber, tvb, 9, 2, ENC_LITTLE_ENDIAN); |
4163 | 0 | } |
4164 | | |
4165 | | static void |
4166 | | dissect_r3_upstreamcommand_connectscheduler (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
4167 | 0 | { |
4168 | 0 | dissect_r3_upstreamfields (tvb, start_offset, length, pinfo, tree); |
4169 | 0 | } |
4170 | | |
4171 | | static void |
4172 | | dissect_r3_upstreamcommand_connectcommuser (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
4173 | 0 | { |
4174 | 0 | dissect_r3_upstreamfields (tvb, start_offset, length, pinfo, tree); |
4175 | 0 | } |
4176 | | |
4177 | | static void |
4178 | | dissect_r3_upstreamcommand_commandalarm (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
4179 | 0 | { |
4180 | 0 | dissect_r3_upstreamfields (tvb, start_offset, length, pinfo, tree); |
4181 | 0 | } |
4182 | | |
4183 | | static void |
4184 | | dissect_r3_upstreamcommand_dumpdebuglog (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
4185 | 0 | { |
4186 | 0 | proto_tree *debuglog_tree; |
4187 | |
|
4188 | 0 | if (!tree) |
4189 | 0 | return; |
4190 | | |
4191 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4192 | |
|
4193 | 0 | debuglog_tree = proto_tree_add_subtree_format(tree, tvb, start_offset, 8, |
4194 | 0 | ett_r3debuglogrecord, NULL, "Debug Log Record %u", tvb_get_letohs (tvb, 0)); |
4195 | |
|
4196 | 0 | proto_tree_add_item (debuglog_tree, hf_r3_debuglog_recordnumber, tvb, 0, 2, ENC_LITTLE_ENDIAN); |
4197 | 0 | proto_tree_add_item (debuglog_tree, hf_r3_debuglog_flags, tvb, 2, 4, ENC_LITTLE_ENDIAN); |
4198 | 0 | proto_tree_add_item (debuglog_tree, hf_r3_debuglog_tick, tvb, 6, 2, ENC_LITTLE_ENDIAN); |
4199 | 0 | } |
4200 | | |
4201 | | /* |
4202 | | * *************************************************************************** |
4203 | | */ |
4204 | | static void |
4205 | | dissect_r3_upstreammfgfield_iopins (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo, proto_tree *tree) |
4206 | 0 | { |
4207 | 0 | unsigned len; |
4208 | |
|
4209 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4210 | |
|
4211 | 0 | len = tvb_reported_length_remaining(tvb, start_offset); |
4212 | 0 | if (len % 3 != 0) |
4213 | 0 | { |
4214 | 0 | expert_add_info_format(pinfo, proto_tree_get_parent (tree), &ei_r3_malformed_length, "IOPINS data length not modulo 3 == 0"); |
4215 | 0 | } |
4216 | 0 | else |
4217 | 0 | { |
4218 | 0 | char portname = 'A'; |
4219 | |
|
4220 | 0 | if (!tree) |
4221 | 0 | return; |
4222 | | |
4223 | 0 | for (unsigned i = 0; i < len; i += 3, portname++) |
4224 | 0 | { |
4225 | 0 | proto_tree *port_tree = proto_tree_add_subtree_format(tree, tvb, i, 3, ett_r3iopins, NULL, |
4226 | 0 | "Port %c Configuration", (portname == 'I') ? ++portname : portname); |
4227 | |
|
4228 | 0 | proto_tree_add_item (port_tree, hf_r3_iopins_lat, tvb, i + 0, 1, ENC_LITTLE_ENDIAN); |
4229 | 0 | proto_tree_add_item (port_tree, hf_r3_iopins_port, tvb, i + 1, 1, ENC_LITTLE_ENDIAN); |
4230 | 0 | proto_tree_add_item (port_tree, hf_r3_iopins_tris, tvb, i + 2, 1, ENC_LITTLE_ENDIAN); |
4231 | 0 | } |
4232 | 0 | } |
4233 | 0 | } |
4234 | | |
4235 | | static void |
4236 | | dissect_r3_upstreammfgfield_adcs (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo, proto_tree *tree) |
4237 | 1 | { |
4238 | 1 | unsigned len; |
4239 | 1 | uint32_t i; |
4240 | | |
4241 | 1 | if (!tree) |
4242 | 0 | return; |
4243 | | |
4244 | 1 | DISSECTOR_ASSERT(start_offset == 0); |
4245 | | |
4246 | 1 | len = tvb_reported_length(tvb); |
4247 | | |
4248 | 9 | for (i = 0; i < MIN(len,8); i++) |
4249 | 8 | { |
4250 | 8 | proto_item *item = proto_tree_add_item (tree, hf_r3_adc [i], tvb, i, 1, ENC_LITTLE_ENDIAN); |
4251 | 8 | proto_item_append_text (item, " (%.2f Volts)", (float) tvb_get_uint8 (tvb, i) * 0.04154); |
4252 | 8 | } |
4253 | | |
4254 | 1 | if (len > 8) |
4255 | 1 | { |
4256 | 1 | expert_add_info(pinfo, proto_tree_get_parent (tree), &ei_r3_mfgfield_too_many_adc_values); |
4257 | 1 | } |
4258 | | |
4259 | 1 | } |
4260 | | |
4261 | | static void |
4262 | | dissect_r3_upstreammfgfield_hardwareid (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
4263 | 0 | { |
4264 | 0 | if (!tree) |
4265 | 0 | return; |
4266 | | |
4267 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4268 | |
|
4269 | 0 | proto_tree_add_item (tree, hf_r3_hardwareid_board, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
4270 | 0 | proto_tree_add_item (tree, hf_r3_hardwareid_cpuid, tvb, 1, 2, ENC_LITTLE_ENDIAN); |
4271 | 0 | proto_tree_add_item (tree, hf_r3_hardwareid_cpurev, tvb, 3, 1, ENC_LITTLE_ENDIAN); |
4272 | 0 | } |
4273 | | |
4274 | | static void |
4275 | | dissect_r3_upstreammfgfield_checkpointlog (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
4276 | 2 | { |
4277 | 2 | proto_tree *cpl_tree; |
4278 | 2 | unsigned counter; |
4279 | 2 | int len; |
4280 | 2 | int i; |
4281 | | |
4282 | 2 | if (!tree) |
4283 | 0 | return; |
4284 | | |
4285 | 2 | DISSECTOR_ASSERT(start_offset == 0); |
4286 | | |
4287 | 2 | len = tvb_reported_length_remaining (tvb, 1); |
4288 | | |
4289 | 2 | proto_tree_add_item (tree, hf_r3_checkpointlog_entryptr, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
4290 | 2 | cpl_tree = proto_tree_add_subtree(tree, tvb, 1, -1, ett_r3checkpointlog, NULL, "Checkpoint Log"); |
4291 | | |
4292 | 2 | counter = 0; |
4293 | 22 | for (i = 0; i < len; i += 2, counter++) |
4294 | 20 | { |
4295 | 20 | unsigned rcon = tvb_get_uint8 (tvb, i + 0); |
4296 | 20 | unsigned cp = tvb_get_uint8 (tvb, i + 1); |
4297 | 20 | proto_item *cpe_item; |
4298 | 20 | proto_tree *cpe_tree; |
4299 | 20 | unsigned resettype; |
4300 | 20 | const char *desc; |
4301 | 20 | static const char * const resets [] = { "Stack underflow", "Stack overflow", "Power-On", |
4302 | 20 | "Software", "Brown-out", "MCLR in sleep", "WDT", |
4303 | 20 | "Normal", "[Unknown Reset Type]" }; |
4304 | | |
4305 | 20 | cpe_tree = proto_tree_add_subtree_format(cpl_tree, tvb, i + 0, 2, ett_r3checkpointlogentry, &cpe_item, |
4306 | 20 | "Checkpoint Log Entry %u", counter); |
4307 | 20 | desc = val_to_str_ext_const (cp, &r3_checkpointnames_ext, "[Unknown Checkpoint]"); |
4308 | | |
4309 | 20 | if (rcon == 0xff) |
4310 | 1 | resettype = 8; |
4311 | 19 | else |
4312 | 19 | { |
4313 | 19 | rcon &= 0x1f; |
4314 | | |
4315 | 19 | if (rcon == 0x1c) |
4316 | 0 | resettype = 2; |
4317 | 19 | else if ((rcon & 0x10) == 0x00) |
4318 | 6 | resettype = 3; |
4319 | 13 | else if ((rcon & 0x1d) == 0x1c) |
4320 | 0 | resettype = 4; |
4321 | 13 | else if ((rcon & 0x0c) == 0x08) |
4322 | 0 | resettype = 5; |
4323 | 13 | else if ((rcon & 0x0c) == 0x04) |
4324 | 12 | resettype = 6; |
4325 | 1 | else |
4326 | 1 | resettype = 7; |
4327 | 19 | } |
4328 | | |
4329 | 20 | proto_item_append_text (cpe_item, " (%s, %s)", resets [resettype], desc); |
4330 | 20 | proto_item_append_text ( |
4331 | 20 | proto_tree_add_item (cpe_tree, hf_r3_checkpointlog_rcon, tvb, i + 0, 1, ENC_LITTLE_ENDIAN), |
4332 | 20 | " (%s)", resets [resettype]); |
4333 | 20 | proto_item_append_text ( |
4334 | 20 | proto_tree_add_item (cpe_tree, hf_r3_checkpointlog_checkpoint, tvb, i + 1, 1, ENC_LITTLE_ENDIAN), |
4335 | 20 | " (%s)", desc); |
4336 | 20 | } |
4337 | 2 | } |
4338 | | |
4339 | | static void |
4340 | | dissect_r3_upstreammfgfield_cpuregisters (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
4341 | 0 | { |
4342 | 0 | proto_tree *tmp_tree [19]; |
4343 | 0 | proto_tree *cr_tree; |
4344 | |
|
4345 | 0 | if (!tree) |
4346 | 0 | return; |
4347 | | |
4348 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4349 | |
|
4350 | 0 | cr_tree = proto_tree_add_subtree(tree, tvb, start_offset, -1, ett_r3cpuregisters, NULL, "CPU Registers"); |
4351 | |
|
4352 | 0 | tmp_tree [ 0] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_intcon, tvb, 0, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4353 | 0 | tmp_tree [ 1] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_intcon2, tvb, 1, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4354 | 0 | tmp_tree [ 2] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_intcon3, tvb, 2, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4355 | 0 | tmp_tree [ 3] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_pir1, tvb, 3, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4356 | 0 | tmp_tree [ 4] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_pir2, tvb, 4, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4357 | 0 | tmp_tree [ 5] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_pir3, tvb, 5, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4358 | 0 | tmp_tree [ 6] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_pie1, tvb, 6, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4359 | 0 | tmp_tree [ 7] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_pie2, tvb, 7, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4360 | 0 | tmp_tree [ 8] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_pie3, tvb, 8, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4361 | 0 | tmp_tree [ 9] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_ipr1, tvb, 9, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4362 | 0 | tmp_tree [10] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_ipr2, tvb, 10, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4363 | 0 | tmp_tree [11] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_ipr3, tvb, 11, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4364 | 0 | tmp_tree [12] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_rcon, tvb, 12, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4365 | 0 | tmp_tree [13] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_osccon, tvb, 13, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4366 | 0 | tmp_tree [14] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_rcsta, tvb, 14, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4367 | 0 | tmp_tree [15] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_txsta, tvb, 15, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4368 | 0 | tmp_tree [16] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_rcsta2, tvb, 16, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4369 | 0 | tmp_tree [17] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_txsta2, tvb, 17, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4370 | 0 | tmp_tree [18] = proto_item_add_subtree (proto_tree_add_item(cr_tree, hf_r3_cpuregisters_wdtcon, tvb, 18, 1, ENC_LITTLE_ENDIAN), ett_r3cpuregister); |
4371 | |
|
4372 | 0 | proto_tree_add_item (tmp_tree [ 0], hf_r3_cpuregisters_intcon_rbif, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
4373 | 0 | proto_tree_add_item (tmp_tree [ 0], hf_r3_cpuregisters_intcon_int0if, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
4374 | 0 | proto_tree_add_item (tmp_tree [ 0], hf_r3_cpuregisters_intcon_tmr0if, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
4375 | 0 | proto_tree_add_item (tmp_tree [ 0], hf_r3_cpuregisters_intcon_rbie, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
4376 | 0 | proto_tree_add_item (tmp_tree [ 0], hf_r3_cpuregisters_intcon_int0ie, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
4377 | 0 | proto_tree_add_item (tmp_tree [ 0], hf_r3_cpuregisters_intcon_tmr0ie, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
4378 | 0 | proto_tree_add_item (tmp_tree [ 0], hf_r3_cpuregisters_intcon_giel, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
4379 | 0 | proto_tree_add_item (tmp_tree [ 0], hf_r3_cpuregisters_intcon_gieh, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
4380 | 0 | proto_tree_add_item (tmp_tree [ 1], hf_r3_cpuregisters_intcon2_rbip, tvb, 1, 1, ENC_LITTLE_ENDIAN); |
4381 | 0 | proto_tree_add_item (tmp_tree [ 1], hf_r3_cpuregisters_intcon2_int3ip, tvb, 1, 1, ENC_LITTLE_ENDIAN); |
4382 | 0 | proto_tree_add_item (tmp_tree [ 1], hf_r3_cpuregisters_intcon2_tmr0ip, tvb, 1, 1, ENC_LITTLE_ENDIAN); |
4383 | 0 | proto_tree_add_item (tmp_tree [ 1], hf_r3_cpuregisters_intcon2_intedg3, tvb, 1, 1, ENC_LITTLE_ENDIAN); |
4384 | 0 | proto_tree_add_item (tmp_tree [ 1], hf_r3_cpuregisters_intcon2_intedg2, tvb, 1, 1, ENC_LITTLE_ENDIAN); |
4385 | 0 | proto_tree_add_item (tmp_tree [ 1], hf_r3_cpuregisters_intcon2_intedg1, tvb, 1, 1, ENC_LITTLE_ENDIAN); |
4386 | 0 | proto_tree_add_item (tmp_tree [ 1], hf_r3_cpuregisters_intcon2_intedg0, tvb, 1, 1, ENC_LITTLE_ENDIAN); |
4387 | 0 | proto_tree_add_item (tmp_tree [ 1], hf_r3_cpuregisters_intcon2_rbpu, tvb, 1, 1, ENC_LITTLE_ENDIAN); |
4388 | 0 | proto_tree_add_item (tmp_tree [ 2], hf_r3_cpuregisters_intcon3_int1if, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
4389 | 0 | proto_tree_add_item (tmp_tree [ 2], hf_r3_cpuregisters_intcon3_int2if, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
4390 | 0 | proto_tree_add_item (tmp_tree [ 2], hf_r3_cpuregisters_intcon3_int3if, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
4391 | 0 | proto_tree_add_item (tmp_tree [ 2], hf_r3_cpuregisters_intcon3_int1ie, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
4392 | 0 | proto_tree_add_item (tmp_tree [ 2], hf_r3_cpuregisters_intcon3_int2ie, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
4393 | 0 | proto_tree_add_item (tmp_tree [ 2], hf_r3_cpuregisters_intcon3_int3ie, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
4394 | 0 | proto_tree_add_item (tmp_tree [ 2], hf_r3_cpuregisters_intcon3_int1ip, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
4395 | 0 | proto_tree_add_item (tmp_tree [ 2], hf_r3_cpuregisters_intcon3_int2ip, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
4396 | 0 | proto_tree_add_item (tmp_tree [ 3], hf_r3_cpuregisters_pir1_tmr1if, tvb, 3, 1, ENC_LITTLE_ENDIAN); |
4397 | 0 | proto_tree_add_item (tmp_tree [ 3], hf_r3_cpuregisters_pir1_tmr2if, tvb, 3, 1, ENC_LITTLE_ENDIAN); |
4398 | 0 | proto_tree_add_item (tmp_tree [ 3], hf_r3_cpuregisters_pir1_ccp1if, tvb, 3, 1, ENC_LITTLE_ENDIAN); |
4399 | 0 | proto_tree_add_item (tmp_tree [ 3], hf_r3_cpuregisters_pir1_ssp1if, tvb, 3, 1, ENC_LITTLE_ENDIAN); |
4400 | 0 | proto_tree_add_item (tmp_tree [ 3], hf_r3_cpuregisters_pir1_tx1if, tvb, 3, 1, ENC_LITTLE_ENDIAN); |
4401 | 0 | proto_tree_add_item (tmp_tree [ 3], hf_r3_cpuregisters_pir1_rc1if, tvb, 3, 1, ENC_LITTLE_ENDIAN); |
4402 | 0 | proto_tree_add_item (tmp_tree [ 3], hf_r3_cpuregisters_pir1_adif, tvb, 3, 1, ENC_LITTLE_ENDIAN); |
4403 | 0 | proto_tree_add_item (tmp_tree [ 3], hf_r3_cpuregisters_pir1_pspif, tvb, 3, 1, ENC_LITTLE_ENDIAN); |
4404 | 0 | proto_tree_add_item (tmp_tree [ 4], hf_r3_cpuregisters_pir2_ccp2if, tvb, 4, 1, ENC_LITTLE_ENDIAN); |
4405 | 0 | proto_tree_add_item (tmp_tree [ 4], hf_r3_cpuregisters_pir2_tmr3if, tvb, 4, 1, ENC_LITTLE_ENDIAN); |
4406 | 0 | proto_tree_add_item (tmp_tree [ 4], hf_r3_cpuregisters_pir2_hlvdif, tvb, 4, 1, ENC_LITTLE_ENDIAN); |
4407 | 0 | proto_tree_add_item (tmp_tree [ 4], hf_r3_cpuregisters_pir2_bcl1if, tvb, 4, 1, ENC_LITTLE_ENDIAN); |
4408 | 0 | proto_tree_add_item (tmp_tree [ 4], hf_r3_cpuregisters_pir2_eeif, tvb, 4, 1, ENC_LITTLE_ENDIAN); |
4409 | 0 | proto_tree_add_item (tmp_tree [ 4], hf_r3_cpuregisters_pir2_unused5, tvb, 4, 1, ENC_LITTLE_ENDIAN); |
4410 | 0 | proto_tree_add_item (tmp_tree [ 4], hf_r3_cpuregisters_pir2_cmif, tvb, 4, 1, ENC_LITTLE_ENDIAN); |
4411 | 0 | proto_tree_add_item (tmp_tree [ 4], hf_r3_cpuregisters_pir2_oscfif, tvb, 4, 1, ENC_LITTLE_ENDIAN); |
4412 | 0 | proto_tree_add_item (tmp_tree [ 5], hf_r3_cpuregisters_pir3_ccp3if, tvb, 5, 1, ENC_LITTLE_ENDIAN); |
4413 | 0 | proto_tree_add_item (tmp_tree [ 5], hf_r3_cpuregisters_pir3_ccp4if, tvb, 5, 1, ENC_LITTLE_ENDIAN); |
4414 | 0 | proto_tree_add_item (tmp_tree [ 5], hf_r3_cpuregisters_pir3_ccp5if, tvb, 5, 1, ENC_LITTLE_ENDIAN); |
4415 | 0 | proto_tree_add_item (tmp_tree [ 5], hf_r3_cpuregisters_pir3_tmr4if, tvb, 5, 1, ENC_LITTLE_ENDIAN); |
4416 | 0 | proto_tree_add_item (tmp_tree [ 5], hf_r3_cpuregisters_pir3_tx2if, tvb, 5, 1, ENC_LITTLE_ENDIAN); |
4417 | 0 | proto_tree_add_item (tmp_tree [ 5], hf_r3_cpuregisters_pir3_rc2if, tvb, 5, 1, ENC_LITTLE_ENDIAN); |
4418 | 0 | proto_tree_add_item (tmp_tree [ 5], hf_r3_cpuregisters_pir3_bcl2if, tvb, 5, 1, ENC_LITTLE_ENDIAN); |
4419 | 0 | proto_tree_add_item (tmp_tree [ 5], hf_r3_cpuregisters_pir3_ssp2if, tvb, 5, 1, ENC_LITTLE_ENDIAN); |
4420 | 0 | proto_tree_add_item (tmp_tree [ 6], hf_r3_cpuregisters_pie1_tmr1ie, tvb, 6, 1, ENC_LITTLE_ENDIAN); |
4421 | 0 | proto_tree_add_item (tmp_tree [ 6], hf_r3_cpuregisters_pie1_tmr2ie, tvb, 6, 1, ENC_LITTLE_ENDIAN); |
4422 | 0 | proto_tree_add_item (tmp_tree [ 6], hf_r3_cpuregisters_pie1_ccp1ie, tvb, 6, 1, ENC_LITTLE_ENDIAN); |
4423 | 0 | proto_tree_add_item (tmp_tree [ 6], hf_r3_cpuregisters_pie1_ssp1ie, tvb, 6, 1, ENC_LITTLE_ENDIAN); |
4424 | 0 | proto_tree_add_item (tmp_tree [ 6], hf_r3_cpuregisters_pie1_tx1ie, tvb, 6, 1, ENC_LITTLE_ENDIAN); |
4425 | 0 | proto_tree_add_item (tmp_tree [ 6], hf_r3_cpuregisters_pie1_rc1ie, tvb, 6, 1, ENC_LITTLE_ENDIAN); |
4426 | 0 | proto_tree_add_item (tmp_tree [ 6], hf_r3_cpuregisters_pie1_adie, tvb, 6, 1, ENC_LITTLE_ENDIAN); |
4427 | 0 | proto_tree_add_item (tmp_tree [ 6], hf_r3_cpuregisters_pie1_pspie, tvb, 6, 1, ENC_LITTLE_ENDIAN); |
4428 | 0 | proto_tree_add_item (tmp_tree [ 7], hf_r3_cpuregisters_pie2_oscfie, tvb, 7, 1, ENC_LITTLE_ENDIAN); |
4429 | 0 | proto_tree_add_item (tmp_tree [ 7], hf_r3_cpuregisters_pie2_cmie, tvb, 7, 1, ENC_LITTLE_ENDIAN); |
4430 | 0 | proto_tree_add_item (tmp_tree [ 7], hf_r3_cpuregisters_pie2_unused2, tvb, 7, 1, ENC_LITTLE_ENDIAN); |
4431 | 0 | proto_tree_add_item (tmp_tree [ 7], hf_r3_cpuregisters_pie2_eeie, tvb, 7, 1, ENC_LITTLE_ENDIAN); |
4432 | 0 | proto_tree_add_item (tmp_tree [ 7], hf_r3_cpuregisters_pie2_bcl1ie, tvb, 7, 1, ENC_LITTLE_ENDIAN); |
4433 | 0 | proto_tree_add_item (tmp_tree [ 7], hf_r3_cpuregisters_pie2_hlvdie, tvb, 7, 1, ENC_LITTLE_ENDIAN); |
4434 | 0 | proto_tree_add_item (tmp_tree [ 7], hf_r3_cpuregisters_pie2_tmr3ie, tvb, 7, 1, ENC_LITTLE_ENDIAN); |
4435 | 0 | proto_tree_add_item (tmp_tree [ 7], hf_r3_cpuregisters_pie2_ccp2ie, tvb, 7, 1, ENC_LITTLE_ENDIAN); |
4436 | 0 | proto_tree_add_item (tmp_tree [ 8], hf_r3_cpuregisters_pie3_ccp3ie, tvb, 8, 1, ENC_LITTLE_ENDIAN); |
4437 | 0 | proto_tree_add_item (tmp_tree [ 8], hf_r3_cpuregisters_pie3_ccp4ie, tvb, 8, 1, ENC_LITTLE_ENDIAN); |
4438 | 0 | proto_tree_add_item (tmp_tree [ 8], hf_r3_cpuregisters_pie3_ccp5ie, tvb, 8, 1, ENC_LITTLE_ENDIAN); |
4439 | 0 | proto_tree_add_item (tmp_tree [ 8], hf_r3_cpuregisters_pie3_tmr4ie, tvb, 8, 1, ENC_LITTLE_ENDIAN); |
4440 | 0 | proto_tree_add_item (tmp_tree [ 8], hf_r3_cpuregisters_pie3_tx2ie, tvb, 8, 1, ENC_LITTLE_ENDIAN); |
4441 | 0 | proto_tree_add_item (tmp_tree [ 8], hf_r3_cpuregisters_pie3_rc2ie, tvb, 8, 1, ENC_LITTLE_ENDIAN); |
4442 | 0 | proto_tree_add_item (tmp_tree [ 8], hf_r3_cpuregisters_pie3_bcl2ie, tvb, 8, 1, ENC_LITTLE_ENDIAN); |
4443 | 0 | proto_tree_add_item (tmp_tree [ 8], hf_r3_cpuregisters_pie3_ssp2ie, tvb, 8, 1, ENC_LITTLE_ENDIAN); |
4444 | 0 | proto_tree_add_item (tmp_tree [ 9], hf_r3_cpuregisters_ipr1_tmr1ip, tvb, 9, 1, ENC_LITTLE_ENDIAN); |
4445 | 0 | proto_tree_add_item (tmp_tree [ 9], hf_r3_cpuregisters_ipr1_tmr2ip, tvb, 9, 1, ENC_LITTLE_ENDIAN); |
4446 | 0 | proto_tree_add_item (tmp_tree [ 9], hf_r3_cpuregisters_ipr1_ccp1ip, tvb, 9, 1, ENC_LITTLE_ENDIAN); |
4447 | 0 | proto_tree_add_item (tmp_tree [ 9], hf_r3_cpuregisters_ipr1_ssp1ip, tvb, 9, 1, ENC_LITTLE_ENDIAN); |
4448 | 0 | proto_tree_add_item (tmp_tree [ 9], hf_r3_cpuregisters_ipr1_tx1ip, tvb, 9, 1, ENC_LITTLE_ENDIAN); |
4449 | 0 | proto_tree_add_item (tmp_tree [ 9], hf_r3_cpuregisters_ipr1_rc1ip, tvb, 9, 1, ENC_LITTLE_ENDIAN); |
4450 | 0 | proto_tree_add_item (tmp_tree [ 9], hf_r3_cpuregisters_ipr1_adip, tvb, 9, 1, ENC_LITTLE_ENDIAN); |
4451 | 0 | proto_tree_add_item (tmp_tree [ 9], hf_r3_cpuregisters_ipr1_pspip, tvb, 9, 1, ENC_LITTLE_ENDIAN); |
4452 | 0 | proto_tree_add_item (tmp_tree [10], hf_r3_cpuregisters_ipr2_ccp2ip, tvb, 10, 1, ENC_LITTLE_ENDIAN); |
4453 | 0 | proto_tree_add_item (tmp_tree [10], hf_r3_cpuregisters_ipr2_tmr3ip, tvb, 10, 1, ENC_LITTLE_ENDIAN); |
4454 | 0 | proto_tree_add_item (tmp_tree [10], hf_r3_cpuregisters_ipr2_hlvdip, tvb, 10, 1, ENC_LITTLE_ENDIAN); |
4455 | 0 | proto_tree_add_item (tmp_tree [10], hf_r3_cpuregisters_ipr2_bcl1ip, tvb, 10, 1, ENC_LITTLE_ENDIAN); |
4456 | 0 | proto_tree_add_item (tmp_tree [10], hf_r3_cpuregisters_ipr2_eeip, tvb, 10, 1, ENC_LITTLE_ENDIAN); |
4457 | 0 | proto_tree_add_item (tmp_tree [10], hf_r3_cpuregisters_ipr2_unused5, tvb, 10, 1, ENC_LITTLE_ENDIAN); |
4458 | 0 | proto_tree_add_item (tmp_tree [10], hf_r3_cpuregisters_ipr2_cmip, tvb, 10, 1, ENC_LITTLE_ENDIAN); |
4459 | 0 | proto_tree_add_item (tmp_tree [10], hf_r3_cpuregisters_ipr2_oscfip, tvb, 10, 1, ENC_LITTLE_ENDIAN); |
4460 | 0 | proto_tree_add_item (tmp_tree [11], hf_r3_cpuregisters_ipr3_ccp2ip, tvb, 11, 1, ENC_LITTLE_ENDIAN); |
4461 | 0 | proto_tree_add_item (tmp_tree [11], hf_r3_cpuregisters_ipr3_ccp4ip, tvb, 11, 1, ENC_LITTLE_ENDIAN); |
4462 | 0 | proto_tree_add_item (tmp_tree [11], hf_r3_cpuregisters_ipr3_ccp5ip, tvb, 11, 1, ENC_LITTLE_ENDIAN); |
4463 | 0 | proto_tree_add_item (tmp_tree [11], hf_r3_cpuregisters_ipr3_tmr4ip, tvb, 11, 1, ENC_LITTLE_ENDIAN); |
4464 | 0 | proto_tree_add_item (tmp_tree [11], hf_r3_cpuregisters_ipr3_tx2ip, tvb, 11, 1, ENC_LITTLE_ENDIAN); |
4465 | 0 | proto_tree_add_item (tmp_tree [11], hf_r3_cpuregisters_ipr3_rc2ip, tvb, 11, 1, ENC_LITTLE_ENDIAN); |
4466 | 0 | proto_tree_add_item (tmp_tree [11], hf_r3_cpuregisters_ipr3_bcl2ip, tvb, 11, 1, ENC_LITTLE_ENDIAN); |
4467 | 0 | proto_tree_add_item (tmp_tree [11], hf_r3_cpuregisters_ipr3_ssp2ip, tvb, 11, 1, ENC_LITTLE_ENDIAN); |
4468 | 0 | proto_tree_add_item (tmp_tree [12], hf_r3_cpuregisters_rcon_bor, tvb, 12, 1, ENC_LITTLE_ENDIAN); |
4469 | 0 | proto_tree_add_item (tmp_tree [12], hf_r3_cpuregisters_rcon_por, tvb, 12, 1, ENC_LITTLE_ENDIAN); |
4470 | 0 | proto_tree_add_item (tmp_tree [12], hf_r3_cpuregisters_rcon_pd, tvb, 12, 1, ENC_LITTLE_ENDIAN); |
4471 | 0 | proto_tree_add_item (tmp_tree [12], hf_r3_cpuregisters_rcon_to, tvb, 12, 1, ENC_LITTLE_ENDIAN); |
4472 | 0 | proto_tree_add_item (tmp_tree [12], hf_r3_cpuregisters_rcon_unused4, tvb, 12, 1, ENC_LITTLE_ENDIAN); |
4473 | 0 | proto_tree_add_item (tmp_tree [12], hf_r3_cpuregisters_rcon_ri, tvb, 12, 1, ENC_LITTLE_ENDIAN); |
4474 | 0 | proto_tree_add_item (tmp_tree [12], hf_r3_cpuregisters_rcon_sboren, tvb, 12, 1, ENC_LITTLE_ENDIAN); |
4475 | 0 | proto_tree_add_item (tmp_tree [12], hf_r3_cpuregisters_rcon_ipen, tvb, 12, 1, ENC_LITTLE_ENDIAN); |
4476 | 0 | proto_tree_add_item (tmp_tree [13], hf_r3_cpuregisters_osccon_scs0, tvb, 13, 1, ENC_LITTLE_ENDIAN); |
4477 | 0 | proto_tree_add_item (tmp_tree [13], hf_r3_cpuregisters_osccon_scs1, tvb, 13, 1, ENC_LITTLE_ENDIAN); |
4478 | 0 | proto_tree_add_item (tmp_tree [13], hf_r3_cpuregisters_osccon_iofs, tvb, 13, 1, ENC_LITTLE_ENDIAN); |
4479 | 0 | proto_tree_add_item (tmp_tree [13], hf_r3_cpuregisters_osccon_osts, tvb, 13, 1, ENC_LITTLE_ENDIAN); |
4480 | 0 | proto_tree_add_item (tmp_tree [13], hf_r3_cpuregisters_osccon_ircf0, tvb, 13, 1, ENC_LITTLE_ENDIAN); |
4481 | 0 | proto_tree_add_item (tmp_tree [13], hf_r3_cpuregisters_osccon_ircf1, tvb, 13, 1, ENC_LITTLE_ENDIAN); |
4482 | 0 | proto_tree_add_item (tmp_tree [13], hf_r3_cpuregisters_osccon_ircf2, tvb, 13, 1, ENC_LITTLE_ENDIAN); |
4483 | 0 | proto_tree_add_item (tmp_tree [13], hf_r3_cpuregisters_osccon_idlen, tvb, 13, 1, ENC_LITTLE_ENDIAN); |
4484 | 0 | proto_tree_add_item (tmp_tree [14], hf_r3_cpuregisters_rcsta_rx9d, tvb, 14, 1, ENC_LITTLE_ENDIAN); |
4485 | 0 | proto_tree_add_item (tmp_tree [14], hf_r3_cpuregisters_rcsta_oerr, tvb, 14, 1, ENC_LITTLE_ENDIAN); |
4486 | 0 | proto_tree_add_item (tmp_tree [14], hf_r3_cpuregisters_rcsta_ferr, tvb, 14, 1, ENC_LITTLE_ENDIAN); |
4487 | 0 | proto_tree_add_item (tmp_tree [14], hf_r3_cpuregisters_rcsta_adden, tvb, 14, 1, ENC_LITTLE_ENDIAN); |
4488 | 0 | proto_tree_add_item (tmp_tree [14], hf_r3_cpuregisters_rcsta_cren, tvb, 14, 1, ENC_LITTLE_ENDIAN); |
4489 | 0 | proto_tree_add_item (tmp_tree [14], hf_r3_cpuregisters_rcsta_sren, tvb, 14, 1, ENC_LITTLE_ENDIAN); |
4490 | 0 | proto_tree_add_item (tmp_tree [14], hf_r3_cpuregisters_rcsta_rx9, tvb, 14, 1, ENC_LITTLE_ENDIAN); |
4491 | 0 | proto_tree_add_item (tmp_tree [14], hf_r3_cpuregisters_rcsta_spen, tvb, 14, 1, ENC_LITTLE_ENDIAN); |
4492 | 0 | proto_tree_add_item (tmp_tree [15], hf_r3_cpuregisters_txsta_tx9d, tvb, 15, 1, ENC_LITTLE_ENDIAN); |
4493 | 0 | proto_tree_add_item (tmp_tree [15], hf_r3_cpuregisters_txsta_trmt, tvb, 15, 1, ENC_LITTLE_ENDIAN); |
4494 | 0 | proto_tree_add_item (tmp_tree [15], hf_r3_cpuregisters_txsta_brgh, tvb, 15, 1, ENC_LITTLE_ENDIAN); |
4495 | 0 | proto_tree_add_item (tmp_tree [15], hf_r3_cpuregisters_txsta_sendb, tvb, 15, 1, ENC_LITTLE_ENDIAN); |
4496 | 0 | proto_tree_add_item (tmp_tree [15], hf_r3_cpuregisters_txsta_sync, tvb, 15, 1, ENC_LITTLE_ENDIAN); |
4497 | 0 | proto_tree_add_item (tmp_tree [15], hf_r3_cpuregisters_txsta_txen, tvb, 15, 1, ENC_LITTLE_ENDIAN); |
4498 | 0 | proto_tree_add_item (tmp_tree [15], hf_r3_cpuregisters_txsta_tx9, tvb, 15, 1, ENC_LITTLE_ENDIAN); |
4499 | 0 | proto_tree_add_item (tmp_tree [15], hf_r3_cpuregisters_txsta_csrc, tvb, 15, 1, ENC_LITTLE_ENDIAN); |
4500 | 0 | proto_tree_add_item (tmp_tree [16], hf_r3_cpuregisters_rcsta2_rx9d, tvb, 16, 1, ENC_LITTLE_ENDIAN); |
4501 | 0 | proto_tree_add_item (tmp_tree [16], hf_r3_cpuregisters_rcsta2_oerr, tvb, 16, 1, ENC_LITTLE_ENDIAN); |
4502 | 0 | proto_tree_add_item (tmp_tree [16], hf_r3_cpuregisters_rcsta2_ferr, tvb, 16, 1, ENC_LITTLE_ENDIAN); |
4503 | 0 | proto_tree_add_item (tmp_tree [16], hf_r3_cpuregisters_rcsta2_adden, tvb, 16, 1, ENC_LITTLE_ENDIAN); |
4504 | 0 | proto_tree_add_item (tmp_tree [16], hf_r3_cpuregisters_rcsta2_cren, tvb, 16, 1, ENC_LITTLE_ENDIAN); |
4505 | 0 | proto_tree_add_item (tmp_tree [16], hf_r3_cpuregisters_rcsta2_sren, tvb, 16, 1, ENC_LITTLE_ENDIAN); |
4506 | 0 | proto_tree_add_item (tmp_tree [16], hf_r3_cpuregisters_rcsta2_rx9, tvb, 16, 1, ENC_LITTLE_ENDIAN); |
4507 | 0 | proto_tree_add_item (tmp_tree [16], hf_r3_cpuregisters_rcsta2_spen, tvb, 16, 1, ENC_LITTLE_ENDIAN); |
4508 | 0 | proto_tree_add_item (tmp_tree [17], hf_r3_cpuregisters_txsta2_tx9d, tvb, 17, 1, ENC_LITTLE_ENDIAN); |
4509 | 0 | proto_tree_add_item (tmp_tree [17], hf_r3_cpuregisters_txsta2_trmt, tvb, 17, 1, ENC_LITTLE_ENDIAN); |
4510 | 0 | proto_tree_add_item (tmp_tree [17], hf_r3_cpuregisters_txsta2_brgh, tvb, 17, 1, ENC_LITTLE_ENDIAN); |
4511 | 0 | proto_tree_add_item (tmp_tree [17], hf_r3_cpuregisters_txsta2_sendb, tvb, 17, 1, ENC_LITTLE_ENDIAN); |
4512 | 0 | proto_tree_add_item (tmp_tree [17], hf_r3_cpuregisters_txsta2_sync, tvb, 17, 1, ENC_LITTLE_ENDIAN); |
4513 | 0 | proto_tree_add_item (tmp_tree [17], hf_r3_cpuregisters_txsta2_txen, tvb, 17, 1, ENC_LITTLE_ENDIAN); |
4514 | 0 | proto_tree_add_item (tmp_tree [17], hf_r3_cpuregisters_txsta2_tx9, tvb, 17, 1, ENC_LITTLE_ENDIAN); |
4515 | 0 | proto_tree_add_item (tmp_tree [17], hf_r3_cpuregisters_txsta2_csrc, tvb, 17, 1, ENC_LITTLE_ENDIAN); |
4516 | 0 | proto_tree_add_item (tmp_tree [18], hf_r3_cpuregisters_wdtcon_swdten, tvb, 18, 1, ENC_LITTLE_ENDIAN); |
4517 | 0 | proto_tree_add_item (tmp_tree [18], hf_r3_cpuregisters_wdtcon_unused1, tvb, 18, 1, ENC_LITTLE_ENDIAN); |
4518 | 0 | proto_tree_add_item (tmp_tree [18], hf_r3_cpuregisters_wdtcon_unused2, tvb, 18, 1, ENC_LITTLE_ENDIAN); |
4519 | 0 | proto_tree_add_item (tmp_tree [18], hf_r3_cpuregisters_wdtcon_unused3, tvb, 18, 1, ENC_LITTLE_ENDIAN); |
4520 | 0 | proto_tree_add_item (tmp_tree [18], hf_r3_cpuregisters_wdtcon_unused4, tvb, 18, 1, ENC_LITTLE_ENDIAN); |
4521 | 0 | proto_tree_add_item (tmp_tree [18], hf_r3_cpuregisters_wdtcon_unused5, tvb, 18, 1, ENC_LITTLE_ENDIAN); |
4522 | 0 | proto_tree_add_item (tmp_tree [18], hf_r3_cpuregisters_wdtcon_unused6, tvb, 18, 1, ENC_LITTLE_ENDIAN); |
4523 | 0 | proto_tree_add_item (tmp_tree [18], hf_r3_cpuregisters_wdtcon_unused7, tvb, 18, 1, ENC_LITTLE_ENDIAN); |
4524 | 0 | } |
4525 | | |
4526 | | static void |
4527 | | dissect_r3_upstreammfgfield_taskflags (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
4528 | 0 | { |
4529 | 0 | unsigned len; |
4530 | 0 | unsigned i; |
4531 | 0 | proto_tree *tfg_tree; |
4532 | |
|
4533 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4534 | |
|
4535 | 0 | len = tvb_reported_length(tvb); |
4536 | 0 | tfg_tree = proto_tree_add_subtree_format(tree, tvb, 0, -1, ett_r3taskflags, NULL, |
4537 | 0 | "Task Flags (%u tasks)", len / 5); |
4538 | |
|
4539 | 0 | for (i = 0; i < len; i += 5) |
4540 | 0 | { |
4541 | 0 | proto_tree *tf_tree = proto_tree_add_subtree_format(tfg_tree, tvb, i, 5, |
4542 | 0 | ett_r3taskflagsentry, NULL, |
4543 | 0 | "Task Flags (%2d: 0x%06x)", |
4544 | 0 | tvb_get_uint8 (tvb, i + 0), |
4545 | 0 | tvb_get_letohl (tvb, i + 1)); |
4546 | |
|
4547 | 0 | proto_tree_add_item (tf_tree, hf_r3_taskflags_taskid, tvb, i + 0, 1, ENC_LITTLE_ENDIAN); |
4548 | 0 | proto_tree_add_item (tf_tree, hf_r3_taskflags_flags, tvb, i + 1, 4, ENC_LITTLE_ENDIAN); |
4549 | 0 | } |
4550 | 0 | } |
4551 | | |
4552 | | static void |
4553 | | dissect_r3_upstreammfgfield_timerchain (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
4554 | 1 | { |
4555 | 1 | int len; |
4556 | 1 | int i; |
4557 | | |
4558 | 1 | if (!tree) |
4559 | 0 | return; |
4560 | | |
4561 | 1 | DISSECTOR_ASSERT(start_offset == 0); |
4562 | | |
4563 | 1 | len = tvb_reported_length_remaining (tvb, 3); |
4564 | | |
4565 | 1 | proto_tree_add_item (tree, hf_r3_timerchain_newtick, tvb, 0, 2, ENC_LITTLE_ENDIAN); |
4566 | 1 | proto_tree_add_item (tree, hf_r3_timerchain_currentboundary, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
4567 | | |
4568 | 3 | for (i = 0; i < len; i += 12) |
4569 | 2 | { |
4570 | 2 | proto_tree *tc_tree = proto_tree_add_subtree(tree, tvb, 3 + i, 12, ett_r3timerchain, NULL, "Timer Chain Entry"); |
4571 | | |
4572 | 2 | proto_tree_add_item (tc_tree, hf_r3_timerchain_tasktag, tvb, 3 + i + 0, 1, ENC_LITTLE_ENDIAN); |
4573 | 2 | proto_tree_add_item (tc_tree, hf_r3_timerchain_address, tvb, 3 + i + 1, 2, ENC_LITTLE_ENDIAN); |
4574 | 2 | proto_tree_add_item (tc_tree, hf_r3_timerchain_reload, tvb, 3 + i + 3, 2, ENC_LITTLE_ENDIAN); |
4575 | 2 | proto_tree_add_item (tc_tree, hf_r3_timerchain_boundary, tvb, 3 + i + 5, 1, ENC_LITTLE_ENDIAN); |
4576 | 2 | proto_tree_add_item (tc_tree, hf_r3_timerchain_count, tvb, 3 + i + 6, 2, ENC_LITTLE_ENDIAN); |
4577 | 2 | proto_tree_add_item (tc_tree, hf_r3_timerchain_flags, tvb, 3 + i + 8, 4, ENC_LITTLE_ENDIAN); |
4578 | 2 | } |
4579 | 1 | } |
4580 | | |
4581 | | static void |
4582 | | dissect_r3_upstreammfgfield_peekpoke (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo, proto_tree *tree) |
4583 | 0 | { |
4584 | 0 | int i; |
4585 | 0 | int len; |
4586 | |
|
4587 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4588 | |
|
4589 | 0 | len = tvb_reported_length_remaining (tvb, 0); |
4590 | |
|
4591 | 0 | for (i = 0; i < len; i += 3) |
4592 | 0 | { |
4593 | 0 | proto_item *peekpoke_item; |
4594 | 0 | proto_item *peekpoke_op_item; |
4595 | 0 | proto_tree *peekpoke_tree; |
4596 | |
|
4597 | 0 | peekpoke_tree = proto_tree_add_subtree(tree, tvb, i, 3, ett_r3peekpoke, &peekpoke_item, ""); |
4598 | |
|
4599 | 0 | peekpoke_op_item = proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_operation, tvb, i + 0, 1, ENC_LITTLE_ENDIAN); |
4600 | 0 | proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_address, tvb, i + 1, 2, ENC_LITTLE_ENDIAN); |
4601 | |
|
4602 | 0 | switch (tvb_get_uint8 (tvb, i + 0)) |
4603 | 0 | { |
4604 | 0 | case PEEKPOKE_READU8 : |
4605 | 0 | if (peekpoke_tree) |
4606 | 0 | { |
4607 | 0 | proto_item_append_text (peekpoke_item, "Read (8 Bits @ 0x%04x = 0x%02x)", |
4608 | 0 | tvb_get_letohs (tvb, i + 1), |
4609 | 0 | tvb_get_uint8 (tvb, i + 3)); |
4610 | 0 | proto_item_set_len (peekpoke_item, 4); |
4611 | 0 | proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_poke8, tvb, i + 3, 1, ENC_LITTLE_ENDIAN); |
4612 | 0 | } |
4613 | 0 | i += 1; |
4614 | 0 | break; |
4615 | | |
4616 | 0 | case PEEKPOKE_READU16 : |
4617 | 0 | if (peekpoke_tree) |
4618 | 0 | { |
4619 | 0 | proto_item_append_text (peekpoke_item, "Read (16 Bits @ 0x%04x = 0x%04x)", |
4620 | 0 | tvb_get_letohs (tvb, i + 1), |
4621 | 0 | tvb_get_letohs (tvb, i + 3)); |
4622 | 0 | proto_item_set_len (peekpoke_item, 5); |
4623 | 0 | proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_poke16, tvb, i + 3, 2, ENC_LITTLE_ENDIAN); |
4624 | 0 | } |
4625 | 0 | i += 2; |
4626 | 0 | break; |
4627 | | |
4628 | 0 | case PEEKPOKE_READU24 : |
4629 | 0 | if (peekpoke_tree) |
4630 | 0 | { |
4631 | 0 | proto_item_append_text (peekpoke_item, "Read (24 Bits @ 0x%04x = 0x%06x)", |
4632 | 0 | tvb_get_letohs (tvb, i + 1), |
4633 | 0 | tvb_get_letoh24 (tvb, i + 3)); |
4634 | 0 | proto_item_set_len (peekpoke_item, 6); |
4635 | 0 | proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_poke24, tvb, i + 3, 3, ENC_LITTLE_ENDIAN); |
4636 | 0 | } |
4637 | 0 | i += 3; |
4638 | 0 | break; |
4639 | | |
4640 | 0 | case PEEKPOKE_READU32 : |
4641 | 0 | if (peekpoke_tree) |
4642 | 0 | { |
4643 | 0 | proto_item_append_text (peekpoke_item, "Read (32 Bits @ 0x%04x = 0x%08x)", |
4644 | 0 | tvb_get_letohs (tvb, i + 1), |
4645 | 0 | tvb_get_letohl (tvb, i + 3)); |
4646 | 0 | proto_item_set_len (peekpoke_item, 7); |
4647 | 0 | proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_poke32, tvb, i + 3, 4, ENC_LITTLE_ENDIAN); |
4648 | 0 | } |
4649 | 0 | i += 4; |
4650 | 0 | break; |
4651 | | |
4652 | 0 | case PEEKPOKE_READSTRING : |
4653 | 0 | if (peekpoke_tree) |
4654 | 0 | { |
4655 | 0 | proto_item_append_text (peekpoke_item, "Read (%u Bytes @ 0x%04x)", |
4656 | 0 | tvb_get_uint8 (tvb, i + 3), |
4657 | 0 | tvb_get_letohs (tvb, i + 1)); |
4658 | 0 | proto_item_set_len (peekpoke_item, 3 + 1 + tvb_get_uint8 (tvb, i + 3)); |
4659 | 0 | proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_length, tvb, i + 3, 1, ENC_LITTLE_ENDIAN); |
4660 | 0 | proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_pokestring, tvb, i + 4, tvb_get_uint8 (tvb, i + 3), ENC_NA); |
4661 | 0 | } |
4662 | 0 | i += tvb_get_uint8 (tvb, i + 3) + 1; |
4663 | 0 | break; |
4664 | | |
4665 | 0 | default : |
4666 | 0 | expert_add_info(pinfo, peekpoke_op_item, &ei_r3_peekpoke_operation); |
4667 | 0 | return; /* quit */ |
4668 | 0 | } |
4669 | 0 | } |
4670 | 0 | } |
4671 | | |
4672 | | static void |
4673 | | dissect_r3_upstreammfgfield_lockstate (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
4674 | 0 | { |
4675 | 0 | static int * const r3_lockstate_flags[] = { |
4676 | 0 | &hf_r3_lockstate_passage, |
4677 | 0 | &hf_r3_lockstate_panic, |
4678 | 0 | &hf_r3_lockstate_lockout, |
4679 | 0 | &hf_r3_lockstate_relock, |
4680 | 0 | &hf_r3_lockstate_autoopen, |
4681 | 0 | &hf_r3_lockstate_nextauto, |
4682 | 0 | &hf_r3_lockstate_lockstate, |
4683 | 0 | &hf_r3_lockstate_wantstate, |
4684 | 0 | &hf_r3_lockstate_remote, |
4685 | 0 | &hf_r3_lockstate_update, |
4686 | 0 | &hf_r3_lockstate_exceptionspresent, |
4687 | 0 | &hf_r3_lockstate_exceptionsactive, |
4688 | 0 | &hf_r3_lockstate_timezonespresent, |
4689 | 0 | &hf_r3_lockstate_timezonesactive, |
4690 | 0 | &hf_r3_lockstate_autounlockspresent, |
4691 | 0 | &hf_r3_lockstate_autounlocksactive, |
4692 | 0 | &hf_r3_lockstate_uapmspresent, |
4693 | 0 | &hf_r3_lockstate_uapmsactive, |
4694 | 0 | &hf_r3_lockstate_uapmrelockspresent, |
4695 | 0 | &hf_r3_lockstate_uapmreslocksactive, |
4696 | 0 | &hf_r3_lockstate_nvramprotect, |
4697 | 0 | &hf_r3_lockstate_nvramchecksum, |
4698 | 0 | NULL |
4699 | 0 | }; |
4700 | |
|
4701 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4702 | |
|
4703 | 0 | proto_tree_add_bitmask(tree, tvb, start_offset, hf_r3_lockstate, ett_r3lockstate, r3_lockstate_flags, ENC_LITTLE_ENDIAN); |
4704 | 0 | } |
4705 | | |
4706 | | static void |
4707 | | dissect_r3_upstreammfgfield_capabilities (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo, proto_tree *tree) |
4708 | 0 | { |
4709 | 0 | proto_tree *cf_tree; |
4710 | 0 | unsigned len; |
4711 | 0 | unsigned items; |
4712 | 0 | unsigned octets; |
4713 | 0 | unsigned i; |
4714 | 0 | uint8_t step; |
4715 | |
|
4716 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4717 | |
|
4718 | 0 | len = tvb_reported_length(tvb); |
4719 | |
|
4720 | 0 | items = 0; |
4721 | 0 | i = 0; |
4722 | |
|
4723 | 0 | while (i < len) |
4724 | 0 | { |
4725 | 0 | items++; |
4726 | 0 | octets = tvb_get_uint8 (tvb, i); |
4727 | 0 | if (!octets) |
4728 | 0 | { |
4729 | 0 | proto_tree_add_expert_format(tree, pinfo, &ei_r3_malformed_length, tvb, 0, len, "Capabilities could not be decoded because length of 0 encountered"); |
4730 | 0 | return; |
4731 | 0 | } |
4732 | 0 | i += octets; |
4733 | 0 | } |
4734 | | |
4735 | 0 | if (!tree) |
4736 | 0 | return; |
4737 | | |
4738 | 0 | cf_tree = proto_tree_add_subtree_format(tree, tvb, 0, len, ett_r3capabilities, NULL, "Capabilities (%u items)", items); |
4739 | |
|
4740 | 0 | i = 0; |
4741 | 0 | while (i<len && (step=tvb_get_uint8(tvb, i))>0) |
4742 | 0 | { |
4743 | 0 | proto_item *tmp_item = proto_tree_add_item (cf_tree, hf_r3_capabilities, tvb, i, tvb_get_uint8 (tvb, i), ENC_NA); |
4744 | 0 | proto_tree *tmp_tree = proto_item_add_subtree (tmp_item, ett_r3capabilities); |
4745 | 0 | const char *fn; |
4746 | |
|
4747 | 0 | fn = val_to_str_ext_const (tvb_get_uint8 (tvb, i + 1), &r3_capabilitiesnames_ext, "[Unknown Field Name]"); |
4748 | |
|
4749 | 0 | proto_item_append_text (tmp_item, " (%s, %u)", fn, tvb_get_letohs (tvb, i + 2)); |
4750 | 0 | proto_tree_add_item (tmp_tree, hf_r3_capabilities_length, tvb, i + 0, 1, ENC_LITTLE_ENDIAN); |
4751 | 0 | proto_tree_add_item (tmp_tree, hf_r3_capabilities_type, tvb, i + 1, 1, ENC_LITTLE_ENDIAN); |
4752 | 0 | proto_tree_add_item (tmp_tree, hf_r3_capabilities_value, tvb, i + 2, 2, ENC_LITTLE_ENDIAN); |
4753 | |
|
4754 | 0 | i += step; |
4755 | 0 | } |
4756 | 0 | } |
4757 | | |
4758 | | static void |
4759 | | dissect_r3_upstreammfgfield_dumpm41t81 (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo, proto_tree *tree) |
4760 | 0 | { |
4761 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4762 | |
|
4763 | 0 | if (tvb_reported_length_remaining (tvb, 0) != 20) |
4764 | 0 | { |
4765 | 0 | expert_add_info_format(pinfo, proto_tree_get_parent (tree), &ei_r3_malformed_length, "Length of M41T81 RTC register dump not 20 octets"); |
4766 | 0 | } |
4767 | 0 | else |
4768 | 0 | { |
4769 | 0 | proto_tree *rtc_tree; |
4770 | 0 | proto_tree *tmp_tree [20]; |
4771 | 0 | unsigned offset_in_bits; |
4772 | |
|
4773 | 0 | if (!tree) |
4774 | 0 | return; |
4775 | | |
4776 | 0 | rtc_tree = proto_tree_add_subtree(tree, tvb, 0, -1, ett_r3m41t81registers, NULL, "M41T81 RTC Registers"); |
4777 | |
|
4778 | 0 | tmp_tree [ 0] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg00, tvb, 0, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4779 | 0 | tmp_tree [ 1] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg01, tvb, 1, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4780 | 0 | tmp_tree [ 2] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg02, tvb, 2, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4781 | 0 | tmp_tree [ 3] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg03, tvb, 3, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4782 | 0 | tmp_tree [ 4] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg04, tvb, 4, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4783 | 0 | tmp_tree [ 5] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg05, tvb, 5, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4784 | 0 | tmp_tree [ 6] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg06, tvb, 6, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4785 | 0 | tmp_tree [ 7] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg07, tvb, 7, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4786 | 0 | tmp_tree [ 8] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg08, tvb, 8, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4787 | 0 | tmp_tree [ 9] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg09, tvb, 9, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4788 | 0 | tmp_tree [10] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg0a, tvb, 10, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4789 | 0 | tmp_tree [11] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg0b, tvb, 11, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4790 | 0 | tmp_tree [12] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg0c, tvb, 12, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4791 | 0 | tmp_tree [13] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg0d, tvb, 13, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4792 | 0 | tmp_tree [14] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg0e, tvb, 14, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4793 | 0 | tmp_tree [15] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg0f, tvb, 15, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4794 | 0 | tmp_tree [16] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg10, tvb, 16, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4795 | 0 | tmp_tree [17] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg11, tvb, 17, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4796 | 0 | tmp_tree [18] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg12, tvb, 18, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4797 | 0 | tmp_tree [19] = proto_item_add_subtree (proto_tree_add_item (rtc_tree, hf_r3_dumpm41t81_reg13, tvb, 19, 1, ENC_LITTLE_ENDIAN), ett_r3m41t81register); |
4798 | |
|
4799 | 0 | offset_in_bits = 0 * 8; |
4800 | |
|
4801 | 0 | proto_tree_add_bits_item (tmp_tree [ 0], hf_r3_dumpm41t81_reg00_sec1, tvb, offset_in_bits, 4, ENC_LITTLE_ENDIAN); offset_in_bits += 4; |
4802 | 0 | proto_tree_add_bits_item (tmp_tree [ 0], hf_r3_dumpm41t81_reg00_sec01, tvb, offset_in_bits, 4, ENC_LITTLE_ENDIAN); offset_in_bits += 4; |
4803 | 0 | proto_tree_add_bits_item (tmp_tree [ 1], hf_r3_dumpm41t81_reg01_st, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4804 | 0 | proto_tree_add_bits_item (tmp_tree [ 1], hf_r3_dumpm41t81_reg01_10sec, tvb, offset_in_bits, 3, ENC_LITTLE_ENDIAN); offset_in_bits += 3; |
4805 | 0 | proto_tree_add_bits_item (tmp_tree [ 1], hf_r3_dumpm41t81_reg01_1sec, tvb, offset_in_bits, 4, ENC_LITTLE_ENDIAN); offset_in_bits += 4; |
4806 | 0 | proto_tree_add_bits_item (tmp_tree [ 2], hf_r3_dumpm41t81_reg02_notused, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4807 | 0 | proto_tree_add_bits_item (tmp_tree [ 2], hf_r3_dumpm41t81_reg02_10min, tvb, offset_in_bits, 3, ENC_LITTLE_ENDIAN); offset_in_bits += 3; |
4808 | 0 | proto_tree_add_bits_item (tmp_tree [ 2], hf_r3_dumpm41t81_reg02_1min, tvb, offset_in_bits, 4, ENC_LITTLE_ENDIAN); offset_in_bits += 4; |
4809 | 0 | proto_tree_add_bits_item (tmp_tree [ 3], hf_r3_dumpm41t81_reg03_cbe, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4810 | 0 | proto_tree_add_bits_item (tmp_tree [ 3], hf_r3_dumpm41t81_reg03_cb, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4811 | 0 | proto_tree_add_bits_item (tmp_tree [ 3], hf_r3_dumpm41t81_reg03_10hour, tvb, offset_in_bits, 2, ENC_LITTLE_ENDIAN); offset_in_bits += 2; |
4812 | 0 | proto_tree_add_bits_item (tmp_tree [ 3], hf_r3_dumpm41t81_reg03_1hour, tvb, offset_in_bits, 4, ENC_LITTLE_ENDIAN); offset_in_bits += 4; |
4813 | 0 | proto_tree_add_bits_item (tmp_tree [ 4], hf_r3_dumpm41t81_reg04_notused, tvb, offset_in_bits, 5, ENC_LITTLE_ENDIAN); offset_in_bits += 5; |
4814 | 0 | proto_tree_add_bits_item (tmp_tree [ 4], hf_r3_dumpm41t81_reg04_dow, tvb, offset_in_bits, 3, ENC_LITTLE_ENDIAN); offset_in_bits += 3; |
4815 | 0 | proto_tree_add_bits_item (tmp_tree [ 5], hf_r3_dumpm41t81_reg05_notused, tvb, offset_in_bits, 2, ENC_LITTLE_ENDIAN); offset_in_bits += 2; |
4816 | 0 | proto_tree_add_bits_item (tmp_tree [ 5], hf_r3_dumpm41t81_reg05_10day, tvb, offset_in_bits, 2, ENC_LITTLE_ENDIAN); offset_in_bits += 2; |
4817 | 0 | proto_tree_add_bits_item (tmp_tree [ 5], hf_r3_dumpm41t81_reg05_1day, tvb, offset_in_bits, 4, ENC_LITTLE_ENDIAN); offset_in_bits += 4; |
4818 | 0 | proto_tree_add_bits_item (tmp_tree [ 6], hf_r3_dumpm41t81_reg06_notused, tvb, offset_in_bits, 3, ENC_LITTLE_ENDIAN); offset_in_bits += 3; |
4819 | 0 | proto_tree_add_bits_item (tmp_tree [ 6], hf_r3_dumpm41t81_reg06_10month, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4820 | 0 | proto_tree_add_bits_item (tmp_tree [ 6], hf_r3_dumpm41t81_reg06_1month, tvb, offset_in_bits, 4, ENC_LITTLE_ENDIAN); offset_in_bits += 4; |
4821 | 0 | proto_tree_add_bits_item (tmp_tree [ 7], hf_r3_dumpm41t81_reg07_10year, tvb, offset_in_bits, 4, ENC_LITTLE_ENDIAN); offset_in_bits += 4; |
4822 | 0 | proto_tree_add_bits_item (tmp_tree [ 7], hf_r3_dumpm41t81_reg07_1year, tvb, offset_in_bits, 4, ENC_LITTLE_ENDIAN); offset_in_bits += 4; |
4823 | 0 | proto_tree_add_bits_item (tmp_tree [ 8], hf_r3_dumpm41t81_reg08_out, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4824 | 0 | proto_tree_add_bits_item (tmp_tree [ 8], hf_r3_dumpm41t81_reg08_ft, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4825 | 0 | proto_tree_add_bits_item (tmp_tree [ 8], hf_r3_dumpm41t81_reg08_s, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4826 | 0 | proto_tree_add_bits_item (tmp_tree [ 8], hf_r3_dumpm41t81_reg08_cal, tvb, offset_in_bits, 5, ENC_LITTLE_ENDIAN); offset_in_bits += 5; |
4827 | 0 | proto_tree_add_bits_item (tmp_tree [ 9], hf_r3_dumpm41t81_reg09_notused, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4828 | 0 | proto_tree_add_bits_item (tmp_tree [ 9], hf_r3_dumpm41t81_reg09_bmb, tvb, offset_in_bits, 5, ENC_LITTLE_ENDIAN); offset_in_bits += 5; |
4829 | 0 | proto_tree_add_bits_item (tmp_tree [ 9], hf_r3_dumpm41t81_reg09_rb, tvb, offset_in_bits, 2, ENC_LITTLE_ENDIAN); offset_in_bits += 2; |
4830 | 0 | proto_tree_add_bits_item (tmp_tree [10], hf_r3_dumpm41t81_reg0a_afe, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4831 | 0 | proto_tree_add_bits_item (tmp_tree [10], hf_r3_dumpm41t81_reg0a_sqwe, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4832 | 0 | proto_tree_add_bits_item (tmp_tree [10], hf_r3_dumpm41t81_reg0a_abe, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4833 | 0 | proto_tree_add_bits_item (tmp_tree [10], hf_r3_dumpm41t81_reg0a_10monthalm, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4834 | 0 | proto_tree_add_bits_item (tmp_tree [10], hf_r3_dumpm41t81_reg0a_1monthalm, tvb, offset_in_bits, 4, ENC_LITTLE_ENDIAN); offset_in_bits += 4; |
4835 | 0 | proto_tree_add_bits_item (tmp_tree [11], hf_r3_dumpm41t81_reg0b_rpt5, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4836 | 0 | proto_tree_add_bits_item (tmp_tree [11], hf_r3_dumpm41t81_reg0b_rpt4, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4837 | 0 | proto_tree_add_bits_item (tmp_tree [11], hf_r3_dumpm41t81_reg0b_10dayalm, tvb, offset_in_bits, 2, ENC_LITTLE_ENDIAN); offset_in_bits += 2; |
4838 | 0 | proto_tree_add_bits_item (tmp_tree [11], hf_r3_dumpm41t81_reg0b_1dayalm, tvb, offset_in_bits, 4, ENC_LITTLE_ENDIAN); offset_in_bits += 4; |
4839 | 0 | proto_tree_add_bits_item (tmp_tree [12], hf_r3_dumpm41t81_reg0c_rpt3, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4840 | 0 | proto_tree_add_bits_item (tmp_tree [12], hf_r3_dumpm41t81_reg0c_ht, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4841 | 0 | proto_tree_add_bits_item (tmp_tree [12], hf_r3_dumpm41t81_reg0c_10houralm, tvb, offset_in_bits, 2, ENC_LITTLE_ENDIAN); offset_in_bits += 2; |
4842 | 0 | proto_tree_add_bits_item (tmp_tree [12], hf_r3_dumpm41t81_reg0c_1houralm, tvb, offset_in_bits, 4, ENC_LITTLE_ENDIAN); offset_in_bits += 4; |
4843 | 0 | proto_tree_add_bits_item (tmp_tree [13], hf_r3_dumpm41t81_reg0d_rpt2, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4844 | 0 | proto_tree_add_bits_item (tmp_tree [13], hf_r3_dumpm41t81_reg0d_10minalm, tvb, offset_in_bits, 3, ENC_LITTLE_ENDIAN); offset_in_bits += 3; |
4845 | 0 | proto_tree_add_bits_item (tmp_tree [13], hf_r3_dumpm41t81_reg0d_1minalm, tvb, offset_in_bits, 4, ENC_LITTLE_ENDIAN); offset_in_bits += 4; |
4846 | 0 | proto_tree_add_bits_item (tmp_tree [14], hf_r3_dumpm41t81_reg0e_rpt1, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4847 | 0 | proto_tree_add_bits_item (tmp_tree [14], hf_r3_dumpm41t81_reg0e_10secalm, tvb, offset_in_bits, 3, ENC_LITTLE_ENDIAN); offset_in_bits += 3; |
4848 | 0 | proto_tree_add_bits_item (tmp_tree [14], hf_r3_dumpm41t81_reg0e_1secalm, tvb, offset_in_bits, 4, ENC_LITTLE_ENDIAN); offset_in_bits += 4; |
4849 | 0 | proto_tree_add_bits_item (tmp_tree [15], hf_r3_dumpm41t81_reg0f_wdf, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4850 | 0 | proto_tree_add_bits_item (tmp_tree [15], hf_r3_dumpm41t81_reg0f_af, tvb, offset_in_bits, 1, ENC_LITTLE_ENDIAN); offset_in_bits += 1; |
4851 | 0 | proto_tree_add_bits_item (tmp_tree [15], hf_r3_dumpm41t81_reg0f_notused, tvb, offset_in_bits, 6, ENC_LITTLE_ENDIAN); offset_in_bits += 6; |
4852 | 0 | proto_tree_add_bits_item (tmp_tree [16], hf_r3_dumpm41t81_reg10_notused, tvb, offset_in_bits, 8, ENC_LITTLE_ENDIAN); offset_in_bits += 8; |
4853 | 0 | proto_tree_add_bits_item (tmp_tree [17], hf_r3_dumpm41t81_reg11_notused, tvb, offset_in_bits, 8, ENC_LITTLE_ENDIAN); offset_in_bits += 8; |
4854 | 0 | proto_tree_add_bits_item (tmp_tree [18], hf_r3_dumpm41t81_reg12_notused, tvb, offset_in_bits, 8, ENC_LITTLE_ENDIAN); offset_in_bits += 8; |
4855 | 0 | proto_tree_add_bits_item (tmp_tree [19], hf_r3_dumpm41t81_reg13_rs, tvb, offset_in_bits - 8, 4, ENC_LITTLE_ENDIAN); offset_in_bits += 4; |
4856 | 0 | proto_tree_add_bits_item (tmp_tree [19], hf_r3_dumpm41t81_reg13_notused, tvb, offset_in_bits - 8, 4, ENC_LITTLE_ENDIAN); |
4857 | 0 | } |
4858 | 0 | } |
4859 | | |
4860 | | static void |
4861 | | dissect_r3_upstreammfgfield_nvramchecksumvalue (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
4862 | 0 | { |
4863 | 0 | if (tree) |
4864 | 0 | { |
4865 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4866 | |
|
4867 | 0 | proto_tree_add_item (tree, hf_r3_nvramchecksumvalue, tvb, 0, 4, ENC_LITTLE_ENDIAN); |
4868 | 0 | proto_tree_add_item (tree, hf_r3_nvramchecksumvalue_fixup, tvb, 4, 4, ENC_LITTLE_ENDIAN); |
4869 | 0 | } |
4870 | 0 | } |
4871 | | |
4872 | | static void |
4873 | | dissect_r3_upstreammfgfield_checksumresults (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo, proto_tree *tree) |
4874 | 0 | { |
4875 | 0 | unsigned len; |
4876 | |
|
4877 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4878 | |
|
4879 | 0 | len = tvb_reported_length(tvb); |
4880 | 0 | if (len % 3 != 0) |
4881 | 0 | { |
4882 | 0 | expert_add_info_format(pinfo, proto_tree_get_parent (tree), &ei_r3_malformed_length, "Checksum results data length not modulo 3 == 0"); |
4883 | 0 | } |
4884 | 0 | else |
4885 | 0 | { |
4886 | 0 | proto_tree *cksum_tree; |
4887 | 0 | uint32_t error = false; |
4888 | 0 | unsigned i; |
4889 | 0 | uint8_t step; |
4890 | |
|
4891 | 0 | if (!tree) |
4892 | 0 | return; |
4893 | | |
4894 | 0 | i = 0; |
4895 | 0 | while (i<len && (step=tvb_get_uint8(tvb, i))>0) |
4896 | 0 | { |
4897 | 0 | error |= tvb_get_uint8 (tvb, i + 2); |
4898 | 0 | i += step; |
4899 | 0 | } |
4900 | |
|
4901 | 0 | cksum_tree = proto_tree_add_subtree_format(tree, tvb, 0, len, ett_r3checksumresults, NULL, |
4902 | 0 | "Checksum Results (%s)", error ? "Error" : "No Errors"); |
4903 | |
|
4904 | 0 | i = 0; |
4905 | 0 | while (i<len && (step=tvb_get_uint8(tvb, i))>0) |
4906 | 0 | { |
4907 | 0 | proto_item *res_item = proto_tree_add_item (cksum_tree, hf_r3_checksumresults, |
4908 | 0 | tvb, |
4909 | 0 | i, |
4910 | 0 | tvb_get_uint8 (tvb, i), |
4911 | 0 | ENC_NA); |
4912 | 0 | proto_tree *res_tree = proto_item_add_subtree (res_item, ett_r3checksumresultsfield); |
4913 | 0 | const char *fn; |
4914 | |
|
4915 | 0 | fn = val_to_str_ext_const (tvb_get_uint8 (tvb, i + 1), &r3_checksumresultnames_ext, "[Unknown Field Name]"); |
4916 | |
|
4917 | 0 | proto_item_append_text (res_item, " %s (%s)", fn, tvb_get_uint8 (tvb, i + 2) ? "Error" : "No Error"); |
4918 | |
|
4919 | 0 | proto_tree_add_item (res_tree, hf_r3_checksumresults_length, tvb, i + 0, 1, ENC_LITTLE_ENDIAN); |
4920 | 0 | proto_tree_add_item (res_tree, hf_r3_checksumresults_field, tvb, i + 1, 1, ENC_LITTLE_ENDIAN); |
4921 | 0 | proto_tree_add_item (res_tree, hf_r3_checksumresults_state, tvb, i + 2, 1, ENC_LITTLE_ENDIAN); |
4922 | |
|
4923 | 0 | i += step; |
4924 | 0 | } |
4925 | 0 | } |
4926 | 0 | } |
4927 | | |
4928 | | static void |
4929 | | dissect_r3_upstreammfgfield_mortisestatelog (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
4930 | 0 | { |
4931 | 0 | int len; |
4932 | 0 | int i; |
4933 | |
|
4934 | 0 | if (!tree) |
4935 | 0 | return; |
4936 | | |
4937 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4938 | |
|
4939 | 0 | len = tvb_reported_length_remaining (tvb, 3); |
4940 | |
|
4941 | 0 | proto_tree_add_item (tree, hf_r3_mortisestatelog_pointer, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
4942 | 0 | proto_tree_add_item (tree, hf_r3_mortisestatelog_mortisetype, tvb, 1, 1, ENC_LITTLE_ENDIAN); |
4943 | 0 | proto_tree_add_item (tree, hf_r3_mortisestatelog_waiting, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
4944 | |
|
4945 | 0 | for (i = 0; i < len; i += 3) |
4946 | 0 | { |
4947 | 0 | unsigned state = tvb_get_uint8 (tvb, 3 + i + 0); |
4948 | 0 | unsigned last = tvb_get_uint8 (tvb, 3 + i + 1); |
4949 | 0 | unsigned event = tvb_get_uint8 (tvb, 3 + i + 2); |
4950 | 0 | proto_tree *ms_tree = proto_tree_add_subtree_format(tree, tvb, 3 + i, 3, ett_r3mortisestatelog, NULL, |
4951 | 0 | "State Log Entry %2d (State=0x%02x, Last=0x%02x, Event=%s (0x%02x))", |
4952 | 0 | i / 3, |
4953 | 0 | state, |
4954 | 0 | last, |
4955 | 0 | val_to_str_ext_const (event, &r3_mortiseeventnames_ext, "[Unknown]"), |
4956 | 0 | event); |
4957 | |
|
4958 | 0 | proto_tree_add_item (ms_tree, hf_r3_mortisestatelog_state, tvb, 3 + i + 0, 1, ENC_LITTLE_ENDIAN); |
4959 | 0 | proto_tree_add_item (ms_tree, hf_r3_mortisestatelog_last, tvb, 3 + i + 1, 1, ENC_LITTLE_ENDIAN); |
4960 | 0 | proto_tree_add_item (ms_tree, hf_r3_mortisestatelog_event, tvb, 3 + i + 2, 1, ENC_LITTLE_ENDIAN); |
4961 | 0 | } |
4962 | 0 | } |
4963 | | |
4964 | | static void |
4965 | | dissect_r3_upstreammfgfield_mortisepins (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
4966 | 0 | { |
4967 | 0 | proto_tree *iopins_tree; |
4968 | |
|
4969 | 0 | if (!tree) |
4970 | 0 | return; |
4971 | | |
4972 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4973 | |
|
4974 | 0 | iopins_tree = proto_tree_add_subtree_format(tree, tvb, 0, 1, ett_r3iopins, NULL, |
4975 | 0 | "Mortise Pin States (0x%02x)", tvb_get_uint8 (tvb, 0)); |
4976 | |
|
4977 | 0 | proto_tree_add_item (iopins_tree, hf_r3_mortisepins_s1, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
4978 | 0 | proto_tree_add_item (iopins_tree, hf_r3_mortisepins_s2, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
4979 | 0 | proto_tree_add_item (iopins_tree, hf_r3_mortisepins_s3, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
4980 | 0 | proto_tree_add_item (iopins_tree, hf_r3_mortisepins_s4, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
4981 | 0 | } |
4982 | | |
4983 | | static void |
4984 | | dissect_r3_upstreammfgfield_keypadchar (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
4985 | 0 | { |
4986 | 0 | if (!tree) |
4987 | 0 | return; |
4988 | | |
4989 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4990 | |
|
4991 | 0 | proto_tree_add_item (tree, hf_r3_testkeypad, tvb, 0, 1, ENC_ASCII); |
4992 | 0 | } |
4993 | | |
4994 | | static void |
4995 | | dissect_r3_upstreammfgfield_magcard (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
4996 | 0 | { |
4997 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
4998 | |
|
4999 | 0 | proto_tree_add_item (tree, hf_r3_testmagcard, tvb, 0, -1, ENC_ASCII); |
5000 | 0 | } |
5001 | | |
5002 | | static void |
5003 | | dissect_r3_upstreammfgfield_proxcard (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5004 | 0 | { |
5005 | 0 | DISSECTOR_ASSERT(start_offset == 0); |
5006 | |
|
5007 | 0 | proto_tree_add_item (tree, hf_r3_testproxcard, tvb, 0, -1, ENC_ASCII); |
5008 | 0 | } |
5009 | | |
5010 | | /* |
5011 | | * *************************************************************************** |
5012 | | * |
5013 | | * This is passed a tvb that contains [length] [CMD_RESPONSE] [responseType_e] [cmdCommand_e] |
5014 | | */ |
5015 | | static void |
5016 | | dissect_r3_response_singlebyte (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5017 | 188 | { |
5018 | 188 | if (tree) |
5019 | 188 | { |
5020 | 188 | proto_tree_add_item (tree, hf_r3_responsetype, tvb, start_offset + 2, 1, ENC_LITTLE_ENDIAN); |
5021 | 188 | proto_tree_add_item (tree, hf_r3_responsetocommand, tvb, start_offset + 3, 1, ENC_LITTLE_ENDIAN); |
5022 | 188 | } |
5023 | 188 | } |
5024 | | |
5025 | | /* |
5026 | | * This is passed a tvb that contains [length] [CMD_RESPONSE] [RESPONSETYPE_HASDATA] [UPSTREAMCOMMAND_*] |
5027 | | */ |
5028 | | static void |
5029 | | dissect_r3_response_hasdata (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo, proto_tree *tree) |
5030 | 44 | { |
5031 | 44 | uint32_t commandPacketLen; |
5032 | 44 | uint8_t upstreamCmd; |
5033 | | |
5034 | 44 | DISSECTOR_ASSERT(start_offset == 0); |
5035 | | |
5036 | 44 | tvb_ensure_bytes_exist (tvb, 0, 4); |
5037 | | |
5038 | 44 | commandPacketLen = tvb_get_uint8 (tvb, 0); |
5039 | 44 | upstreamCmd = tvb_get_uint8 (tvb, 3); |
5040 | | |
5041 | 44 | if (tvb_get_uint8 (tvb, 1) != CMD_RESPONSE) |
5042 | 0 | expert_add_info(pinfo, proto_tree_get_parent (tree), &ei_r3_response_hasdata_octet_1); |
5043 | 44 | else if (tvb_get_uint8 (tvb, 2) != RESPONSETYPE_HASDATA) |
5044 | 0 | expert_add_info(pinfo, proto_tree_get_parent (tree), &ei_r3_response_hasdata_octet_2); |
5045 | 44 | else if (upstreamCmd >= UPSTREAMCOMMAND_LAST) |
5046 | 5 | expert_add_info(pinfo, proto_tree_get_parent (tree), &ei_r3_response_hasdata_octet_3); |
5047 | 39 | else |
5048 | 39 | { |
5049 | 39 | proto_tree *upstreamcommand_tree = NULL; |
5050 | 39 | tvbuff_t *upstreamcommand_tvb; |
5051 | | |
5052 | 39 | if (tree) |
5053 | 37 | { |
5054 | 37 | const char *ct; |
5055 | 37 | ct = val_to_str_ext_const (upstreamCmd, &r3_upstreamcommandnames_ext, "[Unknown Command Type]"); |
5056 | | |
5057 | 37 | proto_tree_add_item (tree, hf_r3_responsetype, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
5058 | | |
5059 | 37 | upstreamcommand_tree = proto_tree_add_subtree_format(tree, tvb, 3, -1, ett_r3upstreamcommand, NULL, |
5060 | 37 | "Upstream Command: %s (%u)", ct, upstreamCmd); |
5061 | | |
5062 | 37 | proto_tree_add_item (upstreamcommand_tree, hf_r3_upstreamcommand, tvb, 3, 1, ENC_LITTLE_ENDIAN); |
5063 | 37 | } |
5064 | 39 | tvb_ensure_bytes_exist (tvb, 0, commandPacketLen - 4); |
5065 | | |
5066 | 39 | upstreamcommand_tvb = tvb_new_subset_length (tvb, 4, commandPacketLen - 4); |
5067 | 39 | if (r3upstreamcommand_dissect [upstreamCmd]) |
5068 | 34 | (*r3upstreamcommand_dissect [upstreamCmd]) (upstreamcommand_tvb, 0, commandPacketLen - 4, pinfo, upstreamcommand_tree); |
5069 | 39 | } |
5070 | 44 | } |
5071 | | |
5072 | | /* |
5073 | | * *************************************************************************** |
5074 | | * |
5075 | | * These are passed a tvb that starts with [length] [CMD_RESPONSE] ... |
5076 | | */ |
5077 | | static void |
5078 | | dissect_r3_cmd_response (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
5079 | 307 | { |
5080 | 307 | uint8_t responseLen = tvb_get_uint8 (tvb, start_offset + 0); |
5081 | 307 | responseType_e responseType = (responseType_e)tvb_get_uint8 (tvb, start_offset + 2); |
5082 | 307 | tvbuff_t *payload_tvb = tvb_new_subset_length (tvb, start_offset, responseLen); |
5083 | | |
5084 | 307 | if (tree) |
5085 | 307 | { |
5086 | 307 | const char *rt; |
5087 | | |
5088 | 307 | rt = val_to_str_ext_const (responseType, &r3_responsetypenames_ext, "[Unknown Response Type]"); |
5089 | | |
5090 | 307 | proto_item_set_text (proto_tree_get_parent (tree), "Response Packet: %s (%u)", rt, responseType); |
5091 | 307 | proto_tree_add_item (tree, hf_r3_responselength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5092 | 307 | proto_tree_add_item (tree, hf_r3_responsecommand, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5093 | 307 | } |
5094 | | |
5095 | 307 | if (responseType >= RESPONSETYPE_LAST) |
5096 | 75 | { |
5097 | 75 | expert_add_info(pinfo, proto_tree_get_parent (tree), &ei_r3_response_hasdata_octet_3); |
5098 | 75 | } |
5099 | 232 | else if (r3response_dissect [responseType]) |
5100 | 232 | (*r3response_dissect [responseType]) (payload_tvb, 0, length, pinfo, tree); |
5101 | 307 | } |
5102 | | |
5103 | | /* |
5104 | | * These are passed a tvb that contains [length] [cmdCommand_e] [[data]] |
5105 | | */ |
5106 | | static void |
5107 | | dissect_r3_cmd_handshake (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5108 | 426 | { |
5109 | 426 | if (tree) |
5110 | 426 | { |
5111 | 426 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5112 | 426 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5113 | 426 | } |
5114 | 426 | } |
5115 | | |
5116 | | static void |
5117 | | dissect_r3_cmd_killsession (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5118 | 188 | { |
5119 | 188 | if (tree) |
5120 | 188 | { |
5121 | 188 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5122 | 188 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5123 | 188 | } |
5124 | 188 | } |
5125 | | |
5126 | | static void |
5127 | | dissect_r3_cmd_queryserialnumber (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5128 | 164 | { |
5129 | 164 | if (tree) |
5130 | 164 | { |
5131 | 164 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5132 | 164 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5133 | 164 | } |
5134 | 164 | } |
5135 | | |
5136 | | static void |
5137 | | dissect_r3_cmd_queryversion (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5138 | 95 | { |
5139 | 95 | if (tree) |
5140 | 95 | { |
5141 | 95 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5142 | 95 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5143 | 95 | } |
5144 | 95 | } |
5145 | | |
5146 | | static void |
5147 | | dissect_r3_cmd_setdatetime (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5148 | 15 | { |
5149 | 15 | proto_tree *dt_tree; |
5150 | 15 | uint8_t cmdLen; |
5151 | 15 | tvbuff_t *payload_tvb; |
5152 | | |
5153 | 15 | if (!tree) |
5154 | 0 | return; |
5155 | | |
5156 | 15 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5157 | 15 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5158 | | |
5159 | 15 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5160 | 15 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5161 | | |
5162 | 15 | dt_tree = proto_tree_add_subtree_format (tree, payload_tvb, 0, -1, ett_r3setdatetime, NULL, |
5163 | 15 | "Set Date/Time (%02u/%02u/%02u-%u %02u:%02u:%02u)", |
5164 | 15 | tvb_get_uint8 (payload_tvb, 0), |
5165 | 15 | tvb_get_uint8 (payload_tvb, 1), |
5166 | 15 | tvb_get_uint8 (payload_tvb, 2), |
5167 | 15 | tvb_get_uint8 (payload_tvb, 3), |
5168 | 15 | tvb_get_uint8 (payload_tvb, 4), |
5169 | 15 | tvb_get_uint8 (payload_tvb, 5), |
5170 | 15 | tvb_get_uint8 (payload_tvb, 6)); |
5171 | | |
5172 | 15 | proto_tree_add_item (dt_tree, hf_r3_setdate_year, payload_tvb, 0, 1, ENC_LITTLE_ENDIAN); |
5173 | 15 | proto_tree_add_item (dt_tree, hf_r3_setdate_month, payload_tvb, 1, 1, ENC_LITTLE_ENDIAN); |
5174 | 15 | proto_tree_add_item (dt_tree, hf_r3_setdate_day, payload_tvb, 2, 1, ENC_LITTLE_ENDIAN); |
5175 | 15 | proto_tree_add_item (dt_tree, hf_r3_setdate_dow, payload_tvb, 3, 1, ENC_LITTLE_ENDIAN); |
5176 | 15 | proto_tree_add_item (dt_tree, hf_r3_setdate_hours, payload_tvb, 4, 1, ENC_LITTLE_ENDIAN); |
5177 | 15 | proto_tree_add_item (dt_tree, hf_r3_setdate_minutes, payload_tvb, 5, 1, ENC_LITTLE_ENDIAN); |
5178 | 15 | proto_tree_add_item (dt_tree, hf_r3_setdate_seconds, payload_tvb, 6, 1, ENC_LITTLE_ENDIAN); |
5179 | 15 | } |
5180 | | |
5181 | | static void |
5182 | | dissect_r3_cmd_querydatetime (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5183 | 72 | { |
5184 | 72 | if (tree) |
5185 | 72 | { |
5186 | 72 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5187 | 72 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5188 | 72 | } |
5189 | 72 | } |
5190 | | |
5191 | | static void |
5192 | | dissect_r3_cmd_setconfig (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo, proto_tree *tree) |
5193 | 158 | { |
5194 | 158 | unsigned cmdLen; |
5195 | 158 | tvbuff_t *payload_tvb; |
5196 | 158 | uint32_t offset = 0; |
5197 | | |
5198 | 158 | if (!tree) |
5199 | 0 | return; |
5200 | | |
5201 | 158 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5202 | 158 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5203 | | |
5204 | 158 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5205 | 158 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5206 | | |
5207 | 546 | while (offset < (cmdLen - 2)) |
5208 | 411 | { |
5209 | 411 | proto_item *sc_item; |
5210 | 411 | proto_tree *sc_tree; |
5211 | 411 | const char *ci; |
5212 | 411 | uint8_t configItem; |
5213 | 411 | uint8_t item_length; |
5214 | | |
5215 | 411 | configItem = tvb_get_uint8 (payload_tvb, offset + 1); |
5216 | | |
5217 | 411 | ci = val_to_str_ext_const ( |
5218 | 411 | configItem, |
5219 | 411 | &r3_configitemnames_ext, |
5220 | 411 | "[Unknown Configuration Item]"); |
5221 | | |
5222 | 411 | item_length = tvb_get_uint8 (payload_tvb, offset + 0); |
5223 | 411 | sc_tree = proto_tree_add_subtree_format(tree, payload_tvb, offset + 0, item_length, |
5224 | 411 | ett_r3upstreamfield, NULL, "Config Field: %s (%u)", ci, configItem); |
5225 | | |
5226 | 411 | sc_item = proto_tree_add_item (sc_tree, hf_r3_configitemlength, payload_tvb, offset + 0, 1, ENC_LITTLE_ENDIAN); |
5227 | 411 | proto_tree_add_item (sc_tree, hf_r3_configitem, payload_tvb, offset + 1, 1, ENC_LITTLE_ENDIAN); |
5228 | 411 | if (item_length == 0) { |
5229 | 20 | expert_add_info_format(pinfo, sc_item, &ei_r3_malformed_length, "Invalid item length"); |
5230 | 20 | return; |
5231 | 20 | } |
5232 | | |
5233 | 391 | if (configItem < array_length (configMap)) |
5234 | 345 | { |
5235 | 345 | switch (configMap [configItem]) |
5236 | 345 | { |
5237 | 0 | case CONFIGTYPE_NONE : |
5238 | 0 | proto_tree_add_item (sc_tree, hf_r3_configitemdata, payload_tvb, offset + 2, item_length - 3, ENC_NA); |
5239 | 0 | break; |
5240 | | |
5241 | 133 | case CONFIGTYPE_BOOL : |
5242 | 133 | proto_tree_add_item (sc_tree, hf_r3_configitemdata_bool, payload_tvb, offset + 2, 1, ENC_LITTLE_ENDIAN); |
5243 | 133 | break; |
5244 | | |
5245 | 30 | case CONFIGTYPE_8 : |
5246 | 30 | proto_tree_add_item (sc_tree, hf_r3_configitemdata_8, payload_tvb, offset + 2, 1, ENC_LITTLE_ENDIAN); |
5247 | 30 | break; |
5248 | | |
5249 | 97 | case CONFIGTYPE_16 : |
5250 | 97 | proto_tree_add_item (sc_tree, hf_r3_configitemdata_16, payload_tvb, offset + 2, 2, ENC_LITTLE_ENDIAN); |
5251 | 97 | break; |
5252 | | |
5253 | 0 | case CONFIGTYPE_32 : |
5254 | 0 | proto_tree_add_item (sc_tree, hf_r3_configitemdata_32, payload_tvb, offset + 2, 4, ENC_LITTLE_ENDIAN); |
5255 | 0 | break; |
5256 | | |
5257 | 85 | case CONFIGTYPE_STRING : |
5258 | 85 | proto_tree_add_item (sc_tree, hf_r3_configitemdata_string, payload_tvb, offset + 2, |
5259 | 85 | item_length - 2, ENC_ASCII); |
5260 | 85 | break; |
5261 | | |
5262 | 0 | default : |
5263 | 0 | proto_tree_add_none_format (sc_tree, hf_r3_upstreamfielderror, payload_tvb, offset + 2, |
5264 | 0 | item_length - 2, "Unknown Field Type"); |
5265 | 0 | break; |
5266 | 345 | } |
5267 | 345 | } |
5268 | 46 | else { |
5269 | 46 | proto_tree_add_none_format (sc_tree, hf_r3_upstreamfielderror, payload_tvb, offset + 2, |
5270 | 46 | item_length - 2, "Unknown Field Type"); |
5271 | 46 | } |
5272 | | |
5273 | 388 | offset += item_length; |
5274 | 388 | } |
5275 | 158 | } |
5276 | | |
5277 | | static void |
5278 | | dissect_r3_cmd_getconfig (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5279 | 102 | { |
5280 | 102 | proto_item *config_item; |
5281 | 102 | proto_tree *config_tree; |
5282 | 102 | uint32_t cmdLen; |
5283 | 102 | uint32_t i; |
5284 | | |
5285 | 102 | if (!tree) |
5286 | 0 | return; |
5287 | | |
5288 | 102 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5289 | | |
5290 | 102 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5291 | 102 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5292 | | |
5293 | 102 | config_item = proto_tree_add_item (tree, hf_r3_configitems, tvb, start_offset + 2, cmdLen - 2, ENC_NA); |
5294 | 102 | config_tree = proto_item_add_subtree (config_item, ett_r3configitem); |
5295 | | |
5296 | 1.01k | for (i = 2; i < cmdLen; i++) |
5297 | 917 | proto_tree_add_item (config_tree, hf_r3_configitem, tvb, start_offset + i, 1, ENC_LITTLE_ENDIAN); |
5298 | 102 | } |
5299 | | |
5300 | | static void |
5301 | | dissect_r3_cmd_manageuser (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo, proto_tree *tree) |
5302 | 313 | { |
5303 | 313 | uint8_t cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5304 | 313 | tvbuff_t *payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5305 | 313 | uint32_t offset = 0; |
5306 | | |
5307 | 313 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5308 | 313 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5309 | | |
5310 | 1.85k | while (offset < tvb_reported_length (payload_tvb)) |
5311 | 1.63k | { |
5312 | 1.63k | uint32_t paramLength = tvb_get_uint8 (payload_tvb, offset + 0); |
5313 | 1.63k | uint32_t paramType = tvb_get_uint8 (payload_tvb, offset + 1); |
5314 | 1.63k | uint32_t dataLength = paramLength - 2; |
5315 | 1.63k | proto_tree *mu_tree = NULL; |
5316 | 1.63k | proto_item *len_field = NULL; |
5317 | | |
5318 | 1.63k | if (tree) |
5319 | 1.55k | { |
5320 | 1.55k | const char *auptn; |
5321 | 1.55k | auptn = val_to_str_ext_const (paramType, &r3_adduserparamtypenames_ext, "[Unknown Field]"); |
5322 | | |
5323 | 1.55k | mu_tree = proto_item_add_subtree ( |
5324 | 1.55k | proto_tree_add_none_format (tree, hf_r3_adduserparamtype, payload_tvb, offset + 0, paramLength, |
5325 | 1.55k | "Manage User Field: %s (%u)", auptn, paramType), ett_r3manageuser); |
5326 | | |
5327 | 1.55k | len_field = proto_tree_add_item (mu_tree, hf_r3_adduserparamtypelength, payload_tvb, offset + 0, 1, ENC_LITTLE_ENDIAN); |
5328 | 1.55k | proto_tree_add_item (mu_tree, hf_r3_adduserparamtypetype, payload_tvb, offset + 1, 1, ENC_LITTLE_ENDIAN); |
5329 | 1.55k | } |
5330 | | |
5331 | 1.63k | if (paramLength < 2) |
5332 | 683 | { |
5333 | 683 | dataLength = 0; |
5334 | 683 | expert_add_info_format(pinfo, len_field, &ei_r3_malformed_length, "Malformed length value -- all fields are at least 2 octets."); |
5335 | 683 | } |
5336 | | |
5337 | 1.63k | offset += 2; |
5338 | | |
5339 | 1.63k | switch (paramType) |
5340 | 1.63k | { |
5341 | 431 | case ADDUSERPARAMTYPE_DISPOSITION : |
5342 | 465 | case ADDUSERPARAMTYPE_ACCESSALWAYS : |
5343 | 564 | case ADDUSERPARAMTYPE_ACCESSMODE : |
5344 | 603 | case ADDUSERPARAMTYPE_CACHED : |
5345 | 702 | case ADDUSERPARAMTYPE_USERTYPE : |
5346 | 742 | case ADDUSERPARAMTYPE_PRIMARYFIELDTYPE : |
5347 | 955 | case ADDUSERPARAMTYPE_AUXFIELDTYPE : |
5348 | 993 | case ADDUSERPARAMTYPE_USECOUNT : |
5349 | 1.01k | case ADDUSERPARAMTYPE_EXCEPTIONGROUP : |
5350 | 1.01k | if (dataLength != 1) |
5351 | 909 | { |
5352 | 909 | expert_add_info_format(pinfo, proto_tree_get_parent (mu_tree), &ei_r3_malformed_length, "Malformed field -- expected 1 octet"); |
5353 | 909 | } |
5354 | 102 | else |
5355 | 102 | proto_tree_add_item (mu_tree, hf_r3_adduserparamtypearray [paramType], payload_tvb, offset, dataLength, ENC_LITTLE_ENDIAN); |
5356 | 1.01k | break; |
5357 | | |
5358 | 194 | case ADDUSERPARAMTYPE_USERNO : |
5359 | 194 | if (dataLength != 2) |
5360 | 193 | { |
5361 | 193 | expert_add_info_format(pinfo, proto_tree_get_parent (mu_tree), &ei_r3_malformed_length, "Malformed field -- expected 2 octets"); |
5362 | 193 | } |
5363 | 1 | else |
5364 | 1 | proto_tree_add_item (mu_tree, hf_r3_adduserparamtypearray [paramType], payload_tvb, offset, dataLength, ENC_LITTLE_ENDIAN); |
5365 | 194 | break; |
5366 | | |
5367 | 13 | case ADDUSERPARAMTYPE_PRIMARYFIELD : |
5368 | 42 | case ADDUSERPARAMTYPE_AUXFIELD : |
5369 | 42 | proto_tree_add_item (mu_tree, hf_r3_adduserparamtypearray [paramType], payload_tvb, offset, dataLength, ENC_NA); |
5370 | 42 | break; |
5371 | | |
5372 | 17 | case ADDUSERPARAMTYPE_EXPIREON : |
5373 | 17 | { |
5374 | 17 | if (dataLength != 3) |
5375 | 16 | { |
5376 | 16 | expert_add_info_format(pinfo, proto_tree_get_parent (mu_tree), &ei_r3_malformed_length, "Malformed expiration field -- expected 3 octets"); |
5377 | 16 | } |
5378 | 1 | else |
5379 | 1 | { |
5380 | 1 | proto_tree *expireon_tree; |
5381 | | |
5382 | 1 | if (!tree) |
5383 | 0 | break; |
5384 | | |
5385 | 1 | expireon_tree = proto_tree_add_subtree_format(mu_tree, payload_tvb, offset, 3, |
5386 | 1 | ett_r3expireon, NULL, |
5387 | 1 | "Expire YY/MM/DD: %02u/%02u/%02u", |
5388 | 1 | tvb_get_uint8 (payload_tvb, offset + 2), |
5389 | 1 | tvb_get_uint8 (payload_tvb, offset + 0), |
5390 | 1 | tvb_get_uint8 (payload_tvb, offset + 1)); |
5391 | | |
5392 | 1 | proto_tree_add_item (expireon_tree, hf_r3_expireon_month, payload_tvb, offset + 0, 1, ENC_LITTLE_ENDIAN); |
5393 | 1 | proto_tree_add_item (expireon_tree, hf_r3_expireon_day, payload_tvb, offset + 1, 1, ENC_LITTLE_ENDIAN); |
5394 | 1 | proto_tree_add_item (expireon_tree, hf_r3_expireon_year, payload_tvb, offset + 2, 1, ENC_LITTLE_ENDIAN); |
5395 | 1 | } |
5396 | 17 | } |
5397 | 17 | break; |
5398 | | |
5399 | 21 | case ADDUSERPARAMTYPE_TIMEZONE : |
5400 | 21 | { |
5401 | 21 | if (dataLength != 4) |
5402 | 21 | { |
5403 | 21 | expert_add_info_format(pinfo, proto_tree_get_parent (mu_tree), &ei_r3_malformed_length, "Malformed timezone field -- expected 4 octets"); |
5404 | 21 | } |
5405 | 0 | else |
5406 | 0 | { |
5407 | 0 | proto_tree_add_bitmask(mu_tree, payload_tvb, offset, hf_r3_adduserparamtypearray[paramType], ett_r3timezone, r3_timezonearray, ENC_LITTLE_ENDIAN); |
5408 | 0 | } |
5409 | 21 | } |
5410 | 21 | break; |
5411 | | |
5412 | 272 | default : |
5413 | 272 | proto_tree_add_none_format (mu_tree, hf_r3_upstreamfielderror, payload_tvb, offset, dataLength, "Unknown Field Type"); |
5414 | 272 | break; |
5415 | 1.63k | } |
5416 | | |
5417 | 1.54k | offset += dataLength; |
5418 | 1.54k | } |
5419 | 313 | } |
5420 | | |
5421 | | static void |
5422 | | dissect_r3_cmd_deleteusers (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5423 | 57 | { |
5424 | 57 | uint8_t cmdLen; |
5425 | 57 | tvbuff_t *payload_tvb; |
5426 | | |
5427 | 57 | if (!tree) |
5428 | 0 | return; |
5429 | | |
5430 | 57 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5431 | 57 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5432 | | |
5433 | 57 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5434 | 57 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5435 | | |
5436 | 57 | proto_tree_add_item (tree, hf_r3_deleteusers, payload_tvb, 0, 1, ENC_LITTLE_ENDIAN); |
5437 | 57 | } |
5438 | | |
5439 | | static void |
5440 | | dissect_r3_cmd_defineexception (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5441 | 69 | { |
5442 | 69 | proto_tree *startdate_tree; |
5443 | 69 | proto_tree *enddate_tree; |
5444 | 69 | uint8_t cmdLen; |
5445 | 69 | tvbuff_t *payload_tvb; |
5446 | | |
5447 | 69 | if (!tree) |
5448 | 0 | return; |
5449 | | |
5450 | 69 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5451 | 69 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5452 | | |
5453 | 69 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5454 | 69 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5455 | | |
5456 | 69 | proto_tree_add_item (tree, hf_r3_defineexception_number, payload_tvb, 0, 1, ENC_LITTLE_ENDIAN); |
5457 | | |
5458 | 69 | startdate_tree = proto_tree_add_subtree_format(tree, payload_tvb, 1, 4, |
5459 | 69 | ett_r3defineexceptionstartdate, NULL, |
5460 | 69 | "Start MM/DD HH:MM (%02u/%02u %02u:%02u)", |
5461 | 69 | tvb_get_uint8 (payload_tvb, 1), |
5462 | 69 | tvb_get_uint8 (payload_tvb, 2), |
5463 | 69 | tvb_get_uint8 (payload_tvb, 3), |
5464 | 69 | tvb_get_uint8 (payload_tvb, 4)); |
5465 | 69 | proto_tree_add_item (startdate_tree, hf_r3_defineexception_startdate_month, payload_tvb, 1, 1, ENC_LITTLE_ENDIAN); |
5466 | 69 | proto_tree_add_item (startdate_tree, hf_r3_defineexception_startdate_day, payload_tvb, 2, 1, ENC_LITTLE_ENDIAN); |
5467 | 69 | proto_tree_add_item (startdate_tree, hf_r3_defineexception_startdate_hours, payload_tvb, 3, 1, ENC_LITTLE_ENDIAN); |
5468 | 69 | proto_tree_add_item (startdate_tree, hf_r3_defineexception_startdate_minutes, payload_tvb, 4, 1, ENC_LITTLE_ENDIAN); |
5469 | | |
5470 | 69 | enddate_tree = proto_tree_add_subtree_format(tree, payload_tvb, 5, 4, |
5471 | 69 | ett_r3defineexceptionenddate, NULL, |
5472 | 69 | "End MM/DD HH:MM (%02u/%02u %02u:%02u)", |
5473 | 69 | tvb_get_uint8 (payload_tvb, 5), |
5474 | 69 | tvb_get_uint8 (payload_tvb, 6), |
5475 | 69 | tvb_get_uint8 (payload_tvb, 7), |
5476 | 69 | tvb_get_uint8 (payload_tvb, 8)); |
5477 | 69 | proto_tree_add_item (enddate_tree, hf_r3_defineexception_enddate_month, payload_tvb, 5, 1, ENC_LITTLE_ENDIAN); |
5478 | 69 | proto_tree_add_item (enddate_tree, hf_r3_defineexception_enddate_day, payload_tvb, 6, 1, ENC_LITTLE_ENDIAN); |
5479 | 69 | proto_tree_add_item (enddate_tree, hf_r3_defineexception_enddate_hours, payload_tvb, 7, 1, ENC_LITTLE_ENDIAN); |
5480 | 69 | proto_tree_add_item (enddate_tree, hf_r3_defineexception_enddate_minutes, payload_tvb, 8, 1, ENC_LITTLE_ENDIAN); |
5481 | 69 | } |
5482 | | |
5483 | | static void |
5484 | | dissect_r3_cmd_defineexceptiongroup (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5485 | 100 | { |
5486 | 100 | proto_tree *bits_tree; |
5487 | 100 | unsigned cmdLen; |
5488 | 100 | tvbuff_t *payload_tvb; |
5489 | 100 | uint32_t i; |
5490 | 100 | uint32_t bit = 0; |
5491 | | |
5492 | 100 | if (!tree) |
5493 | 0 | return; |
5494 | | |
5495 | 100 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5496 | 100 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5497 | | |
5498 | 100 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5499 | 100 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5500 | | |
5501 | 100 | proto_tree_add_item (tree, hf_r3_defineexceptiongroup_number, payload_tvb, 0, 1, ENC_LITTLE_ENDIAN); |
5502 | | |
5503 | 100 | bits_tree = proto_tree_add_subtree(tree, payload_tvb, 1, -1, ett_r3defineexceptiongroupbits, NULL, "Exception Group Bit Field"); |
5504 | | |
5505 | 1.88k | for (i = 1; i < (cmdLen - 2); i++) |
5506 | 1.78k | { |
5507 | 1.78k | uint32_t j; |
5508 | 1.78k | uint8_t byte = tvb_get_uint8 (payload_tvb, i); |
5509 | | |
5510 | 15.5k | for (j = 0; j < 8; j++) |
5511 | 13.7k | proto_tree_add_none_format (bits_tree, hf_r3_defineexceptiongroup_bits, payload_tvb, i, 1, |
5512 | 13.7k | "Exception Group %2d: %s", bit++, (byte & (1 << j)) ? "Enabled" : "Disabled"); |
5513 | 1.78k | } |
5514 | 100 | } |
5515 | | |
5516 | | static void |
5517 | | dissect_r3_cmd_definecalendar (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5518 | 172 | { |
5519 | 172 | uint8_t cmdLen; |
5520 | 172 | tvbuff_t *payload_tvb; |
5521 | 172 | const char *mn; |
5522 | 172 | uint32_t i; |
5523 | | |
5524 | 172 | if (!tree) |
5525 | 0 | return; |
5526 | | |
5527 | 172 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5528 | 172 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5529 | | |
5530 | 172 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5531 | 172 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5532 | | |
5533 | 172 | proto_tree_add_item (tree, hf_r3_definecalendar_number, payload_tvb, 0, 1, ENC_LITTLE_ENDIAN); |
5534 | | |
5535 | 606 | for (i = 0; i < 12; i++) |
5536 | 434 | { |
5537 | 434 | uint32_t daymap = tvb_get_letohl (payload_tvb, (i * 4) + 1); |
5538 | 434 | proto_tree *calendar_tree = proto_tree_add_subtree_format(tree, payload_tvb, (i * 4) + 1, 4, |
5539 | 434 | ett_r3definecalendarmonth [i + 1], NULL, |
5540 | 434 | "Calendar Bit Field - %s (0x%08x)", |
5541 | 434 | (mn = val_to_str_ext_const (i + 1, &r3_monthnames_ext, "[Unknown Month]")), |
5542 | 434 | daymap); |
5543 | 434 | uint32_t j; |
5544 | | |
5545 | 8.68k | for (j = 0; j < 31; j++) |
5546 | 8.24k | proto_tree_add_none_format (calendar_tree, hf_r3_definecalendar_bits, payload_tvb, (i * 4) + 1, 4, |
5547 | 8.24k | "%s Of %s: %s", |
5548 | 8.24k | val_to_str_ext_const (j + 1, &r3_monthdaynames_ext, "[Unknown Day]"), |
5549 | 8.24k | mn, |
5550 | 8.24k | (daymap & (1 << j)) ? "Enabled" : "Disabled"); |
5551 | 434 | } |
5552 | 172 | } |
5553 | | |
5554 | | static void |
5555 | | dissect_r3_cmd_definetimezone (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5556 | 69 | { |
5557 | 69 | proto_tree *starttime_tree; |
5558 | 69 | proto_tree *endtime_tree; |
5559 | 69 | uint8_t cmdLen; |
5560 | 69 | tvbuff_t *payload_tvb; |
5561 | 69 | uint8_t tzmode; |
5562 | | |
5563 | 69 | if (!tree) |
5564 | 0 | return; |
5565 | | |
5566 | 69 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5567 | 69 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5568 | | |
5569 | 69 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5570 | 69 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5571 | | |
5572 | 69 | proto_tree_add_item (tree, hf_r3_definetimezone_number, payload_tvb, 0, 1, ENC_LITTLE_ENDIAN); |
5573 | | |
5574 | 69 | starttime_tree = proto_tree_add_subtree_format(tree, payload_tvb, 1, 2, |
5575 | 69 | ett_r3definetimezonestarttime, NULL, |
5576 | 69 | "Start HH:MM (%02u:%02u)", |
5577 | 69 | tvb_get_uint8 (payload_tvb, 1), |
5578 | 69 | tvb_get_uint8 (payload_tvb, 2)); |
5579 | 69 | proto_tree_add_item (starttime_tree, hf_r3_definetimezone_starttime_hours, payload_tvb, 1, 1, ENC_LITTLE_ENDIAN); |
5580 | 69 | proto_tree_add_item (starttime_tree, hf_r3_definetimezone_starttime_minutes, payload_tvb, 2, 1, ENC_LITTLE_ENDIAN); |
5581 | | |
5582 | 69 | endtime_tree = proto_tree_add_subtree_format(tree, payload_tvb, 3, 2, |
5583 | 69 | ett_r3definetimezoneendtime, NULL, |
5584 | 69 | "End HH:MM (%02u:%02u)", |
5585 | 69 | tvb_get_uint8 (payload_tvb, 3), |
5586 | 69 | tvb_get_uint8 (payload_tvb, 4)); |
5587 | 69 | proto_tree_add_item (endtime_tree, hf_r3_definetimezone_endtime_hours, payload_tvb, 3, 1, ENC_LITTLE_ENDIAN); |
5588 | 69 | proto_tree_add_item (endtime_tree, hf_r3_definetimezone_endtime_minutes, payload_tvb, 4, 1, ENC_LITTLE_ENDIAN); |
5589 | | |
5590 | 69 | proto_tree_add_bitmask(tree, payload_tvb, 5, hf_r3_definetimezone_daymap, ett_r3definetimezonedaymap, r3_definetimezone_daymap, ENC_NA); |
5591 | | |
5592 | 69 | proto_tree_add_item (tree, hf_r3_definetimezone_exceptiongroup, payload_tvb, 6, 1, ENC_LITTLE_ENDIAN); |
5593 | 69 | proto_tree_add_uint (tree, hf_r3_definetimezone_mode, payload_tvb, 7, 1, |
5594 | 69 | (tzmode = tvb_get_uint8 (payload_tvb, 7)) & 0x0f); |
5595 | 69 | proto_tree_add_none_format (tree, hf_r3_definetimezone_calendar, payload_tvb, 7, 1, |
5596 | 69 | "Access Always: %s", (tzmode & 0x10) ? "True" : "False"); |
5597 | 69 | } |
5598 | | |
5599 | | static void |
5600 | | dissect_r3_cmd_rmtauthretry (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5601 | 43 | { |
5602 | 43 | uint8_t cmdLen; |
5603 | 43 | tvbuff_t *payload_tvb; |
5604 | | |
5605 | 43 | if (!tree) |
5606 | 0 | return; |
5607 | | |
5608 | 43 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5609 | 43 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5610 | | |
5611 | 43 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5612 | 43 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5613 | | |
5614 | 43 | proto_tree_add_item (tree, hf_r3_rmtauthretry_sequence, payload_tvb, 0, 2, ENC_LITTLE_ENDIAN); |
5615 | 43 | proto_tree_add_item (tree, hf_r3_rmtauthretry_retry, payload_tvb, 2, 1, ENC_LITTLE_ENDIAN); |
5616 | 43 | } |
5617 | | |
5618 | | static void |
5619 | | dissect_r3_cmd_filters (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5620 | 120 | { |
5621 | 120 | proto_tree *filter_tree; |
5622 | 120 | uint8_t cmdLen; |
5623 | 120 | tvbuff_t *payload_tvb; |
5624 | 120 | uint32_t i; |
5625 | | |
5626 | 120 | if (!tree) |
5627 | 0 | return; |
5628 | | |
5629 | 120 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5630 | 120 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5631 | | |
5632 | 120 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5633 | 120 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5634 | | |
5635 | 120 | proto_tree_add_item (tree, hf_r3_filter_type, payload_tvb, 1, 1, ENC_LITTLE_ENDIAN); |
5636 | | |
5637 | 120 | filter_tree = proto_tree_add_subtree_format(tree, payload_tvb, 2, -1, ett_r3filters, NULL, |
5638 | 120 | "Filters (%u specified)", tvb_get_uint8 (payload_tvb, 0)); |
5639 | | |
5640 | 1.45k | for (i = 0; i < tvb_get_uint8 (payload_tvb, 0); i++) |
5641 | 1.33k | proto_tree_add_item (filter_tree, hf_r3_filter_list, payload_tvb, i + 2, 1, ENC_LITTLE_ENDIAN); |
5642 | 120 | } |
5643 | | |
5644 | | static void |
5645 | | dissect_r3_cmd_alarmconfigure (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo, proto_tree *tree) |
5646 | 69 | { |
5647 | 69 | proto_item *alarm_item; |
5648 | 69 | proto_tree *alarm_tree; |
5649 | 69 | unsigned cmdLen; |
5650 | 69 | tvbuff_t *payload_tvb; |
5651 | 69 | uint32_t offset = 0; |
5652 | 69 | uint32_t alarms = 0; |
5653 | | |
5654 | 69 | if (!tree) |
5655 | 0 | return; |
5656 | | |
5657 | 69 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5658 | 69 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5659 | | |
5660 | 69 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5661 | 69 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5662 | | |
5663 | 69 | alarm_tree = proto_tree_add_subtree(tree, payload_tvb, 0, -1, ett_r3alarmlist, &alarm_item, "Alarm List (0 items)"); |
5664 | | |
5665 | 276 | while (offset < (cmdLen - 2)) |
5666 | 216 | { |
5667 | 216 | proto_item *pi; |
5668 | 216 | proto_tree *alarmcfg_tree; |
5669 | 216 | const char *ai; |
5670 | 216 | const char *as; |
5671 | 216 | uint32_t alarm_len; |
5672 | | |
5673 | 216 | if (!(ai = try_val_to_str_ext (tvb_get_uint8 (payload_tvb, offset + 1), &r3_alarmidnames_ext))) |
5674 | 121 | { |
5675 | 121 | ai = "[Unknown Alarm ID]"; |
5676 | 121 | as = "N/A"; |
5677 | 121 | } |
5678 | 95 | else |
5679 | 95 | as = (tvb_get_uint8 (payload_tvb, offset + 2) & 0xfe) ? |
5680 | 53 | "Error" : (tvb_get_uint8 (payload_tvb, offset + 2) & 0x01) ? "Enabled" : "Disabled"; |
5681 | | |
5682 | 216 | alarmcfg_tree = proto_tree_add_subtree_format(alarm_tree, payload_tvb, offset, tvb_get_uint8 (payload_tvb, offset), |
5683 | 216 | ett_r3alarmcfg, NULL, "Alarm Item (%s, %s)", ai, as); |
5684 | | |
5685 | 216 | alarm_len = tvb_get_uint8 (payload_tvb, offset + 0); |
5686 | 216 | pi = proto_tree_add_item (alarmcfg_tree, hf_r3_alarm_length, payload_tvb, offset + 0, 1, ENC_LITTLE_ENDIAN); |
5687 | 216 | if (alarm_len == 0) { |
5688 | 9 | expert_add_info_format (pinfo, pi, &ei_r3_malformed_length, |
5689 | 9 | "Alarm length equal to 0. Payload could be partially decoded"); |
5690 | 9 | break; |
5691 | 9 | } |
5692 | | |
5693 | 207 | proto_tree_add_item (alarmcfg_tree, hf_r3_alarm_id, payload_tvb, offset + 1, 1, ENC_LITTLE_ENDIAN); |
5694 | 207 | proto_tree_add_item (alarmcfg_tree, hf_r3_alarm_state, payload_tvb, offset + 2, 1, ENC_LITTLE_ENDIAN); |
5695 | | |
5696 | 207 | alarms++; |
5697 | 207 | offset += alarm_len; |
5698 | 207 | } |
5699 | | |
5700 | 69 | if (alarms) |
5701 | 50 | proto_item_set_text (alarm_item, "Alarm List (%d items)", alarms); |
5702 | 69 | } |
5703 | | |
5704 | | static void |
5705 | | dissect_r3_cmd_eventlogdump (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5706 | 18 | { |
5707 | 18 | proto_tree *starttime_tree; |
5708 | 18 | proto_tree *endtime_tree; |
5709 | 18 | uint8_t cmdLen; |
5710 | 18 | tvbuff_t *payload_tvb; |
5711 | | |
5712 | 18 | if (!tree) |
5713 | 0 | return; |
5714 | | |
5715 | 18 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5716 | 18 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5717 | | |
5718 | 18 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5719 | 18 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5720 | | |
5721 | 18 | starttime_tree = proto_tree_add_subtree_format(tree, payload_tvb, 0, 5, |
5722 | 18 | ett_r3eventlogdumpstarttime, NULL, |
5723 | 18 | "Start YY/MM/DD HH:MM (%02u/%02u/%02u %02u:%02u)", |
5724 | 18 | tvb_get_uint8 (payload_tvb, 0), |
5725 | 18 | tvb_get_uint8 (payload_tvb, 1), |
5726 | 18 | tvb_get_uint8 (payload_tvb, 2), |
5727 | 18 | tvb_get_uint8 (payload_tvb, 3), |
5728 | 18 | tvb_get_uint8 (payload_tvb, 4)); |
5729 | 18 | proto_tree_add_item (starttime_tree, hf_r3_eventlogdump_starttime_year, payload_tvb, 0, 1, ENC_LITTLE_ENDIAN); |
5730 | 18 | proto_tree_add_item (starttime_tree, hf_r3_eventlogdump_starttime_month, payload_tvb, 1, 1, ENC_LITTLE_ENDIAN); |
5731 | 18 | proto_tree_add_item (starttime_tree, hf_r3_eventlogdump_starttime_day, payload_tvb, 2, 1, ENC_LITTLE_ENDIAN); |
5732 | 18 | proto_tree_add_item (starttime_tree, hf_r3_eventlogdump_starttime_hours, payload_tvb, 3, 1, ENC_LITTLE_ENDIAN); |
5733 | 18 | proto_tree_add_item (starttime_tree, hf_r3_eventlogdump_starttime_minutes, payload_tvb, 4, 1, ENC_LITTLE_ENDIAN); |
5734 | | |
5735 | 18 | endtime_tree = proto_tree_add_subtree_format(tree, payload_tvb, 5, 5, |
5736 | 18 | ett_r3eventlogdumpendtime, NULL, |
5737 | 18 | "End YY/MM/DD HH:MM (%02u/%02u/%02u %02u:%02u)", |
5738 | 18 | tvb_get_uint8 (payload_tvb, 5), |
5739 | 18 | tvb_get_uint8 (payload_tvb, 6), |
5740 | 18 | tvb_get_uint8 (payload_tvb, 7), |
5741 | 18 | tvb_get_uint8 (payload_tvb, 8), |
5742 | 18 | tvb_get_uint8 (payload_tvb, 9)); |
5743 | 18 | proto_tree_add_item (endtime_tree, hf_r3_eventlogdump_endtime_year, payload_tvb, 5, 1, ENC_LITTLE_ENDIAN); |
5744 | 18 | proto_tree_add_item (endtime_tree, hf_r3_eventlogdump_endtime_month, payload_tvb, 6, 1, ENC_LITTLE_ENDIAN); |
5745 | 18 | proto_tree_add_item (endtime_tree, hf_r3_eventlogdump_endtime_day, payload_tvb, 7, 1, ENC_LITTLE_ENDIAN); |
5746 | 18 | proto_tree_add_item (endtime_tree, hf_r3_eventlogdump_endtime_hours, payload_tvb, 8, 1, ENC_LITTLE_ENDIAN); |
5747 | 18 | proto_tree_add_item (endtime_tree, hf_r3_eventlogdump_endtime_minutes, payload_tvb, 9, 1, ENC_LITTLE_ENDIAN); |
5748 | | |
5749 | 18 | proto_tree_add_item (tree, hf_r3_eventlogdump_user, payload_tvb, 10, 2, ENC_LITTLE_ENDIAN); |
5750 | 18 | } |
5751 | | |
5752 | | static void |
5753 | | dissect_r3_cmd_declinedlogdump (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5754 | 38 | { |
5755 | 38 | proto_tree *starttime_tree; |
5756 | 38 | proto_tree *endtime_tree; |
5757 | 38 | uint8_t cmdLen; |
5758 | 38 | tvbuff_t *payload_tvb; |
5759 | | |
5760 | 38 | if (!tree) |
5761 | 0 | return; |
5762 | | |
5763 | 38 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5764 | 38 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5765 | | |
5766 | 38 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5767 | 38 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5768 | | |
5769 | 38 | starttime_tree = proto_tree_add_subtree_format(tree, payload_tvb, 0, 5, |
5770 | 38 | ett_r3declinedlogdumpstarttime, NULL, |
5771 | 38 | "Start YY/MM/DD HH:MM (%02u/%02u/%02u %02u:%02u)", |
5772 | 38 | tvb_get_uint8 (payload_tvb, 0), |
5773 | 38 | tvb_get_uint8 (payload_tvb, 1), |
5774 | 38 | tvb_get_uint8 (payload_tvb, 2), |
5775 | 38 | tvb_get_uint8 (payload_tvb, 3), |
5776 | 38 | tvb_get_uint8 (payload_tvb, 4)); |
5777 | 38 | proto_tree_add_item (starttime_tree, hf_r3_declinedlogdump_starttime_year, payload_tvb, 0, 1, ENC_LITTLE_ENDIAN); |
5778 | 38 | proto_tree_add_item (starttime_tree, hf_r3_declinedlogdump_starttime_month, payload_tvb, 1, 1, ENC_LITTLE_ENDIAN); |
5779 | 38 | proto_tree_add_item (starttime_tree, hf_r3_declinedlogdump_starttime_day, payload_tvb, 2, 1, ENC_LITTLE_ENDIAN); |
5780 | 38 | proto_tree_add_item (starttime_tree, hf_r3_declinedlogdump_starttime_hours, payload_tvb, 3, 1, ENC_LITTLE_ENDIAN); |
5781 | 38 | proto_tree_add_item (starttime_tree, hf_r3_declinedlogdump_starttime_minutes, payload_tvb, 4, 1, ENC_LITTLE_ENDIAN); |
5782 | | |
5783 | 38 | endtime_tree = proto_tree_add_subtree_format(tree, payload_tvb, 5, 5, |
5784 | 38 | ett_r3declinedlogdumpendtime, NULL, |
5785 | 38 | "End YY/MM/DD HH:MM (%02u/%02u/%02u %02u:%02u)", |
5786 | 38 | tvb_get_uint8 (payload_tvb, 5), |
5787 | 38 | tvb_get_uint8 (payload_tvb, 6), |
5788 | 38 | tvb_get_uint8 (payload_tvb, 7), |
5789 | 38 | tvb_get_uint8 (payload_tvb, 8), |
5790 | 38 | tvb_get_uint8 (payload_tvb, 9)); |
5791 | 38 | proto_tree_add_item (endtime_tree, hf_r3_declinedlogdump_endtime_year, payload_tvb, 5, 1, ENC_LITTLE_ENDIAN); |
5792 | 38 | proto_tree_add_item (endtime_tree, hf_r3_declinedlogdump_endtime_month, payload_tvb, 6, 1, ENC_LITTLE_ENDIAN); |
5793 | 38 | proto_tree_add_item (endtime_tree, hf_r3_declinedlogdump_endtime_day, payload_tvb, 7, 1, ENC_LITTLE_ENDIAN); |
5794 | 38 | proto_tree_add_item (endtime_tree, hf_r3_declinedlogdump_endtime_hours, payload_tvb, 8, 1, ENC_LITTLE_ENDIAN); |
5795 | 38 | proto_tree_add_item (endtime_tree, hf_r3_declinedlogdump_endtime_minutes, payload_tvb, 9, 1, ENC_LITTLE_ENDIAN); |
5796 | 38 | } |
5797 | | |
5798 | | static void |
5799 | | dissect_r3_cmd_alarmlogdump (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5800 | 29 | { |
5801 | 29 | proto_tree *starttime_tree; |
5802 | 29 | proto_tree *endtime_tree; |
5803 | 29 | uint8_t cmdLen; |
5804 | 29 | tvbuff_t *payload_tvb; |
5805 | | |
5806 | 29 | if (!tree) |
5807 | 0 | return; |
5808 | | |
5809 | 29 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5810 | 29 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5811 | | |
5812 | 29 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5813 | 29 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5814 | | |
5815 | 29 | starttime_tree = proto_tree_add_subtree_format(tree, payload_tvb, 0, 5, |
5816 | 29 | ett_r3alarmlogdumpstarttime, NULL, |
5817 | 29 | "Start YY/MM/DD HH:MM (%02u/%02u/%02u %02u:%02u)", |
5818 | 29 | tvb_get_uint8 (payload_tvb, 0), |
5819 | 29 | tvb_get_uint8 (payload_tvb, 1), |
5820 | 29 | tvb_get_uint8 (payload_tvb, 2), |
5821 | 29 | tvb_get_uint8 (payload_tvb, 3), |
5822 | 29 | tvb_get_uint8 (payload_tvb, 4)); |
5823 | 29 | proto_tree_add_item (starttime_tree, hf_r3_alarmlogdump_starttime_year, payload_tvb, 0, 1, ENC_LITTLE_ENDIAN); |
5824 | 29 | proto_tree_add_item (starttime_tree, hf_r3_alarmlogdump_starttime_month, payload_tvb, 1, 1, ENC_LITTLE_ENDIAN); |
5825 | 29 | proto_tree_add_item (starttime_tree, hf_r3_alarmlogdump_starttime_day, payload_tvb, 2, 1, ENC_LITTLE_ENDIAN); |
5826 | 29 | proto_tree_add_item (starttime_tree, hf_r3_alarmlogdump_starttime_hours, payload_tvb, 3, 1, ENC_LITTLE_ENDIAN); |
5827 | 29 | proto_tree_add_item (starttime_tree, hf_r3_alarmlogdump_starttime_minutes, payload_tvb, 4, 1, ENC_LITTLE_ENDIAN); |
5828 | | |
5829 | 29 | endtime_tree = proto_tree_add_subtree_format(tree, payload_tvb, 5, 5, |
5830 | 29 | ett_r3alarmlogdumpendtime, NULL, |
5831 | 29 | "End YY/MM/DD HH:MM (%02u/%02u/%02u %02u:%02u)", |
5832 | 29 | tvb_get_uint8 (payload_tvb, 5), |
5833 | 29 | tvb_get_uint8 (payload_tvb, 6), |
5834 | 29 | tvb_get_uint8 (payload_tvb, 7), |
5835 | 29 | tvb_get_uint8 (payload_tvb, 8), |
5836 | 29 | tvb_get_uint8 (payload_tvb, 9)); |
5837 | 29 | proto_tree_add_item (endtime_tree, hf_r3_alarmlogdump_endtime_year, payload_tvb, 5, 1, ENC_LITTLE_ENDIAN); |
5838 | 29 | proto_tree_add_item (endtime_tree, hf_r3_alarmlogdump_endtime_month, payload_tvb, 6, 1, ENC_LITTLE_ENDIAN); |
5839 | 29 | proto_tree_add_item (endtime_tree, hf_r3_alarmlogdump_endtime_day, payload_tvb, 7, 1, ENC_LITTLE_ENDIAN); |
5840 | 29 | proto_tree_add_item (endtime_tree, hf_r3_alarmlogdump_endtime_hours, payload_tvb, 8, 1, ENC_LITTLE_ENDIAN); |
5841 | 29 | proto_tree_add_item (endtime_tree, hf_r3_alarmlogdump_endtime_minutes, payload_tvb, 9, 1, ENC_LITTLE_ENDIAN); |
5842 | 29 | } |
5843 | | |
5844 | | static void |
5845 | | dissect_r3_cmd_downloadfirmware (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo, proto_tree *tree) |
5846 | 54 | { |
5847 | 54 | proto_item *dlfw_item = NULL; |
5848 | 54 | proto_item *dlfw_action_item = NULL; |
5849 | 54 | proto_tree *dlfw_tree = NULL; |
5850 | 54 | uint8_t cmdLen; |
5851 | 54 | tvbuff_t *payload_tvb; |
5852 | 54 | uint32_t packetCRC; |
5853 | 54 | uint32_t calculatedCRC; |
5854 | | |
5855 | 54 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5856 | 54 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5857 | | |
5858 | 54 | if (tree) |
5859 | 54 | { |
5860 | 54 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5861 | 54 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5862 | | |
5863 | 54 | dlfw_tree = proto_tree_add_subtree_format(tree, payload_tvb, 0, -1, ett_r3downloadfirmware, &dlfw_item, |
5864 | 54 | "Download Record (Record #%u, ", tvb_get_letohs (payload_tvb, 2)); |
5865 | | |
5866 | 54 | proto_tree_add_item (dlfw_tree, hf_r3_firmwaredownload_length, payload_tvb, 0, 2, ENC_LITTLE_ENDIAN); |
5867 | 54 | proto_tree_add_item (dlfw_tree, hf_r3_firmwaredownload_record, payload_tvb, 2, 2, ENC_LITTLE_ENDIAN); |
5868 | 54 | dlfw_action_item = proto_tree_add_item (dlfw_tree, hf_r3_firmwaredownload_action, payload_tvb, 4, 1, ENC_LITTLE_ENDIAN); |
5869 | 54 | } |
5870 | | |
5871 | 54 | switch (tvb_get_uint8 (payload_tvb, 4)) |
5872 | 54 | { |
5873 | 6 | case DOWNLOADFIRMWARE_START : |
5874 | 6 | if (!dlfw_tree) |
5875 | 0 | break; |
5876 | 6 | proto_item_append_text (dlfw_item, "DOWNLOADFIRMWARE_START)"); |
5877 | 6 | proto_tree_add_item (dlfw_tree, hf_r3_firmwaredownload_timeout, payload_tvb, 5, 1, ENC_LITTLE_ENDIAN); |
5878 | 6 | proto_tree_add_item (dlfw_tree, hf_r3_firmwaredownload_nvram, payload_tvb, 6, 1, ENC_LITTLE_ENDIAN); |
5879 | 6 | break; |
5880 | | |
5881 | 1 | case DOWNLOADFIRMWARE_DATA : |
5882 | 1 | if (!dlfw_tree) |
5883 | 0 | break; |
5884 | 1 | proto_item_append_text (dlfw_item, "DOWNLOADFIRMWARE_DATA, Address 0x%08x, %u Bytes)", |
5885 | 1 | tvb_get_letohl (payload_tvb, 5), tvb_get_uint8 (payload_tvb, 9)); |
5886 | 1 | proto_tree_add_item (dlfw_tree, hf_r3_firmwaredownload_address, payload_tvb, 5, 4, ENC_LITTLE_ENDIAN); |
5887 | 1 | proto_tree_add_item (dlfw_tree, hf_r3_firmwaredownload_bytes, payload_tvb, 9, 1, ENC_LITTLE_ENDIAN); |
5888 | 1 | proto_tree_add_item (dlfw_tree, hf_r3_firmwaredownload_data, payload_tvb, 10, |
5889 | 1 | tvb_get_uint8 (payload_tvb, 9), ENC_NA); |
5890 | 1 | break; |
5891 | | |
5892 | 0 | case DOWNLOADFIRMWARE_COMPLETE : |
5893 | 0 | if (!dlfw_tree) |
5894 | 0 | break; |
5895 | 0 | proto_item_append_text (dlfw_item, "DOWNLOADFIRMWARE_COMPLETE)"); |
5896 | 0 | break; |
5897 | | |
5898 | 1 | case DOWNLOADFIRMWARE_ABORT : |
5899 | 1 | if (!dlfw_tree) |
5900 | 0 | break; |
5901 | 1 | proto_item_append_text (dlfw_item, "DOWNLOADFIRMWARE_ABORT)"); |
5902 | 1 | break; |
5903 | | |
5904 | 1 | case DOWNLOADFIRMWARE_RESET : |
5905 | 1 | if (!dlfw_tree) |
5906 | 0 | break; |
5907 | 1 | proto_item_append_text (dlfw_item, "DOWNLOADFIRMWARE_RESET)"); |
5908 | 1 | break; |
5909 | | |
5910 | 27 | default : |
5911 | 27 | expert_add_info(pinfo, dlfw_action_item, &ei_r3_firmwaredownload_action); |
5912 | 27 | return; /* quit */ |
5913 | 54 | } |
5914 | | |
5915 | 8 | if (!dlfw_tree) |
5916 | 0 | return; |
5917 | | |
5918 | 8 | packetCRC = tvb_get_letohs (payload_tvb, cmdLen - 2 - 2); |
5919 | | |
5920 | 8 | if ((calculatedCRC = crc16_r3_ccitt_tvb(payload_tvb, 0, cmdLen - 2 - 2)) == packetCRC) |
5921 | 0 | proto_tree_add_uint_format_value(dlfw_tree, hf_r3_firmwaredownload_crc, payload_tvb, |
5922 | 0 | cmdLen - 2 - 2, 2, |
5923 | 0 | packetCRC, "0x%04x (correct)", packetCRC); |
5924 | 8 | else |
5925 | 8 | { |
5926 | 8 | proto_item *tmp_item; |
5927 | | |
5928 | 8 | proto_tree_add_uint_format_value(dlfw_tree, hf_r3_firmwaredownload_crc, payload_tvb, |
5929 | 8 | cmdLen - 2 - 2, 2, |
5930 | 8 | packetCRC, "0x%04x (incorrect, should be 0x%04x)", calculatedCRC, packetCRC); |
5931 | 8 | tmp_item = proto_tree_add_boolean (dlfw_tree, hf_r3_firmwaredownload_crc_bad, payload_tvb, |
5932 | 8 | cmdLen - 2 - 2, 2, true); |
5933 | 8 | proto_item_set_generated (tmp_item); |
5934 | 8 | } |
5935 | 8 | } |
5936 | | |
5937 | | static void |
5938 | | dissect_r3_cmd_downloadfirmwaretimeout (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo, proto_tree *tree) |
5939 | 33 | { |
5940 | 33 | uint8_t cmdLen; |
5941 | 33 | tvbuff_t *payload_tvb; |
5942 | | |
5943 | 33 | if (tree) |
5944 | 33 | { |
5945 | 33 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5946 | 33 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5947 | | |
5948 | 33 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5949 | 33 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5950 | | |
5951 | 33 | proto_tree_add_item (tree, hf_r3_commanddata, payload_tvb, 0, -1, ENC_NA); |
5952 | 33 | } |
5953 | 33 | expert_add_info(pinfo, proto_tree_get_parent (tree), &ei_r3_cmd_downloadfirmwaretimeout); /* XXX: ??? */ |
5954 | 33 | } |
5955 | | |
5956 | | static void |
5957 | | dissect_r3_cmd_powertableselection (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5958 | 43 | { |
5959 | 43 | uint8_t cmdLen; |
5960 | 43 | tvbuff_t *payload_tvb; |
5961 | | |
5962 | 43 | if (!tree) |
5963 | 0 | return; |
5964 | | |
5965 | 43 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5966 | 43 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5967 | | |
5968 | 43 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5969 | 43 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5970 | | |
5971 | 43 | proto_tree_add_item (tree, hf_r3_powertableselection, payload_tvb, 0, 1, ENC_LITTLE_ENDIAN); |
5972 | 43 | } |
5973 | | |
5974 | | static void |
5975 | | dissect_r3_cmd_clearnvram (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5976 | 47 | { |
5977 | 47 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5978 | 47 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5979 | 47 | proto_tree_add_bitmask(tree, tvb, start_offset + 2, hf_r3_nvramclearoptions, |
5980 | 47 | ett_r3clearnvram, r3_nvramclearoptions, ENC_LITTLE_ENDIAN); |
5981 | 47 | } |
5982 | | |
5983 | | static void |
5984 | | dissect_r3_cmd_dpac (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
5985 | 24 | { |
5986 | 24 | uint8_t cmdLen; |
5987 | 24 | tvbuff_t *payload_tvb; |
5988 | | |
5989 | 24 | if (!tree) |
5990 | 0 | return; |
5991 | | |
5992 | 24 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
5993 | 24 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
5994 | | |
5995 | 24 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
5996 | 24 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
5997 | | |
5998 | | /* XXX: hf[] entries for the following hf indexes originally missing */ |
5999 | 24 | proto_tree_add_item (tree, hf_r3_dpac_action, payload_tvb, 0, 1, ENC_LITTLE_ENDIAN); |
6000 | 24 | proto_tree_add_item (tree, hf_r3_dpac_waittime, payload_tvb, 1, 2, ENC_LITTLE_ENDIAN); |
6001 | 24 | proto_tree_add_item (tree, hf_r3_dpac_command, payload_tvb, 3, -1, ENC_NA); |
6002 | 24 | } |
6003 | | |
6004 | | static void |
6005 | | dissect_r3_cmd_selftest (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6006 | 19 | { |
6007 | 19 | if (tree) |
6008 | 19 | { |
6009 | 19 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6010 | 19 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6011 | 19 | } |
6012 | 19 | } |
6013 | | |
6014 | | static void |
6015 | | dissect_r3_cmd_reset (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6016 | 32 | { |
6017 | 32 | if (tree) |
6018 | 32 | { |
6019 | 32 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6020 | 32 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6021 | 32 | } |
6022 | 32 | } |
6023 | | |
6024 | | static void |
6025 | | dissect_r3_cmd_logwrite (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6026 | 34 | { |
6027 | 34 | uint8_t cmdLen; |
6028 | 34 | tvbuff_t *payload_tvb; |
6029 | | |
6030 | 34 | if (!tree) |
6031 | 0 | return; |
6032 | | |
6033 | 34 | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
6034 | 34 | payload_tvb = tvb_new_subset_length (tvb, start_offset + 2, cmdLen - 2); |
6035 | | |
6036 | 34 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6037 | 34 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6038 | | |
6039 | 34 | proto_tree_add_item (tree, hf_r3_writeeventlog_user, payload_tvb, 0, 2, ENC_LITTLE_ENDIAN); |
6040 | 34 | proto_tree_add_item (tree, hf_r3_writeeventlog_event, payload_tvb, 2, 1, ENC_LITTLE_ENDIAN); |
6041 | 34 | } |
6042 | | |
6043 | | static void |
6044 | | dissect_r3_cmd_mfgcommand (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6045 | 141 | { |
6046 | 141 | if (tree) |
6047 | 141 | { |
6048 | 141 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6049 | 141 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6050 | 141 | } |
6051 | 141 | mfgCommandFlag = true; |
6052 | 141 | } |
6053 | | |
6054 | | static void |
6055 | | dissect_r3_cmd_nvrambackup (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6056 | 29 | { |
6057 | 29 | if (tree) |
6058 | 29 | { |
6059 | 29 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6060 | 29 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6061 | 29 | } |
6062 | 29 | } |
6063 | | |
6064 | | static void |
6065 | | dissect_r3_cmd_extendedresponse (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6066 | 21 | { |
6067 | 21 | if (tree) |
6068 | 21 | { |
6069 | 21 | proto_tree_add_item (tree, hf_r3_commandlength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6070 | 21 | proto_tree_add_item (tree, hf_r3_command, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6071 | 21 | } |
6072 | 21 | } |
6073 | | |
6074 | | /* |
6075 | | * *************************************************************************** |
6076 | | */ |
6077 | | static void |
6078 | | dissect_r3_cmdmfg_setserialnumber (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *tree) |
6079 | 10 | { |
6080 | 10 | tvbuff_t *sn_tvb = tvb_new_subset_length (tvb, start_offset + 2, 16); |
6081 | | |
6082 | 10 | if (tree) |
6083 | 10 | { |
6084 | 10 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6085 | 10 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6086 | 10 | } |
6087 | 10 | dissect_serialnumber (sn_tvb, 0, length, pinfo, tree, hf_r3_mfgsetserialnumber); |
6088 | 10 | } |
6089 | | |
6090 | | static void |
6091 | | dissect_r3_cmdmfg_setcryptkey (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6092 | 5 | { |
6093 | 5 | if (tree) |
6094 | 5 | { |
6095 | 5 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6096 | 5 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6097 | 5 | proto_tree_add_item (tree, hf_r3_mfgsetcryptkey, tvb, start_offset + 2, -1, ENC_NA); |
6098 | 5 | } |
6099 | 5 | } |
6100 | | |
6101 | | static void |
6102 | | dissect_r3_cmdmfg_dumpnvram (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6103 | 4 | { |
6104 | 4 | if (tree) |
6105 | 4 | { |
6106 | 4 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6107 | 4 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6108 | 4 | proto_tree_add_item (tree, hf_r3_mfgdumpnvram, tvb, start_offset + 2, 1, ENC_LITTLE_ENDIAN); |
6109 | 4 | } |
6110 | 4 | } |
6111 | | |
6112 | | static void |
6113 | | dissect_r3_cmdmfg_terminal (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6114 | 4 | { |
6115 | 4 | if (tree) |
6116 | 4 | { |
6117 | 4 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6118 | 4 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6119 | 4 | } |
6120 | 4 | } |
6121 | | |
6122 | | static void |
6123 | | dissect_r3_cmdmfg_remoteunlock (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6124 | 1 | { |
6125 | 1 | if (tree) |
6126 | 1 | { |
6127 | 1 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6128 | 1 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6129 | 1 | proto_tree_add_item (tree, hf_r3_mfgremoteunlock, tvb, start_offset + 2, 1, ENC_LITTLE_ENDIAN); |
6130 | 1 | } |
6131 | 1 | } |
6132 | | |
6133 | | static void |
6134 | | dissect_r3_cmdmfg_auxctlrversion (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6135 | 3 | { |
6136 | 3 | if (tree) |
6137 | 3 | { |
6138 | 3 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6139 | 3 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6140 | 3 | } |
6141 | 3 | } |
6142 | | |
6143 | | static void |
6144 | | dissect_r3_cmdmfg_iopins (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6145 | 4 | { |
6146 | 4 | if (tree) |
6147 | 4 | { |
6148 | 4 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6149 | 4 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6150 | 4 | } |
6151 | 4 | } |
6152 | | |
6153 | | static void |
6154 | | dissect_r3_cmdmfg_adcs (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6155 | 2 | { |
6156 | 2 | if (tree) |
6157 | 2 | { |
6158 | 2 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6159 | 2 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6160 | 2 | } |
6161 | 2 | } |
6162 | | |
6163 | | static void |
6164 | | dissect_r3_cmdmfg_hardwareid (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6165 | 3 | { |
6166 | 3 | if (tree) |
6167 | 3 | { |
6168 | 3 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6169 | 3 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6170 | 3 | } |
6171 | 3 | } |
6172 | | |
6173 | | static void |
6174 | | dissect_r3_cmdmfg_checkpointlogdump (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6175 | 1 | { |
6176 | 1 | if (tree) |
6177 | 1 | { |
6178 | 1 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6179 | 1 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6180 | 1 | } |
6181 | 1 | } |
6182 | | |
6183 | | static void |
6184 | | dissect_r3_cmdmfg_checkpointlogclear (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6185 | 3 | { |
6186 | 3 | if (tree) |
6187 | 3 | { |
6188 | 3 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6189 | 3 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6190 | 3 | } |
6191 | 3 | } |
6192 | | |
6193 | | static void |
6194 | | dissect_r3_cmdmfg_readregisters (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6195 | 1 | { |
6196 | 1 | if (tree) |
6197 | 1 | { |
6198 | 1 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6199 | 1 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6200 | 1 | } |
6201 | 1 | } |
6202 | | |
6203 | | static void |
6204 | | dissect_r3_cmdmfg_forceoptions (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo, proto_tree *tree) |
6205 | 2 | { |
6206 | 2 | int i; |
6207 | 2 | int len; |
6208 | 2 | uint8_t step; |
6209 | | |
6210 | 2 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6211 | 2 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6212 | | |
6213 | 2 | start_offset += 2; |
6214 | 2 | len = tvb_reported_length_remaining (tvb, start_offset); |
6215 | | |
6216 | 2 | i = 0; |
6217 | 2 | while (i<len && (step=tvb_get_uint8(tvb, start_offset + i))>0) |
6218 | 2 | { |
6219 | 2 | proto_tree *force_tree = proto_tree_add_subtree_format(tree, tvb, start_offset + i, tvb_get_uint8 (tvb, start_offset + i), |
6220 | 2 | ett_r3forceoptions, NULL, |
6221 | 2 | "Force Option %s (%u)", |
6222 | 2 | val_to_str_ext_const ( |
6223 | 2 | tvb_get_uint8 (tvb, start_offset + i + 1), |
6224 | 2 | &r3_forceitemnames_ext, "[Unknown]"), |
6225 | 2 | tvb_get_uint8 (tvb, start_offset + i + 1)); |
6226 | 2 | proto_item *force_item_item; |
6227 | | |
6228 | 2 | proto_tree_add_item (force_tree, hf_r3_forceoptions_length, tvb, start_offset + i + 0, 1, ENC_LITTLE_ENDIAN); |
6229 | 2 | force_item_item = proto_tree_add_item (force_tree, hf_r3_forceoptions_item, tvb, start_offset + i + 1, 1, ENC_LITTLE_ENDIAN); |
6230 | | |
6231 | 2 | switch (tvb_get_uint8 (tvb, start_offset + i) - 2) |
6232 | 2 | { |
6233 | 0 | case 1 : proto_tree_add_item (force_tree, hf_r3_forceoptions_state_8, tvb, start_offset + i + 2, 1, ENC_LITTLE_ENDIAN); |
6234 | 0 | break; |
6235 | 0 | case 2 : proto_tree_add_item (force_tree, hf_r3_forceoptions_state_16, tvb, start_offset + i + 2, 2, ENC_LITTLE_ENDIAN); |
6236 | 0 | break; |
6237 | 0 | case 3 : proto_tree_add_item (force_tree, hf_r3_forceoptions_state_24, tvb, start_offset + i + 2, 3, ENC_LITTLE_ENDIAN); |
6238 | 0 | break; |
6239 | 0 | case 4 : proto_tree_add_item (force_tree, hf_r3_forceoptions_state_32, tvb, start_offset + i + 2, 4, ENC_LITTLE_ENDIAN); |
6240 | 0 | break; |
6241 | 1 | default : |
6242 | 1 | expert_add_info_format(pinfo, force_item_item, &ei_r3_malformed_length, "Invalid length for Forceoptions State entry"); |
6243 | 1 | return; /* quit */ |
6244 | 2 | } |
6245 | | |
6246 | 0 | i += step; |
6247 | 0 | } |
6248 | 2 | } |
6249 | | |
6250 | | static void |
6251 | | dissect_r3_cmdmfg_commuser (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6252 | 1 | { |
6253 | 1 | if (tree) |
6254 | 1 | { |
6255 | 1 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6256 | 1 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6257 | 1 | } |
6258 | 1 | } |
6259 | | |
6260 | | static void |
6261 | | dissect_r3_cmdmfg_dumpkeypad (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6262 | 0 | { |
6263 | 0 | if (tree) |
6264 | 0 | { |
6265 | 0 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6266 | 0 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6267 | 0 | } |
6268 | 0 | } |
6269 | | |
6270 | | static void |
6271 | | dissect_r3_cmdmfg_batterycheck (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6272 | 2 | { |
6273 | 2 | if (tree) |
6274 | 2 | { |
6275 | 2 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6276 | 2 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6277 | 2 | } |
6278 | 2 | } |
6279 | | |
6280 | | static void |
6281 | | dissect_r3_cmdmfg_ramrefresh (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6282 | 3 | { |
6283 | 3 | if (tree) |
6284 | 3 | { |
6285 | 3 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6286 | 3 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6287 | 3 | } |
6288 | 3 | } |
6289 | | |
6290 | | static void |
6291 | | dissect_r3_cmdmfg_taskflags (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6292 | 0 | { |
6293 | 0 | if (tree) |
6294 | 0 | { |
6295 | 0 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6296 | 0 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6297 | 0 | } |
6298 | 0 | } |
6299 | | |
6300 | | static void |
6301 | | dissect_r3_cmdmfg_timerchain (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6302 | 0 | { |
6303 | 0 | if (tree) |
6304 | 0 | { |
6305 | 0 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6306 | 0 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6307 | 0 | } |
6308 | 0 | } |
6309 | | |
6310 | | static void |
6311 | | dissect_r3_cmdmfg_peekpoke (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo, proto_tree *tree) |
6312 | 7 | { |
6313 | 7 | int i; |
6314 | 7 | int len; |
6315 | | |
6316 | 7 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6317 | 7 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6318 | | |
6319 | 7 | start_offset += 2; |
6320 | 7 | len = tvb_reported_length_remaining (tvb, start_offset); |
6321 | | |
6322 | 64 | for (i = 0; i < len; i += 3) |
6323 | 64 | { |
6324 | 64 | proto_item *peekpoke_item; |
6325 | 64 | proto_item *peekpoke_op_item; |
6326 | 64 | proto_tree *peekpoke_tree; |
6327 | | |
6328 | 64 | peekpoke_tree = proto_tree_add_subtree(tree, tvb, start_offset + i, 3, ett_r3peekpoke, &peekpoke_item, ""); |
6329 | | |
6330 | 64 | peekpoke_op_item = proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_operation, tvb, start_offset + i + 0, 1, ENC_LITTLE_ENDIAN); |
6331 | 64 | proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_address, tvb, start_offset + i + 1, 2, ENC_LITTLE_ENDIAN); |
6332 | | |
6333 | 64 | switch (tvb_get_uint8 (tvb, start_offset + i + 0)) |
6334 | 64 | { |
6335 | 48 | case PEEKPOKE_READU8 : |
6336 | 48 | proto_item_append_text (peekpoke_item, "Read (8 Bits @ 0x%04x)", tvb_get_letohs (tvb, start_offset + i + 1)); |
6337 | 48 | break; |
6338 | | |
6339 | 0 | case PEEKPOKE_READU16 : |
6340 | 0 | proto_item_append_text (peekpoke_item, "Read (16 Bits @ 0x%04x)", tvb_get_letohs (tvb, start_offset + i + 1)); |
6341 | 0 | break; |
6342 | | |
6343 | 2 | case PEEKPOKE_READU24 : |
6344 | 2 | proto_item_append_text (peekpoke_item, "Read (24 Bits @ 0x%04x)", tvb_get_letohs (tvb, start_offset + i + 1)); |
6345 | 2 | break; |
6346 | | |
6347 | 0 | case PEEKPOKE_READU32 : |
6348 | 0 | proto_item_append_text (peekpoke_item, "Read (32 Bits @ 0x%04x)", tvb_get_letohs (tvb, start_offset + i + 1)); |
6349 | 0 | break; |
6350 | | |
6351 | 0 | case PEEKPOKE_READSTRING : |
6352 | 0 | proto_item_append_text (peekpoke_item, |
6353 | 0 | "Read (%d Bytes @ 0x%04x)", |
6354 | 0 | tvb_get_uint8 (tvb, start_offset + i + 3), |
6355 | 0 | tvb_get_letohs (tvb, start_offset + i + 1)); |
6356 | 0 | proto_item_set_len (peekpoke_item, 4); |
6357 | 0 | proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_length, tvb, start_offset + i + 3, 1, ENC_LITTLE_ENDIAN); |
6358 | 0 | i += 1; |
6359 | 0 | break; |
6360 | | |
6361 | 1 | case PEEKPOKE_WRITEU8 : |
6362 | 1 | proto_item_append_text (peekpoke_item, |
6363 | 1 | "Write (8 Bits: 0x%02x @ 0x%04x)", |
6364 | 1 | tvb_get_uint8 (tvb, start_offset + i + 3), |
6365 | 1 | tvb_get_letohs (tvb, start_offset + i + 1)); |
6366 | 1 | proto_item_set_len (peekpoke_item, 4); |
6367 | 1 | proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_poke8, tvb, start_offset + i + 3, 1, ENC_LITTLE_ENDIAN); |
6368 | 1 | i += 1; |
6369 | 1 | break; |
6370 | | |
6371 | 1 | case PEEKPOKE_WRITEU16 : |
6372 | 1 | proto_item_append_text (peekpoke_item, |
6373 | 1 | "Write (16 Bits: 0x%04x @ 0x%04x)", |
6374 | 1 | tvb_get_letohs (tvb, start_offset + i + 3), |
6375 | 1 | tvb_get_letohs (tvb, start_offset + i + 1)); |
6376 | 1 | proto_item_set_len (peekpoke_item, 5); |
6377 | 1 | proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_poke16, tvb, start_offset + i + 3, 2, ENC_LITTLE_ENDIAN); |
6378 | 1 | i += 2; |
6379 | 1 | break; |
6380 | | |
6381 | 0 | case PEEKPOKE_WRITEU24 : |
6382 | 0 | proto_item_append_text (peekpoke_item, |
6383 | 0 | "Write (24 Bits: 0x%06x @ 0x%04x)", |
6384 | 0 | tvb_get_letoh24 (tvb, start_offset + i + 3), |
6385 | 0 | tvb_get_letohs (tvb, start_offset + i + 1)); |
6386 | 0 | proto_item_set_len (peekpoke_item, 6); |
6387 | 0 | proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_poke24, tvb, start_offset + i + 3, 3, ENC_LITTLE_ENDIAN); |
6388 | 0 | i += 3; |
6389 | 0 | break; |
6390 | | |
6391 | 0 | case PEEKPOKE_WRITEU32 : |
6392 | 0 | proto_item_append_text (peekpoke_item, |
6393 | 0 | "Write (32 Bits: 0x%08x @ 0x%04x)", |
6394 | 0 | tvb_get_letohl (tvb, start_offset + i + 3), |
6395 | 0 | tvb_get_letohs (tvb, start_offset + i + 1)); |
6396 | 0 | proto_item_set_len (peekpoke_item, 7); |
6397 | 0 | proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_poke32, tvb, start_offset + i + 3, 4, ENC_LITTLE_ENDIAN); |
6398 | 0 | i += 4; |
6399 | 0 | break; |
6400 | | |
6401 | 5 | case PEEKPOKE_WRITESTRING : |
6402 | 5 | proto_item_append_text (peekpoke_item, |
6403 | 5 | "Write (%d Bytes @ 0x%04x)", |
6404 | 5 | tvb_get_uint8 (tvb, start_offset + i + 3), |
6405 | 5 | tvb_get_letohs (tvb, start_offset + i + 1)); |
6406 | 5 | proto_item_set_len (peekpoke_item, 3 + 1 + tvb_get_uint8 (tvb, start_offset + i + 3)); |
6407 | 5 | proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_length, tvb, start_offset + i + 3, 1, ENC_LITTLE_ENDIAN); |
6408 | 5 | proto_tree_add_item (peekpoke_tree, hf_r3_peekpoke_pokestring, tvb, start_offset + i + 4, |
6409 | 5 | tvb_get_uint8 (tvb, start_offset + i + 3), ENC_NA); |
6410 | 5 | i += tvb_get_uint8 (tvb, start_offset + i + 3) + 1; |
6411 | 5 | break; |
6412 | | |
6413 | 7 | default : |
6414 | 7 | expert_add_info_format(pinfo, peekpoke_op_item, &ei_r3_peekpoke_operation, "Unknown Mfg peekpoke operation value"); |
6415 | 7 | return; /* quit */ |
6416 | 64 | } |
6417 | 64 | } |
6418 | 7 | } |
6419 | | |
6420 | | static void |
6421 | | dissect_r3_cmdmfg_lockstate (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6422 | 0 | { |
6423 | 0 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6424 | 0 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6425 | 0 | } |
6426 | | |
6427 | | static void |
6428 | | dissect_r3_cmdmfg_capabilities (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6429 | 2 | { |
6430 | 2 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6431 | 2 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6432 | 2 | } |
6433 | | |
6434 | | static void |
6435 | | dissect_r3_cmdmfg_dumpm41t81 (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6436 | 1 | { |
6437 | 1 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6438 | 1 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6439 | 1 | } |
6440 | | |
6441 | | static void |
6442 | | dissect_r3_cmdmfg_debuglogdump (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6443 | 4 | { |
6444 | 4 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6445 | 4 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6446 | 4 | } |
6447 | | |
6448 | | static void |
6449 | | dissect_r3_cmdmfg_debuglogclear (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6450 | 7 | { |
6451 | 7 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6452 | 7 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6453 | 7 | } |
6454 | | |
6455 | | static void |
6456 | | dissect_r3_cmdmfg_testwdt (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6457 | 1 | { |
6458 | 1 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6459 | 1 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6460 | 1 | } |
6461 | | |
6462 | | static void |
6463 | | dissect_r3_cmdmfg_querycksum (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6464 | 2 | { |
6465 | 2 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6466 | 2 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6467 | 2 | } |
6468 | | |
6469 | | static void |
6470 | | dissect_r3_cmdmfg_validatechecksums (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6471 | 0 | { |
6472 | 0 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6473 | 0 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6474 | 0 | } |
6475 | | |
6476 | | static void |
6477 | | dissect_r3_cmdmfg_rebuildlrucache (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6478 | 1 | { |
6479 | 1 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6480 | 1 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6481 | 1 | } |
6482 | | |
6483 | | static void |
6484 | | dissect_r3_cmdmfg_tzupdate (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6485 | 19 | { |
6486 | 19 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6487 | 19 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6488 | 19 | } |
6489 | | |
6490 | | static void |
6491 | | dissect_r3_cmdmfg_testpreserve (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6492 | 4 | { |
6493 | 4 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6494 | 4 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6495 | 4 | proto_tree_add_item (tree, hf_r3_mfgtestpreserve, tvb, start_offset + 2, 1, ENC_LITTLE_ENDIAN); |
6496 | 4 | } |
6497 | | |
6498 | | static void |
6499 | | dissect_r3_cmdmfg_mortisestatelogdump (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6500 | 1 | { |
6501 | 1 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6502 | 1 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6503 | 1 | } |
6504 | | |
6505 | | static void |
6506 | | dissect_r3_cmdmfg_mortisestatelogclear (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6507 | 3 | { |
6508 | 3 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6509 | 3 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6510 | 3 | } |
6511 | | |
6512 | | static void |
6513 | | dissect_r3_cmdmfg_mortisepins (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6514 | 0 | { |
6515 | 0 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6516 | 0 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6517 | 0 | } |
6518 | | |
6519 | | static void |
6520 | | dissect_r3_cmdmfg_haltandcatchfire (tvbuff_t *tvb, uint32_t start_offset, uint32_t length _U_, packet_info *pinfo _U_, proto_tree *tree) |
6521 | 1 | { |
6522 | 1 | proto_tree_add_item (tree, hf_r3_commandmfglength, tvb, start_offset + 0, 1, ENC_LITTLE_ENDIAN); |
6523 | 1 | proto_tree_add_item (tree, hf_r3_commandmfg, tvb, start_offset + 1, 1, ENC_LITTLE_ENDIAN); |
6524 | 1 | } |
6525 | | |
6526 | | /* |
6527 | | */ |
6528 | | static int |
6529 | | dissect_r3_command (tvbuff_t *tvb, uint32_t start_offset, uint32_t length, packet_info *pinfo, proto_tree *r3_tree) |
6530 | 4.24k | { |
6531 | 4.24k | proto_item *cmd_item; |
6532 | 4.24k | proto_tree *cmd_tree; |
6533 | 4.24k | const char *cn; |
6534 | 4.24k | uint8_t cmdLen; |
6535 | 4.24k | uint8_t cmd; |
6536 | | |
6537 | 4.24k | tvb_ensure_bytes_exist (tvb, start_offset, 2); |
6538 | | |
6539 | 4.24k | cmdLen = tvb_get_uint8 (tvb, start_offset + 0); |
6540 | 4.24k | cmd = tvb_get_uint8 (tvb, start_offset + 1); |
6541 | | |
6542 | 4.24k | if (!mfgCommandFlag) |
6543 | 4.06k | cn = val_to_str_ext_const (cmd, &r3_cmdnames_ext, "[Unknown Command]"); |
6544 | 182 | else |
6545 | 182 | cn = val_to_str_ext_const (cmd, &r3_cmdmfgnames_ext, "[Unknown Mfg Command]"); |
6546 | | |
6547 | 4.24k | cmd_tree = proto_tree_add_subtree_format(r3_tree, tvb, start_offset, cmdLen, |
6548 | 4.24k | ett_r3cmd, &cmd_item, "Command Packet: %s (%d)", cn, cmd); |
6549 | | |
6550 | 4.24k | if (!mfgCommandFlag) |
6551 | 4.06k | { |
6552 | 4.06k | if (cmd >= CMD_LAST) |
6553 | 960 | expert_add_info(pinfo, cmd_item, &ei_r3_unknown_command_value); |
6554 | 3.10k | else if (r3command_dissect [cmd]) |
6555 | 3.10k | (*r3command_dissect [cmd]) (tvb, start_offset, length, pinfo, cmd_tree); |
6556 | 4.06k | } |
6557 | 182 | else |
6558 | 182 | { |
6559 | 182 | mfgCommandFlag = false; |
6560 | | |
6561 | 182 | if (cmd >= CMDMFG_LAST) |
6562 | 14 | { |
6563 | 14 | expert_add_info_format(pinfo, proto_tree_get_parent (cmd_tree), &ei_r3_unknown_command_value, "Unknown manufacturing command value"); |
6564 | 14 | } |
6565 | 168 | else if (r3commandmfg_dissect [cmd]) |
6566 | 102 | (*r3commandmfg_dissect [cmd]) (tvb, start_offset, length, pinfo, cmd_tree); |
6567 | 182 | } |
6568 | | |
6569 | 4.24k | return tvb_get_uint8 (tvb, start_offset + 0); |
6570 | 4.24k | } |
6571 | | |
6572 | | /* |
6573 | | * *************************************************************************** |
6574 | | * |
6575 | | * Dissect a single r3 PDU |
6576 | | * |
6577 | | * return: amount consumed |
6578 | | */ |
6579 | | static int |
6580 | | dissect_r3_packet (tvbuff_t *tvb, packet_info *pinfo, proto_tree *r3_tree) |
6581 | 2.68k | { |
6582 | 2.68k | proto_item *payload_item = NULL; |
6583 | 2.68k | proto_tree *payload_tree = NULL; |
6584 | 2.68k | unsigned offset = 0; |
6585 | 2.68k | uint32_t packetLen; |
6586 | 2.68k | unsigned octConsumed; |
6587 | | |
6588 | 2.68k | if (tvb_strneql (tvb, 0, "~~~ds", 5) == 0) |
6589 | 2 | { |
6590 | 2 | if (r3_tree) |
6591 | 2 | proto_tree_add_item (r3_tree, hf_r3_tildex3ds, tvb, 0, -1, ENC_ASCII); |
6592 | | |
6593 | 2 | return 5; |
6594 | 2 | } |
6595 | | |
6596 | | /* |
6597 | | * Show basic header stuff |
6598 | | */ |
6599 | 2.67k | if (r3_tree) |
6600 | 2.67k | { |
6601 | 2.67k | proto_item *header_item = proto_tree_add_item (r3_tree, hf_r3_header, tvb, 0, 5, ENC_NA); |
6602 | 2.67k | proto_tree *header_tree = proto_item_add_subtree (header_item, ett_r3header); |
6603 | | |
6604 | 2.67k | proto_tree_add_item (header_tree, hf_r3_sigil, tvb, 0, 1, ENC_LITTLE_ENDIAN); |
6605 | 2.67k | proto_tree_add_item (header_tree, hf_r3_address, tvb, 1, 1, ENC_LITTLE_ENDIAN); |
6606 | 2.67k | proto_tree_add_item (header_tree, hf_r3_packetnumber, tvb, 2, 1, ENC_LITTLE_ENDIAN); |
6607 | 2.67k | proto_tree_add_item (header_tree, hf_r3_packetlength, tvb, 3, 1, ENC_LITTLE_ENDIAN); |
6608 | 2.67k | proto_tree_add_item (header_tree, hf_r3_encryption, tvb, 4, 1, ENC_LITTLE_ENDIAN); |
6609 | 2.67k | } |
6610 | | |
6611 | | /* Note: packetLen == tvb_reported_length() */ |
6612 | | |
6613 | 2.67k | packetLen = tvb_get_uint8 (tvb, 3); |
6614 | | |
6615 | 2.67k | if (r3_tree) |
6616 | 2.48k | { |
6617 | 2.48k | payload_item = proto_tree_add_item (r3_tree, hf_r3_payload, tvb, 5, -1, ENC_NA); |
6618 | 2.48k | payload_tree = proto_item_add_subtree (payload_item, ett_r3payload); |
6619 | 2.48k | } |
6620 | | |
6621 | 2.67k | offset = 5; |
6622 | | |
6623 | 2.67k | mfgCommandFlag = false; /* XXX: Assumption: mfgCmd always follows Cmd in same r3 "packet" */ |
6624 | 6.77k | while (offset < (packetLen - 3)) |
6625 | 4.24k | { |
6626 | 4.24k | octConsumed = dissect_r3_command (tvb, offset, 0, pinfo, payload_tree); |
6627 | 4.24k | if(octConsumed == 0) |
6628 | 148 | { |
6629 | 148 | expert_add_info_format(pinfo, proto_tree_get_parent (payload_tree), &ei_r3_malformed_length, |
6630 | 148 | "Command length equal to 0. Payload could be partially decoded"); |
6631 | 148 | offset = tvb_reported_length (tvb) - 3; /* just do CRC stuff ?? */ |
6632 | 148 | break; |
6633 | 148 | } |
6634 | 4.09k | offset += octConsumed; |
6635 | 4.09k | } |
6636 | | |
6637 | | /* |
6638 | | * Show the CRC and XOR status |
6639 | | */ |
6640 | 2.67k | if (r3_tree) |
6641 | 1.68k | { |
6642 | 1.68k | proto_item *tail_item = proto_tree_add_item (r3_tree, hf_r3_tail, tvb, offset, 3, ENC_NA); |
6643 | 1.68k | proto_tree *tail_tree = proto_item_add_subtree (tail_item, ett_r3tail); |
6644 | 1.68k | uint32_t packetCRC = tvb_get_letohs (tvb, offset); |
6645 | 1.68k | uint32_t packetXor = tvb_get_uint8 (tvb, offset + 2); |
6646 | 1.68k | uint32_t calculatedCRC; |
6647 | | |
6648 | 1.68k | if ((calculatedCRC = crc16_r3_ccitt_tvb(tvb, 1, packetLen - 3)) == packetCRC) |
6649 | 0 | proto_tree_add_uint_format_value(tail_tree, hf_r3_crc, tvb, offset, 2, packetCRC, "0x%04x (correct)", packetCRC); |
6650 | 1.68k | else |
6651 | 1.68k | { |
6652 | 1.68k | proto_item *tmp_item; |
6653 | | |
6654 | 1.68k | proto_tree_add_uint_format_value(tail_tree, hf_r3_crc, tvb, offset, 2, packetCRC, |
6655 | 1.68k | "0x%04x (incorrect, should be 0x%04x)", calculatedCRC, packetCRC); |
6656 | 1.68k | tmp_item = proto_tree_add_boolean (tail_tree, hf_r3_crc_bad, tvb, offset, 2, true); |
6657 | 1.68k | proto_item_set_generated (tmp_item); |
6658 | 1.68k | } |
6659 | | |
6660 | 1.68k | if ((packetLen ^ 0xff) == packetXor) |
6661 | 3 | proto_tree_add_uint_format_value(tail_tree, hf_r3_xor, tvb, offset + 2, 1, packetXor, |
6662 | 3 | "0x%02x (correct)", packetXor); |
6663 | 1.68k | else |
6664 | 1.68k | { |
6665 | 1.68k | proto_item *tmp_item; |
6666 | | |
6667 | 1.68k | proto_tree_add_uint_format_value(tail_tree, hf_r3_xor, tvb, offset + 7, 1, packetXor, |
6668 | 1.68k | "0x%02x (incorrect, should be 0x%02x)", packetXor, packetLen ^ 0xff); |
6669 | 1.68k | tmp_item = proto_tree_add_boolean (tail_tree, hf_r3_xor_bad, tvb, offset + 7, 1, true); |
6670 | 1.68k | proto_item_set_generated (tmp_item); |
6671 | 1.68k | } |
6672 | 1.68k | } |
6673 | | |
6674 | 2.67k | offset += 3; |
6675 | | |
6676 | 2.67k | return offset; |
6677 | 2.68k | } |
6678 | | |
6679 | | /* |
6680 | | * *************************************************************************** |
6681 | | * |
6682 | | * Main dissector entry points |
6683 | | */ |
6684 | | static int |
6685 | | dissect_r3_message (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) |
6686 | 2.68k | { |
6687 | 2.68k | proto_tree *r3_tree = NULL; |
6688 | | |
6689 | 2.68k | col_set_str (pinfo->cinfo, COL_PROTOCOL, "R3"); |
6690 | 2.68k | col_clear (pinfo->cinfo, COL_INFO); |
6691 | | |
6692 | | /* Note: The tvb (provided via tcp_dissect_pdus()) will contain (at most) one PDU of the length |
6693 | | * specified via get_r3_message_len() |
6694 | | */ |
6695 | | |
6696 | 2.68k | if (tree) |
6697 | 2.68k | { |
6698 | 2.68k | proto_item *r3_item; |
6699 | 2.68k | r3_item = proto_tree_add_item (tree, proto_r3, tvb, 0, -1, ENC_NA); |
6700 | 2.68k | r3_tree = proto_item_add_subtree (r3_item, ett_r3); |
6701 | 2.68k | } |
6702 | | |
6703 | 2.68k | dissect_r3_packet (tvb, pinfo, r3_tree); |
6704 | | |
6705 | 2.68k | return tvb_reported_length(tvb); |
6706 | 2.68k | } |
6707 | | |
6708 | | static unsigned |
6709 | | get_r3_message_len (packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_) |
6710 | 2.83k | { |
6711 | 2.83k | return (unsigned) tvb_get_uint8 (tvb, offset + 3) + 1; |
6712 | 2.83k | } |
6713 | | |
6714 | | static int |
6715 | | dissect_r3 (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) |
6716 | 504 | { |
6717 | 504 | tcp_dissect_pdus (tvb, pinfo, tree, true, 4, get_r3_message_len, dissect_r3_message, data); |
6718 | 504 | return tvb_reported_length(tvb); |
6719 | 504 | } |
6720 | | |
6721 | | /* |
6722 | | * *************************************************************************** |
6723 | | */ |
6724 | | void proto_register_r3 (void) |
6725 | 15 | { |
6726 | | |
6727 | | /* Setup list of header fields */ |
6728 | 15 | static hf_register_info hf [] = |
6729 | 15 | { |
6730 | 15 | { &hf_r3_tildex3ds, |
6731 | 15 | { "DPAC Attention", "r3.dpac_attention", |
6732 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
6733 | 15 | NULL, HFILL } |
6734 | 15 | }, |
6735 | | |
6736 | 15 | { &hf_r3_header, |
6737 | 15 | { "Header", "r3.header", |
6738 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
6739 | 15 | NULL, HFILL } |
6740 | 15 | }, |
6741 | 15 | { &hf_r3_payload, |
6742 | 15 | { "Payload", "r3.payload", |
6743 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
6744 | 15 | NULL, HFILL } |
6745 | 15 | }, |
6746 | 15 | { &hf_r3_tail, |
6747 | 15 | { "Tail", "r3.tail", |
6748 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
6749 | 15 | NULL, HFILL } |
6750 | 15 | }, |
6751 | | |
6752 | 15 | { &hf_r3_sigil, |
6753 | 15 | { "Sigil", "r3.sigil", |
6754 | 15 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6755 | 15 | NULL, HFILL } |
6756 | 15 | }, |
6757 | 15 | { &hf_r3_address, |
6758 | 15 | { "Address", "r3.address", |
6759 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
6760 | 15 | NULL, HFILL } |
6761 | 15 | }, |
6762 | 15 | { &hf_r3_packetnumber, |
6763 | 15 | { "Packet Number", "r3.packetnumber", |
6764 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
6765 | 15 | NULL, HFILL } |
6766 | 15 | }, |
6767 | 15 | { &hf_r3_packetlength, |
6768 | 15 | { "Packet Length", "r3.packetlength", |
6769 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
6770 | 15 | NULL, HFILL } |
6771 | 15 | }, |
6772 | 15 | { &hf_r3_encryption, |
6773 | 15 | { "Crypt Type", "r3.encryption", |
6774 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_encryptionschemenames_ext, 0x0, |
6775 | 15 | NULL, HFILL } |
6776 | 15 | }, |
6777 | 15 | { &hf_r3_crc, |
6778 | 15 | { "CRC", "r3.crc", |
6779 | 15 | FT_UINT16, BASE_HEX, NULL, 0x0, |
6780 | 15 | NULL, HFILL } |
6781 | 15 | }, |
6782 | 15 | { &hf_r3_crc_bad, |
6783 | 15 | { "Bad CRC", "r3.crc_bad", |
6784 | 15 | FT_BOOLEAN, BASE_NONE, NULL, 0x0, |
6785 | 15 | NULL, HFILL } |
6786 | 15 | }, |
6787 | 15 | { &hf_r3_xor, |
6788 | 15 | { "XOR", "r3.xor", |
6789 | 15 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6790 | 15 | NULL, HFILL } |
6791 | 15 | }, |
6792 | 15 | { &hf_r3_xor_bad, |
6793 | 15 | { "Bad XOR", "r3.xor_bad", |
6794 | 15 | FT_BOOLEAN, BASE_NONE, NULL, 0x0, |
6795 | 15 | NULL, HFILL } |
6796 | 15 | }, |
6797 | | |
6798 | 15 | { &hf_r3_commandlength, |
6799 | 15 | { "Command Length", "r3.command.length", |
6800 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
6801 | 15 | NULL, HFILL } |
6802 | 15 | }, |
6803 | 15 | { &hf_r3_command, |
6804 | 15 | { "Command", "r3.command.command", |
6805 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_cmdnames_ext, 0x0, |
6806 | 15 | NULL, HFILL } |
6807 | 15 | }, |
6808 | 15 | { &hf_r3_commanddata, |
6809 | 15 | { "Command Data", "r3.command.data", |
6810 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
6811 | 15 | NULL, HFILL } |
6812 | 15 | }, |
6813 | | |
6814 | 15 | { &hf_r3_commandmfglength, |
6815 | 15 | { "Mfg Command Length", "r3.commandmfg.length", |
6816 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
6817 | 15 | NULL, HFILL } |
6818 | 15 | }, |
6819 | 15 | { &hf_r3_commandmfg, |
6820 | 15 | { "Mfg Command", "r3.commandmfg.command", |
6821 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_cmdmfgnames_ext, 0x0, |
6822 | 15 | NULL, HFILL } |
6823 | 15 | }, |
6824 | | #if 0 |
6825 | | { &hf_r3_commandmfgdata, |
6826 | | { "Mfg Command Data", "r3.commandmfg.data", |
6827 | | FT_NONE, BASE_NONE, NULL, 0x0, |
6828 | | NULL, HFILL } |
6829 | | }, |
6830 | | #endif |
6831 | | |
6832 | 15 | { &hf_r3_responselength, |
6833 | 15 | { "Response Length", "r3.response.length", |
6834 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
6835 | 15 | NULL, HFILL } |
6836 | 15 | }, |
6837 | 15 | { &hf_r3_responsecommand, |
6838 | 15 | { "Response Command", "r3.response.command", |
6839 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_cmdnames_ext, 0x0, |
6840 | 15 | NULL, HFILL } |
6841 | 15 | }, |
6842 | 15 | { &hf_r3_responsetype, |
6843 | 15 | { "Response Type", "r3.response.responsetype", |
6844 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_responsetypenames_ext, 0x0, |
6845 | 15 | NULL, HFILL } |
6846 | 15 | }, |
6847 | 15 | { &hf_r3_responsetocommand, |
6848 | 15 | { "Response To Command", "r3.response.to_command", |
6849 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_cmdnames_ext, 0x0, |
6850 | 15 | NULL, HFILL } |
6851 | 15 | }, |
6852 | | #if 0 |
6853 | | { &hf_r3_responsedata, |
6854 | | { "Response Data", "r3.response.data", |
6855 | | FT_NONE, BASE_NONE, NULL, 0x0, |
6856 | | NULL, HFILL } |
6857 | | }, |
6858 | | #endif |
6859 | | |
6860 | 15 | { &hf_r3_upstreamcommand, |
6861 | 15 | { "Upstream Command", "r3.upstreamcommand.command", |
6862 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_upstreamcommandnames_ext, 0x0, |
6863 | 15 | NULL, HFILL } |
6864 | 15 | }, |
6865 | | |
6866 | 15 | { &hf_r3_upstreamfield, |
6867 | 15 | { "Upstream Field", "r3.upstreamfield", |
6868 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
6869 | 15 | NULL, HFILL } |
6870 | 15 | }, |
6871 | 15 | { &hf_r3_upstreamfieldlength, |
6872 | 15 | { "Field Length", "r3.upstreamfield.length", |
6873 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
6874 | 15 | NULL, HFILL } |
6875 | 15 | }, |
6876 | 15 | { &hf_r3_upstreamfieldtype, |
6877 | 15 | { "Field Type", "r3.upstreamfield.type", |
6878 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_upstreamfieldnames_ext, 0x0, |
6879 | 15 | NULL, HFILL } |
6880 | 15 | }, |
6881 | | #if 0 |
6882 | | { &hf_r3_upstreamfielddatalen, |
6883 | | { "Data Length", "r3.upstreamfield.datalen", |
6884 | | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
6885 | | NULL, HFILL } |
6886 | | }, |
6887 | | #endif |
6888 | 15 | { &hf_r3_upstreamfielderror, |
6889 | 15 | { "Error", "r3.upstreamfield.error", |
6890 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
6891 | 15 | NULL, HFILL } |
6892 | 15 | }, |
6893 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_SERIALNUMBER], |
6894 | 15 | { "Serial Number", "r3.upstreamfield.serialnumber", |
6895 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
6896 | 15 | NULL, HFILL } |
6897 | 15 | }, |
6898 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_NAR], |
6899 | 15 | { "Next Available Record", "r3.upstreamfield.nar", |
6900 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6901 | 15 | NULL, HFILL } |
6902 | 15 | }, |
6903 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_ENTRYDEVICE], |
6904 | 15 | { "Entry Device", "r3.upstreamfield.entrydevice", |
6905 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_ppmisourcenames_ext, 0x0, |
6906 | 15 | NULL, HFILL } |
6907 | 15 | }, |
6908 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_PPMIFIELDTYPE], |
6909 | 15 | { "PPMI Field Type", "r3.upstreamfield.ppmifieldtype", |
6910 | 15 | FT_UINT8, BASE_HEX_DEC|BASE_EXT_STRING, &r3_ppmisourcenames_ext, 0x0, |
6911 | 15 | NULL, HFILL } |
6912 | 15 | }, |
6913 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_PIN], |
6914 | 15 | { "PIN", "r3.upstreamfield.pin", |
6915 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
6916 | 15 | NULL, HFILL } |
6917 | 15 | }, |
6918 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_SEQUENCENUMBER], |
6919 | 15 | { "Sequence Number", "r3.upstreamfield.sequencenumber", |
6920 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6921 | 15 | NULL, HFILL } |
6922 | 15 | }, |
6923 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_RESPONSEWINDOW], |
6924 | 15 | { "Response Window", "r3.upstreamfield.responsewindow", |
6925 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
6926 | 15 | NULL, HFILL } |
6927 | 15 | }, |
6928 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_USERNUMBER], |
6929 | 15 | { "User Number", "r3.upstreamfield.usernumber", |
6930 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6931 | 15 | NULL, HFILL } |
6932 | 15 | }, |
6933 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_VERSION], |
6934 | 15 | { "Version", "r3.upstreamfield.version", |
6935 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
6936 | 15 | NULL, HFILL } |
6937 | 15 | }, |
6938 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_EVENTLOGRECORD], |
6939 | 15 | { "Event Log Record", "r3.upstreamfield.eventlogrecord", |
6940 | 15 | FT_BYTES, BASE_NONE, NULL, 0x0, |
6941 | 15 | NULL, HFILL } |
6942 | 15 | }, |
6943 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_DATETIME], |
6944 | 15 | { "Date/Time", "r3.upstreamfield.datetime", |
6945 | 15 | FT_BYTES, BASE_NONE, NULL, 0x0, |
6946 | 15 | NULL, HFILL } |
6947 | 15 | }, |
6948 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_EVENTLOGRECORDCOUNT], |
6949 | 15 | { "Event Log Record Count", "r3.upstreamfield.eventlogrecordcount", |
6950 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6951 | 15 | NULL, HFILL } |
6952 | 15 | }, |
6953 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_DECLINEDRECORDCOUNT], |
6954 | 15 | { "Declined Log Record", "r3.upstreamfield.declinedlogrecord", |
6955 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
6956 | 15 | NULL, HFILL } |
6957 | 15 | }, |
6958 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_DECLINEDRECORD], |
6959 | 15 | { "Declined Log", "r3.upstreamfield.declinedlog", |
6960 | 15 | FT_BYTES, BASE_NONE, NULL, 0x0, |
6961 | 15 | NULL, HFILL } |
6962 | 15 | }, |
6963 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_USERTYPE], |
6964 | 15 | { "User Type", "r3.upstreamfield.usertype", |
6965 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_usertypenames_ext, 0x0, |
6966 | 15 | NULL, HFILL } |
6967 | 15 | }, |
6968 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_ACCESSALWAYS], |
6969 | 15 | { "Access Always", "r3.upstreamfield.accessalways", |
6970 | 15 | FT_BOOLEAN, BASE_NONE, NULL, 0x0, |
6971 | 15 | NULL, HFILL } |
6972 | 15 | }, |
6973 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_CACHED], |
6974 | 15 | { "Cached", "r3.upstreamfield.cached", |
6975 | 15 | FT_BOOLEAN, BASE_NONE, NULL, 0x0, |
6976 | 15 | NULL, HFILL } |
6977 | 15 | }, |
6978 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_PRIMARYFIELDTYPE], |
6979 | 15 | { "Primary Field Type", "r3.upstreamfield.primaryfieldtype", |
6980 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_ppmisourcenames_ext, 0x0, |
6981 | 15 | NULL, HFILL } |
6982 | 15 | }, |
6983 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_AUXFIELDTYPE], |
6984 | 15 | { "Aux Field Type", "r3.upstreamfield.auxfieldtype", |
6985 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_ppmisourcenames_ext, 0x0, |
6986 | 15 | NULL, HFILL } |
6987 | 15 | }, |
6988 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_ACCESSMODE], |
6989 | 15 | { "Access Mode", "r3.upstreamfield.accessmode", |
6990 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_accessmodenames_ext, 0x0, |
6991 | 15 | NULL, HFILL } |
6992 | 15 | }, |
6993 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_EXPIREON], |
6994 | 15 | { "Expire On", "r3.upstreamfield.expireon", |
6995 | 15 | FT_UINT24, BASE_HEX, NULL, 0x0, |
6996 | 15 | NULL, HFILL } |
6997 | 15 | }, |
6998 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_USECOUNT], |
6999 | 15 | { "Use Count", "r3.upstreamfield.usecount", |
7000 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7001 | 15 | NULL, HFILL } |
7002 | 15 | }, |
7003 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_TIMEZONE], |
7004 | 15 | { "Timezone", "r3.upstreamfield.timezone", |
7005 | 15 | FT_UINT32, BASE_HEX, NULL, 0x0, |
7006 | 15 | NULL, HFILL } |
7007 | 15 | }, |
7008 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_EXCEPTIONGROUP], |
7009 | 15 | { "Exception Group", "r3.upstreamfield.exceptiongroup", |
7010 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7011 | 15 | NULL, HFILL } |
7012 | 15 | }, |
7013 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_PRIMARYPIN], |
7014 | 15 | { "Primary PIN", "r3.upstreamfield.primarypin", |
7015 | 15 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7016 | 15 | NULL, HFILL } |
7017 | 15 | }, |
7018 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_AUXPIN], |
7019 | 15 | { "Aux PIN", "r3.upstreamfield.auxpin", |
7020 | 15 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7021 | 15 | NULL, HFILL } |
7022 | 15 | }, |
7023 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_ALARMRECORDCOUNT], |
7024 | 15 | { "Alarm Record Count", "r3.upstreamfield.alarmrecordcount", |
7025 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
7026 | 15 | NULL, HFILL } |
7027 | 15 | }, |
7028 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_ALARMRECORD], |
7029 | 15 | { "Alarm Record", "r3.upstreamfield.alarmrecord", |
7030 | 15 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7031 | 15 | NULL, HFILL } |
7032 | 15 | }, |
7033 | 15 | { &hf_r3_upstreamfieldarray [UPSTREAMFIELD_AUXCTLRVERSION], |
7034 | 15 | { "Aux Controller Version", "r3.upstreamfield.auxctlrversion", |
7035 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
7036 | 15 | NULL, HFILL } |
7037 | 15 | }, |
7038 | | |
7039 | 15 | { &hf_r3_configitems, |
7040 | 15 | { "Configuration Item List", "r3.configitems", |
7041 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
7042 | 15 | NULL, HFILL } |
7043 | 15 | }, |
7044 | 15 | { &hf_r3_configitem, |
7045 | 15 | { "Configuration Item", "r3.configitem", |
7046 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_configitemnames_ext, 0x0, |
7047 | 15 | NULL, HFILL } |
7048 | 15 | }, |
7049 | | #if 0 |
7050 | | { &hf_r3_configfield, |
7051 | | { "Config Field", "r3.configfield", |
7052 | | FT_NONE, BASE_NONE, NULL, 0x0, |
7053 | | NULL, HFILL } |
7054 | | }, |
7055 | | #endif |
7056 | 15 | { &hf_r3_configitemlength, |
7057 | 15 | { "Configuration Item Length", "r3.configitem.length", |
7058 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7059 | 15 | NULL, HFILL } |
7060 | 15 | }, |
7061 | 15 | { &hf_r3_configitemtype, |
7062 | 15 | { "Configuration Item Type", "r3.configitem.type", |
7063 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_configtypenames_ext, 0x0, |
7064 | 15 | NULL, HFILL } |
7065 | 15 | }, |
7066 | 15 | { &hf_r3_configitemdata, |
7067 | 15 | { "Configuration Item Data", "r3.configitem.data", |
7068 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
7069 | 15 | NULL, HFILL } |
7070 | 15 | }, |
7071 | 15 | { &hf_r3_configitemdata_bool, |
7072 | 15 | { "Configuration Item Boolean", "r3.configitem.data_boolean", |
7073 | 15 | FT_BOOLEAN, BASE_NONE, NULL, 0x0, |
7074 | 15 | NULL, HFILL } |
7075 | 15 | }, |
7076 | 15 | { &hf_r3_configitemdata_8, |
7077 | 15 | { "Configuration Item 8-bit", "r3.configitem.data_8", |
7078 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7079 | 15 | NULL, HFILL } |
7080 | 15 | }, |
7081 | 15 | { &hf_r3_configitemdata_16, |
7082 | 15 | { "Configuration Item 16-bit", "r3.configitem.data_16", |
7083 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
7084 | 15 | NULL, HFILL } |
7085 | 15 | }, |
7086 | 15 | { &hf_r3_configitemdata_32, |
7087 | 15 | { "Configuration Item 32-bit", "r3.configitem.data_32", |
7088 | 15 | FT_UINT32, BASE_DEC_HEX, NULL, 0x0, |
7089 | 15 | NULL, HFILL } |
7090 | 15 | }, |
7091 | 15 | { &hf_r3_configitemdata_string, |
7092 | 15 | { "Configuration Item String", "r3.configitem.data_string", |
7093 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
7094 | 15 | NULL, HFILL } |
7095 | 15 | }, |
7096 | | |
7097 | 15 | { &hf_r3_timezonearray0, |
7098 | 15 | { "Timezone 0", "r3.timezone.0", |
7099 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00000001, |
7100 | 15 | NULL, HFILL } |
7101 | 15 | }, |
7102 | 15 | { &hf_r3_timezonearray1, |
7103 | 15 | { "Timezone 1", "r3.timezone.1", |
7104 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00000002, |
7105 | 15 | NULL, HFILL } |
7106 | 15 | }, |
7107 | 15 | { &hf_r3_timezonearray2, |
7108 | 15 | { "Timezone 2", "r3.timezone.2", |
7109 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00000004, |
7110 | 15 | NULL, HFILL } |
7111 | 15 | }, |
7112 | 15 | { &hf_r3_timezonearray3, |
7113 | 15 | { "Timezone 3", "r3.timezone.3", |
7114 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00000008, |
7115 | 15 | NULL, HFILL } |
7116 | 15 | }, |
7117 | 15 | { &hf_r3_timezonearray4, |
7118 | 15 | { "Timezone 4", "r3.timezone.4", |
7119 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00000010, |
7120 | 15 | NULL, HFILL } |
7121 | 15 | }, |
7122 | 15 | { &hf_r3_timezonearray5, |
7123 | 15 | { "Timezone 5", "r3.timezone.5", |
7124 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00000020, |
7125 | 15 | NULL, HFILL } |
7126 | 15 | }, |
7127 | 15 | { &hf_r3_timezonearray6, |
7128 | 15 | { "Timezone 6", "r3.timezone.6", |
7129 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00000040, |
7130 | 15 | NULL, HFILL } |
7131 | 15 | }, |
7132 | 15 | { &hf_r3_timezonearray7, |
7133 | 15 | { "Timezone 7", "r3.timezone.7", |
7134 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00000080, |
7135 | 15 | NULL, HFILL } |
7136 | 15 | }, |
7137 | 15 | { &hf_r3_timezonearray8, |
7138 | 15 | { "Timezone 8", "r3.timezone.8", |
7139 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00000100, |
7140 | 15 | NULL, HFILL } |
7141 | 15 | }, |
7142 | 15 | { &hf_r3_timezonearray9, |
7143 | 15 | { "Timezone 9", "r3.timezone.9", |
7144 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00000200, |
7145 | 15 | NULL, HFILL } |
7146 | 15 | }, |
7147 | 15 | { &hf_r3_timezonearray10, |
7148 | 15 | { "Timezone 10", "r3.timezone.10", |
7149 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00000400, |
7150 | 15 | NULL, HFILL } |
7151 | 15 | }, |
7152 | 15 | { &hf_r3_timezonearray11, |
7153 | 15 | { "Timezone 11", "r3.timezone.11", |
7154 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00000800, |
7155 | 15 | NULL, HFILL } |
7156 | 15 | }, |
7157 | 15 | { &hf_r3_timezonearray12, |
7158 | 15 | { "Timezone 12", "r3.timezone.12", |
7159 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00001000, |
7160 | 15 | NULL, HFILL } |
7161 | 15 | }, |
7162 | 15 | { &hf_r3_timezonearray13, |
7163 | 15 | { "Timezone 13", "r3.timezone.13", |
7164 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00002000, |
7165 | 15 | NULL, HFILL } |
7166 | 15 | }, |
7167 | 15 | { &hf_r3_timezonearray14, |
7168 | 15 | { "Timezone 14", "r3.timezone.14", |
7169 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00004000, |
7170 | 15 | NULL, HFILL } |
7171 | 15 | }, |
7172 | 15 | { &hf_r3_timezonearray15, |
7173 | 15 | { "Timezone 15", "r3.timezone.15", |
7174 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00008000, |
7175 | 15 | NULL, HFILL } |
7176 | 15 | }, |
7177 | 15 | { &hf_r3_timezonearray16, |
7178 | 15 | { "Timezone 16", "r3.timezone.16", |
7179 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00010000, |
7180 | 15 | NULL, HFILL } |
7181 | 15 | }, |
7182 | 15 | { &hf_r3_timezonearray17, |
7183 | 15 | { "Timezone 17", "r3.timezone.17", |
7184 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00020000, |
7185 | 15 | NULL, HFILL } |
7186 | 15 | }, |
7187 | 15 | { &hf_r3_timezonearray18, |
7188 | 15 | { "Timezone 18", "r3.timezone.18", |
7189 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00040000, |
7190 | 15 | NULL, HFILL } |
7191 | 15 | }, |
7192 | 15 | { &hf_r3_timezonearray19, |
7193 | 15 | { "Timezone 19", "r3.timezone.19", |
7194 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00080000, |
7195 | 15 | NULL, HFILL } |
7196 | 15 | }, |
7197 | 15 | { &hf_r3_timezonearray20, |
7198 | 15 | { "Timezone 20", "r3.timezone.20", |
7199 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00100000, |
7200 | 15 | NULL, HFILL } |
7201 | 15 | }, |
7202 | 15 | { &hf_r3_timezonearray21, |
7203 | 15 | { "Timezone 21", "r3.timezone.21", |
7204 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00200000, |
7205 | 15 | NULL, HFILL } |
7206 | 15 | }, |
7207 | 15 | { &hf_r3_timezonearray22, |
7208 | 15 | { "Timezone 22", "r3.timezone.22", |
7209 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00400000, |
7210 | 15 | NULL, HFILL } |
7211 | 15 | }, |
7212 | 15 | { &hf_r3_timezonearray23, |
7213 | 15 | { "Timezone 23", "r3.timezone.23", |
7214 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x00800000, |
7215 | 15 | NULL, HFILL } |
7216 | 15 | }, |
7217 | 15 | { &hf_r3_timezonearray24, |
7218 | 15 | { "Timezone 24", "r3.timezone.24", |
7219 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x01000000, |
7220 | 15 | NULL, HFILL } |
7221 | 15 | }, |
7222 | 15 | { &hf_r3_timezonearray25, |
7223 | 15 | { "Timezone 25", "r3.timezone.25", |
7224 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x02000000, |
7225 | 15 | NULL, HFILL } |
7226 | 15 | }, |
7227 | 15 | { &hf_r3_timezonearray26, |
7228 | 15 | { "Timezone 26", "r3.timezone.26", |
7229 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x04000000, |
7230 | 15 | NULL, HFILL } |
7231 | 15 | }, |
7232 | 15 | { &hf_r3_timezonearray27, |
7233 | 15 | { "Timezone 27", "r3.timezone.27", |
7234 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x08000000, |
7235 | 15 | NULL, HFILL } |
7236 | 15 | }, |
7237 | 15 | { &hf_r3_timezonearray28, |
7238 | 15 | { "Timezone 28", "r3.timezone.28", |
7239 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x10000000, |
7240 | 15 | NULL, HFILL } |
7241 | 15 | }, |
7242 | 15 | { &hf_r3_timezonearray29, |
7243 | 15 | { "Timezone 29", "r3.timezone.29", |
7244 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x20000000, |
7245 | 15 | NULL, HFILL } |
7246 | 15 | }, |
7247 | 15 | { &hf_r3_timezonearray30, |
7248 | 15 | { "Timezone 30", "r3.timezone.30", |
7249 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x40000000, |
7250 | 15 | NULL, HFILL } |
7251 | 15 | }, |
7252 | 15 | { &hf_r3_timezonearray31, |
7253 | 15 | { "Timezone 31", "r3.timezone.31", |
7254 | 15 | FT_BOOLEAN, 32, TFS (&tfs_enabled_disabled), 0x80000000, |
7255 | 15 | NULL, HFILL } |
7256 | 15 | }, |
7257 | | |
7258 | 15 | { &hf_r3_expireon_year, |
7259 | 15 | { "Expiration Year", "r3.expireon.year", |
7260 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7261 | 15 | NULL, HFILL } |
7262 | 15 | }, |
7263 | 15 | { &hf_r3_expireon_month, |
7264 | 15 | { "Expiration Month", "r3.expireon.month", |
7265 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_monthnames_ext, 0x0, |
7266 | 15 | NULL, HFILL } |
7267 | 15 | }, |
7268 | 15 | { &hf_r3_expireon_day, |
7269 | 15 | { "Expiration Day", "r3.expireon.day", |
7270 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7271 | 15 | NULL, HFILL } |
7272 | 15 | }, |
7273 | | |
7274 | 15 | { &hf_r3_datetime_year, |
7275 | 15 | { "Date/Time Year", "r3.datetime.year", |
7276 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7277 | 15 | NULL, HFILL } |
7278 | 15 | }, |
7279 | 15 | { &hf_r3_datetime_month, |
7280 | 15 | { "Date/Time Month", "r3.datetime.month", |
7281 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_monthnames_ext, 0x0, |
7282 | 15 | NULL, HFILL } |
7283 | 15 | }, |
7284 | 15 | { &hf_r3_datetime_day, |
7285 | 15 | { "Date/Time Day", "r3.datetime.day", |
7286 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7287 | 15 | NULL, HFILL } |
7288 | 15 | }, |
7289 | 15 | { &hf_r3_datetime_dow, |
7290 | 15 | { "Date/Time DOW", "r3.datetime.dow", |
7291 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_daynames_ext, 0x0, |
7292 | 15 | NULL, HFILL } |
7293 | 15 | }, |
7294 | 15 | { &hf_r3_datetime_hours, |
7295 | 15 | { "Date/Time Hours", "r3.datetime.hours", |
7296 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7297 | 15 | NULL, HFILL } |
7298 | 15 | }, |
7299 | 15 | { &hf_r3_datetime_minutes, |
7300 | 15 | { "Date/Time Minutes", "r3.datetime.minutes", |
7301 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7302 | 15 | NULL, HFILL } |
7303 | 15 | }, |
7304 | 15 | { &hf_r3_datetime_seconds, |
7305 | 15 | { "Date/Time Seconds", "r3.datetime.seconds", |
7306 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7307 | 15 | NULL, HFILL } |
7308 | 15 | }, |
7309 | 15 | { &hf_r3_datetime_dst, |
7310 | 15 | { "Date/Time DST", "r3.datetime.dst", |
7311 | 15 | FT_BOOLEAN, BASE_NONE, NULL, 0x0, |
7312 | 15 | NULL, HFILL } |
7313 | 15 | }, |
7314 | | |
7315 | 15 | { &hf_r3_eventlog_recordnumber, |
7316 | 15 | { "Record Number", "r3.eventlog.recordnumber", |
7317 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
7318 | 15 | NULL, HFILL } |
7319 | 15 | }, |
7320 | 15 | { &hf_r3_eventlog_year, |
7321 | 15 | { "Year", "r3.eventlog.year", |
7322 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7323 | 15 | NULL, HFILL } |
7324 | 15 | }, |
7325 | 15 | { &hf_r3_eventlog_month, |
7326 | 15 | { "Month", "r3.eventlog.month", |
7327 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_monthnames_ext, 0x0, |
7328 | 15 | NULL, HFILL } |
7329 | 15 | }, |
7330 | 15 | { &hf_r3_eventlog_day, |
7331 | 15 | { "Day", "r3.eventlog.day", |
7332 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7333 | 15 | NULL, HFILL } |
7334 | 15 | }, |
7335 | 15 | { &hf_r3_eventlog_hour, |
7336 | 15 | { "Hours", "r3.eventlog.hours", |
7337 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7338 | 15 | NULL, HFILL } |
7339 | 15 | }, |
7340 | 15 | { &hf_r3_eventlog_minute, |
7341 | 15 | { "Minutes", "r3.eventlog.minutes", |
7342 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7343 | 15 | NULL, HFILL } |
7344 | 15 | }, |
7345 | 15 | { &hf_r3_eventlog_second, |
7346 | 15 | { "Seconds", "r3.eventlog.seconds", |
7347 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7348 | 15 | NULL, HFILL } |
7349 | 15 | }, |
7350 | 15 | { &hf_r3_eventlog_usernumber, |
7351 | 15 | { "User Number", "r3.eventlog.usernumber", |
7352 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
7353 | 15 | NULL, HFILL } |
7354 | 15 | }, |
7355 | 15 | { &hf_r3_eventlog_event, |
7356 | 15 | { "ID", "r3.eventlog.id", |
7357 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_eventnames_ext, 0x0, |
7358 | 15 | NULL, HFILL } |
7359 | 15 | }, |
7360 | | |
7361 | 15 | { &hf_r3_declinedlog_recordnumber, |
7362 | 15 | { "Record Number", "r3.declinedlog.recordnumber", |
7363 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
7364 | 15 | NULL, HFILL } |
7365 | 15 | }, |
7366 | 15 | { &hf_r3_declinedlog_year, |
7367 | 15 | { "Year", "r3.declinedlog.year", |
7368 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7369 | 15 | NULL, HFILL } |
7370 | 15 | }, |
7371 | 15 | { &hf_r3_declinedlog_month, |
7372 | 15 | { "Month", "r3.declinedlog.month", |
7373 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_monthnames_ext, 0x0, |
7374 | 15 | NULL, HFILL } |
7375 | 15 | }, |
7376 | 15 | { &hf_r3_declinedlog_day, |
7377 | 15 | { "Day", "r3.declinedlog.day", |
7378 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7379 | 15 | NULL, HFILL } |
7380 | 15 | }, |
7381 | 15 | { &hf_r3_declinedlog_hour, |
7382 | 15 | { "Hours", "r3.declinedlog.hours", |
7383 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7384 | 15 | NULL, HFILL } |
7385 | 15 | }, |
7386 | 15 | { &hf_r3_declinedlog_minute, |
7387 | 15 | { "Minutes", "r3.declinedlog.minutes", |
7388 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7389 | 15 | NULL, HFILL } |
7390 | 15 | }, |
7391 | 15 | { &hf_r3_declinedlog_second, |
7392 | 15 | { "Seconds", "r3.declinedlog.seconds", |
7393 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7394 | 15 | NULL, HFILL } |
7395 | 15 | }, |
7396 | 15 | { &hf_r3_declinedlog_usernumber, |
7397 | 15 | { "User Number", "r3.declinedlog.usernumber", |
7398 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
7399 | 15 | NULL, HFILL } |
7400 | 15 | }, |
7401 | 15 | { &hf_r3_declinedlog_cred1type, |
7402 | 15 | { "Credential 1 Type", "r3.declinedlog.cred1type", |
7403 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_fieldtypenames_ext, 0x0, |
7404 | 15 | NULL, HFILL } |
7405 | 15 | }, |
7406 | 15 | { &hf_r3_declinedlog_cred2type, |
7407 | 15 | { "Credential 2 Type", "r3.declinedlog.cred2type", |
7408 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_fieldtypenames_ext, 0x0, |
7409 | 15 | NULL, HFILL } |
7410 | 15 | }, |
7411 | 15 | { &hf_r3_declinedlog_cred1, |
7412 | 15 | { "Credential 1", "r3.declinedlog.cred1", |
7413 | 15 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7414 | 15 | NULL, HFILL } |
7415 | 15 | }, |
7416 | 15 | { &hf_r3_declinedlog_cred2, |
7417 | 15 | { "Credential 2", "r3.declinedlog.cred2", |
7418 | 15 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7419 | 15 | NULL, HFILL } |
7420 | 15 | }, |
7421 | | |
7422 | 15 | { &hf_r3_alarmlog_recordnumber, |
7423 | 15 | { "Record Number", "r3.alarmlog.recordnumber", |
7424 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
7425 | 15 | NULL, HFILL } |
7426 | 15 | }, |
7427 | 15 | { &hf_r3_alarmlog_year, |
7428 | 15 | { "Year", "r3.alarmlog.year", |
7429 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7430 | 15 | NULL, HFILL } |
7431 | 15 | }, |
7432 | 15 | { &hf_r3_alarmlog_month, |
7433 | 15 | { "Month", "r3.alarmlog.month", |
7434 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_monthnames_ext, 0x0, |
7435 | 15 | NULL, HFILL } |
7436 | 15 | }, |
7437 | 15 | { &hf_r3_alarmlog_day, |
7438 | 15 | { "Day", "r3.alarmlog.day", |
7439 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7440 | 15 | NULL, HFILL } |
7441 | 15 | }, |
7442 | 15 | { &hf_r3_alarmlog_hour, |
7443 | 15 | { "Hours", "r3.alarmlog.hours", |
7444 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7445 | 15 | NULL, HFILL } |
7446 | 15 | }, |
7447 | 15 | { &hf_r3_alarmlog_minute, |
7448 | 15 | { "Minutes", "r3.alarmlog.minutes", |
7449 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7450 | 15 | NULL, HFILL } |
7451 | 15 | }, |
7452 | 15 | { &hf_r3_alarmlog_second, |
7453 | 15 | { "Seconds", "r3.alarmlog.seconds", |
7454 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7455 | 15 | NULL, HFILL } |
7456 | 15 | }, |
7457 | 15 | { &hf_r3_alarmlog_id, |
7458 | 15 | { "ID", "r3.alarmlog.id", |
7459 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_alarmidnames_ext, 0x0, |
7460 | 15 | NULL, HFILL } |
7461 | 15 | }, |
7462 | 15 | { &hf_r3_alarmlog_usernumber, |
7463 | 15 | { "User Number", "r3.alarmlog.usernumber", |
7464 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
7465 | 15 | NULL, HFILL } |
7466 | 15 | }, |
7467 | | |
7468 | 15 | { &hf_r3_debugmsg, |
7469 | 15 | { "Debug Message", "r3.debug", |
7470 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
7471 | 15 | NULL, HFILL } |
7472 | 15 | }, |
7473 | | |
7474 | 15 | { &hf_r3_setdate_year, |
7475 | 15 | { "Year", "r3.setdate.year", |
7476 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7477 | 15 | NULL, HFILL } |
7478 | 15 | }, |
7479 | 15 | { &hf_r3_setdate_month, |
7480 | 15 | { "Month", "r3.setdate.month", |
7481 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_monthnames_ext, 0x0, |
7482 | 15 | NULL, HFILL } |
7483 | 15 | }, |
7484 | 15 | { &hf_r3_setdate_day, |
7485 | 15 | { "Day", "r3.setdate.day", |
7486 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7487 | 15 | NULL, HFILL } |
7488 | 15 | }, |
7489 | 15 | { &hf_r3_setdate_dow, |
7490 | 15 | { "Day-Of-Week", "r3.setdate.dow", |
7491 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_daynames_ext, 0x0, |
7492 | 15 | NULL, HFILL } |
7493 | 15 | }, |
7494 | 15 | { &hf_r3_setdate_hours, |
7495 | 15 | { "Hours", "r3.setdate.hours", |
7496 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7497 | 15 | NULL, HFILL } |
7498 | 15 | }, |
7499 | 15 | { &hf_r3_setdate_minutes, |
7500 | 15 | { "Minutes", "r3.setdate.minutes", |
7501 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7502 | 15 | NULL, HFILL } |
7503 | 15 | }, |
7504 | 15 | { &hf_r3_setdate_seconds, |
7505 | 15 | { "Seconds", "r3.setdate.seconds", |
7506 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7507 | 15 | NULL, HFILL } |
7508 | 15 | }, |
7509 | | |
7510 | 15 | { &hf_r3_deleteusers, |
7511 | 15 | { "Delete Users", "r3.deleteusers", |
7512 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_deleteusersnames_ext, 0x0, |
7513 | 15 | NULL, HFILL } |
7514 | 15 | }, |
7515 | | |
7516 | 15 | { &hf_r3_defineexception_number, |
7517 | 15 | { "Exception Number", "r3.defineexception.number", |
7518 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7519 | 15 | NULL, HFILL } |
7520 | 15 | }, |
7521 | 15 | { &hf_r3_defineexception_startdate_month, |
7522 | 15 | { "Start Month", "r3.defineexception.start.month", |
7523 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_monthnames_ext, 0x0, |
7524 | 15 | NULL, HFILL } |
7525 | 15 | }, |
7526 | 15 | { &hf_r3_defineexception_startdate_day, |
7527 | 15 | { "Start Day", "r3.defineexception.start.day", |
7528 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7529 | 15 | NULL, HFILL } |
7530 | 15 | }, |
7531 | 15 | { &hf_r3_defineexception_startdate_hours, |
7532 | 15 | { "Start Hours", "r3.defineexception.start.hours", |
7533 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7534 | 15 | NULL, HFILL } |
7535 | 15 | }, |
7536 | 15 | { &hf_r3_defineexception_startdate_minutes, |
7537 | 15 | { "Start Minutes", "r3.defineexception.start.minutes", |
7538 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7539 | 15 | NULL, HFILL } |
7540 | 15 | }, |
7541 | 15 | { &hf_r3_defineexception_enddate_month, |
7542 | 15 | { "End Month", "r3.defineexception.end.month", |
7543 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_monthnames_ext, 0x0, |
7544 | 15 | NULL, HFILL } |
7545 | 15 | }, |
7546 | 15 | { &hf_r3_defineexception_enddate_day, |
7547 | 15 | { "End Day", "r3.defineexception.end.day", |
7548 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7549 | 15 | NULL, HFILL } |
7550 | 15 | }, |
7551 | 15 | { &hf_r3_defineexception_enddate_hours, |
7552 | 15 | { "End Hours", "r3.defineexception.end.hours", |
7553 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7554 | 15 | NULL, HFILL } |
7555 | 15 | }, |
7556 | 15 | { &hf_r3_defineexception_enddate_minutes, |
7557 | 15 | { "End Minutes", "r3.defineexception.end.minutes", |
7558 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7559 | 15 | NULL, HFILL } |
7560 | 15 | }, |
7561 | | |
7562 | 15 | { &hf_r3_defineexceptiongroup_number, |
7563 | 15 | { "Define Exception Group Number", "r3.defineexceptiongroup.number", |
7564 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7565 | 15 | NULL, HFILL } |
7566 | 15 | }, |
7567 | 15 | { &hf_r3_defineexceptiongroup_bits, |
7568 | 15 | { "Define Exception Group Bit Field", "r3.defineexceptiongroup.field", |
7569 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
7570 | 15 | NULL, HFILL } |
7571 | 15 | }, |
7572 | | |
7573 | 15 | { &hf_r3_definecalendar_number, |
7574 | 15 | { "Define Calendar Number", "r3.definecalendar.number", |
7575 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7576 | 15 | NULL, HFILL } |
7577 | 15 | }, |
7578 | 15 | { &hf_r3_definecalendar_bits, |
7579 | 15 | { "Define Calendar Bit Field", "r3.definecalendar.field", |
7580 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
7581 | 15 | NULL, HFILL } |
7582 | 15 | }, |
7583 | | |
7584 | 15 | { &hf_r3_definetimezone_number, |
7585 | 15 | { "Timezone Number", "r3.definetimezone.number", |
7586 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7587 | 15 | NULL, HFILL } |
7588 | 15 | }, |
7589 | 15 | { &hf_r3_definetimezone_starttime_hours, |
7590 | 15 | { "Start Hours", "r3.definetimezone.start.hours", |
7591 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7592 | 15 | NULL, HFILL } |
7593 | 15 | }, |
7594 | 15 | { &hf_r3_definetimezone_starttime_minutes, |
7595 | 15 | { "Start Minutes", "r3.definetimezone.start.minutes", |
7596 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7597 | 15 | NULL, HFILL } |
7598 | 15 | }, |
7599 | 15 | { &hf_r3_definetimezone_endtime_hours, |
7600 | 15 | { "End Hours", "r3.definetimezone.end.hours", |
7601 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7602 | 15 | NULL, HFILL } |
7603 | 15 | }, |
7604 | 15 | { &hf_r3_definetimezone_endtime_minutes, |
7605 | 15 | { "End Minutes", "r3.definetimezone.end.minutes", |
7606 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7607 | 15 | NULL, HFILL } |
7608 | 15 | }, |
7609 | 15 | { &hf_r3_definetimezone_daymap, |
7610 | 15 | { "Day Map", "r3.definetimezone.daymap", |
7611 | 15 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7612 | 15 | NULL, HFILL } |
7613 | 15 | }, |
7614 | 15 | { &hf_r3_definetimezone_daymap0, |
7615 | 15 | { "Sunday", "r3.definetimezone.daymap.sunday", |
7616 | 15 | FT_BOOLEAN, 8, TFS (&tfs_enabled_disabled), 0x01, |
7617 | 15 | NULL, HFILL } |
7618 | 15 | }, |
7619 | 15 | { &hf_r3_definetimezone_daymap1, |
7620 | 15 | { "Monday", "r3.definetimezone.daymap.monday", |
7621 | 15 | FT_BOOLEAN, 8, TFS (&tfs_enabled_disabled), 0x02, |
7622 | 15 | NULL, HFILL } |
7623 | 15 | }, |
7624 | 15 | { &hf_r3_definetimezone_daymap2, |
7625 | 15 | { "Tuesday", "r3.definetimezone.daymap.tuesday", |
7626 | 15 | FT_BOOLEAN, 8, TFS (&tfs_enabled_disabled), 0x04, |
7627 | 15 | NULL, HFILL } |
7628 | 15 | }, |
7629 | 15 | { &hf_r3_definetimezone_daymap3, |
7630 | 15 | { "Wednesday", "r3.definetimezone.daymap.wednesday", |
7631 | 15 | FT_BOOLEAN, 8, TFS (&tfs_enabled_disabled), 0x08, |
7632 | 15 | NULL, HFILL } |
7633 | 15 | }, |
7634 | 15 | { &hf_r3_definetimezone_daymap4, |
7635 | 15 | { "Thursday", "r3.definetimezone.daymap.thursday", |
7636 | 15 | FT_BOOLEAN, 8, TFS (&tfs_enabled_disabled), 0x10, |
7637 | 15 | NULL, HFILL } |
7638 | 15 | }, |
7639 | 15 | { &hf_r3_definetimezone_daymap5, |
7640 | 15 | { "Friday", "r3.definetimezone.daymap.friday", |
7641 | 15 | FT_BOOLEAN, 8, TFS (&tfs_enabled_disabled), 0x20, |
7642 | 15 | NULL, HFILL } |
7643 | 15 | }, |
7644 | 15 | { &hf_r3_definetimezone_daymap6, |
7645 | 15 | { "Saturday", "r3.definetimezone.daymap.saturday", |
7646 | 15 | FT_BOOLEAN, 8, TFS (&tfs_enabled_disabled), 0x40, |
7647 | 15 | NULL, HFILL } |
7648 | 15 | }, |
7649 | 15 | { &hf_r3_definetimezone_exceptiongroup, |
7650 | 15 | { "Exception Group", "r3.definetimezone.exceptiongroup", |
7651 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7652 | 15 | NULL, HFILL } |
7653 | 15 | }, |
7654 | 15 | { &hf_r3_definetimezone_mode, |
7655 | 15 | { "Mode", "r3.definetimezone.mode", |
7656 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_timezonemodenames_ext, 0x0, |
7657 | 15 | NULL, HFILL } |
7658 | 15 | }, |
7659 | 15 | { &hf_r3_definetimezone_calendar, |
7660 | 15 | { "Calendar", "r3.definetimezone.calendar", |
7661 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
7662 | 15 | NULL, HFILL } |
7663 | 15 | }, |
7664 | | |
7665 | 15 | { &hf_r3_rmtauthretry_sequence, |
7666 | 15 | { "Remote Auth Retry Sequence", "r3.rmtauthretry.sequence", |
7667 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
7668 | 15 | NULL, HFILL } |
7669 | 15 | }, |
7670 | 15 | { &hf_r3_rmtauthretry_retry, |
7671 | 15 | { "Remote Auth Retry Mode", "r3.rmtauthretry.mode", |
7672 | 15 | FT_BOOLEAN, BASE_NONE, TFS (&tfs_rmtauthretry_flags), 0x0, |
7673 | 15 | NULL, HFILL } |
7674 | 15 | }, |
7675 | | |
7676 | 15 | { &hf_r3_eventlogdump_starttime_year, |
7677 | 15 | { "Start Year", "r3.eventlogdump.start.year", |
7678 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7679 | 15 | NULL, HFILL } |
7680 | 15 | }, |
7681 | 15 | { &hf_r3_eventlogdump_starttime_month, |
7682 | 15 | { "Start Month", "r3.eventlogdump.start.month", |
7683 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_monthnames_ext, 0x0, |
7684 | 15 | NULL, HFILL } |
7685 | 15 | }, |
7686 | 15 | { &hf_r3_eventlogdump_starttime_day, |
7687 | 15 | { "Start Day", "r3.eventlogdump.start.day", |
7688 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7689 | 15 | NULL, HFILL } |
7690 | 15 | }, |
7691 | 15 | { &hf_r3_eventlogdump_starttime_hours, |
7692 | 15 | { "Start Hours", "r3.eventlogdump.start.hours", |
7693 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7694 | 15 | NULL, HFILL } |
7695 | 15 | }, |
7696 | 15 | { &hf_r3_eventlogdump_starttime_minutes, |
7697 | 15 | { "Start Minutes", "r3.eventlogdump.start.minutes", |
7698 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7699 | 15 | NULL, HFILL } |
7700 | 15 | }, |
7701 | 15 | { &hf_r3_eventlogdump_endtime_year, |
7702 | 15 | { "End Year", "r3.eventlogdump.end.year", |
7703 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7704 | 15 | NULL, HFILL } |
7705 | 15 | }, |
7706 | 15 | { &hf_r3_eventlogdump_endtime_month, |
7707 | 15 | { "End Month", "r3.eventlogdump.end.month", |
7708 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_monthnames_ext, 0x0, |
7709 | 15 | NULL, HFILL } |
7710 | 15 | }, |
7711 | 15 | { &hf_r3_eventlogdump_endtime_day, |
7712 | 15 | { "End Day", "r3.eventlogdump.end.day", |
7713 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7714 | 15 | NULL, HFILL } |
7715 | 15 | }, |
7716 | 15 | { &hf_r3_eventlogdump_endtime_hours, |
7717 | 15 | { "End Hours", "r3.eventlogdump.end.hours", |
7718 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7719 | 15 | NULL, HFILL } |
7720 | 15 | }, |
7721 | 15 | { &hf_r3_eventlogdump_endtime_minutes, |
7722 | 15 | { "End Minutes", "r3.eventlogdump.end.minutes", |
7723 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7724 | 15 | NULL, HFILL } |
7725 | 15 | }, |
7726 | 15 | { &hf_r3_eventlogdump_user, |
7727 | 15 | { "Filter User", "r3.eventlogdump.user", |
7728 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
7729 | 15 | NULL, HFILL } |
7730 | 15 | }, |
7731 | | |
7732 | 15 | { &hf_r3_declinedlogdump_starttime_year, |
7733 | 15 | { "Start Year", "r3.declinedlogdump.start.year", |
7734 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7735 | 15 | NULL, HFILL } |
7736 | 15 | }, |
7737 | 15 | { &hf_r3_declinedlogdump_starttime_month, |
7738 | 15 | { "Start Month", "r3.declinedlogdump.start.month", |
7739 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_monthnames_ext, 0x0, |
7740 | 15 | NULL, HFILL } |
7741 | 15 | }, |
7742 | 15 | { &hf_r3_declinedlogdump_starttime_day, |
7743 | 15 | { "Start Day", "r3.declinedlogdump.start.day", |
7744 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7745 | 15 | NULL, HFILL } |
7746 | 15 | }, |
7747 | 15 | { &hf_r3_declinedlogdump_starttime_hours, |
7748 | 15 | { "Start Hours", "r3.declinedlogdump.start.hours", |
7749 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7750 | 15 | NULL, HFILL } |
7751 | 15 | }, |
7752 | 15 | { &hf_r3_declinedlogdump_starttime_minutes, |
7753 | 15 | { "Start Minutes", "r3.declinedlogdump.start.minutes", |
7754 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7755 | 15 | NULL, HFILL } |
7756 | 15 | }, |
7757 | 15 | { &hf_r3_declinedlogdump_endtime_year, |
7758 | 15 | { "End Year", "r3.declinedlogdump.end.year", |
7759 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7760 | 15 | NULL, HFILL } |
7761 | 15 | }, |
7762 | 15 | { &hf_r3_declinedlogdump_endtime_month, |
7763 | 15 | { "End Month", "r3.declinedlogdump.end.month", |
7764 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_monthnames_ext, 0x0, |
7765 | 15 | NULL, HFILL } |
7766 | 15 | }, |
7767 | 15 | { &hf_r3_declinedlogdump_endtime_day, |
7768 | 15 | { "End Day", "r3.declinedlogdump.end.day", |
7769 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7770 | 15 | NULL, HFILL } |
7771 | 15 | }, |
7772 | 15 | { &hf_r3_declinedlogdump_endtime_hours, |
7773 | 15 | { "End Hours", "r3.declinedlogdump.end.hours", |
7774 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7775 | 15 | NULL, HFILL } |
7776 | 15 | }, |
7777 | 15 | { &hf_r3_declinedlogdump_endtime_minutes, |
7778 | 15 | { "End Minutes", "r3.declinedlogdump.end.minutes", |
7779 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7780 | 15 | NULL, HFILL } |
7781 | 15 | }, |
7782 | | |
7783 | 15 | { &hf_r3_alarmlogdump_starttime_year, |
7784 | 15 | { "Start Year", "r3.alarmlogdump.start.year", |
7785 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7786 | 15 | NULL, HFILL } |
7787 | 15 | }, |
7788 | 15 | { &hf_r3_alarmlogdump_starttime_month, |
7789 | 15 | { "Start Month", "r3.alarmlogdump.start.month", |
7790 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_monthnames_ext, 0x0, |
7791 | 15 | NULL, HFILL } |
7792 | 15 | }, |
7793 | 15 | { &hf_r3_alarmlogdump_starttime_day, |
7794 | 15 | { "Start Day", "r3.alarmlogdump.start.day", |
7795 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7796 | 15 | NULL, HFILL } |
7797 | 15 | }, |
7798 | 15 | { &hf_r3_alarmlogdump_starttime_hours, |
7799 | 15 | { "Start Hours", "r3.alarmlogdump.start.hours", |
7800 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7801 | 15 | NULL, HFILL } |
7802 | 15 | }, |
7803 | 15 | { &hf_r3_alarmlogdump_starttime_minutes, |
7804 | 15 | { "Start Minutes", "r3.alarmlogdump.start.minutes", |
7805 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7806 | 15 | NULL, HFILL } |
7807 | 15 | }, |
7808 | 15 | { &hf_r3_alarmlogdump_endtime_year, |
7809 | 15 | { "End Year", "r3.alarmlogdump.end.year", |
7810 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7811 | 15 | NULL, HFILL } |
7812 | 15 | }, |
7813 | 15 | { &hf_r3_alarmlogdump_endtime_month, |
7814 | 15 | { "End Month", "r3.alarmlogdump.end.month", |
7815 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_monthnames_ext, 0x0, |
7816 | 15 | NULL, HFILL } |
7817 | 15 | }, |
7818 | 15 | { &hf_r3_alarmlogdump_endtime_day, |
7819 | 15 | { "End Day", "r3.alarmlogdump.end.day", |
7820 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7821 | 15 | NULL, HFILL } |
7822 | 15 | }, |
7823 | 15 | { &hf_r3_alarmlogdump_endtime_hours, |
7824 | 15 | { "End Hours", "r3.alarmlogdump.end.hours", |
7825 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7826 | 15 | NULL, HFILL } |
7827 | 15 | }, |
7828 | 15 | { &hf_r3_alarmlogdump_endtime_minutes, |
7829 | 15 | { "End Minutes", "r3.alarmlogdump.end.minutes", |
7830 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7831 | 15 | NULL, HFILL } |
7832 | 15 | }, |
7833 | | |
7834 | 15 | { &hf_r3_nvramclearoptions, |
7835 | 15 | { "NVRAM Clean Options", "r3.nvramclear", |
7836 | 15 | FT_UINT16, BASE_HEX, NULL, 0x0, |
7837 | 15 | NULL, HFILL } |
7838 | 15 | }, |
7839 | 15 | { &hf_r3_nvramclearoptions0, |
7840 | 15 | { "NVRAMCLEAROPTIONS_CFGINSTALLER", "r3.nvramclear.cfginstaller", |
7841 | 15 | FT_BOOLEAN, 16, TFS (&tfs_enabled_disabled), 0x0001, |
7842 | 15 | NULL, HFILL } |
7843 | 15 | }, |
7844 | 15 | { &hf_r3_nvramclearoptions1, |
7845 | 15 | { "NVRAMCLEAROPTIONS_CFGADMIN", "r3.nvramclear.cfgadmin", |
7846 | 15 | FT_BOOLEAN, 16, TFS (&tfs_enabled_disabled), 0x0002, |
7847 | 15 | NULL, HFILL } |
7848 | 15 | }, |
7849 | 15 | { &hf_r3_nvramclearoptions2, |
7850 | 15 | { "NVRAMCLEAROPTIONS_EXCEPTIONS", "r3.nvramclear.exceptions", |
7851 | 15 | FT_BOOLEAN, 16, TFS (&tfs_enabled_disabled), 0x0004, |
7852 | 15 | NULL, HFILL } |
7853 | 15 | }, |
7854 | 15 | { &hf_r3_nvramclearoptions3, |
7855 | 15 | { "NVRAMCLEAROPTIONS_EXCEPTIONGROUPS", "r3.nvramclear.exceptiongroups", |
7856 | 15 | FT_BOOLEAN, 16, TFS (&tfs_enabled_disabled), 0x0008, |
7857 | 15 | NULL, HFILL } |
7858 | 15 | }, |
7859 | 15 | { &hf_r3_nvramclearoptions4, |
7860 | 15 | { "NVRAMCLEAROPTIONS_CALENDARS", "r3.nvramclear.calendars", |
7861 | 15 | FT_BOOLEAN, 16, TFS (&tfs_enabled_disabled), 0x0010, |
7862 | 15 | NULL, HFILL } |
7863 | 15 | }, |
7864 | 15 | { &hf_r3_nvramclearoptions5, |
7865 | 15 | { "NVRAMCLEAROPTIONS_TIMEZONES", "r3.nvramclear.timezones", |
7866 | 15 | FT_BOOLEAN, 16, TFS (&tfs_enabled_disabled), 0x0020, |
7867 | 15 | NULL, HFILL } |
7868 | 15 | }, |
7869 | 15 | { &hf_r3_nvramclearoptions6, |
7870 | 15 | { "NVRAMCLEAROPTIONS_FILTERS", "r3.nvramclear.filters", |
7871 | 15 | FT_BOOLEAN, 16, TFS (&tfs_enabled_disabled), 0x0040, |
7872 | 15 | NULL, HFILL } |
7873 | 15 | }, |
7874 | 15 | { &hf_r3_nvramclearoptions7, |
7875 | 15 | { "NVRAMCLEAROPTIONS_EVENTLOG", "r3.nvramclear.eventlog", |
7876 | 15 | FT_BOOLEAN, 16, TFS (&tfs_enabled_disabled), 0x0080, |
7877 | 15 | NULL, HFILL } |
7878 | 15 | }, |
7879 | 15 | { &hf_r3_nvramclearoptions8, |
7880 | 15 | { "NVRAMCLEAROPTIONS_USERDATA", "r3.nvramclear.userdata", |
7881 | 15 | FT_BOOLEAN, 16, TFS (&tfs_enabled_disabled), 0x0100, |
7882 | 15 | NULL, HFILL } |
7883 | 15 | }, |
7884 | 15 | { &hf_r3_nvramclearoptions9, |
7885 | 15 | { "NVRAMCLEAROPTIONS_DECLINEDLOG", "r3.nvramclear.declinedlog", |
7886 | 15 | FT_BOOLEAN, 16, TFS (&tfs_enabled_disabled), 0x0200, |
7887 | 15 | NULL, HFILL } |
7888 | 15 | }, |
7889 | 15 | { &hf_r3_nvramclearoptions10, |
7890 | 15 | { "NVRAMCLEAROPTIONS_ALARMLOG", "r3.nvramclear.alarmlog", |
7891 | 15 | FT_BOOLEAN, 16, TFS (&tfs_enabled_disabled), 0x0400, |
7892 | 15 | NULL, HFILL } |
7893 | 15 | }, |
7894 | 15 | { &hf_r3_nvramclearoptions11, |
7895 | 15 | { "NVRAMCLEAROPTIONS_LRUCACHE", "r3.nvramclear.lrucache", |
7896 | 15 | FT_BOOLEAN, 16, TFS (&tfs_enabled_disabled), 0x0800, |
7897 | 15 | NULL, HFILL } |
7898 | 15 | }, |
7899 | 15 | { &hf_r3_nvramclearoptions12, |
7900 | 15 | { "NVRAMCLEAROPTIONS_DBHASH", "r3.nvramclear.dbhash", |
7901 | 15 | FT_BOOLEAN, 16, TFS (&tfs_enabled_disabled), 0x1000, |
7902 | 15 | NULL, HFILL } |
7903 | 15 | }, |
7904 | 15 | { &hf_r3_nvramclearoptions13, |
7905 | 15 | { "NVRAMCLEAROPTIONS_CFGSYSTEM", "r3.nvramclear.cfgsystem", |
7906 | 15 | FT_BOOLEAN, 16, TFS (&tfs_enabled_disabled), 0x2000, |
7907 | 15 | NULL, HFILL } |
7908 | 15 | }, |
7909 | 15 | { &hf_r3_nvramclearoptions14, |
7910 | 15 | { "NVRAMCLEAROPTIONS_UNUSED", "r3.nvramclear.unused", |
7911 | 15 | FT_BOOLEAN, 16, TFS (&tfs_enabled_disabled), 0x4000, |
7912 | 15 | NULL, HFILL } |
7913 | 15 | }, |
7914 | 15 | { &hf_r3_nvramclearoptions15, |
7915 | 15 | { "NVRAMCLEAROPTIONS_USEBACKUP", "r3.nvramclear.usebackup", |
7916 | 15 | FT_BOOLEAN, 16, TFS (&tfs_enabled_disabled), 0x8000, |
7917 | 15 | NULL, HFILL } |
7918 | 15 | }, |
7919 | | |
7920 | 15 | { &hf_r3_writeeventlog_user, |
7921 | 15 | { "User", "r3.writeeventlog.user", |
7922 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
7923 | 15 | NULL, HFILL } |
7924 | 15 | }, |
7925 | 15 | { &hf_r3_writeeventlog_event, |
7926 | 15 | { "Event", "r3.writeeventlog.event", |
7927 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_eventnames_ext, 0x0, |
7928 | 15 | NULL, HFILL } |
7929 | 15 | }, |
7930 | | |
7931 | 15 | { &hf_r3_powertableselection, |
7932 | 15 | { "Table", "r3.powertableselection", |
7933 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_powertablenames_ext, 0x0, |
7934 | 15 | NULL, HFILL } |
7935 | 15 | }, |
7936 | | |
7937 | 15 | { &hf_r3_filter_type, |
7938 | 15 | { "Type", "r3.filter.type", |
7939 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_filtertypenames_ext, 0x0, |
7940 | 15 | NULL, HFILL } |
7941 | 15 | }, |
7942 | 15 | { &hf_r3_filter_list, |
7943 | 15 | { "Event", "r3.filter.event", |
7944 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_filtereventnames_ext, 0x0, |
7945 | 15 | NULL, HFILL } |
7946 | 15 | }, |
7947 | | |
7948 | 15 | { &hf_r3_alarm_length, |
7949 | 15 | { "Length", "r3.alarm.length", |
7950 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7951 | 15 | NULL, HFILL } |
7952 | 15 | }, |
7953 | 15 | { &hf_r3_alarm_id, |
7954 | 15 | { "ID", "r3.alarm.id", |
7955 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_alarmidnames_ext, 0x0, |
7956 | 15 | NULL, HFILL } |
7957 | 15 | }, |
7958 | 15 | { &hf_r3_alarm_state, |
7959 | 15 | { "State", "r3.alarm.state", |
7960 | 15 | FT_BOOLEAN, BASE_NONE, TFS (&tfs_enabled_disabled), 0x0, |
7961 | 15 | NULL, HFILL } |
7962 | 15 | }, |
7963 | | |
7964 | | /* XXX: start: Originally missing: Best guess */ |
7965 | 15 | { &hf_r3_dpac_action, |
7966 | 15 | { "Dpac Action", "r3.dpac.action", |
7967 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7968 | 15 | NULL, HFILL } |
7969 | 15 | }, |
7970 | | |
7971 | 15 | { &hf_r3_dpac_waittime, |
7972 | 15 | { "Dpac Waittime", "r3.dpac.waittime", |
7973 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
7974 | 15 | NULL, HFILL } |
7975 | 15 | }, |
7976 | | |
7977 | 15 | { &hf_r3_dpac_command, |
7978 | 15 | { "Dpac Command", "r3.dpac.command", |
7979 | 15 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7980 | 15 | NULL, HFILL } |
7981 | 15 | }, |
7982 | | |
7983 | 15 | { &hf_r3_dpacreply_stuff, |
7984 | 15 | { "Dpac Reply Stuff", "r3.dpacreply.stuff", |
7985 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7986 | 15 | NULL, HFILL } |
7987 | 15 | }, |
7988 | | |
7989 | 15 | { &hf_r3_dpacreply_length, |
7990 | 15 | { "Dpac Reply Length", "r3.dpacreply.length", |
7991 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7992 | 15 | NULL, HFILL } |
7993 | 15 | }, |
7994 | | |
7995 | 15 | { &hf_r3_dpacreply_reply, |
7996 | 15 | { "Dpac Reply", "r3.dpacreply.reply", |
7997 | 15 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7998 | 15 | NULL, HFILL } |
7999 | 15 | }, |
8000 | | /* XXX: end: Originally missing --- */ |
8001 | | |
8002 | 15 | { &hf_r3_mfgfield_length, |
8003 | 15 | { "Field Length", "r3.mfgfield.length", |
8004 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
8005 | 15 | NULL, HFILL } |
8006 | 15 | }, |
8007 | 15 | { &hf_r3_mfgfield, |
8008 | 15 | { "Field", "r3.mfgfield.field", |
8009 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_mfgfieldnames_ext, 0x0, |
8010 | 15 | NULL, HFILL } |
8011 | 15 | }, |
8012 | | #if 0 |
8013 | | { &hf_r3_mfgfield_data, |
8014 | | { "Field Data", "r3.mfgfield.data", |
8015 | | FT_NONE, BASE_NONE, NULL, 0x0, |
8016 | | NULL, HFILL } |
8017 | | }, |
8018 | | #endif |
8019 | | |
8020 | 15 | { &hf_r3_mfgsetserialnumber, |
8021 | 15 | { "Serial Number", "r3.mfgsetserialnumber", |
8022 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
8023 | 15 | NULL, HFILL } |
8024 | 15 | }, |
8025 | 15 | { &hf_r3_mfgsetcryptkey, |
8026 | 15 | { "Crypt Key", "r3.mfgsetcryptkey", |
8027 | 15 | FT_BYTES, BASE_NONE, NULL, 0x0, |
8028 | 15 | NULL, HFILL } |
8029 | 15 | }, |
8030 | 15 | { &hf_r3_mfgdumpnvram, |
8031 | 15 | { "NVRAM Section", "r3.mfgnvramdump", |
8032 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_mfgnvramdumpnames_ext, 0x0, |
8033 | 15 | NULL, HFILL } |
8034 | 15 | }, |
8035 | 15 | { &hf_r3_mfgremoteunlock, |
8036 | 15 | { "Remote Unlock", "r3.mfgremoteunlock", |
8037 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_mfgremoteunlocknames_ext, 0x0, |
8038 | 15 | NULL, HFILL } |
8039 | 15 | }, |
8040 | 15 | { &hf_r3_mfgtestpreserve, |
8041 | 15 | { "Preserve Mode", "r3.mfgtestpreserve", |
8042 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_mfgtestpreservenames_ext, 0x0, |
8043 | 15 | NULL, HFILL } |
8044 | 15 | }, |
8045 | | |
8046 | 15 | { &hf_r3_adc [0], |
8047 | 15 | { "ADC 0", "r3.adc.0", |
8048 | 15 | FT_UINT8, BASE_HEX, NULL, 0x0, |
8049 | 15 | NULL, HFILL } |
8050 | 15 | }, |
8051 | 15 | { &hf_r3_adc [1], |
8052 | 15 | { "ADC 1", "r3.adc.1", |
8053 | 15 | FT_UINT8, BASE_HEX, NULL, 0x0, |
8054 | 15 | NULL, HFILL } |
8055 | 15 | }, |
8056 | 15 | { &hf_r3_adc [2], |
8057 | 15 | { "ADC 2", "r3.adc.2", |
8058 | 15 | FT_UINT8, BASE_HEX, NULL, 0x0, |
8059 | 15 | NULL, HFILL } |
8060 | 15 | }, |
8061 | 15 | { &hf_r3_adc [3], |
8062 | 15 | { "ADC 3", "r3.adc.3", |
8063 | 15 | FT_UINT8, BASE_HEX, NULL, 0x0, |
8064 | 15 | NULL, HFILL } |
8065 | 15 | }, |
8066 | 15 | { &hf_r3_adc [4], |
8067 | 15 | { "ADC 4", "r3.adc.4", |
8068 | 15 | FT_UINT8, BASE_HEX, NULL, 0x0, |
8069 | 15 | NULL, HFILL } |
8070 | 15 | }, |
8071 | 15 | { &hf_r3_adc [5], |
8072 | 15 | { "ADC 5", "r3.adc.5", |
8073 | 15 | FT_UINT8, BASE_HEX, NULL, 0x0, |
8074 | 15 | NULL, HFILL } |
8075 | 15 | }, |
8076 | 15 | { &hf_r3_adc [6], |
8077 | 15 | { "ADC 6", "r3.adc.6", |
8078 | 15 | FT_UINT8, BASE_HEX, NULL, 0x0, |
8079 | 15 | NULL, HFILL } |
8080 | 15 | }, |
8081 | 15 | { &hf_r3_adc [7], |
8082 | 15 | { "ADC 7", "r3.adc.7", |
8083 | 15 | FT_UINT8, BASE_HEX, NULL, 0x0, |
8084 | 15 | NULL, HFILL } |
8085 | 15 | }, |
8086 | | |
8087 | 15 | { &hf_r3_hardwareid_board, |
8088 | 15 | { "Board ID", "r3.hardwareid.board", |
8089 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
8090 | 15 | NULL, HFILL } |
8091 | 15 | }, |
8092 | 15 | { &hf_r3_hardwareid_cpuid, |
8093 | 15 | { "CPU ID", "r3.hardwareid.cpuid", |
8094 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
8095 | 15 | NULL, HFILL } |
8096 | 15 | }, |
8097 | 15 | { &hf_r3_hardwareid_cpurev, |
8098 | 15 | { "CPU Rev", "r3.hardwareid.cpurev", |
8099 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
8100 | 15 | NULL, HFILL } |
8101 | 15 | }, |
8102 | | |
8103 | 15 | { &hf_r3_testkeypad, |
8104 | 15 | { "Keypad Char", "r3.test.keypad", |
8105 | 15 | FT_CHAR, BASE_HEX, NULL, 0x0, |
8106 | 15 | NULL, HFILL } |
8107 | 15 | }, |
8108 | 15 | { &hf_r3_testmagcard, |
8109 | 15 | { "Mag Card", "r3.test.magcard", |
8110 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
8111 | 15 | NULL, HFILL } |
8112 | 15 | }, |
8113 | 15 | { &hf_r3_testproxcard, |
8114 | 15 | { "Prox Card", "r3.test.proxcard", |
8115 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
8116 | 15 | NULL, HFILL } |
8117 | 15 | }, |
8118 | | |
8119 | 15 | { &hf_r3_nvramdump_record, |
8120 | 15 | { "Record Number", "r3.nvramdump.record", |
8121 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
8122 | 15 | NULL, HFILL } |
8123 | 15 | }, |
8124 | 15 | { &hf_r3_nvramdump_length, |
8125 | 15 | { "Record Length", "r3.nvramdump.length", |
8126 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
8127 | 15 | NULL, HFILL } |
8128 | 15 | }, |
8129 | 15 | { &hf_r3_nvramdump_data, |
8130 | 15 | { "Record Data", "r3.nvramdump.data", |
8131 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
8132 | 15 | NULL, HFILL } |
8133 | 15 | }, |
8134 | | |
8135 | 15 | { &hf_r3_nvramdumprle_record, |
8136 | 15 | { "Record Number", "r3.nvramdumprle.record", |
8137 | 15 | FT_UINT24, BASE_DEC_HEX, NULL, 0x0, |
8138 | 15 | NULL, HFILL } |
8139 | 15 | }, |
8140 | 15 | { &hf_r3_nvramdumprle_length, |
8141 | 15 | { "Record Length", "r3.nvramdumprle.length", |
8142 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
8143 | 15 | NULL, HFILL } |
8144 | 15 | }, |
8145 | 15 | { &hf_r3_nvramdumprle_data, |
8146 | 15 | { "Record Data", "r3.nvramdumprle.data", |
8147 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
8148 | 15 | NULL, HFILL } |
8149 | 15 | }, |
8150 | | |
8151 | 15 | { &hf_r3_iopins_lat, |
8152 | 15 | { "LAT", "r3.iopins.lat", |
8153 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8154 | 15 | NULL, HFILL } |
8155 | 15 | }, |
8156 | 15 | { &hf_r3_iopins_port, |
8157 | 15 | { "PORT", "r3.iopins.port", |
8158 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8159 | 15 | NULL, HFILL } |
8160 | 15 | }, |
8161 | 15 | { &hf_r3_iopins_tris, |
8162 | 15 | { "TRIS", "r3.iopins.tris", |
8163 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8164 | 15 | NULL, HFILL } |
8165 | 15 | }, |
8166 | | |
8167 | 15 | { &hf_r3_mortisepins_s1, |
8168 | 15 | { "Mortise Pin S1", "r3.mortisepins.s1", |
8169 | 15 | FT_BOOLEAN, 8, TFS (&tfs_high_low), 0x01, |
8170 | 15 | NULL, HFILL } |
8171 | 15 | }, |
8172 | 15 | { &hf_r3_mortisepins_s2, |
8173 | 15 | { "Mortise Pin S2", "r3.mortisepins.s2", |
8174 | 15 | FT_BOOLEAN, 8, TFS (&tfs_high_low), 0x02, |
8175 | 15 | NULL, HFILL } |
8176 | 15 | }, |
8177 | 15 | { &hf_r3_mortisepins_s3, |
8178 | 15 | { "Mortise Pin S3", "r3.mortisepins.s3", |
8179 | 15 | FT_BOOLEAN, 8, TFS (&tfs_high_low), 0x04, |
8180 | 15 | NULL, HFILL } |
8181 | 15 | }, |
8182 | 15 | { &hf_r3_mortisepins_s4, |
8183 | 15 | { "Mortise Pin S4", "r3.mortisepins.s4", |
8184 | 15 | FT_BOOLEAN, 8, TFS (&tfs_high_low), 0x08, |
8185 | 15 | NULL, HFILL } |
8186 | 15 | }, |
8187 | | |
8188 | 15 | { &hf_r3_checksumresults , |
8189 | 15 | { "Checksum Results", "r3.checksumresults", |
8190 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
8191 | 15 | NULL, HFILL } |
8192 | 15 | }, |
8193 | 15 | { &hf_r3_checksumresults_field, |
8194 | 15 | { "Field", "r3.checksumresults.field", |
8195 | 15 | FT_UINT8, BASE_HEX|BASE_EXT_STRING, & r3_checksumresultnames_ext, 0x0, |
8196 | 15 | NULL, HFILL } |
8197 | 15 | }, |
8198 | 15 | { &hf_r3_checksumresults_length, |
8199 | 15 | { "Length", "r3.checksumresults.length", |
8200 | 15 | FT_UINT8, BASE_HEX, NULL, 0x0, |
8201 | 15 | NULL, HFILL } |
8202 | 15 | }, |
8203 | 15 | { &hf_r3_checksumresults_state, |
8204 | 15 | { "State", "r3.checksumresults.state", |
8205 | 15 | FT_BOOLEAN, BASE_NONE, TFS (&tfs_errornoerror_flags), 0x0, |
8206 | 15 | NULL, HFILL } |
8207 | 15 | }, |
8208 | | |
8209 | 15 | { &hf_r3_forceoptions_item, |
8210 | 15 | { "Item", "r3.forceoptions.item", |
8211 | 15 | FT_UINT8, BASE_HEX_DEC|BASE_EXT_STRING, &r3_forceitemnames_ext, 0x0, |
8212 | 15 | NULL, HFILL } |
8213 | 15 | }, |
8214 | 15 | { &hf_r3_forceoptions_length, |
8215 | 15 | { "Length", "r3.forceoptions.length", |
8216 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8217 | 15 | NULL, HFILL } |
8218 | 15 | }, |
8219 | 15 | { &hf_r3_forceoptions_state_8, |
8220 | 15 | { "State", "r3.forceoptions.state", |
8221 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8222 | 15 | NULL, HFILL } |
8223 | 15 | }, |
8224 | 15 | { &hf_r3_forceoptions_state_16, |
8225 | 15 | { "State", "r3.forceoptions.state", |
8226 | 15 | FT_UINT16, BASE_HEX_DEC, NULL, 0x0, |
8227 | 15 | NULL, HFILL } |
8228 | 15 | }, |
8229 | 15 | { &hf_r3_forceoptions_state_24, |
8230 | 15 | { "State", "r3.forceoptions.state", |
8231 | 15 | FT_UINT24, BASE_HEX_DEC, NULL, 0x0, |
8232 | 15 | NULL, HFILL } |
8233 | 15 | }, |
8234 | 15 | { &hf_r3_forceoptions_state_32, |
8235 | 15 | { "State", "r3.forceoptions.state", |
8236 | 15 | FT_UINT32, BASE_HEX_DEC, NULL, 0x0, |
8237 | 15 | NULL, HFILL } |
8238 | 15 | }, |
8239 | | |
8240 | 15 | { &hf_r3_peekpoke_operation, |
8241 | 15 | { "Operation", "r3.peekpoke.operation", |
8242 | 15 | FT_UINT8, BASE_HEX_DEC|BASE_EXT_STRING, &r3_peekpokenames_ext, 0x0, |
8243 | 15 | NULL, HFILL } |
8244 | 15 | }, |
8245 | 15 | { &hf_r3_peekpoke_address, |
8246 | 15 | { "Address", "r3.peekpoke.address", |
8247 | 15 | FT_UINT16, BASE_HEX_DEC, NULL, 0x0, |
8248 | 15 | NULL, HFILL } |
8249 | 15 | }, |
8250 | 15 | { &hf_r3_peekpoke_length, |
8251 | 15 | { "Length", "r3.peekpoke.length", |
8252 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8253 | 15 | NULL, HFILL } |
8254 | 15 | }, |
8255 | 15 | { &hf_r3_peekpoke_poke8, |
8256 | 15 | { "8 Bit Value", "r3.peekpoke.poke8", |
8257 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8258 | 15 | NULL, HFILL } |
8259 | 15 | }, |
8260 | 15 | { &hf_r3_peekpoke_poke16, |
8261 | 15 | { "16 Bit Value", "r3.peekpoke.poke16", |
8262 | 15 | FT_UINT16, BASE_HEX_DEC, NULL, 0x0, |
8263 | 15 | NULL, HFILL } |
8264 | 15 | }, |
8265 | 15 | { &hf_r3_peekpoke_poke24, |
8266 | 15 | { "24 Bit Value", "r3.peekpoke.poke24", |
8267 | 15 | FT_UINT24, BASE_HEX_DEC, NULL, 0x0, |
8268 | 15 | NULL, HFILL } |
8269 | 15 | }, |
8270 | 15 | { &hf_r3_peekpoke_poke32, |
8271 | 15 | { "32 Bit Value", "r3.peekpoke.poke32", |
8272 | 15 | FT_UINT32, BASE_HEX_DEC, NULL, 0x0, |
8273 | 15 | NULL, HFILL } |
8274 | 15 | }, |
8275 | 15 | { &hf_r3_peekpoke_pokestring, |
8276 | 15 | { "String Value", "r3.peekpoke.pokestring", |
8277 | 15 | FT_BYTES, BASE_NONE, NULL, 0x0, |
8278 | 15 | NULL, HFILL } |
8279 | 15 | }, |
8280 | | |
8281 | 15 | { &hf_r3_firmwaredownload_length, |
8282 | 15 | { "Length", "r3.firmwaredownload.length", |
8283 | 15 | FT_UINT16, BASE_HEX_DEC, NULL, 0x0, |
8284 | 15 | NULL, HFILL } |
8285 | 15 | }, |
8286 | 15 | { &hf_r3_firmwaredownload_record, |
8287 | 15 | { "Record Number", "r3.firmwaredownload.record", |
8288 | 15 | FT_UINT16, BASE_HEX_DEC, NULL, 0x0, |
8289 | 15 | NULL, HFILL } |
8290 | 15 | }, |
8291 | 15 | { &hf_r3_firmwaredownload_action, |
8292 | 15 | { "Action", "r3.firmwaredownload.action", |
8293 | 15 | FT_UINT8, BASE_HEX_DEC|BASE_EXT_STRING, &r3_downloadfirmwarenames_ext, 0x0, |
8294 | 15 | NULL, HFILL } |
8295 | 15 | }, |
8296 | 15 | { &hf_r3_firmwaredownload_timeout, |
8297 | 15 | { "Timeout", "r3.firmwaredownload.timeout", |
8298 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8299 | 15 | NULL, HFILL } |
8300 | 15 | }, |
8301 | 15 | { &hf_r3_firmwaredownload_nvram, |
8302 | 15 | { "NVRAM", "r3.firmwaredownload.nvram", |
8303 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8304 | 15 | NULL, HFILL } |
8305 | 15 | }, |
8306 | 15 | { &hf_r3_firmwaredownload_address, |
8307 | 15 | { "Address", "r3.firmwaredownload.address", |
8308 | 15 | FT_UINT32, BASE_HEX_DEC, NULL, 0x0, |
8309 | 15 | NULL, HFILL } |
8310 | 15 | }, |
8311 | 15 | { &hf_r3_firmwaredownload_bytes, |
8312 | 15 | { "Bytes", "r3.firmwaredownload.bytes", |
8313 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8314 | 15 | NULL, HFILL } |
8315 | 15 | }, |
8316 | 15 | { &hf_r3_firmwaredownload_data, |
8317 | 15 | { "Data", "r3.firmwaredownload.data", |
8318 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
8319 | 15 | NULL, HFILL } |
8320 | 15 | }, |
8321 | 15 | { &hf_r3_firmwaredownload_crc, |
8322 | 15 | { "CRC", "r3.firmwaredownload.crc", |
8323 | 15 | FT_UINT16, BASE_HEX, NULL, 0x0, |
8324 | 15 | NULL, HFILL } |
8325 | 15 | }, |
8326 | 15 | { &hf_r3_firmwaredownload_crc_bad, |
8327 | 15 | { "Bad CRC", "r3.firmwaredownload.crc_bad", |
8328 | 15 | FT_BOOLEAN, BASE_NONE, NULL, 0x0, |
8329 | 15 | NULL, HFILL } |
8330 | 15 | }, |
8331 | | |
8332 | 15 | { &hf_r3_nvramchecksumvalue, |
8333 | 15 | { "Value", "r3.nvramchecksum.value", |
8334 | 15 | FT_UINT32, BASE_HEX, NULL, 0x0, |
8335 | 15 | NULL, HFILL } |
8336 | 15 | }, |
8337 | 15 | { &hf_r3_nvramchecksumvalue_fixup, |
8338 | 15 | { "Fixup", "r3.nvramchecksum.fixup", |
8339 | 15 | FT_UINT32, BASE_HEX, NULL, 0x0, |
8340 | 15 | NULL, HFILL } |
8341 | 15 | }, |
8342 | | |
8343 | 15 | { &hf_r3_capabilities, |
8344 | 15 | { "Capability", "r3.capabilities", |
8345 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
8346 | 15 | NULL, HFILL } |
8347 | 15 | }, |
8348 | 15 | { &hf_r3_capabilities_length, |
8349 | 15 | { "Length", "r3.capabilities.length", |
8350 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8351 | 15 | NULL, HFILL } |
8352 | 15 | }, |
8353 | 15 | { &hf_r3_capabilities_type, |
8354 | 15 | { "Type", "r3.capabilities.type", |
8355 | 15 | FT_UINT8, BASE_HEX_DEC|BASE_EXT_STRING, &r3_capabilitiesnames_ext, 0x0, |
8356 | 15 | NULL, HFILL } |
8357 | 15 | }, |
8358 | 15 | { &hf_r3_capabilities_value, |
8359 | 15 | { "Value", "r3.capabilities.value", |
8360 | 15 | FT_UINT16, BASE_HEX_DEC, NULL, 0x0, |
8361 | 15 | NULL, HFILL } |
8362 | 15 | }, |
8363 | | |
8364 | 15 | { &hf_r3_lockstate, |
8365 | 15 | { "Lock State", "r3.lockstate", |
8366 | 15 | FT_UINT24, BASE_HEX, NULL, 0x0, |
8367 | 15 | NULL, HFILL } |
8368 | 15 | }, |
8369 | | |
8370 | 15 | { &hf_r3_lockstate_passage, |
8371 | 15 | { "Passage", "r3.lockstate.passage", |
8372 | 15 | FT_BOOLEAN, 24, NULL, 0x000001, |
8373 | 15 | NULL, HFILL } |
8374 | 15 | }, |
8375 | 15 | { &hf_r3_lockstate_panic, |
8376 | 15 | { "Panic", "r3.lockstate.panic", |
8377 | 15 | FT_BOOLEAN, 24, NULL, 0x000002, |
8378 | 15 | NULL, HFILL } |
8379 | 15 | }, |
8380 | 15 | { &hf_r3_lockstate_lockout, |
8381 | 15 | { "Lockout", "r3.lockstate.lockout", |
8382 | 15 | FT_BOOLEAN, 24, NULL, 0x000004, |
8383 | 15 | NULL, HFILL } |
8384 | 15 | }, |
8385 | 15 | { &hf_r3_lockstate_relock, |
8386 | 15 | { "Relock", "r3.lockstate.relock", |
8387 | 15 | FT_BOOLEAN, 24, NULL, 0x000008, |
8388 | 15 | NULL, HFILL } |
8389 | 15 | }, |
8390 | 15 | { &hf_r3_lockstate_autoopen, |
8391 | 15 | { "Auto Open", "r3.lockstate.autoopen", |
8392 | 15 | FT_BOOLEAN, 24, NULL, 0x000010, |
8393 | 15 | NULL, HFILL } |
8394 | 15 | }, |
8395 | 15 | { &hf_r3_lockstate_nextauto, |
8396 | 15 | { "Next Auto", "r3.lockstate.nextauto", |
8397 | 15 | FT_BOOLEAN, 24, NULL, 0x000020, |
8398 | 15 | NULL, HFILL } |
8399 | 15 | }, |
8400 | 15 | { &hf_r3_lockstate_lockstate, |
8401 | 15 | { "Lock State", "r3.lockstate.lockstate", |
8402 | 15 | FT_BOOLEAN, 24, NULL, 0x000040, |
8403 | 15 | NULL, HFILL } |
8404 | 15 | }, |
8405 | 15 | { &hf_r3_lockstate_wantstate, |
8406 | 15 | { "Want State", "r3.lockstate.wantstate", |
8407 | 15 | FT_BOOLEAN, 24, NULL, 0x000080, |
8408 | 15 | NULL, HFILL } |
8409 | 15 | }, |
8410 | 15 | { &hf_r3_lockstate_remote, |
8411 | 15 | { "Remote", "r3.lockstate.remote", |
8412 | 15 | FT_BOOLEAN, 24, NULL, 0x000100, |
8413 | 15 | NULL, HFILL } |
8414 | 15 | }, |
8415 | 15 | { &hf_r3_lockstate_update, |
8416 | 15 | { "Update", "r3.lockstate.update", |
8417 | 15 | FT_BOOLEAN, 24, NULL, 0x000200, |
8418 | 15 | NULL, HFILL } |
8419 | 15 | }, |
8420 | 15 | { &hf_r3_lockstate_exceptionspresent, |
8421 | 15 | { "Exceptions Present", "r3.lockstate.exceptionspresent", |
8422 | 15 | FT_BOOLEAN, 24, NULL, 0x000400, |
8423 | 15 | NULL, HFILL } |
8424 | 15 | }, |
8425 | 15 | { &hf_r3_lockstate_exceptionsactive, |
8426 | 15 | { "Exceptions Active", "r3.lockstate.exceptionsactive", |
8427 | 15 | FT_BOOLEAN, 24, NULL, 0x000800, |
8428 | 15 | NULL, HFILL } |
8429 | 15 | }, |
8430 | 15 | { &hf_r3_lockstate_timezonespresent, |
8431 | 15 | { "Timezones Presents", "r3.lockstate.timezonespresent", |
8432 | 15 | FT_BOOLEAN, 24, NULL, 0x001000, |
8433 | 15 | NULL, HFILL } |
8434 | 15 | }, |
8435 | 15 | { &hf_r3_lockstate_timezonesactive, |
8436 | 15 | { "Timezones Active", "r3.lockstate.timezonesactive", |
8437 | 15 | FT_BOOLEAN, 24, NULL, 0x002000, |
8438 | 15 | NULL, HFILL } |
8439 | 15 | }, |
8440 | 15 | { &hf_r3_lockstate_autounlockspresent, |
8441 | 15 | { "Auto Unlocks Present", "r3.lockstate.autounlockspresent", |
8442 | 15 | FT_BOOLEAN, 24, NULL, 0x004000, |
8443 | 15 | NULL, HFILL } |
8444 | 15 | }, |
8445 | 15 | { &hf_r3_lockstate_autounlocksactive, |
8446 | 15 | { "Auto Unlocks Active", "r3.lockstate.autounlocksactive", |
8447 | 15 | FT_BOOLEAN, 24, NULL, 0x008000, |
8448 | 15 | NULL, HFILL } |
8449 | 15 | }, |
8450 | 15 | { &hf_r3_lockstate_uapmspresent, |
8451 | 15 | { "UAPMs Present", "r3.lockstate.uapmspresent", |
8452 | 15 | FT_BOOLEAN, 24, NULL, 0x010000, |
8453 | 15 | NULL, HFILL } |
8454 | 15 | }, |
8455 | 15 | { &hf_r3_lockstate_uapmsactive, |
8456 | 15 | { "UAPMs Active", "r3.lockstate.uapmsactive", |
8457 | 15 | FT_BOOLEAN, 24, NULL, 0x020000, |
8458 | 15 | NULL, HFILL } |
8459 | 15 | }, |
8460 | 15 | { &hf_r3_lockstate_uapmrelockspresent, |
8461 | 15 | { "UAPM Relocks Present", "r3.lockstate.uapmrelockspresent", |
8462 | 15 | FT_BOOLEAN, 24, NULL, 0x040000, |
8463 | 15 | NULL, HFILL } |
8464 | 15 | }, |
8465 | 15 | { &hf_r3_lockstate_uapmreslocksactive, |
8466 | 15 | { "UAPM Relocks Active", "r3.lockstate.uapmreslocksactive", |
8467 | 15 | FT_BOOLEAN, 24, NULL, 0x080000, |
8468 | 15 | NULL, HFILL } |
8469 | 15 | }, |
8470 | 15 | { &hf_r3_lockstate_nvramprotect, |
8471 | 15 | { "NVRAM Protect", "r3.lockstate.nvramprotect", |
8472 | 15 | FT_BOOLEAN, 24, NULL, 0x100000, |
8473 | 15 | NULL, HFILL } |
8474 | 15 | }, |
8475 | 15 | { &hf_r3_lockstate_nvramchecksum, |
8476 | 15 | { "MVRAM Checksum", "r3.lockstate.nvramchecksum", |
8477 | 15 | FT_BOOLEAN, 24, NULL, 0x200000, |
8478 | 15 | NULL, HFILL } |
8479 | 15 | }, |
8480 | | |
8481 | | #if 0 |
8482 | | { &hf_r3_mortisestatelog, |
8483 | | { "Mortise State Log", "r3.mortisestatelog", |
8484 | | FT_NONE, BASE_NONE, NULL, 0x0, |
8485 | | NULL, HFILL } |
8486 | | }, |
8487 | | #endif |
8488 | 15 | { &hf_r3_mortisestatelog_pointer, |
8489 | 15 | { "Event Pointer", "r3.mortisestatelog.pointer", |
8490 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8491 | 15 | NULL, HFILL } |
8492 | 15 | }, |
8493 | 15 | { &hf_r3_mortisestatelog_mortisetype, |
8494 | 15 | { "Mortise Type", "r3.mortisestatelog.mortisetype", |
8495 | 15 | FT_UINT8, BASE_HEX_DEC|BASE_EXT_STRING, &r3_mortisetypenames_ext, 0x0, |
8496 | 15 | NULL, HFILL } |
8497 | 15 | }, |
8498 | 15 | { &hf_r3_mortisestatelog_waiting, |
8499 | 15 | { "Waiting For Door Closed", "r3.mortisestatelog.waiting", |
8500 | 15 | FT_BOOLEAN, BASE_NONE, NULL, 0x00, |
8501 | 15 | NULL, HFILL } |
8502 | 15 | }, |
8503 | 15 | { &hf_r3_mortisestatelog_state, |
8504 | 15 | { "State", "r3.mortisestatelog.state", |
8505 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8506 | 15 | NULL, HFILL } |
8507 | 15 | }, |
8508 | 15 | { &hf_r3_mortisestatelog_last, |
8509 | 15 | { "Last State", "r3.mortisestatelog.laststate", |
8510 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8511 | 15 | NULL, HFILL } |
8512 | 15 | }, |
8513 | 15 | { &hf_r3_mortisestatelog_event, |
8514 | 15 | { "Event", "r3.mortisestatelog.event", |
8515 | 15 | FT_UINT8, BASE_HEX_DEC|BASE_EXT_STRING, &r3_mortiseeventnames_ext, 0x0, |
8516 | 15 | NULL, HFILL } |
8517 | 15 | }, |
8518 | | |
8519 | 15 | { &hf_r3_timerchain_newtick, |
8520 | 15 | { "New Tick", "r3.timerchain.newtick", |
8521 | 15 | FT_UINT16, BASE_HEX_DEC, NULL, 0x0, |
8522 | 15 | NULL, HFILL } |
8523 | 15 | }, |
8524 | 15 | { &hf_r3_timerchain_currentboundary, |
8525 | 15 | { "Current Boundary", "r3.timerchain.currentboundary", |
8526 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8527 | 15 | NULL, HFILL } |
8528 | 15 | }, |
8529 | 15 | { &hf_r3_timerchain_tasktag, |
8530 | 15 | { "Task Tag", "r3.timerchain.tasktag", |
8531 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8532 | 15 | NULL, HFILL } |
8533 | 15 | }, |
8534 | 15 | { &hf_r3_timerchain_address, |
8535 | 15 | { "Address", "r3.timerchain.address", |
8536 | 15 | FT_UINT16, BASE_HEX_DEC, NULL, 0x0, |
8537 | 15 | NULL, HFILL } |
8538 | 15 | }, |
8539 | 15 | { &hf_r3_timerchain_reload, |
8540 | 15 | { "Reload", "r3.timerchain.reload", |
8541 | 15 | FT_UINT16, BASE_HEX_DEC, NULL, 0x0, |
8542 | 15 | NULL, HFILL } |
8543 | 15 | }, |
8544 | 15 | { &hf_r3_timerchain_boundary, |
8545 | 15 | { "Boundary", "r3.timerchain.boundary", |
8546 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8547 | 15 | NULL, HFILL } |
8548 | 15 | }, |
8549 | 15 | { &hf_r3_timerchain_count, |
8550 | 15 | { "Count", "r3.timerchain.count", |
8551 | 15 | FT_UINT16, BASE_HEX_DEC, NULL, 0x0, |
8552 | 15 | NULL, HFILL } |
8553 | 15 | }, |
8554 | 15 | { &hf_r3_timerchain_flags, |
8555 | 15 | { "Flags", "r3.timerchain.flags", |
8556 | 15 | FT_UINT32, BASE_HEX, NULL, 0x0, |
8557 | 15 | NULL, HFILL } |
8558 | 15 | }, |
8559 | | |
8560 | 15 | { &hf_r3_taskflags_taskid, |
8561 | 15 | { "Task ID", "r3.taskflags.taskid", |
8562 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8563 | 15 | NULL, HFILL } |
8564 | 15 | }, |
8565 | 15 | { &hf_r3_taskflags_flags, |
8566 | 15 | { "Flags", "r3.taskflags.flags", |
8567 | 15 | FT_UINT32, BASE_HEX, NULL, 0x0, |
8568 | 15 | NULL, HFILL } |
8569 | 15 | }, |
8570 | | |
8571 | 15 | { &hf_r3_checkpointlog_entryptr, |
8572 | 15 | { "Entry Pointer", "r3.checkpointlog.entrypointer", |
8573 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8574 | 15 | NULL, HFILL } |
8575 | 15 | }, |
8576 | 15 | { &hf_r3_checkpointlog_rcon, |
8577 | 15 | { "RCON", "r3.checkpointlog.rcon", |
8578 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8579 | 15 | NULL, HFILL } |
8580 | 15 | }, |
8581 | 15 | { &hf_r3_checkpointlog_checkpoint, |
8582 | 15 | { "Checkpoint", "r3.checkpointlog.checkpoint", |
8583 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8584 | 15 | NULL, HFILL } |
8585 | 15 | }, |
8586 | | |
8587 | 15 | { &hf_r3_cpuregisters_intcon, |
8588 | 15 | { "INTCON", "r3.cpuregisters.intcon", |
8589 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8590 | 15 | NULL, HFILL } |
8591 | 15 | }, |
8592 | 15 | { &hf_r3_cpuregisters_intcon2, |
8593 | 15 | { "INTCON2", "r3.cpuregisters.intcon2", |
8594 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8595 | 15 | NULL, HFILL } |
8596 | 15 | }, |
8597 | 15 | { &hf_r3_cpuregisters_intcon3, |
8598 | 15 | { "INTCON3", "r3.cpuregisters.intcon3", |
8599 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8600 | 15 | NULL, HFILL } |
8601 | 15 | }, |
8602 | 15 | { &hf_r3_cpuregisters_pir1, |
8603 | 15 | { "PIR1", "r3.cpuregisters.pir1", |
8604 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8605 | 15 | NULL, HFILL } |
8606 | 15 | }, |
8607 | 15 | { &hf_r3_cpuregisters_pir2, |
8608 | 15 | { "PIR2", "r3.cpuregisters.pir2", |
8609 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8610 | 15 | NULL, HFILL } |
8611 | 15 | }, |
8612 | 15 | { &hf_r3_cpuregisters_pir3, |
8613 | 15 | { "PIR3", "r3.cpuregisters.pir3", |
8614 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8615 | 15 | NULL, HFILL } |
8616 | 15 | }, |
8617 | 15 | { &hf_r3_cpuregisters_pie1, |
8618 | 15 | { "PIE1", "r3.cpuregisters.pie1", |
8619 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8620 | 15 | NULL, HFILL } |
8621 | 15 | }, |
8622 | 15 | { &hf_r3_cpuregisters_pie2, |
8623 | 15 | { "PIE2", "r3.cpuregisters.pie2", |
8624 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8625 | 15 | NULL, HFILL } |
8626 | 15 | }, |
8627 | 15 | { &hf_r3_cpuregisters_pie3, |
8628 | 15 | { "PIE3", "r3.cpuregisters.pie3", |
8629 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8630 | 15 | NULL, HFILL } |
8631 | 15 | }, |
8632 | 15 | { &hf_r3_cpuregisters_ipr1, |
8633 | 15 | { "IPR1", "r3.cpuregisters.ipr1", |
8634 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8635 | 15 | NULL, HFILL } |
8636 | 15 | }, |
8637 | 15 | { &hf_r3_cpuregisters_ipr2, |
8638 | 15 | { "IPR2", "r3.cpuregisters.ipr2", |
8639 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8640 | 15 | NULL, HFILL } |
8641 | 15 | }, |
8642 | 15 | { &hf_r3_cpuregisters_ipr3, |
8643 | 15 | { "IPR3", "r3.cpuregisters.ipr3", |
8644 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8645 | 15 | NULL, HFILL } |
8646 | 15 | }, |
8647 | 15 | { &hf_r3_cpuregisters_rcon, |
8648 | 15 | { "RCON", "r3.cpuregisters.rcon", |
8649 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8650 | 15 | NULL, HFILL } |
8651 | 15 | }, |
8652 | 15 | { &hf_r3_cpuregisters_osccon, |
8653 | 15 | { "OSCCON", "r3.cpuregisters.osccon", |
8654 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8655 | 15 | NULL, HFILL } |
8656 | 15 | }, |
8657 | 15 | { &hf_r3_cpuregisters_rcsta, |
8658 | 15 | { "RCSTA", "r3.cpuregisters.rcsta", |
8659 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8660 | 15 | NULL, HFILL } |
8661 | 15 | }, |
8662 | 15 | { &hf_r3_cpuregisters_txsta, |
8663 | 15 | { "TXSTA", "r3.cpuregisters.txsta", |
8664 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8665 | 15 | NULL, HFILL } |
8666 | 15 | }, |
8667 | 15 | { &hf_r3_cpuregisters_rcsta2, |
8668 | 15 | { "RCSTA2", "r3.cpuregisters.rcsta2", |
8669 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8670 | 15 | NULL, HFILL } |
8671 | 15 | }, |
8672 | 15 | { &hf_r3_cpuregisters_txsta2, |
8673 | 15 | { "TXSTA2", "r3.cpuregisters.txsta2", |
8674 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8675 | 15 | NULL, HFILL } |
8676 | 15 | }, |
8677 | 15 | { &hf_r3_cpuregisters_wdtcon, |
8678 | 15 | { "WDTCON", "r3.cpuregisters.wdtcon", |
8679 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
8680 | 15 | NULL, HFILL } |
8681 | 15 | }, |
8682 | | |
8683 | 15 | { &hf_r3_cpuregisters_intcon_rbif, |
8684 | 15 | { "INTCON.RBIF", "r3.cpuregisters.intcon.rbif", |
8685 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
8686 | 15 | NULL, HFILL } |
8687 | 15 | }, |
8688 | 15 | { &hf_r3_cpuregisters_intcon_int0if, |
8689 | 15 | { "INTCON.INT0IF", "r3.cpuregisters.intcon.int0if", |
8690 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
8691 | 15 | NULL, HFILL } |
8692 | 15 | }, |
8693 | 15 | { &hf_r3_cpuregisters_intcon_tmr0if, |
8694 | 15 | { "INTCON.TMR0IF", "r3.cpuregisters.intcon.tmr0if", |
8695 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
8696 | 15 | NULL, HFILL } |
8697 | 15 | }, |
8698 | 15 | { &hf_r3_cpuregisters_intcon_rbie, |
8699 | 15 | { "INTCON.RBIE", "r3.cpuregisters.intcon.rbie", |
8700 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
8701 | 15 | NULL, HFILL } |
8702 | 15 | }, |
8703 | 15 | { &hf_r3_cpuregisters_intcon_int0ie, |
8704 | 15 | { "INTCON.INT0IE", "r3.cpuregisters.intcon.int0ie", |
8705 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
8706 | 15 | NULL, HFILL } |
8707 | 15 | }, |
8708 | 15 | { &hf_r3_cpuregisters_intcon_tmr0ie, |
8709 | 15 | { "INTCON.TMR0IE", "r3.cpuregisters.intcon.tmr0ie", |
8710 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
8711 | 15 | NULL, HFILL } |
8712 | 15 | }, |
8713 | 15 | { &hf_r3_cpuregisters_intcon_giel, |
8714 | 15 | { "INTCON.GIEL", "r3.cpuregisters.intcon.giel", |
8715 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
8716 | 15 | NULL, HFILL } |
8717 | 15 | }, |
8718 | 15 | { &hf_r3_cpuregisters_intcon_gieh, |
8719 | 15 | { "INTCON.GIEH", "r3.cpuregisters.intcon.gieh", |
8720 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
8721 | 15 | NULL, HFILL } |
8722 | 15 | }, |
8723 | 15 | { &hf_r3_cpuregisters_intcon2_rbip, |
8724 | 15 | { "INTCON2.RBIP", "r3_cpuregisters_intcon2_rbip", |
8725 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
8726 | 15 | NULL, HFILL } |
8727 | 15 | }, |
8728 | 15 | { &hf_r3_cpuregisters_intcon2_int3ip, |
8729 | 15 | { "INTCON2.INT3IP", "r3_cpuregisters_intcon2_int3ip", |
8730 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
8731 | 15 | NULL, HFILL } |
8732 | 15 | }, |
8733 | 15 | { &hf_r3_cpuregisters_intcon2_tmr0ip, |
8734 | 15 | { "INTCON2.TMR0IP", "r3_cpuregisters_intcon2_tmr0ip", |
8735 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
8736 | 15 | NULL, HFILL } |
8737 | 15 | }, |
8738 | 15 | { &hf_r3_cpuregisters_intcon2_intedg3, |
8739 | 15 | { "INTCON2.INTEDG3", "r3_cpuregisters_intcon2_intedg3", |
8740 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
8741 | 15 | NULL, HFILL } |
8742 | 15 | }, |
8743 | 15 | { &hf_r3_cpuregisters_intcon2_intedg2, |
8744 | 15 | { "INTCON2.INTEDG2", "r3_cpuregisters_intcon2_intedg2", |
8745 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
8746 | 15 | NULL, HFILL } |
8747 | 15 | }, |
8748 | 15 | { &hf_r3_cpuregisters_intcon2_intedg1, |
8749 | 15 | { "INTCON2.INTEDG1", "r3_cpuregisters_intcon2_intedg1", |
8750 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
8751 | 15 | NULL, HFILL } |
8752 | 15 | }, |
8753 | 15 | { &hf_r3_cpuregisters_intcon2_intedg0, |
8754 | 15 | { "INTCON2.INTEDG0", "r3_cpuregisters_intcon2_intedg0", |
8755 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
8756 | 15 | NULL, HFILL } |
8757 | 15 | }, |
8758 | 15 | { &hf_r3_cpuregisters_intcon2_rbpu, |
8759 | 15 | { "INTCON2.RBPU", "r3_cpuregisters_intcon2_rbpu", |
8760 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
8761 | 15 | NULL, HFILL } |
8762 | 15 | }, |
8763 | 15 | { &hf_r3_cpuregisters_intcon3_int1if, |
8764 | 15 | { "INTCON3.INT1IF", "r3.cpuregisters.intcon3.int1if", |
8765 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
8766 | 15 | NULL, HFILL } |
8767 | 15 | }, |
8768 | 15 | { &hf_r3_cpuregisters_intcon3_int2if, |
8769 | 15 | { "INTCON3.INT2IF", "r3.cpuregisters.intcon3.int2if", |
8770 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
8771 | 15 | NULL, HFILL } |
8772 | 15 | }, |
8773 | 15 | { &hf_r3_cpuregisters_intcon3_int3if, |
8774 | 15 | { "INTCON3.INT3IF", "r3.cpuregisters.intcon3.int3if", |
8775 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
8776 | 15 | NULL, HFILL } |
8777 | 15 | }, |
8778 | 15 | { &hf_r3_cpuregisters_intcon3_int1ie, |
8779 | 15 | { "INTCON3.INT1IE", "r3.cpuregisters.intcon3.int1ie", |
8780 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
8781 | 15 | NULL, HFILL } |
8782 | 15 | }, |
8783 | 15 | { &hf_r3_cpuregisters_intcon3_int2ie, |
8784 | 15 | { "INTCON3.INT2IE", "r3.cpuregisters.intcon3.int2ie", |
8785 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
8786 | 15 | NULL, HFILL } |
8787 | 15 | }, |
8788 | 15 | { &hf_r3_cpuregisters_intcon3_int3ie, |
8789 | 15 | { "INTCON3.INT3IE", "r3.cpuregisters.intcon3.int3ie", |
8790 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
8791 | 15 | NULL, HFILL } |
8792 | 15 | }, |
8793 | 15 | { &hf_r3_cpuregisters_intcon3_int1ip, |
8794 | 15 | { "INTCON3.INT1IP", "r3.cpuregisters.intcon3.int1ip", |
8795 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
8796 | 15 | NULL, HFILL } |
8797 | 15 | }, |
8798 | 15 | { &hf_r3_cpuregisters_intcon3_int2ip, |
8799 | 15 | { "INTCON3.INT2IP", "r3.cpuregisters.intcon3.int2ip", |
8800 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
8801 | 15 | NULL, HFILL } |
8802 | 15 | }, |
8803 | 15 | { &hf_r3_cpuregisters_pir1_tmr1if, |
8804 | 15 | { "PIR1.TMR1IF", "r3.cpuregisters.pir1.tmr1if", |
8805 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
8806 | 15 | NULL, HFILL } |
8807 | 15 | }, |
8808 | 15 | { &hf_r3_cpuregisters_pir1_tmr2if, |
8809 | 15 | { "PIR1.TMR2IF", "r3.cpuregisters.pir1.tmr2if", |
8810 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
8811 | 15 | NULL, HFILL } |
8812 | 15 | }, |
8813 | 15 | { &hf_r3_cpuregisters_pir1_ccp1if, |
8814 | 15 | { "PIR1.CCP1IF", "r3.cpuregisters.pir1.ccp1if", |
8815 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
8816 | 15 | NULL, HFILL } |
8817 | 15 | }, |
8818 | 15 | { &hf_r3_cpuregisters_pir1_ssp1if, |
8819 | 15 | { "PIR1.SSP1IF", "r3.cpuregisters.pir1.ssp1if", |
8820 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
8821 | 15 | NULL, HFILL } |
8822 | 15 | }, |
8823 | 15 | { &hf_r3_cpuregisters_pir1_tx1if, |
8824 | 15 | { "PIR1.TX1IF", "r3.cpuregisters.pir1.tx1if", |
8825 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
8826 | 15 | NULL, HFILL } |
8827 | 15 | }, |
8828 | 15 | { &hf_r3_cpuregisters_pir1_rc1if, |
8829 | 15 | { "PIR1.RC1IF", "r3.cpuregisters.pir1.rc1if", |
8830 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
8831 | 15 | NULL, HFILL } |
8832 | 15 | }, |
8833 | 15 | { &hf_r3_cpuregisters_pir1_adif, |
8834 | 15 | { "PIR1.ADIF", "r3.cpuregisters.pir1.adif", |
8835 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
8836 | 15 | NULL, HFILL } |
8837 | 15 | }, |
8838 | 15 | { &hf_r3_cpuregisters_pir1_pspif, |
8839 | 15 | { "PIR1.PSPIF", "r3.cpuregisters.pir1.pspif", |
8840 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
8841 | 15 | NULL, HFILL } |
8842 | 15 | }, |
8843 | 15 | { &hf_r3_cpuregisters_pir2_ccp2if, |
8844 | 15 | { "PIR2.CCP2IF", "r3.cpuregisters.pir2.ccp2if", |
8845 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
8846 | 15 | NULL, HFILL } |
8847 | 15 | }, |
8848 | 15 | { &hf_r3_cpuregisters_pir2_tmr3if, |
8849 | 15 | { "PIR2.TMR3IF", "r3.cpuregisters.pir2.tmr3if", |
8850 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
8851 | 15 | NULL, HFILL } |
8852 | 15 | }, |
8853 | 15 | { &hf_r3_cpuregisters_pir2_hlvdif, |
8854 | 15 | { "PIR2.HLVDIF", "r3.cpuregisters.pir2.hlvdif", |
8855 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
8856 | 15 | NULL, HFILL } |
8857 | 15 | }, |
8858 | 15 | { &hf_r3_cpuregisters_pir2_bcl1if, |
8859 | 15 | { "PIR2.BCL1IF", "r3.cpuregisters.pir2.bcl1if", |
8860 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
8861 | 15 | NULL, HFILL } |
8862 | 15 | }, |
8863 | 15 | { &hf_r3_cpuregisters_pir2_eeif, |
8864 | 15 | { "PIR2.EEIF", "r3.cpuregisters.pir2.eeif", |
8865 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
8866 | 15 | NULL, HFILL } |
8867 | 15 | }, |
8868 | 15 | { &hf_r3_cpuregisters_pir2_unused5, |
8869 | 15 | { "PIR2.UNUSED5", "r3.cpuregisters.pir2.unused5", |
8870 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
8871 | 15 | NULL, HFILL } |
8872 | 15 | }, |
8873 | 15 | { &hf_r3_cpuregisters_pir2_cmif, |
8874 | 15 | { "PIR2.CMIF", "r3.cpuregisters.pir2.cmif", |
8875 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
8876 | 15 | NULL, HFILL } |
8877 | 15 | }, |
8878 | 15 | { &hf_r3_cpuregisters_pir2_oscfif, |
8879 | 15 | { "PIR2.OSCFIF", "r3.cpuregisters.pir2.oscfif", |
8880 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
8881 | 15 | NULL, HFILL } |
8882 | 15 | }, |
8883 | 15 | { &hf_r3_cpuregisters_pir3_ccp3if, |
8884 | 15 | { "PIR3.CCP3IF", "r3.cpuregisters.pir3.ccp3if", |
8885 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
8886 | 15 | NULL, HFILL } |
8887 | 15 | }, |
8888 | 15 | { &hf_r3_cpuregisters_pir3_ccp4if, |
8889 | 15 | { "PIR3.CCP4IF", "r3.cpuregisters.pir3.ccp4if", |
8890 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
8891 | 15 | NULL, HFILL } |
8892 | 15 | }, |
8893 | 15 | { &hf_r3_cpuregisters_pir3_ccp5if, |
8894 | 15 | { "PIR3.CCP5IF", "r3.cpuregisters.pir3.ccp5if", |
8895 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
8896 | 15 | NULL, HFILL } |
8897 | 15 | }, |
8898 | 15 | { &hf_r3_cpuregisters_pir3_tmr4if, |
8899 | 15 | { "PIR3.TMR4IF", "r3.cpuregisters.pir3.tmr4if", |
8900 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
8901 | 15 | NULL, HFILL } |
8902 | 15 | }, |
8903 | 15 | { &hf_r3_cpuregisters_pir3_tx2if, |
8904 | 15 | { "PIR3.TX2IF", "r3.cpuregisters.pir3.tx2if", |
8905 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
8906 | 15 | NULL, HFILL } |
8907 | 15 | }, |
8908 | 15 | { &hf_r3_cpuregisters_pir3_rc2if, |
8909 | 15 | { "PIR3.RC2IF", "r3.cpuregisters.pir3.rc2if", |
8910 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
8911 | 15 | NULL, HFILL } |
8912 | 15 | }, |
8913 | 15 | { &hf_r3_cpuregisters_pir3_bcl2if, |
8914 | 15 | { "PIR3.BCL2IF", "r3.cpuregisters.pir3.bcl2if", |
8915 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
8916 | 15 | NULL, HFILL } |
8917 | 15 | }, |
8918 | 15 | { &hf_r3_cpuregisters_pir3_ssp2if, |
8919 | 15 | { "PIR3.SSP2IF", "r3.cpuregisters.pir3.ssp2if", |
8920 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
8921 | 15 | NULL, HFILL } |
8922 | 15 | }, |
8923 | 15 | { &hf_r3_cpuregisters_pie1_tmr1ie, |
8924 | 15 | { "PIE1.TMR1IE", "r3.cpuregisters.pie1.tmr1ie", |
8925 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
8926 | 15 | NULL, HFILL } |
8927 | 15 | }, |
8928 | 15 | { &hf_r3_cpuregisters_pie1_tmr2ie, |
8929 | 15 | { "PIE1.TMR2IE", "r3.cpuregisters.pie1.tmr2ie", |
8930 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
8931 | 15 | NULL, HFILL } |
8932 | 15 | }, |
8933 | 15 | { &hf_r3_cpuregisters_pie1_ccp1ie, |
8934 | 15 | { "PIE1.CCP1IE", "r3.cpuregisters.pie1.ccp1ie", |
8935 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
8936 | 15 | NULL, HFILL } |
8937 | 15 | }, |
8938 | 15 | { &hf_r3_cpuregisters_pie1_ssp1ie, |
8939 | 15 | { "PIE1.SSP1IE", "r3.cpuregisters.pie1.ssp1ie", |
8940 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
8941 | 15 | NULL, HFILL } |
8942 | 15 | }, |
8943 | 15 | { &hf_r3_cpuregisters_pie1_tx1ie, |
8944 | 15 | { "PIE1.TX1IE", "r3.cpuregisters.pie1.tx1ie", |
8945 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
8946 | 15 | NULL, HFILL } |
8947 | 15 | }, |
8948 | 15 | { &hf_r3_cpuregisters_pie1_rc1ie, |
8949 | 15 | { "PIE1.RC1IE", "r3.cpuregisters.pie1.rc1ie", |
8950 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
8951 | 15 | NULL, HFILL } |
8952 | 15 | }, |
8953 | 15 | { &hf_r3_cpuregisters_pie1_adie, |
8954 | 15 | { "PIE1.ADIE", "r3.cpuregisters.pie1.adie", |
8955 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
8956 | 15 | NULL, HFILL } |
8957 | 15 | }, |
8958 | 15 | { &hf_r3_cpuregisters_pie1_pspie, |
8959 | 15 | { "PIE1.PSPIE", "r3.cpuregisters.pie1.pspie", |
8960 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
8961 | 15 | NULL, HFILL } |
8962 | 15 | }, |
8963 | 15 | { &hf_r3_cpuregisters_pie2_oscfie, |
8964 | 15 | { "PIE2.OSCFIE", "r3.cpuregisters.pie2.oscfie", |
8965 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
8966 | 15 | NULL, HFILL } |
8967 | 15 | }, |
8968 | 15 | { &hf_r3_cpuregisters_pie2_cmie, |
8969 | 15 | { "PIE2.CMIE", "r3.cpuregisters.pie2.cmie", |
8970 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
8971 | 15 | NULL, HFILL } |
8972 | 15 | }, |
8973 | 15 | { &hf_r3_cpuregisters_pie2_unused2, |
8974 | 15 | { "PIE2.UNUSED2", "r3.cpuregisters.pie2.unused2", |
8975 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
8976 | 15 | NULL, HFILL } |
8977 | 15 | }, |
8978 | 15 | { &hf_r3_cpuregisters_pie2_eeie, |
8979 | 15 | { "PIE2.EEIE", "r3.cpuregisters.pie2.eeie", |
8980 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
8981 | 15 | NULL, HFILL } |
8982 | 15 | }, |
8983 | 15 | { &hf_r3_cpuregisters_pie2_bcl1ie, |
8984 | 15 | { "PIE2.BCL1IE", "r3.cpuregisters.pie2.bcl1ie", |
8985 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
8986 | 15 | NULL, HFILL } |
8987 | 15 | }, |
8988 | 15 | { &hf_r3_cpuregisters_pie2_hlvdie, |
8989 | 15 | { "PIE2.HLVDIE", "r3.cpuregisters.pie2.hlvdie", |
8990 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
8991 | 15 | NULL, HFILL } |
8992 | 15 | }, |
8993 | 15 | { &hf_r3_cpuregisters_pie2_tmr3ie, |
8994 | 15 | { "PIE2.TMR3IE", "r3.cpuregisters.pie2.tmr3ie", |
8995 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
8996 | 15 | NULL, HFILL } |
8997 | 15 | }, |
8998 | 15 | { &hf_r3_cpuregisters_pie2_ccp2ie, |
8999 | 15 | { "PIE2.CCP2IE", "r3.cpuregisters.pie2.ccp2ie", |
9000 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
9001 | 15 | NULL, HFILL } |
9002 | 15 | }, |
9003 | 15 | { &hf_r3_cpuregisters_pie3_ccp3ie, |
9004 | 15 | { "PIE3.CCP3IE", "r3.cpuregisters.pie3.ccp3ie", |
9005 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
9006 | 15 | NULL, HFILL } |
9007 | 15 | }, |
9008 | 15 | { &hf_r3_cpuregisters_pie3_ccp4ie, |
9009 | 15 | { "PIE3.CCP4IE", "r3.cpuregisters.pie3.ccp4ie", |
9010 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
9011 | 15 | NULL, HFILL } |
9012 | 15 | }, |
9013 | 15 | { &hf_r3_cpuregisters_pie3_ccp5ie, |
9014 | 15 | { "PIE3.CCP5IE", "r3.cpuregisters.pie3.ccp5ie", |
9015 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
9016 | 15 | NULL, HFILL } |
9017 | 15 | }, |
9018 | 15 | { &hf_r3_cpuregisters_pie3_tmr4ie, |
9019 | 15 | { "PIE3.TMR4IE", "r3.cpuregisters.pie3.tmr4ie", |
9020 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
9021 | 15 | NULL, HFILL } |
9022 | 15 | }, |
9023 | 15 | { &hf_r3_cpuregisters_pie3_tx2ie, |
9024 | 15 | { "PIE3.TX2IE", "r3.cpuregisters.pie3.tx2ie", |
9025 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
9026 | 15 | NULL, HFILL } |
9027 | 15 | }, |
9028 | 15 | { &hf_r3_cpuregisters_pie3_rc2ie, |
9029 | 15 | { "PIE3.RC2IE", "r3.cpuregisters.pie3.rc2ie", |
9030 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
9031 | 15 | NULL, HFILL } |
9032 | 15 | }, |
9033 | 15 | { &hf_r3_cpuregisters_pie3_bcl2ie, |
9034 | 15 | { "PIE3.BCL2IE", "r3.cpuregisters.pie3.bcl2ie", |
9035 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
9036 | 15 | NULL, HFILL } |
9037 | 15 | }, |
9038 | 15 | { &hf_r3_cpuregisters_pie3_ssp2ie, |
9039 | 15 | { "PIE3.SSP2IE", "r3.cpuregisters.pie3.ssp2ie", |
9040 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
9041 | 15 | NULL, HFILL } |
9042 | 15 | }, |
9043 | 15 | { &hf_r3_cpuregisters_ipr1_tmr1ip, |
9044 | 15 | { "IPR1.TMR1IP", "r3.cpuregisters.ipr1.tmr1ip", |
9045 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
9046 | 15 | NULL, HFILL } |
9047 | 15 | }, |
9048 | 15 | { &hf_r3_cpuregisters_ipr1_tmr2ip, |
9049 | 15 | { "IPR1.TMR2IP", "r3.cpuregisters.ipr1.tmr2ip", |
9050 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
9051 | 15 | NULL, HFILL } |
9052 | 15 | }, |
9053 | 15 | { &hf_r3_cpuregisters_ipr1_ccp1ip, |
9054 | 15 | { "IPR1.CCP1IP", "r3.cpuregisters.ipr1.ccp1ip", |
9055 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
9056 | 15 | NULL, HFILL } |
9057 | 15 | }, |
9058 | 15 | { &hf_r3_cpuregisters_ipr1_ssp1ip, |
9059 | 15 | { "IPR1.SSP1IP", "r3.cpuregisters.ipr1.ssp1ip", |
9060 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
9061 | 15 | NULL, HFILL } |
9062 | 15 | }, |
9063 | 15 | { &hf_r3_cpuregisters_ipr1_tx1ip, |
9064 | 15 | { "IPR1.TX1IP", "r3.cpuregisters.ipr1.tx1ip", |
9065 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
9066 | 15 | NULL, HFILL } |
9067 | 15 | }, |
9068 | 15 | { &hf_r3_cpuregisters_ipr1_rc1ip, |
9069 | 15 | { "IPR1.RC1IP", "r3.cpuregisters.ipr1.rc1ip", |
9070 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
9071 | 15 | NULL, HFILL } |
9072 | 15 | }, |
9073 | 15 | { &hf_r3_cpuregisters_ipr1_adip, |
9074 | 15 | { "IPR1.ADIP", "r3.cpuregisters.ipr1.adip", |
9075 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
9076 | 15 | NULL, HFILL } |
9077 | 15 | }, |
9078 | 15 | { &hf_r3_cpuregisters_ipr1_pspip, |
9079 | 15 | { "IPR1.PSPIP", "r3.cpuregisters.ipr1.pspip", |
9080 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
9081 | 15 | NULL, HFILL } |
9082 | 15 | }, |
9083 | 15 | { &hf_r3_cpuregisters_ipr2_ccp2ip, |
9084 | 15 | { "IPR2.CCP2IP", "r3.cpuregisters.ipr2.ccp2ip", |
9085 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
9086 | 15 | NULL, HFILL } |
9087 | 15 | }, |
9088 | 15 | { &hf_r3_cpuregisters_ipr2_tmr3ip, |
9089 | 15 | { "IPR2.TMR3IP", "r3.cpuregisters.ipr2.tmr3ip", |
9090 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
9091 | 15 | NULL, HFILL } |
9092 | 15 | }, |
9093 | 15 | { &hf_r3_cpuregisters_ipr2_hlvdip, |
9094 | 15 | { "IPR2.HLVDIP", "r3.cpuregisters.ipr2.hlvdip", |
9095 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
9096 | 15 | NULL, HFILL } |
9097 | 15 | }, |
9098 | 15 | { &hf_r3_cpuregisters_ipr2_bcl1ip, |
9099 | 15 | { "IPR2.BCL1IP", "r3.cpuregisters.ipr2.bcl1ip", |
9100 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
9101 | 15 | NULL, HFILL } |
9102 | 15 | }, |
9103 | 15 | { &hf_r3_cpuregisters_ipr2_eeip, |
9104 | 15 | { "IPR2.EEIP", "r3.cpuregisters.ipr2.eeip", |
9105 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
9106 | 15 | NULL, HFILL } |
9107 | 15 | }, |
9108 | 15 | { &hf_r3_cpuregisters_ipr2_unused5, |
9109 | 15 | { "IPR2.UNUSED5", "r3.cpuregisters.ipr2.unused5", |
9110 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
9111 | 15 | NULL, HFILL } |
9112 | 15 | }, |
9113 | 15 | { &hf_r3_cpuregisters_ipr2_cmip, |
9114 | 15 | { "IPR2.CMIP", "r3.cpuregisters.ipr2.cmip", |
9115 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
9116 | 15 | NULL, HFILL } |
9117 | 15 | }, |
9118 | 15 | { &hf_r3_cpuregisters_ipr2_oscfip, |
9119 | 15 | { "IPR2.OSCFIP", "r3.cpuregisters.ipr2.oscfip", |
9120 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
9121 | 15 | NULL, HFILL } |
9122 | 15 | }, |
9123 | 15 | { &hf_r3_cpuregisters_ipr3_ccp2ip, |
9124 | 15 | { "IPR3.CCP2IP", "r3.cpuregisters.ipr3.ccp2ip", |
9125 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
9126 | 15 | NULL, HFILL } |
9127 | 15 | }, |
9128 | 15 | { &hf_r3_cpuregisters_ipr3_ccp4ip, |
9129 | 15 | { "IPR3.CCP4IP", "r3.cpuregisters.ipr3.ccp4ip", |
9130 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
9131 | 15 | NULL, HFILL } |
9132 | 15 | }, |
9133 | 15 | { &hf_r3_cpuregisters_ipr3_ccp5ip, |
9134 | 15 | { "IPR3.CCP5IP", "r3.cpuregisters.ipr3.ccp5ip", |
9135 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
9136 | 15 | NULL, HFILL } |
9137 | 15 | }, |
9138 | 15 | { &hf_r3_cpuregisters_ipr3_tmr4ip, |
9139 | 15 | { "IPR3.TMR4IP", "r3.cpuregisters.ipr3.tmr4ip", |
9140 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
9141 | 15 | NULL, HFILL } |
9142 | 15 | }, |
9143 | 15 | { &hf_r3_cpuregisters_ipr3_tx2ip, |
9144 | 15 | { "IPR3.TX2IP", "r3.cpuregisters.ipr3.tx2ip", |
9145 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
9146 | 15 | NULL, HFILL } |
9147 | 15 | }, |
9148 | 15 | { &hf_r3_cpuregisters_ipr3_rc2ip, |
9149 | 15 | { "IPR3.RC2IP", "r3.cpuregisters.ipr3.rc2ip", |
9150 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
9151 | 15 | NULL, HFILL } |
9152 | 15 | }, |
9153 | 15 | { &hf_r3_cpuregisters_ipr3_bcl2ip, |
9154 | 15 | { "IPR3.BCL2IP", "r3.cpuregisters.ipr3.bcl2ip", |
9155 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
9156 | 15 | NULL, HFILL } |
9157 | 15 | }, |
9158 | 15 | { &hf_r3_cpuregisters_ipr3_ssp2ip, |
9159 | 15 | { "IPR3.SSP2IP", "r3.cpuregisters.ipr3.ssp2ip", |
9160 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
9161 | 15 | NULL, HFILL } |
9162 | 15 | }, |
9163 | 15 | { &hf_r3_cpuregisters_rcon_bor, |
9164 | 15 | { "RCON./BOR", "r3.cpuregisters.rcon.bor", |
9165 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
9166 | 15 | NULL, HFILL } |
9167 | 15 | }, |
9168 | 15 | { &hf_r3_cpuregisters_rcon_por, |
9169 | 15 | { "RCON./POR", "r3.cpuregisters.rcon.por", |
9170 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
9171 | 15 | NULL, HFILL } |
9172 | 15 | }, |
9173 | 15 | { &hf_r3_cpuregisters_rcon_pd, |
9174 | 15 | { "RCON./PD", "r3.cpuregisters.rcon.pd", |
9175 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
9176 | 15 | NULL, HFILL } |
9177 | 15 | }, |
9178 | 15 | { &hf_r3_cpuregisters_rcon_to, |
9179 | 15 | { "RCON./TO", "r3.cpuregisters.rcon.to", |
9180 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
9181 | 15 | NULL, HFILL } |
9182 | 15 | }, |
9183 | 15 | { &hf_r3_cpuregisters_rcon_unused4, |
9184 | 15 | { "RCON.UNUSED4", "r3.cpuregisters.rcon.unused4", |
9185 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
9186 | 15 | NULL, HFILL } |
9187 | 15 | }, |
9188 | 15 | { &hf_r3_cpuregisters_rcon_ri, |
9189 | 15 | { "RCON./RI", "r3.cpuregisters.rcon.ri", |
9190 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
9191 | 15 | NULL, HFILL } |
9192 | 15 | }, |
9193 | 15 | { &hf_r3_cpuregisters_rcon_sboren, |
9194 | 15 | { "RCON.SBOREN", "r3.cpuregisters.rcon.sboren", |
9195 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
9196 | 15 | NULL, HFILL } |
9197 | 15 | }, |
9198 | 15 | { &hf_r3_cpuregisters_rcon_ipen, |
9199 | 15 | { "RCON.IPEN", "r3.cpuregisters.rcon.ipen", |
9200 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
9201 | 15 | NULL, HFILL } |
9202 | 15 | }, |
9203 | 15 | { &hf_r3_cpuregisters_osccon_scs0, |
9204 | 15 | { "OSCCON.SCS0", "r3.cpuregisters.osccon.scs0", |
9205 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
9206 | 15 | NULL, HFILL } |
9207 | 15 | }, |
9208 | 15 | { &hf_r3_cpuregisters_osccon_scs1, |
9209 | 15 | { "OSCCON.SCS1", "r3.cpuregisters.osccon.scs1", |
9210 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
9211 | 15 | NULL, HFILL } |
9212 | 15 | }, |
9213 | 15 | { &hf_r3_cpuregisters_osccon_iofs, |
9214 | 15 | { "OSCCON.IOFS", "r3.cpuregisters.osccon.iofs", |
9215 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
9216 | 15 | NULL, HFILL } |
9217 | 15 | }, |
9218 | 15 | { &hf_r3_cpuregisters_osccon_osts, |
9219 | 15 | { "OSCCON.OSTS", "r3.cpuregisters.osccon.osts", |
9220 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
9221 | 15 | NULL, HFILL } |
9222 | 15 | }, |
9223 | 15 | { &hf_r3_cpuregisters_osccon_ircf0, |
9224 | 15 | { "OSCCON.IRCF0", "r3.cpuregisters.osccon.ircf0", |
9225 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
9226 | 15 | NULL, HFILL } |
9227 | 15 | }, |
9228 | 15 | { &hf_r3_cpuregisters_osccon_ircf1, |
9229 | 15 | { "OSCCON.IRCF1", "r3.cpuregisters.osccon.ircf1", |
9230 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
9231 | 15 | NULL, HFILL } |
9232 | 15 | }, |
9233 | 15 | { &hf_r3_cpuregisters_osccon_ircf2, |
9234 | 15 | { "OSCCON.IRCF2", "r3.cpuregisters.osccon.ircf2", |
9235 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
9236 | 15 | NULL, HFILL } |
9237 | 15 | }, |
9238 | 15 | { &hf_r3_cpuregisters_osccon_idlen, |
9239 | 15 | { "OSCCON.IDLEN", "r3.cpuregisters.osccon.idlen", |
9240 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
9241 | 15 | NULL, HFILL } |
9242 | 15 | }, |
9243 | 15 | { &hf_r3_cpuregisters_rcsta_rx9d, |
9244 | 15 | { "RCSTA.RX9D", "r3.cpuregisters.rcsta.rx9d", |
9245 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
9246 | 15 | NULL, HFILL } |
9247 | 15 | }, |
9248 | 15 | { &hf_r3_cpuregisters_rcsta_oerr, |
9249 | 15 | { "RCSTA.OERR", "r3.cpuregisters.rcsta.oerr", |
9250 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
9251 | 15 | NULL, HFILL } |
9252 | 15 | }, |
9253 | 15 | { &hf_r3_cpuregisters_rcsta_ferr, |
9254 | 15 | { "RCSTA.FERR", "r3.cpuregisters.rcsta.ferr", |
9255 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
9256 | 15 | NULL, HFILL } |
9257 | 15 | }, |
9258 | 15 | { &hf_r3_cpuregisters_rcsta_adden, |
9259 | 15 | { "RCSTA.ADDEN", "r3.cpuregisters.rcsta.adden", |
9260 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
9261 | 15 | NULL, HFILL } |
9262 | 15 | }, |
9263 | 15 | { &hf_r3_cpuregisters_rcsta_cren, |
9264 | 15 | { "RCSTA.CREN", "r3.cpuregisters.rcsta.cren", |
9265 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
9266 | 15 | NULL, HFILL } |
9267 | 15 | }, |
9268 | 15 | { &hf_r3_cpuregisters_rcsta_sren, |
9269 | 15 | { "RCSTA.SREN", "r3.cpuregisters.rcsta.sren", |
9270 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
9271 | 15 | NULL, HFILL } |
9272 | 15 | }, |
9273 | 15 | { &hf_r3_cpuregisters_rcsta_rx9, |
9274 | 15 | { "RCSTA.RX9", "r3.cpuregisters.rcsta.rx9", |
9275 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
9276 | 15 | NULL, HFILL } |
9277 | 15 | }, |
9278 | 15 | { &hf_r3_cpuregisters_rcsta_spen, |
9279 | 15 | { "RCSTA.SPEN", "r3.cpuregisters.rcsta.spen", |
9280 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
9281 | 15 | NULL, HFILL } |
9282 | 15 | }, |
9283 | 15 | { &hf_r3_cpuregisters_txsta_tx9d, |
9284 | 15 | { "TXSTA.TX9D", "r3.cpuregisters.txsta.tx9d", |
9285 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
9286 | 15 | NULL, HFILL } |
9287 | 15 | }, |
9288 | 15 | { &hf_r3_cpuregisters_txsta_trmt, |
9289 | 15 | { "TXSTA.TRMT", "r3.cpuregisters.txsta.trmt", |
9290 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
9291 | 15 | NULL, HFILL } |
9292 | 15 | }, |
9293 | 15 | { &hf_r3_cpuregisters_txsta_brgh, |
9294 | 15 | { "TXSTA.BRGH", "r3.cpuregisters.txsta.brgh", |
9295 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
9296 | 15 | NULL, HFILL } |
9297 | 15 | }, |
9298 | 15 | { &hf_r3_cpuregisters_txsta_sendb, |
9299 | 15 | { "TXSTA.SENDB", "r3.cpuregisters.txsta.sendb", |
9300 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
9301 | 15 | NULL, HFILL } |
9302 | 15 | }, |
9303 | 15 | { &hf_r3_cpuregisters_txsta_sync, |
9304 | 15 | { "TXSTA.SYNC", "r3.cpuregisters.txsta.sync", |
9305 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
9306 | 15 | NULL, HFILL } |
9307 | 15 | }, |
9308 | 15 | { &hf_r3_cpuregisters_txsta_txen, |
9309 | 15 | { "TXSTA.TXEN", "r3.cpuregisters.txsta.txen", |
9310 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
9311 | 15 | NULL, HFILL } |
9312 | 15 | }, |
9313 | 15 | { &hf_r3_cpuregisters_txsta_tx9, |
9314 | 15 | { "TXSTA.TX9", "r3.cpuregisters.txsta.tx9", |
9315 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
9316 | 15 | NULL, HFILL } |
9317 | 15 | }, |
9318 | 15 | { &hf_r3_cpuregisters_txsta_csrc, |
9319 | 15 | { "TXSTA.CSRC", "r3.cpuregisters.txsta.csrc", |
9320 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
9321 | 15 | NULL, HFILL } |
9322 | 15 | }, |
9323 | 15 | { &hf_r3_cpuregisters_rcsta2_rx9d, |
9324 | 15 | { "RCSTA2.RX9D", "r3.cpuregisters.rcsta2.rx9d", |
9325 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
9326 | 15 | NULL, HFILL } |
9327 | 15 | }, |
9328 | 15 | { &hf_r3_cpuregisters_rcsta2_oerr, |
9329 | 15 | { "RCSTA2.OERR", "r3.cpuregisters.rcsta2.oerr", |
9330 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
9331 | 15 | NULL, HFILL } |
9332 | 15 | }, |
9333 | 15 | { &hf_r3_cpuregisters_rcsta2_ferr, |
9334 | 15 | { "RCSTA2.FERR", "r3.cpuregisters.rcsta2.ferr", |
9335 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
9336 | 15 | NULL, HFILL } |
9337 | 15 | }, |
9338 | 15 | { &hf_r3_cpuregisters_rcsta2_adden, |
9339 | 15 | { "RCSTA2.ADDEN", "r3.cpuregisters.rcsta2.adden", |
9340 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
9341 | 15 | NULL, HFILL } |
9342 | 15 | }, |
9343 | 15 | { &hf_r3_cpuregisters_rcsta2_cren, |
9344 | 15 | { "RCSTA2.CREN", "r3.cpuregisters.rcsta2.cren", |
9345 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
9346 | 15 | NULL, HFILL } |
9347 | 15 | }, |
9348 | 15 | { &hf_r3_cpuregisters_rcsta2_sren, |
9349 | 15 | { "RCSTA2.SREN", "r3.cpuregisters.rcsta2.sren", |
9350 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
9351 | 15 | NULL, HFILL } |
9352 | 15 | }, |
9353 | 15 | { &hf_r3_cpuregisters_rcsta2_rx9, |
9354 | 15 | { "RCSTA2.RX9", "r3.cpuregisters.rcsta2.rx9", |
9355 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
9356 | 15 | NULL, HFILL } |
9357 | 15 | }, |
9358 | 15 | { &hf_r3_cpuregisters_rcsta2_spen, |
9359 | 15 | { "RCSTA2.SPEN", "r3.cpuregisters.rcsta2.spen", |
9360 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
9361 | 15 | NULL, HFILL } |
9362 | 15 | }, |
9363 | 15 | { &hf_r3_cpuregisters_txsta2_tx9d, |
9364 | 15 | { "TXSTA2.TX9D", "r3.cpuregisters.txsta2.tx9d", |
9365 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
9366 | 15 | NULL, HFILL } |
9367 | 15 | }, |
9368 | 15 | { &hf_r3_cpuregisters_txsta2_trmt, |
9369 | 15 | { "TXSTA2.TRMT", "r3.cpuregisters.txsta2.trmt", |
9370 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
9371 | 15 | NULL, HFILL } |
9372 | 15 | }, |
9373 | 15 | { &hf_r3_cpuregisters_txsta2_brgh, |
9374 | 15 | { "TXSTA2.BRGH", "r3.cpuregisters.txsta2.brgh", |
9375 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
9376 | 15 | NULL, HFILL } |
9377 | 15 | }, |
9378 | 15 | { &hf_r3_cpuregisters_txsta2_sendb, |
9379 | 15 | { "TXSTA2.SENDB", "r3.cpuregisters.txsta2.sendb", |
9380 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
9381 | 15 | NULL, HFILL } |
9382 | 15 | }, |
9383 | 15 | { &hf_r3_cpuregisters_txsta2_sync, |
9384 | 15 | { "TXSTA2.SYNC", "r3.cpuregisters.txsta2.sync", |
9385 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
9386 | 15 | NULL, HFILL } |
9387 | 15 | }, |
9388 | 15 | { &hf_r3_cpuregisters_txsta2_txen, |
9389 | 15 | { "TXSTA2.TXEN", "r3.cpuregisters.txsta2.txen", |
9390 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
9391 | 15 | NULL, HFILL } |
9392 | 15 | }, |
9393 | 15 | { &hf_r3_cpuregisters_txsta2_tx9, |
9394 | 15 | { "TXSTA2.TX9", "r3.cpuregisters.txsta2.tx9", |
9395 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
9396 | 15 | NULL, HFILL } |
9397 | 15 | }, |
9398 | 15 | { &hf_r3_cpuregisters_txsta2_csrc, |
9399 | 15 | { "TXSTA2.CSRC", "r3.cpuregisters.txsta2.csrc", |
9400 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
9401 | 15 | NULL, HFILL } |
9402 | 15 | }, |
9403 | 15 | { &hf_r3_cpuregisters_wdtcon_swdten, |
9404 | 15 | { "WDTCON.SWDTEN", "r3.cpuregisters.wdtcon.swdten", |
9405 | 15 | FT_BOOLEAN, 8, NULL, 0x01, |
9406 | 15 | NULL, HFILL } |
9407 | 15 | }, |
9408 | 15 | { &hf_r3_cpuregisters_wdtcon_unused1, |
9409 | 15 | { "WDTCON.UNUSED1", "r3.cpuregisters.wdtcon.unused1", |
9410 | 15 | FT_BOOLEAN, 8, NULL, 0x02, |
9411 | 15 | NULL, HFILL } |
9412 | 15 | }, |
9413 | 15 | { &hf_r3_cpuregisters_wdtcon_unused2, |
9414 | 15 | { "WDTCON.UNUSED2", "r3.cpuregisters.wdtcon.unused2", |
9415 | 15 | FT_BOOLEAN, 8, NULL, 0x04, |
9416 | 15 | NULL, HFILL } |
9417 | 15 | }, |
9418 | 15 | { &hf_r3_cpuregisters_wdtcon_unused3, |
9419 | 15 | { "WDTCON.UNUSED3", "r3.cpuregisters.wdtcon.unused3", |
9420 | 15 | FT_BOOLEAN, 8, NULL, 0x08, |
9421 | 15 | NULL, HFILL } |
9422 | 15 | }, |
9423 | 15 | { &hf_r3_cpuregisters_wdtcon_unused4, |
9424 | 15 | { "WDTCON.UNUSED4", "r3.cpuregisters.wdtcon.unused4", |
9425 | 15 | FT_BOOLEAN, 8, NULL, 0x10, |
9426 | 15 | NULL, HFILL } |
9427 | 15 | }, |
9428 | 15 | { &hf_r3_cpuregisters_wdtcon_unused5, |
9429 | 15 | { "WDTCON.UNUSED5", "r3.cpuregisters.wdtcon.unused5", |
9430 | 15 | FT_BOOLEAN, 8, NULL, 0x20, |
9431 | 15 | NULL, HFILL } |
9432 | 15 | }, |
9433 | 15 | { &hf_r3_cpuregisters_wdtcon_unused6, |
9434 | 15 | { "WDTCON.UNUSED6", "r3.cpuregisters.wdtcon.unused6", |
9435 | 15 | FT_BOOLEAN, 8, NULL, 0x40, |
9436 | 15 | NULL, HFILL } |
9437 | 15 | }, |
9438 | 15 | { &hf_r3_cpuregisters_wdtcon_unused7, |
9439 | 15 | { "WDTCON.UNUSED7", "r3.cpuregisters.wdtcon.unused7", |
9440 | 15 | FT_BOOLEAN, 8, NULL, 0x80, |
9441 | 15 | NULL, HFILL } |
9442 | 15 | }, |
9443 | | |
9444 | 15 | { &hf_r3_dumpm41t81_reg00, |
9445 | 15 | { "REG 0x00", "r3.m41t81.reg00", |
9446 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9447 | 15 | NULL, HFILL } |
9448 | 15 | }, |
9449 | 15 | { &hf_r3_dumpm41t81_reg01, |
9450 | 15 | { "REG 0x01", "r3.m41t81.reg01", |
9451 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9452 | 15 | NULL, HFILL } |
9453 | 15 | }, |
9454 | 15 | { &hf_r3_dumpm41t81_reg02, |
9455 | 15 | { "REG 0x02", "r3.m41t81.reg02", |
9456 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9457 | 15 | NULL, HFILL } |
9458 | 15 | }, |
9459 | 15 | { &hf_r3_dumpm41t81_reg03, |
9460 | 15 | { "REG 0x03", "r3.m41t81.reg03", |
9461 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9462 | 15 | NULL, HFILL } |
9463 | 15 | }, |
9464 | 15 | { &hf_r3_dumpm41t81_reg04, |
9465 | 15 | { "REG 0x04", "r3.m41t81.reg04", |
9466 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9467 | 15 | NULL, HFILL } |
9468 | 15 | }, |
9469 | 15 | { &hf_r3_dumpm41t81_reg05, |
9470 | 15 | { "REG 0x05", "r3.m41t81.reg05", |
9471 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9472 | 15 | NULL, HFILL } |
9473 | 15 | }, |
9474 | 15 | { &hf_r3_dumpm41t81_reg06, |
9475 | 15 | { "REG 0x06", "r3.m41t81.reg06", |
9476 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9477 | 15 | NULL, HFILL } |
9478 | 15 | }, |
9479 | 15 | { &hf_r3_dumpm41t81_reg07, |
9480 | 15 | { "REG 0x07", "r3.m41t81.reg07", |
9481 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9482 | 15 | NULL, HFILL } |
9483 | 15 | }, |
9484 | 15 | { &hf_r3_dumpm41t81_reg08, |
9485 | 15 | { "REG 0x08", "r3.m41t81.reg08", |
9486 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9487 | 15 | NULL, HFILL } |
9488 | 15 | }, |
9489 | 15 | { &hf_r3_dumpm41t81_reg09, |
9490 | 15 | { "REG 0x09", "r3.m41t81.reg09", |
9491 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9492 | 15 | NULL, HFILL } |
9493 | 15 | }, |
9494 | 15 | { &hf_r3_dumpm41t81_reg0a, |
9495 | 15 | { "REG 0x0a", "r3.m41t81.reg0a", |
9496 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9497 | 15 | NULL, HFILL } |
9498 | 15 | }, |
9499 | 15 | { &hf_r3_dumpm41t81_reg0b, |
9500 | 15 | { "REG 0x0b", "r3.m41t81.reg0b", |
9501 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9502 | 15 | NULL, HFILL } |
9503 | 15 | }, |
9504 | 15 | { &hf_r3_dumpm41t81_reg0c, |
9505 | 15 | { "REG 0x0c", "r3.m41t81.reg0c", |
9506 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9507 | 15 | NULL, HFILL } |
9508 | 15 | }, |
9509 | 15 | { &hf_r3_dumpm41t81_reg0d, |
9510 | 15 | { "REG 0x0d", "r3.m41t81.reg0d", |
9511 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9512 | 15 | NULL, HFILL } |
9513 | 15 | }, |
9514 | 15 | { &hf_r3_dumpm41t81_reg0e, |
9515 | 15 | { "REG 0x0e", "r3.m41t81.reg0e", |
9516 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9517 | 15 | NULL, HFILL } |
9518 | 15 | }, |
9519 | 15 | { &hf_r3_dumpm41t81_reg0f, |
9520 | 15 | { "REG 0x0f", "r3.m41t81.reg0f", |
9521 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9522 | 15 | NULL, HFILL } |
9523 | 15 | }, |
9524 | 15 | { &hf_r3_dumpm41t81_reg10, |
9525 | 15 | { "REG 0x10", "r3.m41t81.reg10", |
9526 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9527 | 15 | NULL, HFILL } |
9528 | 15 | }, |
9529 | 15 | { &hf_r3_dumpm41t81_reg11, |
9530 | 15 | { "REG 0x11", "r3.m41t81.reg11", |
9531 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9532 | 15 | NULL, HFILL } |
9533 | 15 | }, |
9534 | 15 | { &hf_r3_dumpm41t81_reg12, |
9535 | 15 | { "REG 0x12", "r3.m41t81.reg12", |
9536 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9537 | 15 | NULL, HFILL } |
9538 | 15 | }, |
9539 | 15 | { &hf_r3_dumpm41t81_reg13, |
9540 | 15 | { "REG 0x13", "r3.m41t81.reg13", |
9541 | 15 | FT_UINT8, BASE_HEX_DEC, NULL, 0x0, |
9542 | 15 | NULL, HFILL } |
9543 | 15 | }, |
9544 | | |
9545 | 15 | { &hf_r3_dumpm41t81_reg00_sec1, |
9546 | 15 | { ".1 Seconds", "r3.m41t81.reg00.sec1", |
9547 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9548 | 15 | NULL, HFILL } |
9549 | 15 | }, |
9550 | 15 | { &hf_r3_dumpm41t81_reg00_sec01, |
9551 | 15 | { ".01 Seconds", "r3.m41t81.reg00.sec01", |
9552 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9553 | 15 | NULL, HFILL } |
9554 | 15 | }, |
9555 | 15 | { &hf_r3_dumpm41t81_reg01_st, |
9556 | 15 | { "ST", "r3.m41t81.reg01.st", |
9557 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9558 | 15 | NULL, HFILL } |
9559 | 15 | }, |
9560 | 15 | { &hf_r3_dumpm41t81_reg01_10sec, |
9561 | 15 | { "10 Seconds", "r3.m41t81.reg01.10sec", |
9562 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9563 | 15 | NULL, HFILL } |
9564 | 15 | }, |
9565 | 15 | { &hf_r3_dumpm41t81_reg01_1sec, |
9566 | 15 | { "1 Seconds", "r3.m41t81.reg01.1sec", |
9567 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9568 | 15 | NULL, HFILL } |
9569 | 15 | }, |
9570 | 15 | { &hf_r3_dumpm41t81_reg02_notused, |
9571 | 15 | { "(not used)", "r3.m41t81.reg02.notused", |
9572 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9573 | 15 | NULL, HFILL } |
9574 | 15 | }, |
9575 | 15 | { &hf_r3_dumpm41t81_reg02_10min, |
9576 | 15 | { "10 Minutes", "r3.m41t81.reg02.10min", |
9577 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9578 | 15 | NULL, HFILL } |
9579 | 15 | }, |
9580 | 15 | { &hf_r3_dumpm41t81_reg02_1min, |
9581 | 15 | { "1 Minutes", "r3.m41t81.reg02.1min", |
9582 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9583 | 15 | NULL, HFILL } |
9584 | 15 | }, |
9585 | 15 | { &hf_r3_dumpm41t81_reg03_cbe, |
9586 | 15 | { "CBE", "r3.m41t81.reg03.cbe", |
9587 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9588 | 15 | NULL, HFILL } |
9589 | 15 | }, |
9590 | 15 | { &hf_r3_dumpm41t81_reg03_cb, |
9591 | 15 | { "CB", "r3.m41t81.reg03.cb", |
9592 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9593 | 15 | NULL, HFILL } |
9594 | 15 | }, |
9595 | 15 | { &hf_r3_dumpm41t81_reg03_10hour, |
9596 | 15 | { "10 Hours", "r3.m41t81.reg03.10hour", |
9597 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9598 | 15 | NULL, HFILL } |
9599 | 15 | }, |
9600 | 15 | { &hf_r3_dumpm41t81_reg03_1hour, |
9601 | 15 | { "1 Hours", "r3.m41t81.reg03.1hour", |
9602 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9603 | 15 | NULL, HFILL } |
9604 | 15 | }, |
9605 | 15 | { &hf_r3_dumpm41t81_reg04_notused, |
9606 | 15 | { "(not used)", "r3.m41t81.reg04.notused", |
9607 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9608 | 15 | NULL, HFILL } |
9609 | 15 | }, |
9610 | 15 | { &hf_r3_dumpm41t81_reg04_dow, |
9611 | 15 | { "DOW", "r3.m41t81.reg04.dow", |
9612 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9613 | 15 | NULL, HFILL } |
9614 | 15 | }, |
9615 | 15 | { &hf_r3_dumpm41t81_reg05_notused, |
9616 | 15 | { "(not used)", "r3.m41t81.reg05.notused", |
9617 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9618 | 15 | NULL, HFILL } |
9619 | 15 | }, |
9620 | 15 | { &hf_r3_dumpm41t81_reg05_10day, |
9621 | 15 | { "10 Day", "r3.m41t81.reg05.10day", |
9622 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9623 | 15 | NULL, HFILL } |
9624 | 15 | }, |
9625 | 15 | { &hf_r3_dumpm41t81_reg05_1day, |
9626 | 15 | { "1 Day", "r3.m41t81.reg05.1day", |
9627 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9628 | 15 | NULL, HFILL } |
9629 | 15 | }, |
9630 | 15 | { &hf_r3_dumpm41t81_reg06_notused, |
9631 | 15 | { "(not used)", "r3.m41t81.reg06.notused", |
9632 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9633 | 15 | NULL, HFILL } |
9634 | 15 | }, |
9635 | 15 | { &hf_r3_dumpm41t81_reg06_10month, |
9636 | 15 | { "10 Month", "r3.m41t81.reg06.10month", |
9637 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9638 | 15 | NULL, HFILL } |
9639 | 15 | }, |
9640 | 15 | { &hf_r3_dumpm41t81_reg06_1month, |
9641 | 15 | { "1 Month", "r3.m41t81.reg06.1month", |
9642 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9643 | 15 | NULL, HFILL } |
9644 | 15 | }, |
9645 | 15 | { &hf_r3_dumpm41t81_reg07_10year, |
9646 | 15 | { "10 Year", "r3.m41t81.reg07.10year", |
9647 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9648 | 15 | NULL, HFILL } |
9649 | 15 | }, |
9650 | 15 | { &hf_r3_dumpm41t81_reg07_1year, |
9651 | 15 | { "1 Year", "r3.m41t81.reg07.1year", |
9652 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9653 | 15 | NULL, HFILL } |
9654 | 15 | }, |
9655 | 15 | { &hf_r3_dumpm41t81_reg08_out, |
9656 | 15 | { "OUT", "r3.m41t81.reg08.out", |
9657 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9658 | 15 | NULL, HFILL } |
9659 | 15 | }, |
9660 | 15 | { &hf_r3_dumpm41t81_reg08_ft, |
9661 | 15 | { "FT", "r3.m41t81.reg08.ft", |
9662 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9663 | 15 | NULL, HFILL } |
9664 | 15 | }, |
9665 | 15 | { &hf_r3_dumpm41t81_reg08_s, |
9666 | 15 | { "S", "r3.m41t81.reg08.s", |
9667 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9668 | 15 | NULL, HFILL } |
9669 | 15 | }, |
9670 | 15 | { &hf_r3_dumpm41t81_reg08_cal, |
9671 | 15 | { "CAL", "r3.m41t81.reg08.cal", |
9672 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9673 | 15 | NULL, HFILL } |
9674 | 15 | }, |
9675 | 15 | { &hf_r3_dumpm41t81_reg09_notused, |
9676 | 15 | { "(not used)", "r3.m41t81.reg09.notused", |
9677 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9678 | 15 | NULL, HFILL } |
9679 | 15 | }, |
9680 | 15 | { &hf_r3_dumpm41t81_reg09_bmb, |
9681 | 15 | { "BMB", "r3.m41t81.reg09.bmb", |
9682 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9683 | 15 | NULL, HFILL } |
9684 | 15 | }, |
9685 | 15 | { &hf_r3_dumpm41t81_reg09_rb, |
9686 | 15 | { "RB", "r3.m41t81.reg09.rb", |
9687 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9688 | 15 | NULL, HFILL } |
9689 | 15 | }, |
9690 | 15 | { &hf_r3_dumpm41t81_reg0a_afe, |
9691 | 15 | { "AFE", "r3.m41t81.reg0a.afe", |
9692 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9693 | 15 | NULL, HFILL } |
9694 | 15 | }, |
9695 | 15 | { &hf_r3_dumpm41t81_reg0a_sqwe, |
9696 | 15 | { "SQWE", "r3.m41t81.reg0a.sqwe", |
9697 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9698 | 15 | NULL, HFILL } |
9699 | 15 | }, |
9700 | 15 | { &hf_r3_dumpm41t81_reg0a_abe, |
9701 | 15 | { "ABE", "r3.m41t81.reg0a.abe", |
9702 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9703 | 15 | NULL, HFILL } |
9704 | 15 | }, |
9705 | 15 | { &hf_r3_dumpm41t81_reg0a_10monthalm, |
9706 | 15 | { "10 Month Alarm", "r3.m41t81.reg0a.10monthalm", |
9707 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9708 | 15 | NULL, HFILL } |
9709 | 15 | }, |
9710 | 15 | { &hf_r3_dumpm41t81_reg0a_1monthalm, |
9711 | 15 | { "1 Month Alarm", "r3.m41t81.reg0a.1monthalm", |
9712 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9713 | 15 | NULL, HFILL } |
9714 | 15 | }, |
9715 | 15 | { &hf_r3_dumpm41t81_reg0b_rpt5, |
9716 | 15 | { "RPT5", "r3.m41t81.reg0b.rpt5", |
9717 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9718 | 15 | NULL, HFILL } |
9719 | 15 | }, |
9720 | 15 | { &hf_r3_dumpm41t81_reg0b_rpt4, |
9721 | 15 | { "RPT4", "r3.m41t81.reg0b.rpt4", |
9722 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9723 | 15 | NULL, HFILL } |
9724 | 15 | }, |
9725 | 15 | { &hf_r3_dumpm41t81_reg0b_10dayalm, |
9726 | 15 | { "10 Day Alarm", "r3.m41t81.reg0b.10dayalm", |
9727 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9728 | 15 | NULL, HFILL } |
9729 | 15 | }, |
9730 | 15 | { &hf_r3_dumpm41t81_reg0b_1dayalm, |
9731 | 15 | { "1 Day Alarm", "r3.m41t81.reg0b.1dayalm", |
9732 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9733 | 15 | NULL, HFILL } |
9734 | 15 | }, |
9735 | 15 | { &hf_r3_dumpm41t81_reg0c_rpt3, |
9736 | 15 | { "RPT3", "r3.m41t81.reg0c.rpt3", |
9737 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9738 | 15 | NULL, HFILL } |
9739 | 15 | }, |
9740 | 15 | { &hf_r3_dumpm41t81_reg0c_ht, |
9741 | 15 | { "HT", "r3.m41t81.reg0c.ht", |
9742 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9743 | 15 | NULL, HFILL } |
9744 | 15 | }, |
9745 | 15 | { &hf_r3_dumpm41t81_reg0c_10houralm, |
9746 | 15 | { "10 Hour Alarm", "r3.m41t81.reg0c.10houralm", |
9747 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9748 | 15 | NULL, HFILL } |
9749 | 15 | }, |
9750 | 15 | { &hf_r3_dumpm41t81_reg0c_1houralm, |
9751 | 15 | { "1 Hour Alarm", "r3.m41t81.reg0c.1houralm", |
9752 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9753 | 15 | NULL, HFILL } |
9754 | 15 | }, |
9755 | 15 | { &hf_r3_dumpm41t81_reg0d_rpt2, |
9756 | 15 | { "RPT2", "r3.m41t81.reg0d.rpt2", |
9757 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9758 | 15 | NULL, HFILL } |
9759 | 15 | }, |
9760 | 15 | { &hf_r3_dumpm41t81_reg0d_10minalm, |
9761 | 15 | { "10 Min Alarm", "r3.m41t81.reg0d.10minalm", |
9762 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9763 | 15 | NULL, HFILL } |
9764 | 15 | }, |
9765 | 15 | { &hf_r3_dumpm41t81_reg0d_1minalm, |
9766 | 15 | { "1 Min Alarm", "r3.m41t81.reg0d.1minalm", |
9767 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9768 | 15 | NULL, HFILL } |
9769 | 15 | }, |
9770 | 15 | { &hf_r3_dumpm41t81_reg0e_rpt1, |
9771 | 15 | { "RPT1", "r3.m41t81.reg0e.rpt1", |
9772 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9773 | 15 | NULL, HFILL } |
9774 | 15 | }, |
9775 | 15 | { &hf_r3_dumpm41t81_reg0e_10secalm, |
9776 | 15 | { "10 Sec Alarm", "r3.m41t81.reg0e.10secalm", |
9777 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9778 | 15 | NULL, HFILL } |
9779 | 15 | }, |
9780 | 15 | { &hf_r3_dumpm41t81_reg0e_1secalm, |
9781 | 15 | { "1 Sec Alarm", "r3.m41t81.reg0e.1secalm", |
9782 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9783 | 15 | NULL, HFILL } |
9784 | 15 | }, |
9785 | 15 | { &hf_r3_dumpm41t81_reg0f_wdf, |
9786 | 15 | { "WDF", "r3.m41t81.reg0f.wdf", |
9787 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9788 | 15 | NULL, HFILL } |
9789 | 15 | }, |
9790 | 15 | { &hf_r3_dumpm41t81_reg0f_af, |
9791 | 15 | { "AF", "r3.m41t81.reg0f.af", |
9792 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9793 | 15 | NULL, HFILL } |
9794 | 15 | }, |
9795 | 15 | { &hf_r3_dumpm41t81_reg0f_notused, |
9796 | 15 | { "(not used)", "r3.m41t81.reg0f.notused", |
9797 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9798 | 15 | NULL, HFILL } |
9799 | 15 | }, |
9800 | 15 | { &hf_r3_dumpm41t81_reg10_notused, |
9801 | 15 | { "(not used)", "r3.m41t81.reg10.notused", |
9802 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9803 | 15 | NULL, HFILL } |
9804 | 15 | }, |
9805 | 15 | { &hf_r3_dumpm41t81_reg11_notused, |
9806 | 15 | { "(not used)", "r3.m41t81.reg11.notused", |
9807 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9808 | 15 | NULL, HFILL } |
9809 | 15 | }, |
9810 | 15 | { &hf_r3_dumpm41t81_reg12_notused, |
9811 | 15 | { "(not used)", "r3.m41t81.reg12.notused", |
9812 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9813 | 15 | NULL, HFILL } |
9814 | 15 | }, |
9815 | 15 | { &hf_r3_dumpm41t81_reg13_rs, |
9816 | 15 | { "RS", "r3.m41t81.reg13.rs", |
9817 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9818 | 15 | NULL, HFILL } |
9819 | 15 | }, |
9820 | 15 | { &hf_r3_dumpm41t81_reg13_notused, |
9821 | 15 | { "(not used)", "r3.m41t81.reg13.notused", |
9822 | 15 | FT_UINT8, BASE_DEC, NULL, 0x0, |
9823 | 15 | NULL, HFILL } |
9824 | 15 | }, |
9825 | 15 | { &hf_r3_sn_manufacturer, |
9826 | 15 | { "Manufacturer", "r3.sn.manufacturer", |
9827 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
9828 | 15 | NULL, HFILL } |
9829 | 15 | }, |
9830 | 15 | { &hf_r3_sn_year, |
9831 | 15 | { "Year", "r3.sn.year", |
9832 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
9833 | 15 | NULL, HFILL } |
9834 | 15 | }, |
9835 | 15 | { &hf_r3_sn_week, |
9836 | 15 | { "Week", "r3.sn.week", |
9837 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
9838 | 15 | NULL, HFILL } |
9839 | 15 | }, |
9840 | 15 | { &hf_r3_sn_model, |
9841 | 15 | { "Model", "r3.sn.model", |
9842 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
9843 | 15 | NULL, HFILL } |
9844 | 15 | }, |
9845 | 15 | { &hf_r3_sn_sequence, |
9846 | 15 | { "Sequence", "r3.sn.sequence", |
9847 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
9848 | 15 | NULL, HFILL } |
9849 | 15 | }, |
9850 | 15 | { &hf_r3_sn_group, |
9851 | 15 | { "Group", "r3.sn.group", |
9852 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
9853 | 15 | NULL, HFILL } |
9854 | 15 | }, |
9855 | 15 | { &hf_r3_sn_nid, |
9856 | 15 | { "NID", "r3.sn.nid", |
9857 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
9858 | 15 | NULL, HFILL } |
9859 | 15 | }, |
9860 | 15 | { &hf_r3_sn_hid, |
9861 | 15 | { "HID", "r3.sn.hid", |
9862 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
9863 | 15 | NULL, HFILL } |
9864 | 15 | }, |
9865 | 15 | { &hf_r3_sn_power_supply, |
9866 | 15 | { "Power Supply", "r3.sn.power_supply", |
9867 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
9868 | 15 | NULL, HFILL } |
9869 | 15 | }, |
9870 | 15 | { &hf_r3_sn_mortise, |
9871 | 15 | { "Mortise", "r3.sn.mortise", |
9872 | 15 | FT_STRING, BASE_NONE, NULL, 0x0, |
9873 | 15 | NULL, HFILL } |
9874 | 15 | }, |
9875 | 15 | { &hf_r3_debuglog_recordnumber, |
9876 | 15 | { "Record Number", "r3.debuglog.recordnumber", |
9877 | 15 | FT_UINT16, BASE_HEX_DEC, NULL, 0x0, |
9878 | 15 | NULL, HFILL } |
9879 | 15 | }, |
9880 | 15 | { &hf_r3_debuglog_flags, |
9881 | 15 | { "Flags", "r3.debuglog.flags", |
9882 | 15 | FT_UINT32, BASE_HEX, NULL, 0x0, |
9883 | 15 | NULL, HFILL } |
9884 | 15 | }, |
9885 | 15 | { &hf_r3_debuglog_tick, |
9886 | 15 | { "Tick", "r3.debuglog.tick", |
9887 | 15 | FT_UINT16, BASE_HEX_DEC, NULL, 0x0, |
9888 | 15 | NULL, HFILL } |
9889 | 15 | }, |
9890 | | |
9891 | 15 | { &hf_r3_adduserparamtype, |
9892 | 15 | { "Upstream Field", "r3.manageuser", |
9893 | 15 | FT_NONE, BASE_NONE, NULL, 0x0, |
9894 | 15 | NULL, HFILL } |
9895 | 15 | }, |
9896 | 15 | { &hf_r3_adduserparamtypelength, |
9897 | 15 | { "Field Length", "r3.manageuser.length", |
9898 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
9899 | 15 | NULL, HFILL } |
9900 | 15 | }, |
9901 | 15 | { &hf_r3_adduserparamtypetype, |
9902 | 15 | { "Field Type", "r3.manageuser.type", |
9903 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_adduserparamtypenames_ext, 0x0, |
9904 | 15 | NULL, HFILL } |
9905 | 15 | }, |
9906 | | #if 0 |
9907 | | { &hf_r3_adduserparamtypedatalen, |
9908 | | { "Data Length", "r3.manageuser.datalen", |
9909 | | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
9910 | | NULL, HFILL } |
9911 | | }, |
9912 | | { &hf_r3_adduserparamtypeerror, |
9913 | | { "Error", "r3.manageuser.error", |
9914 | | FT_STRING, BASE_NONE, NULL, 0x0, |
9915 | | NULL, HFILL } |
9916 | | }, |
9917 | | #endif |
9918 | 15 | { &hf_r3_adduserparamtypearray [ADDUSERPARAMTYPE_DISPOSITION], |
9919 | 15 | { "Disposition", "r3.manageuser.disposition", |
9920 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_dispositionnames_ext, 0x0, |
9921 | 15 | NULL, HFILL } |
9922 | 15 | }, |
9923 | 15 | { &hf_r3_adduserparamtypearray [ADDUSERPARAMTYPE_USERNO], |
9924 | 15 | { "User Number", "r3.manageuser.usernumber", |
9925 | 15 | FT_UINT16, BASE_DEC_HEX, NULL, 0x0, |
9926 | 15 | NULL, HFILL } |
9927 | 15 | }, |
9928 | 15 | { &hf_r3_adduserparamtypearray [ADDUSERPARAMTYPE_ACCESSALWAYS], |
9929 | 15 | { "Access Always", "r3.manageuser.accessalways", |
9930 | 15 | FT_BOOLEAN, BASE_NONE, NULL, 0x0, |
9931 | 15 | NULL, HFILL } |
9932 | 15 | }, |
9933 | 15 | { &hf_r3_adduserparamtypearray [ADDUSERPARAMTYPE_ACCESSMODE], |
9934 | 15 | { "Access Mode", "r3.manageuser.accessmode", |
9935 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_accessmodenames_ext, 0x0, |
9936 | 15 | NULL, HFILL } |
9937 | 15 | }, |
9938 | 15 | { &hf_r3_adduserparamtypearray [ADDUSERPARAMTYPE_CACHED], |
9939 | 15 | { "Cached", "r3.manageuser.cached", |
9940 | 15 | FT_BOOLEAN, BASE_NONE, NULL, 0x0, |
9941 | 15 | NULL, HFILL } |
9942 | 15 | }, |
9943 | 15 | { &hf_r3_adduserparamtypearray [ADDUSERPARAMTYPE_USERTYPE], |
9944 | 15 | { "User Type", "r3.manageuser.usertype", |
9945 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_usertypenames_ext, 0x0, |
9946 | 15 | NULL, HFILL } |
9947 | 15 | }, |
9948 | 15 | { &hf_r3_adduserparamtypearray [ADDUSERPARAMTYPE_PRIMARYFIELD], |
9949 | 15 | { "Primary Field", "r3.manageuser.primaryfield", |
9950 | 15 | FT_BYTES, BASE_NONE, NULL, 0x0, |
9951 | 15 | NULL, HFILL } |
9952 | 15 | }, |
9953 | 15 | { &hf_r3_adduserparamtypearray [ADDUSERPARAMTYPE_PRIMARYFIELDTYPE], |
9954 | 15 | { "Primary Field Type", "r3.manageuser.primaryfieldtype", |
9955 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_ppmisourcenames_ext, 0x0, |
9956 | 15 | NULL, HFILL } |
9957 | 15 | }, |
9958 | 15 | { &hf_r3_adduserparamtypearray [ADDUSERPARAMTYPE_AUXFIELD], |
9959 | 15 | { "Aux Field", "r3.manageuser.auxfield", |
9960 | 15 | FT_BYTES, BASE_NONE, NULL, 0x0, |
9961 | 15 | NULL, HFILL } |
9962 | 15 | }, |
9963 | 15 | { &hf_r3_adduserparamtypearray [ADDUSERPARAMTYPE_AUXFIELDTYPE], |
9964 | 15 | { "Aux Field Type", "r3.manageuser.auxfieldtype", |
9965 | 15 | FT_UINT8, BASE_DEC_HEX|BASE_EXT_STRING, &r3_ppmisourcenames_ext, 0x0, |
9966 | 15 | NULL, HFILL } |
9967 | 15 | }, |
9968 | 15 | { &hf_r3_adduserparamtypearray [ADDUSERPARAMTYPE_USECOUNT], |
9969 | 15 | { "Use Count", "r3.manageuser.usecount", |
9970 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
9971 | 15 | NULL, HFILL } |
9972 | 15 | }, |
9973 | 15 | { &hf_r3_adduserparamtypearray [ADDUSERPARAMTYPE_EXCEPTIONGROUP], |
9974 | 15 | { "Exception Group", "r3.manageuser.exceptiongroup", |
9975 | 15 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
9976 | 15 | NULL, HFILL } |
9977 | 15 | }, |
9978 | 15 | { &hf_r3_adduserparamtypearray [ADDUSERPARAMTYPE_EXPIREON], |
9979 | 15 | { "Expire On", "r3.manageuser.expireon", |
9980 | 15 | FT_UINT24, BASE_HEX, NULL, 0x0, |
9981 | 15 | NULL, HFILL } |
9982 | 15 | }, |
9983 | 15 | { &hf_r3_adduserparamtypearray [ADDUSERPARAMTYPE_TIMEZONE], |
9984 | 15 | { "Timezone", "r3.manageuser.timezone", |
9985 | 15 | FT_UINT32, BASE_HEX, NULL, 0x0, |
9986 | 15 | NULL, HFILL } |
9987 | 15 | } |
9988 | 15 | }; |
9989 | | |
9990 | | /* Setup protocol subtree array */ |
9991 | 15 | static int *ett [] = |
9992 | 15 | { |
9993 | 15 | &ett_r3, |
9994 | 15 | &ett_r3header, |
9995 | 15 | &ett_r3tail, |
9996 | 15 | &ett_r3payload, |
9997 | 15 | &ett_r3cmd, |
9998 | 15 | &ett_r3configitem, |
9999 | 15 | &ett_r3upstreamcommand, |
10000 | 15 | &ett_r3upstreamfield, |
10001 | 15 | &ett_r3timezone, |
10002 | 15 | &ett_r3expireon, |
10003 | 15 | &ett_r3datetime, |
10004 | 15 | &ett_r3eventlogrecord, |
10005 | 15 | &ett_r3declinedlogrecord, |
10006 | 15 | &ett_r3alarmlogrecord, |
10007 | 15 | &ett_r3debugmsg, |
10008 | 15 | &ett_r3defineexceptionstartdate, |
10009 | 15 | &ett_r3defineexceptionenddate, |
10010 | 15 | &ett_r3defineexceptiongroupbits, |
10011 | 15 | &ett_r3definecalendarmonth [1], |
10012 | 15 | &ett_r3definecalendarmonth [2], |
10013 | 15 | &ett_r3definecalendarmonth [3], |
10014 | 15 | &ett_r3definecalendarmonth [4], |
10015 | 15 | &ett_r3definecalendarmonth [5], |
10016 | 15 | &ett_r3definecalendarmonth [6], |
10017 | 15 | &ett_r3definecalendarmonth [7], |
10018 | 15 | &ett_r3definecalendarmonth [8], |
10019 | 15 | &ett_r3definecalendarmonth [9], |
10020 | 15 | &ett_r3definecalendarmonth [10], |
10021 | 15 | &ett_r3definecalendarmonth [11], |
10022 | 15 | &ett_r3definecalendarmonth [12], |
10023 | 15 | &ett_r3definetimezonestarttime, |
10024 | 15 | &ett_r3definetimezoneendtime, |
10025 | 15 | &ett_r3definetimezonedaymap, |
10026 | 15 | &ett_r3eventlogdumpstarttime, |
10027 | 15 | &ett_r3eventlogdumpendtime, |
10028 | 15 | &ett_r3declinedlogdumpstarttime, |
10029 | 15 | &ett_r3declinedlogdumpendtime, |
10030 | 15 | &ett_r3alarmlogdumpstarttime, |
10031 | 15 | &ett_r3alarmlogdumpendtime, |
10032 | 15 | &ett_r3clearnvram, |
10033 | 15 | &ett_r3filters, |
10034 | 15 | &ett_r3alarmlist, |
10035 | 15 | &ett_r3alarmcfg, |
10036 | 15 | &ett_r3commandmfg, |
10037 | 15 | &ett_r3serialnumber, |
10038 | 15 | &ett_r3iopins, |
10039 | 15 | &ett_r3checksumresults, |
10040 | 15 | &ett_r3checksumresultsfield, |
10041 | 15 | &ett_r3forceoptions, |
10042 | 15 | &ett_r3peekpoke, |
10043 | 15 | &ett_r3downloadfirmware, |
10044 | 15 | &ett_r3capabilities, |
10045 | 15 | &ett_r3lockstate, |
10046 | 15 | &ett_r3mortisestatelog, |
10047 | 15 | &ett_r3timerchain, |
10048 | 15 | &ett_r3taskflags, |
10049 | 15 | &ett_r3taskflagsentry, |
10050 | 15 | &ett_r3checkpointlog, |
10051 | 15 | &ett_r3checkpointlogentry, |
10052 | 15 | &ett_r3cpuregisters, |
10053 | 15 | &ett_r3cpuregister, |
10054 | 15 | &ett_r3m41t81registers, |
10055 | 15 | &ett_r3m41t81register, |
10056 | 15 | &ett_r3debuglogrecord, |
10057 | 15 | &ett_r3setdatetime, |
10058 | 15 | &ett_r3manageuser |
10059 | 15 | }; |
10060 | | |
10061 | 15 | static ei_register_info ei[] = { |
10062 | 15 | { &ei_r3_malformed_length, { "r3.malformed_length", PI_MALFORMED, PI_ERROR, "Malformed length", EXPFILL }}, |
10063 | 15 | { &ei_r3_reserved_upstream_command_value, { "r3.reserved_upstream_command_value", PI_UNDECODED, PI_WARN, "\"Reserved\" Upstream Command value", EXPFILL }}, |
10064 | 15 | { &ei_r3_mfgfield, { "r3.mfgfield.field.unknown", PI_UNDECODED, PI_WARN, "Unknown manufacturing command value", EXPFILL }}, |
10065 | 15 | { &ei_r3_mfgfield_too_many_adc_values, { "r3.mfgfield.too_many_adc_values", PI_PROTOCOL, PI_WARN, "MFG Field: too many adc values", EXPFILL }}, |
10066 | 15 | { &ei_r3_peekpoke_operation, { "r3.peekpoke.operation.unknown", PI_UNDECODED, PI_WARN, "Unknown peekpoke operation value", EXPFILL }}, |
10067 | 15 | { &ei_r3_response_hasdata_octet_1, { "r3.response_hasdata.octet_1_not_cmd_response", PI_PROTOCOL, PI_WARN, "Octet 1 not CMD_RESPONSE", EXPFILL }}, |
10068 | 15 | { &ei_r3_response_hasdata_octet_2, { "r3.response_hasdata.octet_2_not_response_hasdata", PI_PROTOCOL, PI_WARN, "Octet 2 not RESPONSE_HASDATA", EXPFILL }}, |
10069 | 15 | { &ei_r3_response_hasdata_octet_3, { "r3.response_hasdata.octet_3_ge_upstreamcommand_last", PI_PROTOCOL, PI_WARN, "Octet 3 >= UPSTREAMCOMMAND_LAST", EXPFILL }}, |
10070 | 15 | { &ei_r3_firmwaredownload_action, { "r3.firmwaredownload.action.unknown", PI_PROTOCOL, PI_WARN, "Unknown Firmware download action", EXPFILL }}, |
10071 | 15 | { &ei_r3_cmd_downloadfirmwaretimeout, { "r3.command.downloadfirmwaretimeout", PI_UNDECODED, PI_WARN, "Download Firmware Timeout", EXPFILL }}, |
10072 | 15 | { &ei_r3_unknown_command_value, { "r3.command.unknown", PI_UNDECODED, PI_WARN, "Unknown command value", EXPFILL }}, |
10073 | 15 | }; |
10074 | | |
10075 | 15 | expert_module_t* expert_r3; |
10076 | | |
10077 | 15 | proto_r3 = proto_register_protocol ("Assa Abloy R3", "R3", "r3"); |
10078 | 15 | r3_handle = register_dissector ("r3", dissect_r3, proto_r3); |
10079 | 15 | proto_register_field_array (proto_r3, hf, array_length (hf)); |
10080 | 15 | proto_register_subtree_array (ett, array_length (ett)); |
10081 | 15 | expert_r3 = expert_register_protocol(proto_r3); |
10082 | 15 | expert_register_field_array(expert_r3, ei, array_length(ei)); |
10083 | 15 | } |
10084 | | |
10085 | | void proto_reg_handoff_r3 (void) |
10086 | 15 | { |
10087 | 15 | dissector_add_uint_range_with_preference("tcp.port", ASSA_R3_PORT_RANGE, r3_handle); |
10088 | 15 | } |
10089 | | |
10090 | | /* |
10091 | | * Editor modelines - https://www.wireshark.org/tools/modelines.html |
10092 | | * |
10093 | | * Local Variables: |
10094 | | * c-basic-offset: 2 |
10095 | | * tab-width: 8 |
10096 | | * indent-tabs-mode: nil |
10097 | | * End: |
10098 | | * |
10099 | | * vi: set shiftwidth=2 tabstop=8 expandtab: |
10100 | | * :indentSize=2:tabSize=8:noTabs=true: |
10101 | | */ |