This chapter describes the existing plugins and applications that may be used “out of the box” as building blocks for embedded systems. One can find modules or subsystems, easing the construction of an embedded system.

1.1.4. Services Diagram

This diagram shows:

  1. System Management services that handle core functionality (supervisor, powermanagement, rtctime, monitoring, scheduler)

  2. User Interface services for administration (adminweb)

  3. Connectivity services (bleadmin, wifi)

  4. Display & Content services (specifically for e-tablone related features) (eink, gallery)

  5. Data Management service (transfert)

The arrows indicate likely dependencies between services, though the actual dependencies might be more complex based on the specific implementation. I’ve made some assumptions about the relationships based on typical architectural patterns, but you may want to adjust these based on your actual system architecture.

        graph TB

    %% Admin Embedded
    subgraph Core plateform
        adminembedded[Admin Embedded 1.0]
    end

    %% System Management
    subgraph System Management
        supervisor[Supervisor 1.0]
        powermgmt[Power Management 1.0]
        rtctime[RTC Time Services 1.0]
        monitoring[Monitoring 1.0]
        scheduler[Scheduler 1.0]
    end

    subgraph User Interface
        adminweb[Admin Web 1.0]
    end

    subgraph Display & Content
        eink[EInk Service 1.0]
        gallery[Gallery 1.0]
    end

    subgraph Connectivity
        wifi[Wifi 1.0]
        bleadmin[BLE Admin 1.0]
    end

    subgraph Data Management
        transfert[Transfert Service 1.0]
    end

    %% Core dependencies
    supervisor --> monitoring
    supervisor --> powermgmt
    supervisor --> rtctime
    
    %% UI dependencies
    adminweb --> adminembedded
    
    %% Display dependencies
    eink --> gallery
    gallery --> transfert

    %% monitoring dependencies
    monitoring --> transfert
    supervisor --> monitoring

    adminembedded --> supervisor
    supervisor --> powermgmt
    supervisor --> wifi
    

1.1.5. Standard Services Blueprint and Responsibilities

In the world of IoT and Edge devices, a well-organized service architecture is crucial for reliable operation. RustiQ IOT’s service organization has been carefully designed and tested across multiple use cases, proving its effectiveness in real-world IoT applications. Each service plays a vital role in the system’s operation, working together to create a robust and maintainable solution.

1.1.5.1. Supervisor

At the core of every RustiQ IOT device, the Supervisor service takes charge of the device’s main logic. Think of it as the conductor of an orchestra, ensuring that all other services work together in harmony. It’s responsible for making high-level decisions about the device’s operation and coordinating the activities of other services, defining the overall behavior and flow of the device’s operations.

1.1.5.2. Wifi

Keeping the device connected to the world is the responsibility of the WiFi service. This service goes beyond simple connection management - it handles both the establishment of wireless connections and the ongoing configuration of the network settings. Whether it’s connecting to a new network or maintaining a stable connection, the WiFi service ensures that the device stays reliably connected to the internet, adapting to changing network conditions and maintaining optimal connectivity.

1.1.5.3. Monitoring

The Monitoring service acts as the device’s eyes and ears to the cloud. It’s a two-way communication channel that not only receives configuration updates and commands from the cloud but also keeps the cloud informed about the device’s status. This service is crucial for remote management, allowing operators to both monitor the device’s health and send new instructions when needed. It continuously collects status information, generates comprehensive reports, and ensures that all critical information reaches the cloud for analysis and action.

1.1.5.4. Power Management

Power efficiency is critical for IoT devices, and that’s where the Power Management service comes in. This service takes a comprehensive approach to power management, handling everything from monitoring power consumption to managing battery levels and charging processes. It ensures that the device operates efficiently while maintaining reliable power availability, carefully balancing performance needs with power conservation to maximize device uptime and reliability.

1.1.5.5. RTC Time

Time is of the essence in IoT applications, and the RTC Time service ensures that the device maintains accurate timing. This service manages both the real-time clock operation and its configuration, providing a reliable time reference for all other services that need precise timing information. It maintains synchronization across the device, ensuring that all time-dependent operations are executed with precision and reliability.

1.1.5.6. Scheduler

Task scheduling is handled by the Scheduler service, which provides a flexible framework for managing both system and application-level tasks. This service not only manages the scheduling of operations but also handles the configuration of these schedules, allowing for dynamic adjustment of device behavior based on changing requirements. It ensures that all time-sensitive operations are executed at the right moment, maintaining the device’s operational rhythm and efficiency.

1.1.5.7. Transfert

Last but not least, the Transfer service serves as the secure communication backbone of the system. It provides a unified and secure way to exchange data with the cloud, handling everything from status updates to command reception. This service is responsible for managing the transfer of data in both directions - from the device to the cloud and vice versa - while ensuring that all communications are properly secured. It integrates robust security measures for exchanging bundles, data, status updates, and commands, making it the trusted channel for all cloud communications.

Together, these services form a comprehensive framework that has been proven effective in various IoT applications. Each service has a clear responsibility and well-defined scope, making the system both maintainable and reliable. This architecture allows for easy extension and modification while maintaining the stability needed for IoT applications.

1.1.5.8. Network Manager

The Network Manager service is responsible for handling the global network setup and configuration of the device. While the WiFi service focuses on wireless connectivity, the Network Manager takes a broader view of the device’s network infrastructure. It works in conjunction with other services to ensure reliable and secure network operation.

Key responsibilities include:

  • Managing firewall rules and network security policies

  • Configuring and monitoring network routes

  • Verifying internet connectivity and network health

  • Coordinating with the WiFi service for network interface management

  • Supporting the Transfer service by ensuring proper network conditions

  • Providing network status information to the Monitoring service

The Network Manager acts as a bridge between the device’s network hardware and the application services. It ensures that all network-dependent services (like Transfer, Monitoring, and WiFi) have the proper network environment to operate effectively. This service is particularly important for maintaining secure and reliable communication in IoT applications, where network stability is crucial for device operation.

1.1.6. Available services

The table below shows the existing modules used in some systems.

File

Title

Core Service

Application
Specific

admin_web-1.0

Admin Web 1.0

X

bleadmin-1.0

Ble Admin 1.0

X

eink-1.0

EInk service - 1.0 (e-tablone related)

gallery-1.0

Gallery 1.0 (e-tablone related)

X

monitoring-1.0

Monitoring service - 1.0

X

powermanagement-1.0

Powermanagement 1.0 service

X (battery)

rtctimeservices-1.0

RtcTimeService 1.0 service

scheduler-1.0

Scheduler service-1.0

X

supervisor-1.0

Supervisor 1.0 service implementation

X (main logic)

transfert-1.0

Transfert service 1.0 service implementation

X

wifi-1.0

Wifi connexion manager

X (WPA)

networkmanager-1.0

Network manager

X (iptable, checks)