Skip to content

Commit d831037

Browse files
author
sornii
committed
Sistema agora avisa quando o cartão já existir.
1 parent 249e2ef commit d831037

File tree

3 files changed

+71
-27
lines changed

3 files changed

+71
-27
lines changed

Arquivos.cpp

+50-19
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
// controle do banco de dados.
88

99
char idFile [] = "ID";
10-
char nsrFile [] = "NSR";
10+
char idPontoFile [] = "PONTO/ID";
1111

1212
char pastaCol [] = "COLAB/";
1313
char pastaRfid [] = "RFID/";
@@ -45,7 +45,7 @@ setNsrInFile();
4545
}
4646
*/
4747

48-
void ArquivosClass::getIdFromFile()
48+
void ArquivosClass::getIdColaboradorFromFile()
4949
{
5050
char buffer[20];
5151

@@ -55,25 +55,51 @@ void ArquivosClass::getIdFromFile()
5555
file.read(buffer, tamanho);
5656
file.close();
5757

58-
id = atol(buffer);
58+
idColaborador = atol(buffer);
5959
}
6060

61-
void ArquivosClass::setIdInFile()
61+
void ArquivosClass::setIdColaboradorInFile()
6262
{
6363
SD.remove(idFile);
6464

6565
File file = SD.open(idFile, FILE_WRITE);
66-
file.print(id);
66+
file.print(idColaborador);
6767
file.close();
6868
}
6969

70-
void ArquivosClass::incrementId()
70+
void ArquivosClass::incrementIdColaborador()
7171
{
72-
id += 1;
73-
setIdInFile();
72+
idColaborador += 1;
73+
setIdColaboradorInFile();
7474
}
7575

76+
void ArquivosClass::getIdPontoFromFile()
77+
{
78+
char buffer[20];
79+
80+
File file = SD.open(idFile, FILE_READ);
81+
uint8_t tamanho = file.available();
82+
83+
file.read(buffer, tamanho);
84+
file.close();
85+
86+
idPonto = atol(buffer);
87+
}
88+
89+
void ArquivosClass::setIdPontoInFile()
90+
{
91+
SD.remove(idFile);
92+
93+
File file = SD.open(idFile, FILE_WRITE);
94+
file.print(idPonto);
95+
file.close();
96+
}
7697

98+
void ArquivosClass::incrementIdPonto()
99+
{
100+
idPonto += 1;
101+
setIdColaboradorInFile();
102+
}
77103

78104
void ArquivosClass::addint(int i, char* c)
79105
{
@@ -149,16 +175,12 @@ void ArquivosClass::init(RTC_DS1307* rtc)
149175
{
150176
_rtc = rtc;
151177

152-
//nsr = 0;
153-
id = 0;
178+
idColaborador = idPonto = 0;
154179

155-
SD.remove(nsrFile);
156180
SD.remove(idFile);
181+
SD.remove(idPontoFile);
157182

158-
159-
160183
File file = SD.open("COLAB/");
161-
162184
File entry;
163185

164186
while (entry = file.openNextFile())
@@ -196,13 +218,20 @@ void ArquivosClass::init(RTC_DS1307* rtc)
196218
file.close();
197219
}
198220

199-
uint32_t ArquivosClass::getId()
221+
uint32_t ArquivosClass::getIdColaborador()
200222
{
201-
return id;
223+
return idColaborador;
224+
}
225+
226+
uint32_t ArquivosClass::getIdPonto()
227+
{
228+
return idPonto;
202229
}
203230

204231
void ArquivosClass::marcarPonto(uint32_t id)
205232
{
233+
incrementIdPonto();
234+
206235
char caminhoPonto[40];
207236
char aux[20];
208237

@@ -233,6 +262,8 @@ void ArquivosClass::marcarPonto(uint32_t id)
233262

234263
char ponto[10] = "";
235264

265+
addint(idPonto, ponto);
266+
strcat(ponto, ";");
236267
addint(now.day(), ponto);
237268
strcat(ponto, ";");
238269
addint(now.hour(), ponto);
@@ -253,8 +284,8 @@ uint32_t ArquivosClass::incluirColaborador(char* pessoa){
253284

254285
strcpy(fullpath, pastaCol);
255286

256-
incrementId();
257-
ltoa(id, path, 16);
287+
incrementIdColaborador();
288+
ltoa(idColaborador, path, 16);
258289

259290
strcat(fullpath, path);
260291

@@ -263,7 +294,7 @@ uint32_t ArquivosClass::incluirColaborador(char* pessoa){
263294
file.print(pessoa);
264295
file.close();
265296

266-
return id;
297+
return idColaborador;
267298
}
268299

269300
bool ArquivosClass::consultarColaborador(char* out, uint32_t thisid)

Arquivos.h

+11-5
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ class ArquivosClass
1818
// cadastros e ao mesmo tempo marcar o último
1919
// ID usado para não realizar leituras toda via
2020
// que precisa-lo
21-
uint32_t id;
21+
uint32_t idColaborador;
22+
uint32_t idPonto;
2223

2324
RTC_DS1307* _rtc;
2425

@@ -40,15 +41,19 @@ class ArquivosClass
4041

4142
// Realiza a leitura do ID diretamente do arquivo
4243
// gravado no SD para a memória
43-
void getIdFromFile();
44+
void getIdColaboradorFromFile();
4445

4546
// Realiza a gravação do ID em memória para
4647
// o arquivo no SD
47-
void setIdInFile();
48+
void setIdColaboradorInFile();
4849

4950
// Realiza um incremento no ID de memória e após
5051
// realiza a gravação do mesmo no arquivo SD
51-
void incrementId();
52+
void incrementIdColaborador();
53+
54+
void getIdPontoFromFile();
55+
void setIdPontoInFile();
56+
void incrementIdPonto();
5257

5358
/*************************************************
5459
Others
@@ -84,7 +89,8 @@ class ArquivosClass
8489
***************************************************/
8590

8691
// Retorna o ID registrado na memória do sistema
87-
uint32_t getId();
92+
uint32_t getIdColaborador();
93+
uint32_t getIdPonto();
8894

8995
/**************************************************
9096
Colaboradores

Empregues.ino

+10-3
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,6 @@ void loop()
353353
success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);
354354
if (success)
355355
{
356-
357356
for (uint8_t i = 0; i < 4; i++)
358357
{
359358
char aux[3];
@@ -363,7 +362,15 @@ void loop()
363362

364363
strcat(fullpath, path);
365364

366-
SD.remove(fullpath);
365+
if (SD.exists(fullpath))
366+
{
367+
strcpy((char*) pacote.buffer, "0");
368+
pacote.tamanho = 1;
369+
pacote.enviar(&cliente);
370+
break;
371+
372+
delay(3000);
373+
}
367374

368375
File file = SD.open(fullpath, FILE_WRITE);
369376

@@ -425,7 +432,7 @@ void loop()
425432
}
426433
case LISTAR_COLABORADORES: {
427434

428-
for (uint32_t i = 1; i <= Arquivos.getId(); i++)
435+
for (uint32_t i = 1; i <= Arquivos.getIdColaborador(); i++)
429436
{
430437
bool achou = Arquivos.consultarColaborador((char*) pacote.buffer, i);
431438

0 commit comments

Comments
 (0)