11//! @file
22
3+ #include <stdio.h>
34#include <string.h>
45#include <zephyr/kernel.h>
56#include <zephyr/logging/log.h>
7+ #include <zephyr/net/net_if.h>
8+ #include <zephyr/net/net_mgmt.h>
9+ #include <zephyr/net/wifi_mgmt.h>
610
711#include "app_version.h"
812#include "memfault/components.h"
@@ -15,14 +19,30 @@ LOG_MODULE_REGISTER(mflt_app, LOG_LEVEL_DBG);
1519// Memfault SDK release
1620extern const char * memfault_zephyr_get_device_id (void );
1721
22+ static const char * prv_get_software_version (void ) {
23+ static char s_software_version [64 ];
24+
25+ // CI builds will often set git sha = "". in that case, omit that portion of
26+ // the software version string
27+ if (ZEPHYR_MEMFAULT_EXAMPLE_GIT_SHA1 [0 ] == '\0' ) {
28+ return CONFIG_MEMFAULT_BUILTIN_DEVICE_INFO_SOFTWARE_VERSION ;
29+ }
30+
31+ // Otherwise, append it to demonstrate how to include git sha in the software
32+ // version string
33+ snprintf (s_software_version , sizeof (s_software_version ), "%s+%s" ,
34+ CONFIG_MEMFAULT_BUILTIN_DEVICE_INFO_SOFTWARE_VERSION ,
35+ ZEPHYR_MEMFAULT_EXAMPLE_GIT_SHA1 );
36+ return s_software_version ;
37+ }
38+
1839void memfault_platform_get_device_info (sMemfaultDeviceInfo * info ) {
1940 // override the software version only to demonstrate inserting the GIT SHA
2041 * info = (sMemfaultDeviceInfo ){
21- .device_serial = memfault_zephyr_get_device_id (),
22- .software_type = CONFIG_MEMFAULT_BUILTIN_DEVICE_INFO_SOFTWARE_TYPE ,
23- .software_version =
24- CONFIG_MEMFAULT_BUILTIN_DEVICE_INFO_SOFTWARE_VERSION "+" ZEPHYR_MEMFAULT_EXAMPLE_GIT_SHA1 ,
25- .hardware_version = CONFIG_MEMFAULT_BUILTIN_DEVICE_INFO_HARDWARE_VERSION ,
42+ .device_serial = memfault_zephyr_get_device_id (),
43+ .software_type = CONFIG_MEMFAULT_BUILTIN_DEVICE_INFO_SOFTWARE_TYPE ,
44+ .software_version = prv_get_software_version (),
45+ .hardware_version = CONFIG_MEMFAULT_BUILTIN_DEVICE_INFO_HARDWARE_VERSION ,
2646 };
2747}
2848
@@ -33,6 +53,15 @@ int main(void) {
3353
3454 memfault_device_info_dump ();
3555 memfault_zephyr_port_install_root_certs ();
56+ // Initiate auto connection on the wifi interface
57+ struct net_if * iface = net_if_get_default ();
58+ int rc = net_mgmt (NET_REQUEST_WIFI_CONNECT_STORED , iface , NULL , 0 );
59+
60+ if (rc ) {
61+ printk (
62+ "an error occurred when trying to auto-connect to a network. err: %d" ,
63+ rc );
64+ }
3665
3766 return 0 ;
3867}
0 commit comments