ComIntCmd_SerialBridge/Src/ComIntCmd/SerialBridgeWrite.c

30 lines
835 B
C

//
// Created by xemon on 09.11.22.
//
#include "ComIntCmd/SerialBridge.h"
uint8_t XfcProtMethod_SerialBridgeWrite(tXfcArray *request, tXfcArray *response, tSerialBridges *env) {
char name[64];
uint8_t nameLength;
XFC_CMD_RX_GET_RAW(nameLength);
XFC_CMD_RX_GET_ARR(name, nameLength);
name[nameLength] = '\0';
tSerialBridge *bridge = SerialBridges_GetForName(env, name, nameLength);
if (bridge) {
uint16_t bytesInRequest = XfcArrayGetDataSize(request);
uint16_t bytesWriten = SerialPortTransmit(
bridge->serialIo, request->data + request->begin, bytesInRequest, 100
);
if (bytesWriten == bytesInRequest) {
return XFC_TRANSPORT_PROTOCOL_RESPONSE_RESULT_OK;
}
}
return XFC_TRANSPORT_PROTOCOL_RESPONSE_RESULT_EXECUTION_ERROR;
}