#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);
}
}