30 lines
834 B
C
30 lines
834 B
C
//
|
|
// Created by CFIF 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;
|
|
}
|