make Tx support multi-chunk payload (exceeding buffer size)
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
CFILES=../demo.c ../utils.c ../../TinyFrame.c
|
||||
INCLDIRS=-I. -I.. -I../..
|
||||
CFLAGS=-O0 -ggdb --std=gnu99 -Wno-main -Wall -Wextra $(CFILES) $(INCLDIRS)
|
||||
|
||||
build: master.bin slave.bin
|
||||
|
||||
master: master.bin
|
||||
./master.bin
|
||||
|
||||
slave: slave.bin
|
||||
./slave.bin
|
||||
|
||||
master.bin: master.c $(CFILES)
|
||||
gcc master.c $(CFLAGS) -o master.bin
|
||||
|
||||
slave.bin: slave.c $(CFILES)
|
||||
gcc slave.c $(CFLAGS) -o slave.bin
|
||||
@@ -0,0 +1,25 @@
|
||||
//
|
||||
// Created by MightyPork on 2017/10/15.
|
||||
//
|
||||
|
||||
#ifndef TF_CONFIG_H
|
||||
#define TF_CONFIG_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define TF_ID_BYTES 1
|
||||
#define TF_LEN_BYTES 2
|
||||
#define TF_TYPE_BYTES 1
|
||||
#define TF_CKSUM_TYPE TF_CKSUM_CRC16
|
||||
#define TF_USE_SOF_BYTE 1
|
||||
#define TF_SOF_BYTE 0x01
|
||||
typedef uint16_t TF_TICKS;
|
||||
typedef uint8_t TF_COUNT;
|
||||
#define TF_MAX_PAYLOAD_RX 1024
|
||||
#define TF_SENDBUF_LEN 1024
|
||||
#define TF_MAX_ID_LST 10
|
||||
#define TF_MAX_TYPE_LST 10
|
||||
#define TF_MAX_GEN_LST 5
|
||||
#define TF_PARSER_TIMEOUT_TICKS 10
|
||||
|
||||
#endif //TF_CONFIG_H
|
||||
@@ -0,0 +1,35 @@
|
||||
//
|
||||
// Created by MightyPork on 2017/10/15.
|
||||
//
|
||||
|
||||
#include <stdio.h>
|
||||
#include "../demo.h"
|
||||
|
||||
TF_Result testIdListener(TF_Msg *msg)
|
||||
{
|
||||
printf("testIdListener()\n");
|
||||
dumpFrameInfo(msg);
|
||||
return TF_CLOSE;
|
||||
}
|
||||
|
||||
TF_Result testGenericListener(TF_Msg *msg)
|
||||
{
|
||||
printf("testGenericListener()\n");
|
||||
dumpFrameInfo(msg);
|
||||
return TF_STAY;
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
TF_Init(TF_MASTER);
|
||||
TF_AddGenericListener(testGenericListener);
|
||||
|
||||
demo_init(TF_MASTER);
|
||||
|
||||
TF_SendSimple(1, (pu8)"Ahoj", 5);
|
||||
TF_SendSimple(1, (pu8)"Hello", 6);
|
||||
|
||||
TF_QuerySimple(2, (pu8)"Query!", 6, testIdListener, 0, NULL);
|
||||
|
||||
demo_sleep();
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
//
|
||||
// Created by MightyPork on 2017/10/15.
|
||||
//
|
||||
|
||||
#include <stdio.h>
|
||||
#include "../demo.h"
|
||||
#include <memory.h>
|
||||
|
||||
TF_Result helloListener(TF_Msg *msg)
|
||||
{
|
||||
printf("helloListener()\n");
|
||||
dumpFrameInfo(msg);
|
||||
return TF_STAY;
|
||||
}
|
||||
|
||||
TF_Result replyListener(TF_Msg *msg)
|
||||
{
|
||||
printf("replyListener()\n");
|
||||
dumpFrameInfo(msg);
|
||||
msg->data = (const uint8_t *) "response to query";
|
||||
msg->len = (TF_LEN) strlen((const char *) msg->data);
|
||||
TF_Respond(msg);
|
||||
|
||||
// unsolicited reply - will not be handled by the ID listener, which is already gone
|
||||
msg->data = (const uint8_t *) "SPAM";
|
||||
msg->len = 5;
|
||||
TF_Respond(msg);
|
||||
|
||||
// unrelated message
|
||||
TF_SendSimple(77, (const uint8_t *) "NAZDAR", 7);
|
||||
return TF_STAY;
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
TF_Init(TF_SLAVE);
|
||||
TF_AddTypeListener(1, helloListener);
|
||||
TF_AddTypeListener(2, replyListener);
|
||||
|
||||
demo_init(TF_SLAVE);
|
||||
demo_sleep();
|
||||
}
|
||||
Reference in New Issue
Block a user