Skip to content

Commit 7e4c027

Browse files
committed
sys/id: Add optional id/serial_mfg field for storing manufacturer serial numbers
1 parent 220ddec commit 7e4c027

File tree

3 files changed

+30
-0
lines changed

3 files changed

+30
-0
lines changed

sys/id/include/id/id.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,14 @@ extern "C" {
3232
extern char id_serial[];
3333
#endif
3434

35+
#if MYNEWT_VAL(ID_SERIAL_MFG_PRESENT)
36+
/*
37+
* Maximum expected serial_mfg number string length.
38+
*/
39+
#define ID_SERIAL_MFG_MAX_LEN MYNEWT_VAL(ID_SERIAL_MFG_MAX_LEN)
40+
extern char id_serial_mfg[];
41+
#endif
42+
3543
#if MYNEWT_VAL(ID_MANUFACTURER_LOCAL)
3644
/*
3745
* Maximum expected manufacturer string length.

sys/id/src/id.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ const char *id_app_str = "";
5151
#if MYNEWT_VAL(ID_SERIAL_PRESENT)
5252
char id_serial[ID_SERIAL_MAX_LEN];
5353
#endif
54+
#if MYNEWT_VAL(ID_SERIAL_MFG_PRESENT)
55+
char id_serial_mfg[ID_SERIAL_MFG_MAX_LEN];
56+
#endif
5457
#if MYNEWT_VAL(ID_MANUFACTURER_LOCAL)
5558
char id_manufacturer[ID_MANUFACTURER_MAX_LEN];
5659
#endif
@@ -88,6 +91,10 @@ id_conf_get(int argc, char **argv, char *val, int val_len_max)
8891
} else if (!strcmp(argv[0], "serial")) {
8992
return (char *)id_serial;
9093
#endif
94+
#if MYNEWT_VAL(ID_SERIAL_MFG_PRESENT)
95+
} else if (!strcmp(argv[0], "serial_mfg")) {
96+
return (char *)id_serial_mfg;
97+
#endif
9198
#if MYNEWT_VAL(ID_MANUFACTURER_PRESENT)
9299
} else if (!strcmp(argv[0], "mfger")) {
93100
return (char *)id_manufacturer;
@@ -116,6 +123,11 @@ id_conf_set(int argc, char **argv, char *val)
116123
return CONF_VALUE_SET(val, CONF_STRING, id_serial);
117124
}
118125
#endif
126+
#if MYNEWT_VAL(ID_SERIAL_MFG_PRESENT)
127+
if (!strcmp(argv[0], "serial_mfg")) {
128+
return CONF_VALUE_SET(val, CONF_STRING, id_serial_mfg);
129+
}
130+
#endif
119131
#if MYNEWT_VAL(ID_MANUFACTURER_LOCAL)
120132
if (!strcmp(argv[0], "mfger")) {
121133
return CONF_VALUE_SET(val, CONF_STRING, id_manufacturer);
@@ -154,6 +166,9 @@ id_conf_export(void (*export_func)(char *name, char *val),
154166
#if MYNEWT_VAL(ID_SERIAL_PRESENT)
155167
export_func("id/serial", id_serial);
156168
#endif /* ID_SERIAL_PRESENT */
169+
#if MYNEWT_VAL(ID_SERIAL_MFG_PRESENT)
170+
export_func("id/serial_mfg", id_serial_mfg);
171+
#endif /* ID_SERIAL_MFG_PRESENT */
157172
#if MYNEWT_VAL(ID_MANUFACTURER_PRESENT)
158173
#if MYNEWT_VAL(ID_MANUFACTURER_LOCAL)
159174
export_func("id/mfger", id_manufacturer);

sys/id/syscfg.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,13 @@ syscfg.defs:
2424
description: Maximum length of id/serial value
2525
value: 64
2626

27+
ID_SERIAL_MFG_PRESENT:
28+
description: 'Device manufacturing serial number exported as sys/id/serial_mfg.'
29+
value: 0
30+
ID_SERIAL_MFG_MAX_LEN:
31+
description: Maximum length of id/serial_mfg value
32+
value: 32
33+
2734
ID_MANUFACTURER_PRESENT:
2835
description: 'Device manufacturer string exported as sys/id/mfger.'
2936
value: 0

0 commit comments

Comments
 (0)