~ubuntu-branches/ubuntu/saucy/nut/saucy

« back to all changes in this revision

Viewing changes to drivers/sec.h

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2005-07-20 19:48:50 UTC
  • mto: (16.1.1 squeeze)
  • mto: This revision was merged to the branch mainline in revision 4.
  • Revision ID: james.westby@ubuntu.com-20050720194850-oo61wjr33rrx2mre
Tags: upstream-2.0.2
ImportĀ upstreamĀ versionĀ 2.0.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*                               -*- Mode: C -*- 
2
 
 * sec.h -- header for sec protocol module
3
 
 * 
4
 
 * Copyright (C) 2000 John Marley
5
 
 * The author can be contacted at: John.Marley@alcatel.com.au
6
 
 * 
7
 
 * Author          : John Marley
8
 
 * Created On      : Thu Mar 29 11:07:01 2001
9
 
 * Last Modified By: John Marley
10
 
 * Last Modified On: Fri May  4 16:26:00 2001
11
 
 * Update Count    : 53
12
 
 * Status          : Unknown, Use with caution!
13
 
 * $Locker:  $
14
 
 * $Log: sec.h,v $
15
 
 * Revision 1.2  2001/05/08 03:21:09  marleyj
16
 
 * Added supported() macro.
17
 
 *
18
 
 * Revision 1.1  2001/05/02 04:54:33  marleyj
19
 
 * Initial revision
20
 
 *
21
 
 */
22
 
 
23
 
#define SEC_MSG_STARTCHAR       '^'
24
 
#define SEC_POLLCMD             'P'
25
 
#define SEC_SETCMD              'S'
26
 
#define SEC_DATAMSG             'D'
27
 
#define SEC_UPSMSG              '*'
28
 
#define SEC_ACK                 '1'
29
 
#define SEC_NAK                 '0'
30
 
 
31
 
/* commands */
32
 
#define SEC_AVAILP1     "AP1"           /* Part1 of available variables */
33
 
#define SEC_AVAILP2     "AP2"           /* Part1 of available variables */
34
 
#define SEC_AUTORESTART "ATR"           /* Enable/disable auto restart */
35
 
#define SEC_MFR         "MAN"           /* UPS Manufacturer */
36
 
#define SEC_MOD         "MOD"           /* UPS Model */
37
 
#define SEC_NOMINAL     "NOM"           /* Nominal Values */
38
 
#define SEC_SHUTDOWN    "PSD"           /* Shutdown after delay/cancel */
39
 
#define SEC_REBOOT      "RWD"           /* Reboot with duration/cancel */
40
 
#define SEC_SHUTTYPE    "SDA"           /* Shutdown Type */
41
 
#define SEC_BATTSTAT    "ST1"           /* Battery Status */
42
 
#define SEC_INPUTSTAT   "ST2"           /* Input Status */
43
 
#define SEC_OUTPUTSTAT  "ST3"           /* Output Status */
44
 
#define SEC_BYPASSSTAT  "ST4"           /* Bypass Status */
45
 
#define SEC_ALARMSTAT   "ST5"           /* UPS Alarms */
46
 
#define SEC_STARTDELAY  "STD"           /* Startup after delay */
47
 
#define SEC_TESTRESULT  "STR"           /* Test Results */
48
 
#define SEC_TEST        "TST"           /* UPS Test/abort */
49
 
#define SEC_BAUDRATE    "UBR"           /* UPS Baud Rate */
50
 
#define SEC_UPSID       "UID"           /* UPS Identifier */
51
 
#define SEC_VERSION     "VER"           /* UPS Software Version */
52
 
 
53
 
/* Some baud rates for setup_serial() */
54
 
struct baud_rate_t {
55
 
    int rate;
56
 
    int name;
57
 
} baud_rates[] = {
58
 
    { B1200,  1200 },
59
 
    { B2400,  2400 },
60
 
    { B4800,  4800 },
61
 
    { B9600,  9600 },
62
 
    { B19200, 19200 },
63
 
};
64
 
 
65
 
/*
66
 
 * Exhaustive information for each possible variable
67
 
 */
68
 
#define SEC_NUMVARS 89
69
 
#define SEC_MAX_VARSIZE 65
70
 
 
71
 
/* macro for checking whether a variable is supported */
72
 
#define supported(v)    (getdata(v) != NULL)
73
 
 
74
 
struct sec_varlist_t {
75
 
