-
Notifications
You must be signed in to change notification settings - Fork 0
/
Pacote.cpp
59 lines (43 loc) · 956 Bytes
/
Pacote.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "Pacote.h"
void Pacote::receber(EthernetClient* cliente)
{
tamanho = cliente->read();
tipo = cliente->read();
cliente->read(buffer, tamanho);
buffer[tamanho] = 0;
}
void Pacote::enviar(EthernetClient* cliente)
{
for (uint8_t i = tamanho; i > 0; i--)
buffer[i + 1] = buffer[i - 1];
buffer[0] = tamanho;
buffer[1] = tipo;
cliente->write(buffer, tamanho + 2);
}
void Pacote::enviarNulo(EthernetClient* cliente)
{
buffer[0] = 'a';
tipo = PACOTE_NULO;
tamanho = 1;
enviar(cliente);
}
void Pacote::enviar(EthernetClient* cliente, byte avisoTipo)
{
buffer[0] = 'a';
tipo = avisoTipo;
tamanho = 1;
enviar(cliente);
}
void Pacote::insertBefore(char* toInsert)
{
int strInsertLength = strlen(toInsert);
int strReceiveLength = strlen((char*) buffer);
for (int i = strReceiveLength; i >= 0; i--)
{
buffer[i + strInsertLength] = buffer[i];
}
for (int i = 0; i < strInsertLength; i++)
{
buffer[i] = toInsert[i];
}
}