Skip to content

Commit 68f723c

Browse files
author
Sornii
committed
Mudanças para o notebook
1 parent d831037 commit 68f723c

7 files changed

+155
-21
lines changed

Arquivos.cpp

+35
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ char idPontoFile [] = "PONTO/ID";
1212
char pastaCol [] = "COLAB/";
1313
char pastaRfid [] = "RFID/";
1414
char pastaPonto [] = "PONTO/";
15+
char empregador [] = "EMPDOR";
1516

1617
#pragma region Private Methods
1718

@@ -317,7 +318,41 @@ bool ArquivosClass::consultarColaborador(char* out, uint32_t thisid)
317318
}
318319

319320

321+
bool ArquivosClass::incluirEmpregador(char* empregadorStr)
322+
{
323+
if (SD.exists(empregador))
324+
return false;
325+
326+
File file = SD.open(empregador, FILE_WRITE);
327+
file.print(empregadorStr);
328+
file.close();
329+
}
330+
331+
bool ArquivosClass::consultarEmpregador(char* out)
332+
{
333+
if (!SD.exists(empregador))
334+
return false;
335+
336+
char bufferEmpregador[BUFFER_SIZE];
337+
338+
getConteudo(empregador, bufferEmpregador);
320339

340+
strcpy(out, bufferEmpregador);
341+
342+
return true;
343+
}
344+
345+
bool ArquivosClass::alterarEmpregador(char* empregadorStr)
346+
{
347+
if (!SD.exists(empregador))
348+
return false;
349+
350+
SD.remove(empregador);
351+
352+
File file = SD.open(empregador, FILE_WRITE);
353+
file.print(empregadorStr);
354+
file.close();
355+
}
321356

322357

323358
#pragma endregion

Arquivos.h

+34-1
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,42 @@ class ArquivosClass
8888
Getters and Setters
8989
***************************************************/
9090

91-
// Retorna o ID registrado na memória do sistema
91+
// Consulta o último ID usado para cadastrar um
92+
// Colaborador
93+
//
94+
// \returns o ID
9295
uint32_t getIdColaborador();
9396
uint32_t getIdPonto();
97+
98+
/**************************************************
99+
Empregador
100+
***************************************************/
101+
102+
// Grava as informações do empregador na memória
103+
// do sistema
104+
//
105+
// \char* Parâmetro responsável pela cadeia de
106+
// caracteres que representam a informação sobre
107+
// o Empregador.
108+
// o formato deve ser exclusivamente da seguinte
109+
// forma:
110+
//
111+
// <TIPO IDENTIFICADOR>;<IDENTIFICADOR>;<NOME>;
112+
// <CEI>;<ESTADO (SIGLA)>;<CIDADE>;<BAIRRO>;
113+
// <LOGRADOURO>;<NUMERO>;<COMPLEMENTO>
114+
//
115+
// \returns True para quando a operacao concluir
116+
// com sucesso e False para quando der algo errado
117+
bool incluirEmpregador(char*);
118+
119+
// Lê as informações do Empregador que existe
120+
// na memória
121+
//
122+
// \returns True para quando a operacao concluir
123+
// com sucesso e False para quando der algo errado
124+
bool consultarEmpregador(char*);
125+
126+
bool alterarEmpregador(char*);
94127

