parent
0ed3fd91f7
commit
13c74ea6e6
@ -1,6 +1,6 @@ |
||||
CFILES=../utils.c ../../TinyFrame.c
|
||||
INCLDIRS=-I. -I.. -I../..
|
||||
CFLAGS=-O0 -ggdb --std=gnu99 -Wno-main -Wall -Wno-unused -Wextra $(CFILES) $(INCLDIRS)
|
||||
CFLAGS=-O0 -ggdb --std=gnu99 -Wno-main -Wall -Wextra $(CFILES) $(INCLDIRS)
|
||||
|
||||
|
||||
build: test.bin |
@ -0,0 +1,12 @@ |
||||
CFILES=../utils.c ../../TinyFrame.c
|
||||
INCLDIRS=-I. -I.. -I../..
|
||||
CFLAGS=-O0 -ggdb --std=gnu99 -Wno-main -Wall -Wextra $(CFILES) $(INCLDIRS)
|
||||
|
||||
|
||||
build: test.bin |
||||
|
||||
run: test.bin |
||||
./test.bin
|
||||
|
||||
test.bin: test.c $(CFILES) |
||||
gcc test.c $(CFLAGS) -o test.bin
|
@ -0,0 +1,28 @@ |
||||
//
|
||||
// Created by MightyPork on 2018/01/26.
|
||||
//
|
||||
|
||||
#ifndef TF_CONFIG_H |
||||
#define TF_CONFIG_H |
||||
|
||||
#include <stdint.h> |
||||
#include <stdio.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 10240 |
||||
#define TF_SENDBUF_LEN 64 |
||||
#define TF_MAX_ID_LST 10 |
||||
#define TF_MAX_TYPE_LST 10 |
||||
#define TF_MAX_GEN_LST 5 |
||||
#define TF_PARSER_TIMEOUT_TICKS 10 |
||||
|
||||
#define TF_Error(format, ...) printf("[TF] " format "\n", ##__VA_ARGS__) |
||||
|
||||
#endif //TF_CONFIG_H
|
@ -0,0 +1,322 @@ |
||||
#include <stdio.h> |
||||
#include <string.h> |
||||
#include "../../TinyFrame.h" |
||||
#include "../utils.h" |
||||
|
||||
TinyFrame *demo_tf; |
||||
|
||||
extern const char *romeo; |
||||
|
||||
/**
|
||||
* This function should be defined in the application code. |
||||
* It implements the lowest layer - sending bytes to UART (or other) |
||||
*/ |
||||
void TF_WriteImpl(TinyFrame *tf, const uint8_t *buff, uint32_t len) |
||||
{ |
||||
printf("--------------------\n"); |
||||
printf("\033[32mTF_WriteImpl - sending frame:\033[0m\n"); |
||||
dumpFrame(buff, len); |
||||
|
||||
// Send it back as if we received it
|
||||
TF_Accept(tf, buff, len); |
||||
} |
||||
|
||||
/** An example listener function */ |
||||
TF_Result myListener(TinyFrame *tf, TF_Msg *msg) |
||||
{ |
||||
(void)tf; |
||||
dumpFrameInfo(msg); |
||||
if (strcmp((const char *) msg->data, romeo) == 0) { |
||||
printf("FILE TRANSFERRED OK!\r\n"); |
||||
} |
||||
else { |
||||
printf("FAIL!!!!\r\n"); |
||||
} |
||||
return TF_STAY; |
||||
} |
||||
|
||||
void main(void) |
||||
{ |
||||
TF_Msg msg; |
||||
|
||||
// Set up the TinyFrame library
|
||||
demo_tf = TF_Init(TF_MASTER); // 1 = master, 0 = slave
|
||||
TF_AddGenericListener(demo_tf, myListener); |
||||
|
||||
printf("------ Simulate sending a LOOONG message --------\n"); |
||||
|
||||
// We prepare a message without .data but with a set .len
|
||||
TF_ClearMsg(&msg); |
||||
msg.type = 0x22; |
||||
msg.len = (TF_LEN) strlen(romeo); |
||||
|
||||
// Start the multipart frame
|
||||
TF_Send_Multipart(demo_tf, &msg); |
||||
|
||||
// Now we send the payload in as many pieces as we like.
|
||||
// Careful - TF transmitter is locked until we close the multipart frame
|
||||
|
||||
uint32_t remain = strlen(romeo); |
||||
const uint8_t* toSend = (const uint8_t*)romeo; |
||||
|
||||
while (remain > 0) { |
||||
uint32_t chunk = (remain>16) ? 16 : remain; |
||||
|
||||
// Send a piece
|
||||
TF_Multipart_Payload(demo_tf, toSend, chunk); |
||||
|
||||
remain -= chunk; |
||||
toSend += chunk; |
||||
} |
||||
|
||||
// Done, close
|
||||
TF_Multipart_Close(demo_tf); |
||||
} |
||||
|
||||
const char *romeo = "THE TRAGEDY OF ROMEO AND JULIET\n" |
||||
"\n" |
||||
"by William Shakespeare\n" |
||||
"\n" |
||||
"\n" |
||||
"\n" |
||||
"Dramatis Personae\n" |
||||
"\n" |
||||
" Chorus.\n" |
||||
"\n" |
||||
"\n" |
||||
" Escalus, Prince of Verona.\n" |
||||
"\n" |
||||
" Paris, a young Count, kinsman to the Prince.\n" |
||||
"\n" |
||||
" Montague, heads of two houses at variance with each other.\n" |
||||
"\n" |
||||
" Capulet, heads of two houses at variance with each other.\n" |
||||
"\n" |
||||
" An old Man, of the Capulet family.\n" |
||||
"\n" |
||||
" Romeo, son to Montague.\n" |
||||
"\n" |
||||
" Tybalt, nephew to Lady Capulet.\n" |
||||
"\n" |
||||
" Mercutio, kinsman to the Prince and friend to Romeo.\n" |
||||
"\n" |
||||
" Benvolio, nephew to Montague, and friend to Romeo\n" |
||||
"\n" |
||||
" Tybalt, nephew to Lady Capulet.\n" |
||||
"\n" |
||||
" Friar Laurence, Franciscan.\n" |
||||
"\n" |
||||
" Friar John, Franciscan.\n" |
||||
"\n" |
||||
" Balthasar, servant to Romeo.\n" |
||||
"\n" |
||||
" Abram, servant to Montague.\n" |
||||
"\n" |
||||
" Sampson, servant to Capulet.\n" |
||||
"\n" |
||||
" Gregory, servant to Capulet.\n" |
||||
"\n" |
||||
" Peter, servant to Juliet's nurse.\n" |
||||
"\n" |
||||
" An Apothecary.\n" |
||||
"\n" |
||||
" Three Musicians.\n" |
||||
"\n" |
||||
" An Officer.\n" |
||||
"\n" |
||||
"\n" |
||||
" Lady Montague, wife to Montague.\n" |
||||
"\n" |
||||
" Lady Capulet, wife to Capulet.\n" |
||||
"\n" |
||||
" Juliet, daughter to Capulet.\n" |
||||
"\n" |
||||
" Nurse to Juliet.\n" |
||||
"\n" |
||||
"\n" |
||||
" Citizens of Verona; Gentlemen and Gentlewomen of both houses;\n" |
||||
" Maskers, Torchbearers, Pages, Guards, Watchmen, Servants, and\n" |
||||
" Attendants.\n" |
||||
"\n" |
||||
" SCENE.--Verona; Mantua.\n" |
||||
"\n" |
||||
"\n" |
||||
"\n" |
||||
" THE PROLOGUE\n" |
||||
"\n" |
||||
" Enter Chorus.\n" |
||||
"\n" |
||||
"\n" |
||||
" Chor. Two households, both alike in dignity,\n" |
||||
" In fair Verona, where we lay our scene,\n" |
||||
" From ancient grudge break to new mutiny,\n" |
||||
" Where civil blood makes civil hands unclean.\n" |
||||
" From forth the fatal loins of these two foes\n" |
||||
" A pair of star-cross'd lovers take their life;\n" |
||||
" Whose misadventur'd piteous overthrows\n" |
||||
" Doth with their death bury their parents' strife.\n" |
||||
" The fearful passage of their death-mark'd love,\n" |
||||
" And the continuance of their parents' rage,\n" |
||||
" Which, but their children's end, naught could remove,\n" |
||||
" Is now the two hours' traffic of our stage;\n" |
||||
" The which if you with patient ears attend,\n" |
||||
" What here shall miss, our toil shall strive to mend.\n" |
||||
" [Exit.]\n" |
||||
"\n" |
||||
"\n" |
||||
"\n" |
||||
"\n" |
||||
"ACT I. Scene I.\n" |
||||
"Verona. A public place.\n" |
||||
"\n" |
||||
"Enter Sampson and Gregory (with swords and bucklers) of the house\n" |
||||
"of Capulet.\n" |
||||
"\n" |
||||
"\n" |
||||
" Samp. Gregory, on my word, we'll not carry coals.\n" |
||||
"\n" |
||||
" Greg. No, for then we should be colliers.\n" |
||||
"\n" |
||||
" Samp. I mean, an we be in choler, we'll draw.\n" |
||||
"\n" |
||||
" Greg. Ay, while you live, draw your neck out of collar.\n" |
||||
"\n" |
||||
" Samp. I strike quickly, being moved.\n" |
||||
"\n" |
||||
" Greg. But thou art not quickly moved to strike.\n" |
||||
"\n" |
||||
" Samp. A dog of the house of Montague moves me.\n" |
||||
"\n" |
||||
" Greg. To move is to stir, and to be valiant is to stand.\n" |
||||
" Therefore, if thou art moved, thou runn'st away.\n" |
||||
"\n" |
||||
" Samp. A dog of that house shall move me to stand. I will take\n" |
||||
" the wall of any man or maid of Montague's.\n" |
||||
"\n" |
||||
" Greg. That shows thee a weak slave; for the weakest goes to the\n" |
||||
" wall.\n" |
||||
"\n" |
||||
" Samp. 'Tis true; and therefore women, being the weaker vessels,\n" |
||||
" are ever thrust to the wall. Therefore I will push Montague's men\n" |
||||
" from the wall and thrust his maids to the wall.\n" |
||||
"\n" |
||||
" Greg. The quarrel is between our masters and us their men.\n" |
||||
"\n" |
||||
" Samp. 'Tis all one. I will show myself a tyrant. When I have\n" |
||||
" fought with the men, I will be cruel with the maids- I will cut off\n" |
||||
" their heads.\n" |
||||
"\n" |
||||
" Greg. The heads of the maids?\n" |
||||
"\n" |
||||
" Samp. Ay, the heads of the maids, or their maidenheads.\n" |
||||
" Take it in what sense thou wilt.\n" |
||||
"\n" |
||||
" Greg. They must take it in sense that feel it.\n" |
||||
"\n" |
||||
" Samp. Me they shall feel while I am able to stand; and 'tis known I\n" |
||||
" am a pretty piece of flesh.\n" |
||||
"\n" |
||||
" Greg. 'Tis well thou art not fish; if thou hadst, thou hadst\n" |
||||
" been poor-John. Draw thy tool! Here comes two of the house of\n" |
||||
" Montagues.\n" |
||||
"\n" |
||||
" Enter two other Servingmen [Abram and Balthasar].\n" |
||||
"\n" |
||||
"\n" |
||||
" Samp. My naked weapon is out. Quarrel! I will back thee.\n" |
||||
"\n" |
||||
" Greg. How? turn thy back and run?\n" |
||||
"\n" |
||||
" Samp. Fear me not.\n" |
||||
"\n" |
||||
" Greg. No, marry. I fear thee!\n" |
||||
"\n" |
||||
" Samp. Let us take the law of our sides; let them begin.\n" |
||||
"\n" |
||||
" Greg. I will frown as I pass by, and let them take it as they list.\n" |
||||
"\n" |
||||
" Samp. Nay, as they dare. I will bite my thumb at them; which is\n" |
||||
" disgrace to them, if they bear it.\n" |
||||
"\n" |
||||
" Abr. Do you bite your thumb at us, sir?\n" |
||||
"\n" |
||||
" Samp. I do bite my thumb, sir.\n" |
||||
"\n" |
||||
" Abr. Do you bite your thumb at us, sir?\n" |
||||
"\n" |
||||
" Samp. [aside to Gregory] Is the law of our side if I say ay?\n" |
||||
"\n" |
||||
" Greg. [aside to Sampson] No.\n" |
||||
"\n" |
||||
" Samp. No, sir, I do not bite my thumb at you, sir; but I bite my\n" |
||||
" thumb, sir.\n" |
||||
"\n" |
||||
" Greg. Do you quarrel, sir?\n" |
||||
"\n" |
||||
" Abr. Quarrel, sir? No, sir.\n" |
||||
"\n" |
||||
" Samp. But if you do, sir, am for you. I serve as good a man as\n" |
||||
" you.\n" |
||||
"\n" |
||||
" Abr. No better.\n" |
||||
"\n" |
||||
" Samp. Well, sir.\n" |
||||
"\n" |
||||
" Enter Benvolio.\n" |
||||
"\n" |
||||
"\n" |
||||
" Greg. [aside to Sampson] Say 'better.' Here comes one of my\n" |
||||
" master's kinsmen.\n" |
||||
"\n" |
||||
" Samp. Yes, better, sir.\n" |
||||
"\n" |
||||
" Abr. You lie.\n" |
||||
"\n" |
||||
" Samp. Draw, if you be men. Gregory, remember thy swashing blow.\n" |
||||
" They fight.\n" |
||||
"\n" |
||||
" Ben. Part, fools! [Beats down their swords.]\n" |
||||
" Put up your swords. You know not what you do.\n" |
||||
"\n" |
||||
" Enter Tybalt.\n" |
||||
"\n" |
||||
"\n" |
||||
" Tyb. What, art thou drawn among these heartless hinds?\n" |
||||
" Turn thee Benvolio! look upon thy death.\n" |
||||
"\n" |
||||
" Ben. I do but keep the peace. Put up thy sword,\n" |
||||
" Or manage it to part these men with me.\n" |
||||
"\n" |
||||
" Tyb. What, drawn, and talk of peace? I hate the word\n" |
||||
" As I hate hell, all Montagues, and thee.\n" |
||||
" Have at thee, coward! They fight.\n" |
||||
"\n" |
||||
" Enter an officer, and three or four Citizens with clubs or\n" |
||||
" partisans.\n" |
||||
"\n" |
||||
"\n" |
||||
" Officer. Clubs, bills, and partisans! Strike! beat them down!\n" |
||||
"\n" |
||||
" Citizens. Down with the Capulets! Down with the Montagues!\n" |
||||
"\n" |
||||
" Enter Old Capulet in his gown, and his Wife.\n" |
||||
"\n" |
||||
"\n" |
||||
" Cap. What noise is this? Give me my long sword, ho!\n" |
||||
"\n" |
||||
" Wife. A crutch, a crutch! Why call you for a sword?\n" |
||||
"\n" |
||||
" Cap. My sword, I say! Old Montague is come\n" |
||||
" And flourishes his blade in spite of me.\n" |
||||
"\n" |
||||
" Enter Old Montague and his Wife.\n" |
||||
"\n" |
||||
"\n" |
||||
" Mon. Thou villain Capulet!- Hold me not, let me go.\n" |
||||
"\n" |
||||
" M. Wife. Thou shalt not stir one foot to seek a foe.\n" |
||||
"\n" |
||||
" Enter Prince Escalus, with his Train.\n" |
||||
"\n" |
||||
"\n" |
||||
"END OF FILE\n"; |
Loading…
Reference in new issue