-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathArquivos.h
169 lines (135 loc) · 4.24 KB
/
Arquivos.h
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
// Arquivos.h
#ifndef _ARQUIVOS_h
#define _ARQUIVOS_h
#include "Arduino.h"
#include "SD.h"
#include "RTClib.h"
class ArquivosClass
{
private:
//uint32_t nsr;
// Variável responsável por guardar em memória
// o ID que está sendo usado para atribuir novos
// cadastros e ao mesmo tempo marcar o último
// ID usado para não realizar leituras toda via
// que precisa-lo
uint32_t idColaborador;
uint32_t idPonto;
RTC_DS1307* _rtc;
/**************************************************
Helpers
***************************************************/
void addint(int, char*);
/*************************************************
Counters
**************************************************/
/* Não iremos mais ter uso nisso por causa do tipo de memória
void getNsrFromFile();
void setNsrInFile();
void incrementNsr();
*/
// Realiza a leitura do ID diretamente do arquivo
// gravado no SD para a memória
void getIdColaboradorFromFile();
// Realiza a gravação do ID em memória para
// o arquivo no SD
void setIdColaboradorInFile();
// Realiza um incremento no ID de memória e após
// realiza a gravação do mesmo no arquivo SD
void incrementIdColaborador();
void getIdPontoFromFile();
void setIdPontoInFile();
void incrementIdPonto();
/*************************************************
Others
**************************************************/
// Formata o Mês e o Ano do objeto DateTime
// para um formato válido para usar na leitura
// dos arquivos
//
// e.g. Se o DateTime for Ano: 2014, Mês: 04
// o resultado será 2014/04
//
// \DateTime& Objeto do DateTime para ser usado
// \char* Cadeia de caracteres que recebrá o resultado
void getMesAno(DateTime&, char*);
// Formata o Mês e o Ano usando a função
// getMesAno(DateTime&, char*); e logo em seguida
// o formata diretamente para a pasta do ponto
//
// e.g. PONTO/2014/04
//
// \DateTime& DateTime para ser usado como tempo
// \char* Cadeia de caracteres que receberá o resultado
void pastaPonto(DateTime&, char*);
public:
void init(RTC_DS1307*);
/**************************************************
Getters and Setters
***************************************************/
// Consulta o último ID usado para cadastrar um
// Colaborador
//
// \returns o ID
uint32_t getIdColaborador();
uint32_t getIdPonto();
/**************************************************
Empregador
***************************************************/
// Grava as informações do empregador na memória
// do sistema
//
// \char* Parâmetro responsável pela cadeia de
// caracteres que representam a informação sobre
// o Empregador.
// o formato deve ser exclusivamente da seguinte
// forma:
//
// <TIPO IDENTIFICADOR>;<IDENTIFICADOR>;<NOME>;
// <CEI>;<ESTADO (SIGLA)>;<CIDADE>;<BAIRRO>;
// <LOGRADOURO>;<NUMERO>;<COMPLEMENTO>
//
// \returns True para quando a operacao concluir
// com sucesso e False para quando der algo errado
bool incluirEmpregador(char*);
// Lê as informações do Empregador que existe
// na memória
//
// \returns True para quando a operacao concluir
// com sucesso e False para quando der algo errado
bool consultarEmpregador(char*);
bool alterarEmpregador(char*);
/**************************************************
Colaboradores
***************************************************/
// Realiza a inclusão do colaborador na memória
//
// \char* Parâmetro responsável pela cadeia de
// caracteres que representa o Colaborador para
// que seja feita sua inserção na memória,
// o formato deve ser exclusivamente da seguinte
// forma: <PIS>;<NOME COMPLETO>
//
// e.g. 21552284859;Igor Henrique Pereira Fontana
uint32_t incluirColaborador(char*);
bool consultarColaborador(char*, uint32_t);
// Marca o ponto conforme o ID recebido pela função
//
// \uint32_t ID do colaborador responsável pelo ponto
void marcarPonto(uint32_t);
/**************************************************
Public Helper
***************************************************/
// Lê todo o contéudo do arquivo
//
// \char* Caminho do arquivo
// \char* Resultado da leitura
void getConteudo(char*, char*);
// Lê todo o contéudo do arquivo
//
// \File* Arquivo para ser lido
// \char* Resultado da leitura
void getConteudo(File*, char*);
};
extern ArquivosClass Arquivos;
#endif