@@ -33,10 +33,23 @@ const char AdafruitIO_Board::_type[] = "esp8266";
3333const char AdafruitIO_Board::_type[] = " unknown" ;
3434#endif
3535
36+ /* *************************************************************************/
37+ /* !
38+ @brief Returns a unique board identifier based on the
39+ CPU characteristics.
40+ @return Unique board identifier.
41+ */
42+ /* *************************************************************************/
3643const char *AdafruitIO_Board::type () { return AdafruitIO_Board::_type; }
3744
3845#if defined(ARDUINO_ARCH_SAMD)
3946
47+ /* ******************************************************/
48+ /* !
49+ @brief Assigns an identifier to a SAMD-based board.
50+ @return board identifier, id.
51+ */
52+ /* ******************************************************/
4053char *AdafruitIO_Board::id () {
4154 volatile uint32_t val1, val2, val3, val4;
4255 volatile uint32_t *ptr1 = (volatile uint32_t *)0x0080A00C ;
@@ -54,7 +67,13 @@ char *AdafruitIO_Board::id() {
5467}
5568
5669#elif defined(ARDUINO_ARCH_AVR)
57-
70+ /* ******************************************************/
71+ /* !
72+ @brief Assigns an identifier to an AVR-based board
73+ from boot_signature.
74+ @return board identifier, id.
75+ */
76+ /* ******************************************************/
5877char *AdafruitIO_Board::id () {
5978 for (int i = 0 ; i < 32 ; i++) {
6079 sprintf (&AdafruitIO_Board::_id[i * 2 ], " %02x" , boot_signature_byte_get (i));
@@ -64,6 +83,13 @@ char *AdafruitIO_Board::id() {
6483
6584#elif defined(ARDUINO_ARCH_ESP32)
6685
86+ /* ******************************************************/
87+ /* !
88+ @brief Assigns an identifier to an ESP32-based
89+ board from the MAC address.
90+ @return board identifier, id.
91+ */
92+ /* ******************************************************/
6793char *AdafruitIO_Board::id () {
6894 byte mac[6 ];
6995 WiFi.macAddress (mac);
@@ -75,13 +101,27 @@ char *AdafruitIO_Board::id() {
75101
76102#elif defined(ESP8266)
77103
104+ /* ******************************************************/
105+ /* !
106+ @brief Assigns an identifier to an ESP8266 from
107+ the chip identifier.
108+ @return board identifier, id.
109+ */
110+ /* ******************************************************/
78111char *AdafruitIO_Board::id () {
79112 sprintf (AdafruitIO_Board::_id, " %06x" , ESP.getChipId ());
80113 return AdafruitIO_Board::_id;
81114}
82115
83116#elif defined(ARDUINO_STM32_FEATHER)
84117
118+
119+ /* ******************************************************/
120+ /* !
121+ @brief Assigns an identifier to a STM32 Feather.
122+ @return board identifier, id.
123+ */
124+ /* ******************************************************/
85125char *AdafruitIO_Board::id () {
86126 uint32_t *p_unique_id = (uint32_t *)(0x1FFF7A10 );
87127 sprintf (AdafruitIO_Board::_id, " %08lX%08lX%08lX" , p_unique_id[2 ],
@@ -91,6 +131,12 @@ char *AdafruitIO_Board::id() {
91131
92132#else
93133
134+ /* ******************************************************/
135+ /* !
136+ @brief Identifies an unknown board type.
137+ @return "unknown"
138+ */
139+ /* ******************************************************/
94140char *AdafruitIO_Board::id () {
95141 strcpy (AdafruitIO_Board::_id, " unknown" );
96142 return AdafruitIO_Board::_id;
0 commit comments