95128
/**************************************************
96129
Colaboradores

Constants.h

+7
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@
55

66
#define DEBUG Serial.println
77

8+
#define IPADDRESS IPAddress(192,168,1,14)
9+
#define SUBNETMASK IPAddress(255,255,0,0)
10+
#define DNSSERVER IPAddress(192,168,1,10)
11+
#define GATEWAY IPAddress(192,168,1,10)
12+
#define DIRECTCONNECTION true
813

914
#define SEM_APITO_POR_HOJE
1015
#define BUZZER_PIN 30
@@ -69,6 +74,8 @@
6974
#define CADASTRAR_EMPREGADOR 0x15
7075
#define CONSULTAR_EMPREGADOR 0x16
7176
#define ALTERAR_EMPREGADOR 0x17
77+
#define EMPREGADOR_CONSULTADO 0x18
78+
#define EMPREGADOR_CADASTRADO 0x19
7279

7380
// Relógio
7481
#define ALTERAR_RELOGIO 0xA8

Empregues.ino

+63-12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#define TWI_FREQ 400000L
2-
32
#include <Wire.h>
43
#include <SPI.h>
54

@@ -37,23 +36,25 @@ void buzz(uint16_t tempo)
3736

3837
void setup()
3938
{
40-
//pinMode(BUZZER_PIN, OUTPUT);
41-
42-
pinMode(BUZZER_PIN, OUTPUT);
43-
analogWrite(BUZZER_PIN, 200);
39+
bool somethingWrong = false;
4440

4541
Serial.begin(9600);
4642

4743
// Quick fix
4844
pinMode(FIX_OUTPUT, OUTPUT);
4945

5046
// Inicializa o servidor
51-
Ethernet.begin(mac, IPAddress(10, 1, 1, 14));
47+
if (DIRECTCONNECTION) {
48+
Ethernet.begin(mac, IPADDRESS, DNSSERVER, GATEWAY, SUBNETMASK);
49+
} else {
50+
Ethernet.begin(mac, IPADDRESS);
51+
}
5252

5353
// Inicializa o cartao SD
5454
if (!SD.begin(4))
5555
{
5656
DEBUG("SD nao iniciou");
57+
somethingWrong = true;
5758
}
5859

5960
// Inicializa o TWI
@@ -70,6 +71,7 @@ void setup()
7071

7172
if (!nfc.getFirmwareVersion()) {
7273
DEBUG("PN532 nao iniciou");
74+
somethingWrong = true;
7375
}
7476

7577
nfc.setPassiveActivationRetries(0x02);
@@ -89,9 +91,14 @@ void setup()
8991
contadorHora = millis();
9092
contadorMensagem = millis();
9193

92-
digitalWrite(BUZZER_PIN, LOW);
93-
9494
delay(1000);
95+
96+
if (somethingWrong)
97+
{
98+
lcd.clear();
99+
lcd.print("ERROR");
100+
while (true);
101+
}
95102
}
96103

97104
void mostraHora()
@@ -108,7 +115,7 @@ void mostraHora()
108115

109116
DateTime tempo = rtc.now();
110117

111-
Serial.println(tempo.unixtime());
118+
DEBUG(tempo.unixtime());
112119

113120
lcd.home();
114121
if (tempo.hour() < 10){
@@ -253,6 +260,50 @@ void loop()
253260

254261
switch (pacote.tipo)
255262
{
263+
case CONSULTAR_EMPREGADOR:
264+
{
265+
char empregador[256];
266+
267+
bool resultado = Arquivos.consultarEmpregador(empregador);
268+
269+
if (!resultado)
270+
{
271+
pacote.enviarNulo(&cliente);
272+
break;
273+
}
274+
275+
strcpy((char*) pacote.buffer, empregador);
276+
pacote.tamanho = strlen((char*) pacote.buffer);
277+
pacote.tipo = EMPREGADOR_CONSULTADO;
278+
pacote.enviar(&cliente);
279+
break;
280+
}
281+
case CADASTRAR_EMPREGADOR:
282+
{
283+
bool resultado = Arquivos.incluirEmpregador((char*)pacote.buffer);
284+
285+
if (!resultado)
286+
{
287+
pacote.enviarNulo(&cliente);
288+
break;
289+
}
290+
291+
pacote.enviar(&cliente, EMPREGADOR_CADASTRADO);
292+
break;
293+
}
294+
case ALTERAR_EMPREGADOR:
295+
{
296+
bool resultado = Arquivos.alterarEmpregador((char*)pacote.buffer);
297+
298+
if (!resultado)
299+
{
300+
pacote.enviarNulo(&cliente);
301+
break;
302+
}
303+
304+
pacote.enviar(&cliente, EMPREGADOR_CADASTRADO);
305+
break;
306+
}
256307
case LISTAR_PONTOS:
257308
{
258309
char fullpath[40] = "PONTO/";
@@ -426,7 +477,7 @@ void loop()
426477
}
427478
case CONSULTAR_COLABORADOR: {
428479

429-
480+
//nao realizado para o prototipo
430481

431482
break;
432483
}
@@ -457,13 +508,13 @@ void loop()
457508
}
458509
case ALTERAR_COLABORADOR: {
459510

460-
511+
//nao realizado para o prototipo
461512

462513
break;
463514
}
464515
case EXCLUIR_COLABORADOR: {
465516

466-
517+
//nao realizado para o prototipo
467518

468519
break;
469520
}

Empregues.vcxproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
<ClCompile>
4444
<WarningLevel>Level3</WarningLevel>
4545
<Optimization>Disabled</Optimization>
46-
<AdditionalIncludeDirectories>C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino;C:\Program Files (x86)\Arduino\hardware\arduino\variants\mega;C:\Program Files (x86)\Arduino\libraries\Wire;C:\Program Files (x86)\Arduino\libraries\Wire\utility;C:\Program Files (x86)\Arduino\libraries\SPI;C:\Program Files (x86)\Arduino\libraries\SPI\utility;C:\Users\Igor\Documents\Arduino\libraries\Adafruit_NFCShield_I2C;C:\Users\Igor\Documents\Arduino\libraries\Adafruit_NFCShield_I2C\utility;C:\Program Files (x86)\Arduino\libraries\LiquidCrystal;C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\utility;C:\Users\Igor\Documents\Arduino\libraries\RTClib;C:\Users\Igor\Documents\Arduino\libraries\RTClib\utility;C:\Program Files (x86)\Arduino\libraries\Ethernet;C:\Program Files (x86)\Arduino\libraries\Ethernet\utility;C:\Program Files (x86)\Arduino\libraries\SD;C:\Program Files (x86)\Arduino\libraries\SD\utility;c:\program files (x86)\arduino\hardware\tools\avr\avr\include\;c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\;c:\program files (x86)\arduino\hardware\tools\avr\avr\;c:\program files (x86)\arduino\hardware\tools\avr\lib\gcc\avr\4.3.2\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
46+
<AdditionalIncludeDirectories>C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino;C:\Program Files (x86)\Arduino\hardware\arduino\variants\mega;C:\Program Files (x86)\Arduino\libraries\Wire;C:\Program Files (x86)\Arduino\libraries\Wire\utility;C:\Program Files (x86)\Arduino\libraries\SPI;C:\Program Files (x86)\Arduino\libraries\SPI\utility;C:\Program Files (x86)\Arduino\libraries\Adafruit_NFCShield_I2C;C:\Program Files (x86)\Arduino\libraries\Adafruit_NFCShield_I2C\utility;C:\Program Files (x86)\Arduino\libraries\Ethernet;C:\Program Files (x86)\Arduino\libraries\Ethernet\utility;C:\Program Files (x86)\Arduino\libraries\SD;C:\Program Files (x86)\Arduino\libraries\SD\utility;C:\Program Files (x86)\Arduino\libraries\LiquidCrystal;C:\Program Files (x86)\Arduino\libraries\LiquidCrystal\utility;C:\Program Files (x86)\Arduino\libraries\RTC;C:\Program Files (x86)\Arduino\libraries\RTC\utility;C:\Program Files (x86)\Arduino\libraries;C:\Program Files (x86)\Arduino\hardware\arduino\libraries;C:\Program Files (x86)\Visual Micro\Visual Micro for Arduino\Micro Platforms\default\debuggers;C:\Users\Igor\Documents\Arduino\Sketches\libraries;c:\program files (x86)\arduino\hardware\tools\avr\avr\include\;c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\;c:\program files (x86)\arduino\hardware\tools\avr\avr\;c:\program files (x86)\arduino\hardware\tools\avr\lib\gcc\avr\4.3.2\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
4747
<ForcedIncludeFiles>C:\Users\Igor\Documents\Arduino\Empregues\Visual Micro\.Empregues.vsarduino.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
4848
<IgnoreStandardIncludePath>true</IgnoreStandardIncludePath>
4949
<PreprocessorDefinitions>__AVR_ATmega2560__;ARDUINO=105;ARDUINO_MAIN;__AVR__;__avr__;F_CPU=16000000L;__cplusplus;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -85,7 +85,7 @@
8585
</ImportGroup>
8686
<ProjectExtensions>
8787
<VisualStudio>
88-
<UserProperties arduino.upload.maximum_size="258048" arduino.upload.speed="115200" visualmicro.package.name="arduino" arduino.board.property_bag="name=Arduino Mega 2560 or Mega ADK&#xD;&#xA;upload.protocol=wiring&#xD;&#xA;upload.maximum_size=258048&#xD;&#xA;upload.speed=115200&#xD;&#xA;bootloader.low_fuses=0xFF&#xD;&#xA;bootloader.high_fuses=0xD8&#xD;&#xA;bootloader.extended_fuses=0xFD&#xD;&#xA;bootloader.path=stk500v2&#xD;&#xA;bootloader.file=stk500boot_v2_mega2560.hex&#xD;&#xA;bootloader.unlock_bits=0x3F&#xD;&#xA;bootloader.lock_bits=0x0F&#xD;&#xA;build.mcu=atmega2560&#xD;&#xA;build.f_cpu=16000000L&#xD;&#xA;build.core=arduino&#xD;&#xA;build.variant=mega&#xD;&#xA;runtime.ide.path=C:\Program Files (x86)\Arduino&#xD;&#xA;build.system.path=C:\Program Files (x86)\Arduino\hardware\arduino\system&#xD;&#xA;runtime.ide.version=105&#xD;&#xA;originalid=mega2560&#xD;&#xA;vm.platform.root.path=C:\Program Files (x86)\Visual Micro\Visual Micro for Arduino\Micro Platforms\arduino10x&#xD;&#xA;vm.core.include=arduino.h&#xD;&#xA;ide.hint=Arduino 0023 and 1.0.x Ide&#xD;&#xA;ide.location.key=Arduino&#xD;&#xA;ide.location.ide.winreg=Arduino 1.0.x Application&#xD;&#xA;ide.location.sketchbook.winreg=Arduino 1.0.x Sketchbook&#xD;&#xA;ide.location.sketchbook.preferences=sketchbook.path&#xD;&#xA;ide.location.sketchbook.default=%MYDOCUMENTS%\arduino&#xD;&#xA;ide.location.preferences=%VM_APPDATA_ROAMING%\arduino\preferences.txt&#xD;&#xA;ide.default.package=arduino&#xD;&#xA;ide.default.platform=avr&#xD;&#xA;ide.multiplatform=true&#xD;&#xA;ide.includes=arduino.h&#xD;&#xA;ide.platformswithoutpackage=true&#xD;&#xA;ide.includes.fallback=wprogram.h&#xD;&#xA;ide.extension=ino&#xD;&#xA;ide.extension.fallback=pde&#xD;&#xA;ide.versionLTEQ=149&#xD;&#xA;ide.exe=arduino.exe&#xD;&#xA;ide.hosts=atmel&#xD;&#xA;ide.url=http://arduino.cc/en/Main/Software&#xD;&#xA;vm.debug=true&#xD;&#xA;software=ARDUINO&#xD;&#xA;ide.appid=arduino10x&#xD;&#xA;location.sketchbook=C:\Users\Igor\Documents\Arduino&#xD;&#xA;build.board=AVR_MEGA2560&#xD;&#xA;vm.boardsource.path=C:\Program Files (x86)\Arduino\hardware\arduino&#xD;&#xA;vm.platformname.name=avr&#xD;&#xA;build.arch=AVR&#xD;&#xA;" visualmicro.application.name="arduino10x" arduino.build.mcu="atmega2560" arduino.upload.protocol="wiring" arduino.build.f_cpu="16000000L" arduino.board.desc="Arduino Mega 2560 or Mega ADK" arduino.board.name="mega2560" arduino.upload.port="COM6" visualmicro.platform.name="avr" arduino.build.core="arduino" />
88+
<UserProperties arduino.upload.maximum_size="258048" arduino.upload.speed="115200" visualmicro.package.name="arduino" arduino.board.property_bag="name=Arduino Mega 2560 or Mega ADK&#xD;&#xA;upload.protocol=wiring&#xD;&#xA;upload.maximum_size=258048&#xD;&#xA;upload.speed=115200&#xD;&#xA;bootloader.low_fuses=0xFF&#xD;&#xA;bootloader.high_fuses=0xD8&#xD;&#xA;bootloader.extended_fuses=0xFD&#xD;&#xA;bootloader.path=stk500v2&#xD;&#xA;bootloader.file=stk500boot_v2_mega2560.hex&#xD;&#xA;bootloader.unlock_bits=0x3F&#xD;&#xA;bootloader.lock_bits=0x0F&#xD;&#xA;build.mcu=atmega2560&#xD;&#xA;build.f_cpu=16000000L&#xD;&#xA;build.core=arduino&#xD;&#xA;build.variant=mega&#xD;&#xA;runtime.ide.path=C:\Program Files (x86)\Arduino&#xD;&#xA;build.system.path=C:\Program Files (x86)\Arduino\hardware\arduino\system&#xD;&#xA;runtime.ide.version=105&#xD;&#xA;originalid=mega2560&#xD;&#xA;vm.platform.root.path=C:\Program Files (x86)\Visual Micro\Visual Micro for Arduino\Micro Platforms\arduino10x&#xD;&#xA;vm.core.include=arduino.h&#xD;&#xA;ide.hint=Arduino 0023 and 1.0.x Ide&#xD;&#xA;ide.location.key=Arduino&#xD;&#xA;ide.location.ide.winreg=Arduino 1.0.x Application&#xD;&#xA;ide.location.sketchbook.winreg=Arduino 1.0.x Sketchbook&#xD;&#xA;ide.location.sketchbook.preferences=sketchbook.path&#xD;&#xA;ide.location.sketchbook.default=%MYDOCUMENTS%\arduino&#xD;&#xA;ide.location.preferences=%VM_APPDATA_ROAMING%\arduino\preferences.txt&#xD;&#xA;ide.default.package=arduino&#xD;&#xA;ide.default.platform=avr&#xD;&#xA;ide.multiplatform=true&#xD;&#xA;ide.includes=arduino.h&#xD;&#xA;ide.platformswithoutpackage=true&#xD;&#xA;ide.includes.fallback=wprogram.h&#xD;&#xA;ide.extension=ino&#xD;&#xA;ide.extension.fallback=pde&#xD;&#xA;ide.versionLTEQ=149&#xD;&#xA;ide.exe=arduino.exe&#xD;&#xA;ide.hosts=atmel&#xD;&#xA;ide.url=http://arduino.cc/en/Main/Software&#xD;&#xA;vm.debug=true&#xD;&#xA;software=ARDUINO&#xD;&#xA;ide.appid=arduino10x&#xD;&#xA;location.sketchbook=C:\Users\Igor\Documents\Arduino&#xD;&#xA;build.board=AVR_MEGA2560&#xD;&#xA;vm.boardsource.path=C:\Program Files (x86)\Arduino\hardware\arduino&#xD;&#xA;vm.platformname.name=avr&#xD;&#xA;build.arch=AVR&#xD;&#xA;" visualmicro.application.name="arduino10x" arduino.build.mcu="atmega2560" arduino.upload.protocol="wiring" arduino.build.f_cpu="16000000L" arduino.board.desc="Arduino Mega 2560 or Mega ADK" arduino.board.name="mega2560" arduino.upload.port="COM4" visualmicro.platform.name="avr" arduino.build.core="arduino" />
8989
</VisualStudio>
9090
</ProjectExtensions>
9191
</Project>

Pacote.cpp

+8-6
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,18 @@ void Pacote::enviarNulo(EthernetClient* cliente)
3030
tipo = PACOTE_NULO;
3131
tamanho = 1;
3232

33-
for (uint8_t i = tamanho; i > 0; i--)
34-
buffer[i + 1] = buffer[i - 1];
33+
enviar(cliente);
34+
}
3535

36-
buffer[0] = tamanho;
37-
buffer[1] = tipo;
36+
void Pacote::enviar(EthernetClient* cliente, byte avisoTipo)
37+
{
38+
buffer[0] = 'a';
39+
tipo = avisoTipo;
40+
tamanho = 1;
3841

39-
cliente->write(buffer, tamanho + 2);
42+
enviar(cliente);
4043
}
4144

42-
4345
void Pacote::insertBefore(char* toInsert)
4446
{
4547
int strInsertLength = strlen(toInsert);

Pacote.h

+6
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@ class Pacote
3131
// \cliente Cliente para enviar o pacote
3232
void enviar(EthernetClient*);
3333

34+
// Envia o pacote como um aviso
35+
//
36+
// \cliente Cliente para enviar o pacote
37+
// \byte Byte de aviso para ser enviado
38+
void enviar(EthernetClient*, byte);
39+
3440
// Envia um pacote nulo como sinalização
3541
// de envio de vários pacotes
3642
//

0 commit comments

Comments
 (0)