    int  infotag;       /* INFO_x define from shared.h */
76
 
    char *name;         /* Human readable text (also in shared-tables.h) */
77
 
    int  unit;          /* Variable should be divided by this */
78
 
    char *cmd;          /* Command to send to pool/set variable */
79
 
    int  field;         /* Which returned field variable corresponsd to */
80
 
    int  size;          /* string length/integer max/enum count */
81
 
    int  edi;           /* 'E'numerated 'D'ata 'I'ndex */
82
 
    int  flags;         /* Flags for addinfo() */
83
 
    char value[SEC_MAX_VARSIZE];
84
 
} sec_varlist[] = {
85
 
    { INFO_UNUSED,          "",                          0, "",              0,       0,  0, 0 },
86
 
    /*infotag               name                      unit  cmd          field     size edi  flags */
87
 
    { INFO_ALRM_PWRWAIT,    "Alarm Awaiting Power",      1, SEC_ALARMSTAT,  13,       2,  0, FLAG_ENUM },
88
 
    { INFO_ALRM_BADBYPASS,  "Alarm Bypass Bad",          1, SEC_ALARMSTAT,   5,       2,  2, FLAG_ENUM },
89
 
    { INFO_ALRM_CHARGFAIL,  "Alarm Charger Failure",     1, SEC_ALARMSTAT,   8,       2,  4, FLAG_ENUM },
90
 
    { INFO_ALRM_FANFAIL,    "Alarm Fan Failure",         1, SEC_ALARMSTAT,  10,       2,  6, FLAG_ENUM },
91
 
    { INFO_ALRM_FUSEFAIL,   "Alarm Fuse Failure",        1, SEC_ALARMSTAT,  11,       2,  8, FLAG_ENUM },
92
 
    { INFO_ALRM_GENERAL,    "Alarm General Fault",       1, SEC_ALARMSTAT,  12,       2, 10, FLAG_ENUM },
93
 
    { INFO_ALRM_BADINPUT,   "Alarm Input Bad",           1, SEC_ALARMSTAT,   2,       2, 12, FLAG_ENUM },
94
 
    { INFO_ALRM_BADOUTPUT,  "Alarm Output Bad",          1, SEC_ALARMSTAT,   3,       2, 14, FLAG_ENUM },
95
 
    { INFO_ALRM_OUTPUTOFF,  "Alarm Output Off",          1, SEC_ALARMSTAT,   6,       2, 16, FLAG_ENUM },
96
 
    { INFO_ALRM_OVERLOAD,   "Alarm Overload",            1, SEC_ALARMSTAT,   4,       2, 18, FLAG_ENUM },
97
 
    { INFO_ALRM_IMMSHUT,    "Alarm Shutdown Imminent",   1, SEC_ALARMSTAT,  15,       2, 20, FLAG_ENUM },
98
 
    { INFO_ALRM_PENDSHUT,   "Alarm Shutdown Pending",    1, SEC_ALARMSTAT,  14,       2, 22, FLAG_ENUM },
99
 
    { INFO_ALRM_SYSOFF,     "Alarm System Off",          1, SEC_ALARMSTAT,   9,       2, 24, FLAG_ENUM },
100
 
    { INFO_ALRM_TEMP,       "Alarm Temperature",         1, SEC_ALARMSTAT,   1,       2, 26, FLAG_ENUM },
101
 
    { INFO_ALRM_UPSSHUT,    "Alarm UPS Shutdown",        1, SEC_ALARMSTAT,   7,       2, 28, FLAG_ENUM },
102
 
    { INFO_AUDIBLEALRM,     "Audible Alarm",             1, SEC_NOMINAL,     8,       4, 29, FLAG_ENUM | FLAG_RW },
103
 
    { INFO_AUTORESTART,     "Auto Restart",              1, SEC_AUTORESTART, 1,       2, 33, FLAG_ENUM | FLAG_RW },
104
 
    { INFO_BATT_CHARGE,     "Battery Charge",            1, SEC_BATTSTAT,    3,       4, 36, FLAG_ENUM },
105
 
    { INFO_BATT_COND,       "Battery Condition",         1, SEC_BATTSTAT,    1,       3, 40, FLAG_ENUM },
106
 
    { INFO_BATT_CURRENT,    "Battery Current",          10, SEC_BATTSTAT,    8,    9999,  0, 0 },
107
 
    { INFO_BATT_DATE,       "Battery Installed",         1, SEC_NOMINAL,    11,       8,  0, FLAG_STRING | FLAG_RW },
108
 
    { INFO_BATT_STATUS,     "Battery Status",            1, SEC_BATTSTAT,    2,       3, 43, FLAG_ENUM },
109
 
    { INFO_BATT_TEMP,       "Battery Temperature",       1, SEC_BATTSTAT,    9,      99,  0, 0 },
110
 
    { INFO_BATT_VOLT,       "Battery Voltage",          10, SEC_BATTSTAT,    7,    9999,  0, 0 },
111
 
    { INFO_BYPASS_CURRENT1, "Bypass Current 1",         10, SEC_BYPASSSTAT,  4,    9999,  0, 0 },
112
 
    { INFO_BYPASS_CURRENT2, "Bypass Current 2",         10, SEC_BYPASSSTAT,  7,    9999,  0, 0 },
113
 
    { INFO_BYPASS_CURRENT3, "Bypass Current 3",         10, SEC_BYPASSSTAT, 10,    9999,  0, 0 },
114
 
    { INFO_BYPASS_FREQ,     "Bypass Frequency",         10, SEC_BYPASSSTAT,  1,     999,  0, 0 },
115
 
    { INFO_BYPASS_NLINES,   "Bypass Num Lines",          1, SEC_BYPASSSTAT,  2,       9,  0, 0 },
116
 
    { INFO_BYPASS_PWR1,     "Bypass Power 1",            1, SEC_BYPASSSTAT,  5,   99999,  0, 0 },
117
 
    { INFO_BYPASS_PWR2,     "Bypass Power 2",            1, SEC_BYPASSSTAT,  8,   99999,  0, 0 },
118
 
    { INFO_BYPASS_PWR3,     "Bypass Power 3",            1, SEC_BYPASSSTAT, 11,   99999,  0, 0 },
119
 
    { INFO_BYPASS_VOLT1,    "Bypass Voltage 1",         10, SEC_BYPASSSTAT,  3,    9999,  0, 0 },
120
 
    { INFO_BYPASS_VOLT2,    "Bypass Voltage 2",         10, SEC_BYPASSSTAT,  6,    9999,  0, 0 },
121
 
    { INFO_BYPASS_VOLT3,    "Bypass Voltage 3",         10, SEC_BYPASSSTAT,  9,    9999,  0, 0 },
122
 
    { INFO_BATT_PCT,        "Estimated Charge",          1, SEC_BATTSTAT,    6,     999,  0, 0 },
123
 
    { INFO_RUNTIME,         "Estimated Minutes",         1, SEC_BATTSTAT,    5,     999,  0, 0 },
124
 
    { INFO_HIGHXFER,        "High Volt Xfer Pt",         1, SEC_NOMINAL,    10,     999,  0, FLAG_STRING | FLAG_RW },
125
 
    { INFO_UPSIDENT,        "Identification",            1, SEC_UPSID,       1,      64,  0, FLAG_STRING | FLAG_RW },
126
 
    { INFO_IN_CURRENT1,     "Input Current 1",          10, SEC_INPUTSTAT,   5,    9999,  0, 0 },
127
 
    { INFO_IN_CURRENT2,     "Input Current 2",          10, SEC_INPUTSTAT,   9,    9999,  0, 0 },
128
 
    { INFO_IN_CURRENT3,     "Input Current 3",          10, SEC_INPUTSTAT,  13,    9999,  0, 0 },
129
 
    { INFO_IN_ACFREQ1,      "Input Frequency 1",        10, SEC_INPUTSTAT,   3,     999,  0, 0 },
130
 
    { INFO_IN_ACFREQ2,      "Input Frequency 2",        10, SEC_INPUTSTAT,   7,     999,  0, 0 },
131
 
    { INFO_IN_ACFREQ3,      "Input Frequency 3",        10, SEC_INPUTSTAT,  11,     999,  0, 0 },
132
 
    { INFO_IN_LINEBADS,     "Input Line Bads",           1, SEC_INPUTSTAT,   1,     999,  0, 0 },
133
 
    { INFO_IN_NLINES,       "Input Num Lines",           1, SEC_INPUTSTAT,   2,       9,  0, 0 },
134
 
    { INFO_IN_PWR1,         "Input Power 1",             1, SEC_INPUTSTAT,   6,   99999,  0, 0 },
135
 
    { INFO_IN_PWR2,         "Input Power 2",             1, SEC_INPUTSTAT,  10,   99999,  0, 0 },
136
 
    { INFO_IN_PWR3,         "Input Power 3",             1, SEC_INPUTSTAT,  14,   99999,  0, 0 },
137
 
    { INFO_IN_VOLT1,        "Input Voltage 1",          10, SEC_INPUTSTAT,   4,    9999,  0, 0 },
138
 
    { INFO_IN_VOLT2,        "Input Voltage 2",          10, SEC_INPUTSTAT,   8,    9999,  0, 0 },
139
 
    { INFO_IN_VOLT3,        "Input Voltage 3",          10, SEC_INPUTSTAT,  12,    9999,  0, 0 },
140
 
    { INFO_LOWXFER,         "Low Volt Xfer Pt",          1, SEC_NOMINAL,     9,     999,  0, FLAG_STRING | FLAG_RW },
141
 
    { INFO_MFR,             "Manufacturer",              1, SEC_MFR,         1,      32,  0, FLAG_STRING },
142
 
    { INFO_MODEL,           "Model",                     1, SEC_MOD,         1,      64,  0, FLAG_STRING },
143
 
    { INFO_NOM_BATTLIFE,    "Nominal Battery Life",      1, SEC_NOMINAL,    12,   99999,  0, FLAG_STRING | FLAG_RW },
144
 
    { INFO_NOM_IN_FREQ,     "Nominal Input Frequency",  10, SEC_NOMINAL,     2,     999,  0, FLAG_RW },
145
 
    { INFO_NOM_IN_VOLT,     "Nominal Input Voltage",     1, SEC_NOMINAL,     1,     999,  0, FLAG_STRING | FLAG_RW },
146
 
    { INFO_NOM_LOBATTIME,   "Nominal Low Battery Time",  1, SEC_NOMINAL,     7,      99,  0, FLAG_STRING | FLAG_RW },
147
 
    { INFO_NOM_OUT_FREQ,    "Nominal Output Frequency", 10, SEC_NOMINAL,     4,     999,  0, FLAG_RW },
148
 
    { INFO_NOM_OUT_PWR,     "Nominal Output Power",      1, SEC_NOMINAL,     6,   99999,  0, FLAG_STRING | FLAG_RW },
149
 
    { INFO_NOM_OUT_VOLT,    "Nominal Output Voltage",    1, SEC_NOMINAL,     3,     999,  0, FLAG_STRING | FLAG_RW },
150
 
    { INFO_NOM_VA_RATE,     "Nominal VA Rating",         1, SEC_NOMINAL,     5,   99999,  0, FLAG_STRING | FLAG_RW },
151
 
    { INFO_OUT_CURRENT1,    "Output Current 1",         10, SEC_OUTPUTSTAT,  5,    9999,  0, 0 },
152
 
    { INFO_OUT_CURRENT2,    "Output Current 2",         10, SEC_OUTPUTSTAT,  9,    9999,  0, 0 },
153
 
    { INFO_OUT_CURRENT3,    "Output Current 3",         10, SEC_OUTPUTSTAT, 13,    9999,  0, 0 },
154
 
    { INFO_OUT_FREQ,        "Output Frequency",         10, SEC_OUTPUTSTAT,  2,     999,  0, 0 },
155
 
    { INFO_OUT_LOADPCT1,    "Output Load 1",             1, SEC_OUTPUTSTAT,  7,     999,  0, 0 },
156
 
    { INFO_OUT_LOADPCT2,    "Output Load 2",             1, SEC_OUTPUTSTAT, 11,     999,  0, 0 },
157
 
    { INFO_OUT_LOADPCT3,    "Output Load 3",             1, SEC_OUTPUTSTAT, 15,     999,  0, 0 },
158
 
    { INFO_OUT_NLINES,      "Output Num Lines",          1, SEC_OUTPUTSTAT,  3,       9,  0, 0 },
159
 
    { INFO_OUT_LOADPWR1,    "Output Power 1",            1, SEC_OUTPUTSTAT,  6,   99999,  0, 0 },
160
 
    { INFO_OUT_LOADPWR2,    "Output Power 2",            1, SEC_OUTPUTSTAT, 10,   99999,  0, 0 },
161
 
    { INFO_OUT_LOADPWR3,    "Output Power 3",            1, SEC_OUTPUTSTAT, 14,   99999,  0, 0 },
162
 
    { INFO_OUT_SOURCE,      "Output Source",             1, SEC_OUTPUTSTAT,  1,       6, 46, FLAG_ENUM },
163
 
    { INFO_OUT_VOLT1,       "Output Voltage 1",         10, SEC_OUTPUTSTAT,  4,    9999,  0, 0 },
164
 
    { INFO_OUT_VOLT2,       "Output Voltage 2",         10, SEC_OUTPUTSTAT,  8,    9999,  0, 0 },
165
 
    { INFO_OUT_VOLT3,       "Output Voltage 3",         10, SEC_OUTPUTSTAT, 12,    9999,  0, 0 },
166
 
    { INFO_RBTWDUR,         "Reboot With Duration",      1, SEC_REBOOT,      1, 9999999,  0, FLAG_WONLY },
167
 
    { INFO_SECSONBATT,      "Seconds on Battery",        1, SEC_BATTSTAT,    4,   99999,  0, 0 },
168
 
    { INFO_SHUTTYPE,        "Shutdown Type",             1, SEC_SHUTTYPE,    1,       2, 51, FLAG_ENUM | FLAG_RW },
169
 
    { INFO_DELAYSHUT,       "Shutdown After Delay",      1, SEC_STARTDELAY,  1, 9999999,  0, FLAG_WONLY },
170
 
    { INFO_FIRMREV,         "Software Version",          1, SEC_VERSION,     1,      32,  0, FLAG_STRING },
171
 
    { INFO_WAKEDELAY,       "Startup After Delay",       1, SEC_STARTDELAY,  1, 9999999,  0, FLAG_WONLY },
172
 
    { INFO_SLFTSTDETAIL,    "Test Results Detail",       1, SEC_TESTRESULT,  2,      64,  0, FLAG_STRING },
173
 
    { INFO_SLFTSTSUM,       "Test Results Summary",      1, SEC_TESTRESULT,  1,       6, 54, FLAG_ENUM },
174
 
    { INFO_SLFTSTTYPE,      "Test Type",                 1, SEC_TEST,        1,       5, 61, FLAG_ENUM | FLAG_WONLY },
175
 
    { INFO_BAUDRATE,        "Baud Rate",                 1, SEC_BAUDRATE,    1,   19200,  0, FLAG_RW },
176
 
};
177
 
 
178
 
 
179
 
