|
@@ -8,41 +8,17 @@
|
|
#include "shellmatta_crc.h"
|
|
#include "shellmatta_crc.h"
|
|
#include <string.h>
|
|
#include <string.h>
|
|
|
|
|
|
-/* init global variables */
|
|
|
|
-uint8_t protocolVersion = 0u;
|
|
|
|
-shellmatta_transport_packet_t packetType = PACKET_DATA;
|
|
|
|
-uint32_t payloadLength = 0u;
|
|
|
|
-uint8_t source = 0u;
|
|
|
|
-uint8_t destination = 0u;
|
|
|
|
-uint32_t crc32 = 0u;
|
|
|
|
-uint8_t payloadCounter = 0u;
|
|
|
|
-uint8_t crcCounter = 0u;
|
|
|
|
-uint8_t packetSequenceCounter_h2s = 0u;
|
|
|
|
-uint8_t packetSequenceCounter_s2h = 0u;
|
|
|
|
-shellmatta_transport_layer_t transportLayerInst = {
|
|
|
|
- 0u,
|
|
|
|
- 0u,
|
|
|
|
- STATE_GET_SOH,
|
|
|
|
- false,
|
|
|
|
- false,
|
|
|
|
- false,
|
|
|
|
- NULL
|
|
|
|
-};
|
|
|
|
-char payloadBuffer[SHELLMATTA_PAYLOAD_MAXLENGTH];
|
|
|
|
|
|
+
|
|
|
|
+static shellmatta_transport_layer_t *transportLayerInt;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @brief Initializes the transportLayerInst
|
|
* @brief Initializes the transportLayerInst
|
|
* @return errorcode #SHELLMATTA_OK
|
|
* @return errorcode #SHELLMATTA_OK
|
|
*/
|
|
*/
|
|
-shellmatta_retCode_t shellmatta_init_transport_inst(void)
|
|
|
|
|
|
+shellmatta_retCode_t shellmatta_init_transport_inst(shellmatta_transport_layer_t *transportLayer)
|
|
{
|
|
{
|
|
- transportLayerInst.h2s_sequenceCnt = 0u;
|
|
|
|
- transportLayerInst.s2h_sequenceCnt = 0u;
|
|
|
|
- transportLayerInst.state = STATE_GET_SOH;
|
|
|
|
- transportLayerInst.mandatory = false;
|
|
|
|
- transportLayerInst.active = false;
|
|
|
|
- transportLayerInst.continueStep = false;
|
|
|
|
- memset(payloadBuffer, 0u, SHELLMATTA_PAYLOAD_MAXLENGTH);
|
|
|
|
|
|
+ transportLayerInt = transportLayer;
|
|
|
|
+ memset(transportLayer, 0u, sizeof(shellmatta_transport_layer_t));
|
|
|
|
|
|
return SHELLMATTA_OK;
|
|
return SHELLMATTA_OK;
|
|
}
|
|
}
|
|
@@ -51,19 +27,14 @@ shellmatta_retCode_t shellmatta_init_transport_inst(void)
|
|
* @brief Resets all values of tranportLayerInst except for sequence counters
|
|
* @brief Resets all values of tranportLayerInst except for sequence counters
|
|
* @return errorcode #SHELLMATTA_OK
|
|
* @return errorcode #SHELLMATTA_OK
|
|
*/
|
|
*/
|
|
-shellmatta_retCode_t shellmatta_reset_transport(void)
|
|
|
|
|
|
+shellmatta_retCode_t shellmatta_reset_transport(shellmatta_transport_layer_t *transportLayer)
|
|
{
|
|
{
|
|
- transportLayerInst.state = STATE_GET_SOH;
|
|
|
|
- protocolVersion = 0u;
|
|
|
|
- packetType = PACKET_DATA;
|
|
|
|
- payloadLength = 0u;
|
|
|
|
- source = 0u;
|
|
|
|
- destination = 0u;
|
|
|
|
- crc32 = 0u;
|
|
|
|
- payloadCounter = 0u;
|
|
|
|
- crcCounter = 0u;
|
|
|
|
- transportLayerInst.active = false;
|
|
|
|
- memset(payloadBuffer, 0u, SHELLMATTA_PAYLOAD_MAXLENGTH);
|
|
|
|
|
|
+ uint8_t h2s_sequenceCnt = transportLayer->h2s_sequenceCnt;
|
|
|
|
+ uint8_t s2h_sequenceCnt = transportLayer->s2h_sequenceCnt;
|
|
|
|
+ memset(transportLayer, 0u, sizeof(shellmatta_transport_layer_t));
|
|
|
|
+
|
|
|
|
+ transportLayer->h2s_sequenceCnt = h2s_sequenceCnt;
|
|
|
|
+ transportLayer->s2h_sequenceCnt = s2h_sequenceCnt;
|
|
|
|
|
|
return SHELLMATTA_OK;
|
|
return SHELLMATTA_OK;
|
|
}
|
|
}
|
|
@@ -74,25 +45,26 @@ shellmatta_retCode_t shellmatta_reset_transport(void)
|
|
* @return errorcode #SHELLMATTA_OK\n
|
|
* @return errorcode #SHELLMATTA_OK\n
|
|
* #SHELLMATTA_ERROR in case of crc error
|
|
* #SHELLMATTA_ERROR in case of crc error
|
|
*/
|
|
*/
|
|
-shellmatta_retCode_t shellmatta_handle_transport_fsm(char *data)
|
|
|
|
|
|
+shellmatta_retCode_t shellmatta_handle_transport_fsm(shellmatta_transport_layer_t *transportLayer,
|
|
|
|
+ char *data)
|
|
{
|
|
{
|
|
shellmatta_retCode_t ret = SHELLMATTA_OK;
|
|
shellmatta_retCode_t ret = SHELLMATTA_OK;
|
|
|
|
|
|
- switch (transportLayerInst.state)
|
|
|
|
|
|
+ switch (transportLayer->state)
|
|
{
|
|
{
|
|
/* look for start of header */
|
|
/* look for start of header */
|
|
case STATE_GET_SOH:
|
|
case STATE_GET_SOH:
|
|
/* if start of header is found, continue transport layer fsm */
|
|
/* if start of header is found, continue transport layer fsm */
|
|
if (SHELLMATTA_START_OF_HEADER == *data)
|
|
if (SHELLMATTA_START_OF_HEADER == *data)
|
|
{
|
|
{
|
|
- transportLayerInst.state = STATE_GET_PROTOCOL_VERSION;
|
|
|
|
- transportLayerInst.active = true;
|
|
|
|
|
|
+ transportLayer->state = STATE_GET_PROTOCOL_VERSION;
|
|
|
|
+ transportLayer->active = true;
|
|
}
|
|
}
|
|
else if (0x00 != *data)
|
|
else if (0x00 != *data)
|
|
{
|
|
{
|
|
/* if SOH is not found, handle data as manual input */
|
|
/* if SOH is not found, handle data as manual input */
|
|
- transportLayerInst.state = STATE_MANUAL_INPUT;
|
|
|
|
- transportLayerInst.active = false;
|
|
|
|
|
|
+ transportLayer->state = STATE_MANUAL_INPUT;
|
|
|
|
+ transportLayer->active = false;
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
|
|
@@ -104,102 +76,102 @@ shellmatta_retCode_t shellmatta_handle_transport_fsm(char *data)
|
|
/* check protocol version */
|
|
/* check protocol version */
|
|
if (PROTOCOL_VERSION == *data)
|
|
if (PROTOCOL_VERSION == *data)
|
|
{
|
|
{
|
|
- transportLayerInst.state = STATE_GET_PACKET_TYPE;
|
|
|
|
|
|
+ transportLayer->state = STATE_GET_PACKET_TYPE;
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
/* reset fsm in case of wrong protocol version */
|
|
/* reset fsm in case of wrong protocol version */
|
|
- transportLayerInst.state = STATE_GET_SOH;
|
|
|
|
- transportLayerInst.active = false;
|
|
|
|
|
|
+ transportLayer->state = STATE_GET_SOH;
|
|
|
|
+ transportLayer->active = false;
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
|
|
/* read packet type */
|
|
/* read packet type */
|
|
case STATE_GET_PACKET_TYPE:
|
|
case STATE_GET_PACKET_TYPE:
|
|
- transportLayerInst.state = STATE_GET_PAYLOAD_LENGTH;
|
|
|
|
|
|
+ transportLayer->state = STATE_GET_PAYLOAD_LENGTH;
|
|
break;
|
|
break;
|
|
|
|
|
|
/* look for length of payload */
|
|
/* look for length of payload */
|
|
case STATE_GET_PAYLOAD_LENGTH:
|
|
case STATE_GET_PAYLOAD_LENGTH:
|
|
- transportLayerInst.state = STATE_GET_SOURCE;
|
|
|
|
|
|
+ transportLayer->state = STATE_GET_SOURCE;
|
|
break;
|
|
break;
|
|
|
|
|
|
/* look for source */
|
|
/* look for source */
|
|
case STATE_GET_SOURCE:
|
|
case STATE_GET_SOURCE:
|
|
- transportLayerInst.state = STATE_GET_DESTINATION;
|
|
|
|
|
|
+ transportLayer->state = STATE_GET_DESTINATION;
|
|
break;
|
|
break;
|
|
|
|
|
|
/* look for destination */
|
|
/* look for destination */
|
|
case STATE_GET_DESTINATION:
|
|
case STATE_GET_DESTINATION:
|
|
- transportLayerInst.state = STATE_GET_H2S_SEQUENCE_CNT;
|
|
|
|
|
|
+ transportLayer->state = STATE_GET_H2S_SEQUENCE_CNT;
|
|
break;
|
|
break;
|
|
|
|
|
|
/* look for h2s sequence counter*/
|
|
/* look for h2s sequence counter*/
|
|
case STATE_GET_H2S_SEQUENCE_CNT:
|
|
case STATE_GET_H2S_SEQUENCE_CNT:
|
|
- transportLayerInst.state = STATE_GET_S2H_SEQUENCE_CNT;
|
|
|
|
|
|
+ transportLayer->state = STATE_GET_S2H_SEQUENCE_CNT;
|
|
break;
|
|
break;
|
|
|
|
|
|
/* look for s2h sequence counter */
|
|
/* look for s2h sequence counter */
|
|
case STATE_GET_S2H_SEQUENCE_CNT:
|
|
case STATE_GET_S2H_SEQUENCE_CNT:
|
|
- if (packetType == PACKET_SEQ_CNT_REQUEST)
|
|
|
|
|
|
+ if (transportLayer->packetType == PACKET_SEQ_CNT_REQUEST)
|
|
{
|
|
{
|
|
- transportLayerInst.state = STATE_GET_CRC;
|
|
|
|
|
|
+ transportLayer->state = STATE_GET_CRC;
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- transportLayerInst.state = STATE_GET_PAYLOAD;
|
|
|
|
|
|
+ transportLayer->state = STATE_GET_PAYLOAD;
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
|
|
/* read payload for previously read length of payload */
|
|
/* read payload for previously read length of payload */
|
|
case STATE_GET_PAYLOAD:
|
|
case STATE_GET_PAYLOAD:
|
|
- if ( (payloadLength <= payloadCounter)
|
|
|
|
- && (true == transportLayerInst.active))
|
|
|
|
|
|
+ if ( (transportLayer->payloadLength <= transportLayer->payloadCounter)
|
|
|
|
+ && (true == transportLayer->active))
|
|
{
|
|
{
|
|
- transportLayerInst.state = STATE_GET_CRC;
|
|
|
|
|
|
+ transportLayer->state = STATE_GET_CRC;
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
|
|
/* read crc32 for four bytes */
|
|
/* read crc32 for four bytes */
|
|
case STATE_GET_CRC:
|
|
case STATE_GET_CRC:
|
|
/* if crc32 is read, start computing */
|
|
/* if crc32 is read, start computing */
|
|
- if (SHELLMATTA_LENGTH_CRC <= crcCounter)
|
|
|
|
|
|
+ if (SHELLMATTA_LENGTH_CRC <= transportLayer->crcCounter)
|
|
{
|
|
{
|
|
/* for crc computation only */
|
|
/* for crc computation only */
|
|
char crcdata[SHELLMATTA_PAYLOAD_MAXLENGTH + SHELLMATTA_HEADER_LENGTH];
|
|
char crcdata[SHELLMATTA_PAYLOAD_MAXLENGTH + SHELLMATTA_HEADER_LENGTH];
|
|
memset(crcdata, 0u, SHELLMATTA_PAYLOAD_MAXLENGTH + SHELLMATTA_HEADER_LENGTH);
|
|
memset(crcdata, 0u, SHELLMATTA_PAYLOAD_MAXLENGTH + SHELLMATTA_HEADER_LENGTH);
|
|
crcdata[SHELLMATTA_POS_SOH] = SHELLMATTA_START_OF_HEADER;
|
|
crcdata[SHELLMATTA_POS_SOH] = SHELLMATTA_START_OF_HEADER;
|
|
- crcdata[SHELLMATTA_POS_PROT_VER] = protocolVersion;
|
|
|
|
- crcdata[SHELLMATTA_POS_PACKET_TYPE] = packetType;
|
|
|
|
- crcdata[SHELLMATTA_POS_PAYLOAD_LEN] = payloadLength;
|
|
|
|
- crcdata[SHELLMATTA_POS_SRC] = source;
|
|
|
|
- crcdata[SHELLMATTA_POS_DST] = destination;
|
|
|
|
- crcdata[SHELLMATTA_POS_CNT_H2S] = packetSequenceCounter_h2s;
|
|
|
|
- crcdata[SHELLMATTA_POS_CNT_S2H] = packetSequenceCounter_s2h;
|
|
|
|
- strncat(&crcdata[SHELLMATTA_POS_PAYLOAD], payloadBuffer, payloadLength);
|
|
|
|
|
|
+ crcdata[SHELLMATTA_POS_PROT_VER] = transportLayer->protocolVersion;
|
|
|
|
+ crcdata[SHELLMATTA_POS_PACKET_TYPE] = transportLayer->packetType;
|
|
|
|
+ crcdata[SHELLMATTA_POS_PAYLOAD_LEN] = transportLayer->payloadLength;
|
|
|
|
+ crcdata[SHELLMATTA_POS_SRC] = transportLayer->source;
|
|
|
|
+ crcdata[SHELLMATTA_POS_DST] = transportLayer->destination;
|
|
|
|
+ crcdata[SHELLMATTA_POS_CNT_H2S] = transportLayer->packetSequenceCounter_h2s;
|
|
|
|
+ crcdata[SHELLMATTA_POS_CNT_S2H] = transportLayer->packetSequenceCounter_s2h;
|
|
|
|
+ strncat(&crcdata[SHELLMATTA_POS_PAYLOAD], transportLayer->payloadBuffer, transportLayer->payloadLength);
|
|
|
|
|
|
uint32_t refCrc;
|
|
uint32_t refCrc;
|
|
|
|
|
|
- refCrc = crc32Calc(crcdata, SHELLMATTA_HEADER_LENGTH + payloadLength);
|
|
|
|
|
|
+ refCrc = crc32Calc(crcdata, SHELLMATTA_HEADER_LENGTH + transportLayer->payloadLength);
|
|
|
|
|
|
/* if crc is correct, further handling of data depends on type of packet */
|
|
/* if crc is correct, further handling of data depends on type of packet */
|
|
- if (crc32 == refCrc)
|
|
|
|
|
|
+ if (transportLayer->crc32 == refCrc)
|
|
{
|
|
{
|
|
/* reset fsm by default */
|
|
/* reset fsm by default */
|
|
- transportLayerInst.state = STATE_GET_SOH;
|
|
|
|
|
|
+ transportLayer->state = STATE_GET_SOH;
|
|
|
|
|
|
/* crc is correct */
|
|
/* crc is correct */
|
|
- transportLayerInst.h2s_sequenceCnt++;
|
|
|
|
|
|
+ transportLayer->h2s_sequenceCnt++;
|
|
|
|
|
|
- switch (packetType)
|
|
|
|
|
|
+ switch (transportLayer->packetType)
|
|
{
|
|
{
|
|
case PACKET_DATA:
|
|
case PACKET_DATA:
|
|
- transportLayerInst.state = STATE_PROCESS_PAYLOAD;
|
|
|
|
|
|
+ transportLayer->state = STATE_PROCESS_PAYLOAD;
|
|
break;
|
|
break;
|
|
|
|
|
|
case PACKET_SEQ_CNT_REQUEST:
|
|
case PACKET_SEQ_CNT_REQUEST:
|
|
/* change packet type to response */
|
|
/* change packet type to response */
|
|
- packetType = PACKET_SEQ_CNT_RESPOND;
|
|
|
|
|
|
+ transportLayer->packetType = PACKET_SEQ_CNT_RESPOND;
|
|
/* send out packet with no payload */
|
|
/* send out packet with no payload */
|
|
shellmatta_write_transport("", 0u);
|
|
shellmatta_write_transport("", 0u);
|
|
break;
|
|
break;
|
|
@@ -228,36 +200,36 @@ shellmatta_retCode_t shellmatta_handle_transport_fsm(char *data)
|
|
/* wrong packet type */
|
|
/* wrong packet type */
|
|
default:
|
|
default:
|
|
/* undo sequence counter increment */
|
|
/* undo sequence counter increment */
|
|
- transportLayerInst.h2s_sequenceCnt--;
|
|
|
|
|
|
+ transportLayer->h2s_sequenceCnt--;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- transportLayerInst.state = STATE_GET_SOH;
|
|
|
|
|
|
+ transportLayer->state = STATE_GET_SOH;
|
|
/* crc is incorrect */
|
|
/* crc is incorrect */
|
|
ret = SHELLMATTA_ERROR;
|
|
ret = SHELLMATTA_ERROR;
|
|
}
|
|
}
|
|
|
|
|
|
/* reset crc variables */
|
|
/* reset crc variables */
|
|
- crcCounter = 0u;
|
|
|
|
- crc32 = 0u;
|
|
|
|
|
|
+ transportLayer->crcCounter = 0u;
|
|
|
|
+ transportLayer->crc32 = 0u;
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
|
|
/* start to process payload as if it was entered manually */
|
|
/* start to process payload as if it was entered manually */
|
|
case STATE_PROCESS_PAYLOAD:
|
|
case STATE_PROCESS_PAYLOAD:
|
|
- transportLayerInst.state = STATE_GET_SOH;
|
|
|
|
- protocolVersion = 0u;
|
|
|
|
- packetType = PACKET_DATA;
|
|
|
|
- payloadLength = 0u;
|
|
|
|
- source = 0u;
|
|
|
|
- destination = 0u;
|
|
|
|
- crc32 = 0u;
|
|
|
|
- payloadCounter = 0u;
|
|
|
|
- crcCounter = 0u;
|
|
|
|
- transportLayerInst.active = false;
|
|
|
|
- memset(payloadBuffer, 0u, SHELLMATTA_PAYLOAD_MAXLENGTH);
|
|
|
|
|
|
+ transportLayer->state = STATE_GET_SOH;
|
|
|
|
+ transportLayer->protocolVersion = 0u;
|
|
|
|
+ transportLayer->packetType = PACKET_DATA;
|
|
|
|
+ transportLayer->payloadLength = 0u;
|
|
|
|
+ transportLayer->source = 0u;
|
|
|
|
+ transportLayer->destination = 0u;
|
|
|
|
+ transportLayer->crc32 = 0u;
|
|
|
|
+ transportLayer->payloadCounter = 0u;
|
|
|
|
+ transportLayer->crcCounter = 0u;
|
|
|
|
+ transportLayer->active = false;
|
|
|
|
+ memset(transportLayer->payloadBuffer, 0u, SHELLMATTA_PAYLOAD_MAXLENGTH);
|
|
break;
|
|
break;
|
|
|
|
|
|
default:
|
|
default:
|
|
@@ -279,7 +251,8 @@ shellmatta_retCode_t shellmatta_handle_transport_fsm(char *data)
|
|
* @param[in] data pointer to input data to process
|
|
* @param[in] data pointer to input data to process
|
|
* @return errorcode #SHELLMATTA_OK
|
|
* @return errorcode #SHELLMATTA_OK
|
|
*/
|
|
*/
|
|
-shellmatta_retCode_t shellmatta_write_transport(const char* data, uint32_t length)
|
|
|
|
|
|
+shellmatta_retCode_t shellmatta_write_transport(const char* data,
|
|
|
|
+ uint32_t length)
|
|
{
|
|
{
|
|
shellmatta_retCode_t ret = SHELLMATTA_OK;
|
|
shellmatta_retCode_t ret = SHELLMATTA_OK;
|
|
|
|
|
|
@@ -313,17 +286,17 @@ shellmatta_retCode_t shellmatta_write_transport(const char* data, uint32_t lengt
|
|
splitPayloadLength = splitLength - SHELLMATTA_HEADER_LENGTH - SHELLMATTA_LENGTH_CRC;
|
|
splitPayloadLength = splitLength - SHELLMATTA_HEADER_LENGTH - SHELLMATTA_LENGTH_CRC;
|
|
|
|
|
|
/* fill buffer with header data */
|
|
/* fill buffer with header data */
|
|
- outputBuffer[SHELLMATTA_POS_SOH] = SHELLMATTA_START_OF_HEADER; /* start of header */
|
|
|
|
- outputBuffer[SHELLMATTA_POS_PROT_VER] = PROTOCOL_VERSION; /* protocol version */
|
|
|
|
- outputBuffer[SHELLMATTA_POS_PACKET_TYPE] = packetType; /* packet type */
|
|
|
|
- outputBuffer[SHELLMATTA_POS_PAYLOAD_LEN] = splitPayloadLength; /* payload length */
|
|
|
|
- outputBuffer[SHELLMATTA_POS_SRC] = 0x00u; /* source */
|
|
|
|
- outputBuffer[SHELLMATTA_POS_DST] = 0x00u; /* destination */
|
|
|
|
- outputBuffer[SHELLMATTA_POS_CNT_H2S] = transportLayerInst.h2s_sequenceCnt; /* sequence counter host to shellmatta */
|
|
|
|
- outputBuffer[SHELLMATTA_POS_CNT_S2H] = ++transportLayerInst.s2h_sequenceCnt; /* sequence counter shellmatta to host */
|
|
|
|
|
|
+ outputBuffer[SHELLMATTA_POS_SOH] = SHELLMATTA_START_OF_HEADER; /* start of header */
|
|
|
|
+ outputBuffer[SHELLMATTA_POS_PROT_VER] = PROTOCOL_VERSION; /* protocol version */
|
|
|
|
+ outputBuffer[SHELLMATTA_POS_PACKET_TYPE] = transportLayerInt->packetType; /* packet type */
|
|
|
|
+ outputBuffer[SHELLMATTA_POS_PAYLOAD_LEN] = splitPayloadLength; /* payload length */
|
|
|
|
+ outputBuffer[SHELLMATTA_POS_SRC] = 0x00u; /* source */
|
|
|
|
+ outputBuffer[SHELLMATTA_POS_DST] = 0x00u; /* destination */
|
|
|
|
+ outputBuffer[SHELLMATTA_POS_CNT_H2S] = transportLayerInt->h2s_sequenceCnt; /* sequence counter host to shellmatta */
|
|
|
|
+ outputBuffer[SHELLMATTA_POS_CNT_S2H] = ++transportLayerInt->s2h_sequenceCnt; /* sequence counter shellmatta to host */
|
|
|
|
|
|
/* skip copying of payload in case of sequence counter response */
|
|
/* skip copying of payload in case of sequence counter response */
|
|
- if (packetType != PACKET_SEQ_CNT_RESPOND)
|
|
|
|
|
|
+ if (transportLayerInt->packetType != PACKET_SEQ_CNT_RESPOND)
|
|
{
|
|
{
|
|
memcpy(&outputBuffer[SHELLMATTA_POS_PAYLOAD], data + processedLength, splitPayloadLength);
|
|
memcpy(&outputBuffer[SHELLMATTA_POS_PAYLOAD], data + processedLength, splitPayloadLength);
|
|
}
|
|
}
|
|
@@ -337,7 +310,7 @@ shellmatta_retCode_t shellmatta_write_transport(const char* data, uint32_t lengt
|
|
outputBuffer[splitPayloadLength + SHELLMATTA_HEADER_LENGTH + SHELLMATTA_SHIFT_BY_3] = (uint8_t)(outCrc);
|
|
outputBuffer[splitPayloadLength + SHELLMATTA_HEADER_LENGTH + SHELLMATTA_SHIFT_BY_3] = (uint8_t)(outCrc);
|
|
|
|
|
|
/* use original write function to send full buffer */
|
|
/* use original write function to send full buffer */
|
|
- ret = transportLayerInst.originalWrite((char*) outputBuffer, splitLength);
|
|
|
|
|
|
+ ret = transportLayerInt->originalWrite((char*) outputBuffer, splitLength);
|
|
processedLength += splitPayloadLength;
|
|
processedLength += splitPayloadLength;
|
|
}
|
|
}
|
|
while (processedLength < outPayloadLength);
|
|
while (processedLength < outPayloadLength);
|