Загрузка данных


#include "srtm_dispatcher.h"
#include "srtm_peercore.h"
#include "srtm_message.h"

// Определяем ID нашего сервиса и команд (должны строго совпадать с Linux)
#define SRTM_SERVICE_CAMERA_ID   (0x7F) 
#define SRTM_CMD_CAMERA_ON       (0x01)
#define SRTM_CMD_CAMERA_OFF      (0x02)

// Функция отправки команды на А55
void APP_SRTM_SendCameraCommand(srtm_peercore_t peer, uint8_t command_id)
{
    if (!peer || !SRTM_PeerCore_IsConnected(peer)) {
        printf("SRTM: Ошибка, связь с ядром А55 (Linux) не установлена!\r\n");
        return;
    }

    // 1. Создаем новый пакет запроса (Request)
    // Параметры: тип сообщения, ID сервиса, ID команды, размер payload
    srtm_packet_t request = SRTM_Comm_CreateRequest(SRTM_PACKET_TYPE_REQUEST, 
                                                    SRTM_SERVICE_CAMERA_ID, 
                                                    command_id, 
                                                    0); 

    if (request == NULL) {
        printf("SRTM: Не удалось выделить память под пакет\r\n");
        return;
    }

    // (Опционально) Если нужно передать параметры (например, номер камеры), заполняем Payload:
    // uint8_t *payload = SRTM_Comm_GetPayload(request);
    // payload[0] = camera_index;

    // 2. Отправляем сообщение асинхронно в сторону Linux
    srtm_status_t status = SRTM_PeerCore_SendMessage(peer, request);
    
    if (status == SRTM_Status_Success) {
        printf("SRTM: Команда %d успешно отправлена на А55 (Linux)\r\n", command_id);
    } else {
        printf("SRTM: Ошибка отправки пакета: %d\r\n", status);
    }
}