summaryrefslogtreecommitdiff
path: root/firmware/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/src/main.c')
-rw-r--r--firmware/src/main.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/firmware/src/main.c b/firmware/src/main.c
index 7a1076c..e1c85c6 100644
--- a/firmware/src/main.c
+++ b/firmware/src/main.c
@@ -1,6 +1,38 @@
+#include <stdio.h>
+
#include <zephyr/kernel.h>
+#include <zephyr/shell/shell.h>
+#include <zephyr/shell/shell_backend.h>
+
+#include "uid64.h"
+
+static uint64_t uid = 0;
+static char uid_str[UID64_STR_LEN];
+
+#define MAX_PROMPT_SIZE 80
+char prompt[MAX_PROMPT_SIZE];
+
+void init_uid64(void) {
+ uid = uid64_get();
+ uid64_to_string(uid, uid_str);
+}
+
+void init_shell_prompt(void) {
+ if (uid64_available()) {
+ snprintf(prompt, MAX_PROMPT_SIZE, "[iot-core %s] ", uid_str);
+ } else {
+ strncpy(prompt, "[iot-core without MAC] ", MAX_PROMPT_SIZE);
+ }
+ for (int i = 0; i < shell_backend_count_get(); i++) {
+ const struct shell *sh = shell_backend_get(i);
+ (void) shell_prompt_change(sh, (const char *)prompt);
+ }
+}
int main(void)
{
+ init_uid64();
+ init_shell_prompt();
+
return 0;
}