1#include "core/globals.h"
2#include "sensor/sensor_loader.h"
3#include "sensor/sensor_utils.h"
8static void show_single_sensor_info(
const char *mode,
const char *plugin_path) {
9 printf(
"\n========================================\n");
10 printf(
" SINGLE SENSOR MODE (Legacy)\n");
11 printf(
"========================================\n");
12 printf(
" Sensor mode: %s\n", mode);
13 printf(
" Plugins enabled: %s\n", sensor_plugins_enabled ?
"yes" :
"no");
14 printf(
" Plugin path: %s\n", (plugin_path && plugin_path[0]) ? plugin_path :
"(not set)");
16 if (!sensor_plugins_enabled || !plugin_path || !plugin_path[0]) {
17 printf(
"\n Status: Using builtin mock generator\n");
22 if (sensor_module_load(plugin_path, &module) != 0) {
23 printf(
"\n Status: FAILED to load plugin\n");
27 printf(
"\n Plugin Information:\n");
28 printf(
" -------------------\n");
29 printf(
" Name: %s\n", module.plugin->name ? module.plugin->name :
"N/A");
30 printf(
" Version: %s\n", module.plugin->plugin_version ? module.plugin->plugin_version :
"N/A");
31 printf(
" API Version: %d\n", module.plugin->api_version);
32 printf(
" Sensor ID: %d\n", module.plugin->sensor_id);
33 printf(
" Description: %s\n", module.plugin->description ? module.plugin->description :
"N/A");
34 printf(
" Status: Loaded successfully\n");
36 sensor_module_unload(&module);
39static void show_multi_sensor_info(
void) {
40 printf(
"\n========================================\n");
41 printf(
" MULTI-SENSOR MODE\n");
42 printf(
"========================================\n");
43 printf(
" Total sensors configured: %d (max: %d)\n", active_sensor_count, MAX_SENSORS);
44 printf(
" Plugins enabled globally: %s\n", sensor_plugins_enabled ?
"yes" :
"no");
46 if (active_sensor_count == 0) {
47 printf(
"\n No sensors configured. Use option 12 (Auto-detect) or 13 (Configure multi-sensor).\n");
51 printf(
"\n Configured Sensors:\n");
52 printf(
" ===================\n\n");
54 for (
int i = 0; i < active_sensor_count; i++) {
58 printf(
" [%d] Sensor: %s\n", i + 1, config->
mode);
59 printf(
" Status: %s\n", config->
enabled ?
"ENABLED" :
"DISABLED");
60 printf(
" Plugin: %s\n", plugin_path ? plugin_path :
"(default path)");
62 if (sensor_plugins_enabled && plugin_path && plugin_path[0]) {
64 if (sensor_module_load(plugin_path, &module) == 0) {
65 printf(
" Name: %s\n", module.plugin->name ? module.plugin->name :
"N/A");
66 printf(
" Version: %s\n", module.plugin->plugin_version ? module.plugin->plugin_version :
"N/A");
67 printf(
" API Ver: %d\n", module.plugin->api_version);
68 printf(
" Sensor ID: %d\n", module.plugin->sensor_id);
69 printf(
" Load: OK\n");
70 sensor_module_unload(&module);
72 printf(
" Load: FAILED\n");
75 printf(
" Load: SKIPPED (plugins disabled)\n");
78 if (i < active_sensor_count - 1) {
83 printf(
"\n========================================\n");
84 printf(
" Active for data collection: %d sensor(s)\n", active_sensor_count);
85 printf(
"========================================\n");
88void show_sensor_runtime_info(
void) {
89 if (active_sensor_count > 0) {
90 show_multi_sensor_info();
92 const char *mode = sensor_mode[0] ? sensor_mode :
"mock";
93 const char *plugin_path = sensor_plugin_path[0] ? sensor_plugin_path : resolve_default_plugin_path(mode);
94 show_single_sensor_info(mode, plugin_path);
Configuration for one sensor slot in multi-sensor mode.
char mode[32]
Sensor mode identifier, e.g.
char plugin_path[256]
Path to the plugin library; empty string means use the default resolved by resolve_default_plugin_pat...
int enabled
Non-zero if this sensor slot is active for data collection.
A dynamically loaded sensor plugin and its OS-level handle.