Explorar o código

[add][examples][var_export]add sample code for the var_export component

Signed-off-by: WillianChan <chentingwei@rt-thread.com>
WillianChan %!s(int64=3) %!d(string=hai) anos
pai
achega
f7657a94b5
Modificáronse 1 ficheiros con 65 adicións e 0 borrados
  1. 65 0
      examples/var_export/var_export_example.c

+ 65 - 0
examples/var_export/var_export_example.c

@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2021-09-02     WillianChan  add var_export example code
+ */
+
+#include <var_export.h>
+
+/* use VAR_EXPOR() to export 10 pieces of data into sections */
+VAR_EXPORT(module0, identi0, 0);
+VAR_EXPORT(module1, identi1, 1);
+VAR_EXPORT(module2, identi2, 2);
+VAR_EXPORT(module3, identi3, 3);
+VAR_EXPORT(module4, identi4, 4);
+VAR_EXPORT(module5, identi5, 5);
+VAR_EXPORT(module6, identi6, 6);
+VAR_EXPORT(module7, identi7, 7);
+VAR_EXPORT(module8, identi8, 8);
+VAR_EXPORT(module9, identi9, 9);
+
+void found_by_module(void)
+{
+    ve_iterator_t iter;
+    const ve_exporter_t* exporter;
+    ve_module_t module;
+    rt_base_t value;
+
+    /* query all exporters with the same name as module1 */
+    if (!ve_module_init(&module, "module1"))
+        /* initialize the iterator */
+        ve_iter_init(&module, &iter);
+    else
+        return;
+
+    while (1)
+    {
+        /* start iterating */
+        exporter = ve_iter_next(&iter);
+        if (exporter == RT_NULL)
+            break;
+        else
+        {
+            /* checks whether the value exists */
+            if (ve_value_exist(&module, "identi1") == RT_TRUE)
+            {
+                value = ve_value_get(&module, "identi1");
+                rt_kprintf("[ve_example] value = %dn", value);
+                return;
+            }
+            else
+            {
+                rt_kprintf("[ve_example] value not exist.\n");
+                return;
+            }
+        }
+    }
+}
+#ifdef RT_USING_FINSH
+#include <finsh.h>
+MSH_CMD_EXPORT(found_by_module, found by module);
+#endif /* RT_USING_FINSH */