parent
							
								
									0ed3fd91f7
								
							
						
					
					
						commit
						13c74ea6e6
					
				| @ -1,6 +1,6 @@ | |||||||
| CFILES=../utils.c ../../TinyFrame.c
 | CFILES=../utils.c ../../TinyFrame.c
 | ||||||
| INCLDIRS=-I. -I.. -I../..
 | 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 | 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