/*
180
 
 * List of possible enumerations
181
 
 */
182
 
 
183
 
struct sec_enumdata_t {
184
 
    int type;           /* INFO_x type */
185
 
    int index;          /* ups value */
186
 
    const char *value;  /* enumerated value */
187
 
} sec_enumdata[] = {
188
 
    { INFO_ALRM_PWRWAIT,        0, "Not Awaiting Power" },
189
 
    { INFO_ALRM_PWRWAIT,        1, "Awaiting Power" },
190
 
    { INFO_ALRM_BADBYPASS,      0, "Bypass OK" },
191
 
    { INFO_ALRM_BADBYPASS,      1, "Bypass Fault" },
192
 
    { INFO_ALRM_CHARGFAIL,      0, "Charger OK" },
193
 
    { INFO_ALRM_CHARGFAIL,      1, "Charger Fault" },
194
 
    { INFO_ALRM_FANFAIL,        0, "Fan OK" },
195
 
    { INFO_ALRM_FANFAIL,        1, "Fan Fault" },
196
 
    { INFO_ALRM_FUSEFAIL,       0, "Fuse OK" },
197
 
    { INFO_ALRM_FUSEFAIL,       1, "Fuse Fault" },
198
 
    { INFO_ALRM_GENERAL,        0, "General system OK" },
199
 
    { INFO_ALRM_GENERAL,        1, "General system Fault" },
200
 
    { INFO_ALRM_BADINPUT,       0, "Input OK" },
201
 
    { INFO_ALRM_BADINPUT,       1, "Input Fault" },
202
 
    { INFO_ALRM_BADOUTPUT,      0, "Output OK" },
203
 
    { INFO_ALRM_BADOUTPUT,      1, "Output Fault" },
204
 
    { INFO_ALRM_OUTPUTOFF,      0, "Output On" },
205
 
    { INFO_ALRM_OUTPUTOFF,      1, "Output off" },
206
 
    { INFO_ALRM_OVERLOAD,       0, "UPS not overloaded" },
207
 
    { INFO_ALRM_OVERLOAD,       1, "UPS Overloaded" },
208
 
    { INFO_ALRM_IMMSHUT,        0, "No Shutdown Imminent" },
209
 
    { INFO_ALRM_IMMSHUT,        1, "Shutdown Imminent" },
210
 
    { INFO_ALRM_PENDSHUT,       0, "No Shutdown Pending" },
211
 
    { INFO_ALRM_PENDSHUT,       1, "Shutdown Pending" },
212
 
    { INFO_ALRM_SYSOFF,         0, "System On" },
213
 
    { INFO_ALRM_SYSOFF,         1, "System off" },
214
 
    { INFO_ALRM_TEMP,           0, "Temperature OK" },
215
 
    { INFO_ALRM_TEMP,           1, "Over Temperature" },
216
 
    { INFO_ALRM_UPSSHUT,        0, "UPS not Shutdown" },
217
 
    { INFO_ALRM_UPSSHUT,        1, "UPS Shutdown" },
218
 
    { INFO_AUDIBLEALRM,         1, "Disabled" },
219
 
    { INFO_AUDIBLEALRM,         2, "Enabled" },
220
 
    { INFO_AUDIBLEALRM,         3, "Muted" },
221
 
    { INFO_AUDIBLEALRM,         4, "Disabled Until Low Battery warning" },
222
 
    { INFO_AUTORESTART,         1, "Automatic Restart" },
223
 
    { INFO_AUTORESTART,         2, "Manual Restart" },
224
 
    { INFO_BATT_CHARGE,         0, "Floating" },
225
 
    { INFO_BATT_CHARGE,         1, "Charging" },
226
 
    { INFO_BATT_CHARGE,         2, "Resting" },
227
 
    { INFO_BATT_CHARGE,         3, "Discharging" },
228
 
    { INFO_BATT_COND,           0, "Good" },
229
 
    { INFO_BATT_COND,           1, "Weak" },
230
 
    { INFO_BATT_COND,           2, "Replace" },
231
 
    { INFO_BATT_STATUS,         0, "Battery OK" },
232
 
    { INFO_BATT_STATUS,         1, "Battery Low" },
233
 
    { INFO_BATT_STATUS,         2, "Battery Depleted" },
234
 
    { INFO_OUT_SOURCE,          0, "Normal" },
235
 
    { INFO_OUT_SOURCE,          1, "On Battery" },
236
 
    { INFO_OUT_SOURCE,          2, "On Bypass" },
237
 
    { INFO_OUT_SOURCE,          3, "Reducing" },
238
 
    { INFO_OUT_SOURCE,          4, "Boosting" },
239
 
    { INFO_OUT_SOURCE,          5, "Other" },
240
 
    { INFO_SHUTTYPE,            1, "UPS output only" },
241
 
    { INFO_SHUTTYPE,            2, "Entire UPS" },
242
 
    { INFO_SLFTSTSUM,           0, "No test performed" },
243
 
    { INFO_SLFTSTSUM,           1, "Test Passed" },
244
 
    { INFO_SLFTSTSUM,           2, "Test in progress" },
245
 
    { INFO_SLFTSTSUM,           3, "General Test failed" },
246
 
    { INFO_SLFTSTSUM,           4, "Battery Test failed" },
247
 
    { INFO_SLFTSTSUM,           5, "Deep Battery Test failed" },
248
 
    { INFO_SLFTSTTYPE,          -1, "Abort test in progress" },
249
 
    { INFO_SLFTSTTYPE,          0, "No test" },
250
 
    { INFO_SLFTSTTYPE,          1, "General Systems Test" },
251
 
    { INFO_SLFTSTTYPE,          2, "Quick Battery Test" },
252
 
    { INFO_SLFTSTTYPE,          3, "Deep Battery Calibration" },
253
 
};
254
 
 
255
 
 
256
 
/* a type for the supported variables */
257
 
#define SEC_QUERYLIST_LEN       17
258
 
#define SEC_MAXFIELDS           16
259
 
 
260
 
struct sec_querylist_t {
261
 
    char *command;      /* sec command */
262
 
    int  varnum[SEC_MAXFIELDS]; /* sec variable number for each field */
263
 
} sec_querylist[SEC_QUERYLIST_LEN];
264
 
 
265
 
#define sqv(a,b) sec_querylist[a].varnum[b]