---
title: Solution Overview
summary: Overview of panel development solution capabilities, including device function point management, general category capabilities (Basic Library and Panel SDK), and vertical category capabilities (capability sets and module sets), helping developers efficiently implement device management and business requirements.
questions:
  - What core capabilities does the panel development solution provide?
  - What is the difference between general category capabilities and vertical category capabilities?
  - What development tools does the Panel SDK include?
  - How do I use device function point management for device control?
  - What are the capability sets and module sets in vertical category capabilities?
  - What device development modes does the panel development solution support?
---

# Solution Overview

The panel development solution provides developers with a series of powerful and flexible capabilities, aiming to simplify the development process of smart device control panels. It combines **general category capabilities** and **vertical category capabilities** to help developers efficiently implement device management and business requirements.

## General Category Capabilities

General category capabilities are applicable to all smart device development scenarios. They improve the development efficiency of panel miniapps through standardized interaction and refined development models.

### Device Function Point Management

Function points (DPs) are device status or control commands (such as switch, temperature, etc.). The panel SDK provides DP reporting, monitoring, and issuing control, supporting both **conventional mode** and **SDM (Smart Device Model) mode**.

- **Function Point Reporting and Monitoring**
  - **Conventional Mode**: Use `onDpDataChange` to monitor DP changes and get device status in real-time.
    ```js
    import { onDpDataChange } from '@ray-js/ray';
    onDpDataChange(res => console.log(res));
    ```
  - **SDM Mode (Recommended)**: Use `useProps` or `useStructuredProps` to monitor changes based on DP configuration.
    ```jsx
    import { useProps } from '@ray-js/panel-sdk';
    const switch_led = useProps(props => props.switch_led);
    ```

- **Function Point Issuing Control**
  - **Conventional Mode**: Use `publishDps` to issue DP values and control device behavior.
    ```js
    import { publishDps } from '@ray-js/ray';
    publishDps({
      deviceId: 'vdevoxxxxxxxxxx',
      dps: { 1: false },
      success: res => console.log(res),
      fail: error => console.log(error),
    });
    ```
  - **SDM Mode (Recommended)**: Use `useActions` or `useStructuredActions` to issue DP values.
    ```jsx
    import { useActions } from '@ray-js/panel-sdk';
    const actions = useActions();
    actions.switch_led.toggle();
    ```

### Capability Composition

The two modes above are backed by two mechanisms that can be combined as needed:

- **Built-in Capabilities of Basic Library**: Panel environment initialization, connectivity and offline logic, OTA upgrade, and other standard interaction processes, ready to use out of the box.
- **Panel SDK Development Kit**:
  - **Smart Device Model (SDM)**: An OOP-based programming model that simplifies device state management and control logic.
  - **Smart Group Model (SGM)**: Provides abstract encapsulation and batch control management capabilities for smart groups.
  - **Multi-Device Management**: Freely manage multiple independent device instances within a single miniapp, supporting batch status reading and command issuing.
  - **Multi-language**: An internationalization solution tailored for panel business, supporting asynchronous cloud entry synchronization and local fallback.
  - **Function Point Parsing / Hooks / Utility Methods**: Provides protocol parsing tools, common React Hooks, and pure utility functions.

[View General Category Capabilities →](/en/miniapp/solution-panel/ability/common)

## Vertical Category Capabilities

Vertical category capabilities are open for specific device categories and have been integrated into the "AI Application Development Solution". They cover lighting, camera, robot vacuum, door lock, and other categories, divided into two modules:

- **Capability Sets**: Aggregate technical resources for vertical categories (communication protocols, category APIs, components, etc.) to help developers quickly understand the supported feature boundaries.
- **Module Sets**: Provide business development guidance to help achieve specific scenario requirements (such as dimming logic for smart lights, map drawing logic for robot vacuums).

[View Vertical Category Capabilities →](/en/miniapp/solution-panel/ability/special)
