Prototipo_SantaAna

Dependencies:   BatteryPanel_St_An Slave_St_An mbed GraphicLCD_St_An ThermalPrinter_St_An LimitSwtiches

Committer:
williequesada
Date:
Tue Jun 04 17:45:47 2019 +0000
Revision:
0:a37ed180e6e3
pablo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
williequesada 0:a37ed180e6e3 1 #include "mbed.h"
williequesada 0:a37ed180e6e3 2 #include <string>
williequesada 0:a37ed180e6e3 3
williequesada 0:a37ed180e6e3 4 #include "BatteryPanel.h"
williequesada 0:a37ed180e6e3 5 #include "ThermalPrinter.h"
williequesada 0:a37ed180e6e3 6 #include "LimitSwitches.h"
williequesada 0:a37ed180e6e3 7 #include "GraphicLCD.h"
williequesada 0:a37ed180e6e3 8 //#include "KeyPad.h"
williequesada 0:a37ed180e6e3 9 #include "Slave.h"
williequesada 0:a37ed180e6e3 10
williequesada 0:a37ed180e6e3 11 #define NO_KEY 0x00
williequesada 0:a37ed180e6e3 12 #define NO_DATA 0x87
williequesada 0:a37ed180e6e3 13
williequesada 0:a37ed180e6e3 14 #define COMMAND_ON 0X70
williequesada 0:a37ed180e6e3 15 #define COMMAND_INIT 0X71
williequesada 0:a37ed180e6e3 16 #define COMMAND_GPRS 0X72
williequesada 0:a37ed180e6e3 17 #define COMMAND_DATA 0X73
williequesada 0:a37ed180e6e3 18 #define COMMAND_POST 0X74
williequesada 0:a37ed180e6e3 19 #define COMMAND_ANSWER 0X75
williequesada 0:a37ed180e6e3 20 #define COMMAND_SIGNAL 0X76
williequesada 0:a37ed180e6e3 21 #define COMMAND_CONNECT 0X77
williequesada 0:a37ed180e6e3 22 #define COMMAND_OFF 0X78
williequesada 0:a37ed180e6e3 23 #define HOSTING_STEP1 0x79
williequesada 0:a37ed180e6e3 24 #define HOSTING_STEP2 0x7A
williequesada 0:a37ed180e6e3 25 #define HOSTING_STEP3 0x7B
williequesada 0:a37ed180e6e3 26 #define HOSTING_STEP4 0x7C
williequesada 0:a37ed180e6e3 27 #define HOSTING_STEP5 0x7D
williequesada 0:a37ed180e6e3 28 #define HOSTING_STEP6 0x7E
williequesada 0:a37ed180e6e3 29 #define HOSTING_STEP7 0x7F
williequesada 0:a37ed180e6e3 30 #define HOSTING_STEP8 0x80
williequesada 0:a37ed180e6e3 31 #define HOSTING_STEP9 0x81
williequesada 0:a37ed180e6e3 32 #define HOSTING_STEP10 0x82
williequesada 0:a37ed180e6e3 33 #define HOSTING_STEP11 0x83
williequesada 0:a37ed180e6e3 34 #define HOSTING_OFF 0x84
williequesada 0:a37ed180e6e3 35 #define NEXT_STEP 0x85
williequesada 0:a37ed180e6e3 36 #define NEXT_SLEEP 0x86
williequesada 0:a37ed180e6e3 37 #define COMMAND_END 0X88
williequesada 0:a37ed180e6e3 38
williequesada 0:a37ed180e6e3 39 #define USER_INIT 0xA0
williequesada 0:a37ed180e6e3 40 #define USER_PLACE 0xA1
williequesada 0:a37ed180e6e3 41 #define USER_CARD 0xA2
williequesada 0:a37ed180e6e3 42 #define USER_TIME 0xA3
williequesada 0:a37ed180e6e3 43 #define USER_DATA 0xA4
williequesada 0:a37ed180e6e3 44 #define USER_PRINT 0xA5
williequesada 0:a37ed180e6e3 45 #define USER_TICKET 0xA6
williequesada 0:a37ed180e6e3 46 #define USER_FINISH 0xA7
williequesada 0:a37ed180e6e3 47 #define USER_POST 0xA8
williequesada 0:a37ed180e6e3 48 #define USER_ANSWER 0xA9
williequesada 0:a37ed180e6e3 49 #define USER_INIT2 0xAA
williequesada 0:a37ed180e6e3 50 #define USER_INIT3 0xB0
williequesada 0:a37ed180e6e3 51 #define USER_INIT4 0xB1
williequesada 0:a37ed180e6e3 52 #define USER_CARD2 0xB2
williequesada 0:a37ed180e6e3 53 #define USER_INIT5 0xB3
williequesada 0:a37ed180e6e3 54 #define USER_CARD3 0xB4
williequesada 0:a37ed180e6e3 55
williequesada 0:a37ed180e6e3 56 #define M_SISTEMA 0x40
williequesada 0:a37ed180e6e3 57 #define M_RED 0x41
williequesada 0:a37ed180e6e3 58 #define M_IMPRESORA 0x42
williequesada 0:a37ed180e6e3 59 #define M_TECLADO 0x43
williequesada 0:a37ed180e6e3 60 #define M_LECTORA 0X44
williequesada 0:a37ed180e6e3 61 #define M_INFORMACION 0x45
williequesada 0:a37ed180e6e3 62 #define M_OFF 0x46
williequesada 0:a37ed180e6e3 63 #define M_PARQUIMETRO 0x47
williequesada 0:a37ed180e6e3 64 #define M_MUNICIPIO 0x48
williequesada 0:a37ed180e6e3 65 #define M_PRECIO 0x49
williequesada 0:a37ed180e6e3 66 #define M_ATRAS 0x4A
williequesada 0:a37ed180e6e3 67 #define M_SENAL 0x4B
williequesada 0:a37ed180e6e3 68 #define M_HOSTING 0x4C
williequesada 0:a37ed180e6e3 69 #define M_CONEXION_SIM 0x4E
williequesada 0:a37ed180e6e3 70 #define M_PAPEL 0x4F
williequesada 0:a37ed180e6e3 71 #define M_IMPRESION 0x50
williequesada 0:a37ed180e6e3 72 #define M_CONEXION_IMP 0x51
williequesada 0:a37ed180e6e3 73 #define M_LECTURA 0x52
williequesada 0:a37ed180e6e3 74 #define M_CONEXION_LEC 0x53
williequesada 0:a37ed180e6e3 75 #define M_PRUEBA_TECLA 0x54
williequesada 0:a37ed180e6e3 76
williequesada 0:a37ed180e6e3 77 BATTERY_PANEL Charger(PF_9, PF_7, PG_1);
williequesada 0:a37ed180e6e3 78 // BATTERY_PANEL Charger(AnalogBattery, AnalogPanel, ControlCarga);
williequesada 0:a37ed180e6e3 79
williequesada 0:a37ed180e6e3 80 GLCD Screen(PD_8,PE_10,PD_9,PE_12,PE_8,PE_14,PE_7,PE_15,PE_9,PE_11,PF_15,PE_13,PF_13,PB_1,PF_14);
williequesada 0:a37ed180e6e3 81 // CLASS GLCD(D1,D2,D3,D4,D5,D6,D7,D8,CD,RESET,CE,WR,RD)
williequesada 0:a37ed180e6e3 82
williequesada 0:a37ed180e6e3 83 // KEYPAD KeyPad(PF_0,PE_3,PF_1,PE_6,PE_5,PF_2,PE_4,PB_6);
williequesada 0:a37ed180e6e3 84 // CLASS KEYPAD(F1,F2,F3,F4,C1,C2,C3,C4);
williequesada 0:a37ed180e6e3 85
williequesada 0:a37ed180e6e3 86 PRINTER Impresora(PC_10,PC_11,PE_0,PB_10,PB_0,PC_2);
williequesada 0:a37ed180e6e3 87 // CLASS PRINTER(TX,RX,PAPER,SELECT,RESET,POWER)
williequesada 0:a37ed180e6e3 88
williequesada 0:a37ed180e6e3 89 SLAVE Slave(PD_5,PD_6,PD_7);
williequesada 0:a37ed180e6e3 90 // CLASS SLAVE(TX,RX,AWAKE)
williequesada 0:a37ed180e6e3 91
williequesada 0:a37ed180e6e3 92 SWITCHES Doors(PC_4,PC_1);
williequesada 0:a37ed180e6e3 93 // CLASS SWITCHES(SENSOR1,SENSOR2)
williequesada 0:a37ed180e6e3 94
williequesada 0:a37ed180e6e3 95 RawSerial CardReader(PC_12,PD_2,9600);
williequesada 0:a37ed180e6e3 96 // Serial CardReader(TX,RX,BAUT);
williequesada 0:a37ed180e6e3 97
williequesada 0:a37ed180e6e3 98 Serial Computer(USBTX,USBRX,9600);
williequesada 0:a37ed180e6e3 99
williequesada 0:a37ed180e6e3 100 InterruptIn Configuracion(USER_BUTTON);
williequesada 0:a37ed180e6e3 101 DigitalOut CardReaderPower(PF_3);//
williequesada 0:a37ed180e6e3 102
williequesada 0:a37ed180e6e3 103 DigitalOut MAX232(PC_8);
williequesada 0:a37ed180e6e3 104 DigitalOut Keypad_F1(PF_0);
williequesada 0:a37ed180e6e3 105 DigitalOut Keypad_F2(PE_3);
williequesada 0:a37ed180e6e3 106 DigitalOut Keypad_F3(PF_1);
williequesada 0:a37ed180e6e3 107 DigitalOut Keypad_F4(PF_8);//
williequesada 0:a37ed180e6e3 108 InterruptIn Keypad_C1(PA_0);//PE_5
williequesada 0:a37ed180e6e3 109 InterruptIn Keypad_C2(PE_6);//PF_2
williequesada 0:a37ed180e6e3 110 InterruptIn Keypad_C3(PC_5);//PE_4
williequesada 0:a37ed180e6e3 111 InterruptIn Keypad_C4(PA_2);//PB_6
williequesada 0:a37ed180e6e3 112
williequesada 0:a37ed180e6e3 113 //-----------------------Conexiones GLCD T6963C---------------------------------
williequesada 0:a37ed180e6e3 114 // 1 2 Vss Vss Ti Ti(NO Conectada)
williequesada 0:a37ed180e6e3 115 // 3 4 Vcc Cte Vc Po
williequesada 0:a37ed180e6e3 116 // 5 6 WR RD D14 D15
williequesada 0:a37ed180e6e3 117 // 7 8 CE CD F12 F13
williequesada 0:a37ed180e6e3 118 // 9 10 -V RST Po E9
williequesada 0:a37ed180e6e3 119 // 11 12 D0 D1 E11 F14
williequesada 0:a37ed180e6e3 120 // 13 14 D2 D3 E13 F15
williequesada 0:a37ed180e6e3 121 // 15 16 D4 D5 D8 D9
williequesada 0:a37ed180e6e3 122 // 17 18 D6 D7 E8 E7
williequesada 0:a37ed180e6e3 123 // 19 20 NC NC
williequesada 0:a37ed180e6e3 124 //
williequesada 0:a37ed180e6e3 125 //-----------Conexiones Usadas--------- //-------Conexiones Usadas STM32-------
williequesada 0:a37ed180e6e3 126 // ____________ // ___________
williequesada 0:a37ed180e6e3 127 // 2 4 6 8 // F8 F5 F2 F0
williequesada 0:a37ed180e6e3 128 // 1 3 5 7 // F9 F7 F3 F1
williequesada 0:a37ed180e6e3 129 // ____________ // ___________
williequesada 0:a37ed180e6e3 130 // APEM // APEM
williequesada 0:a37ed180e6e3 131 // Serial number 12470157 // Serial number 12470157
williequesada 0:a37ed180e6e3 132 //------------------------------------- //-------------------------------------
williequesada 0:a37ed180e6e3 133 //
williequesada 0:a37ed180e6e3 134 //------------------------CONEXIONES FUJITSU SERIAL PRINTER---------------------
williequesada 0:a37ed180e6e3 135 // Conector RS232C(ZHR-8)
williequesada 0:a37ed180e6e3 136 // _ _ _ _ _ _ _ _
williequesada 0:a37ed180e6e3 137 // ! ! ! ! ! ! ! ! ! 1->RXD 2->TXD 3->DTR 4->GND
williequesada 0:a37ed180e6e3 138 // 1 2 3 4 5 6 7 8 5->DST 6->SLCTIN 7->INPRM 8->AFT
williequesada 0:a37ed180e6e3 139 //
williequesada 0:a37ed180e6e3 140 // Conector Power(PHR-2)
williequesada 0:a37ed180e6e3 141 // _ _ _ _ _ _
williequesada 0:a37ed180e6e3 142 // ! ! ! ! ! ! ! 1->VCC Logic Supply 2->GND Logic
williequesada 0:a37ed180e6e3 143 // 1 2 3 4 5 6 4,3->GND Head/Motor 5,6->VCC Head/Motor
williequesada 0:a37ed180e6e3 144
williequesada 0:a37ed180e6e3 145 DigitalOut LedMantenimiento(LED1);
williequesada 0:a37ed180e6e3 146 DigitalOut LedHosting(LED2);
williequesada 0:a37ed180e6e3 147 DigitalOut LedUsuario(LED3);
williequesada 0:a37ed180e6e3 148
williequesada 0:a37ed180e6e3 149 const char SOH=1;
williequesada 0:a37ed180e6e3 150 const char EOT=4;
williequesada 0:a37ed180e6e3 151 const char ADDR=0;
williequesada 0:a37ed180e6e3 152 const char LEN=0;
williequesada 0:a37ed180e6e3 153 const char CARD_POSITION='8';
williequesada 0:a37ed180e6e3 154 const char DEV_RESET=127;
williequesada 0:a37ed180e6e3 155 const char ARM_MODE='P';
williequesada 0:a37ed180e6e3 156 const char ARM_DEBUG='p';
williequesada 0:a37ed180e6e3 157 const char ARM_ABORT=27;
williequesada 0:a37ed180e6e3 158 const char MAG_ISO_T2='R';
williequesada 0:a37ed180e6e3 159 const char BBCA='=';
williequesada 0:a37ed180e6e3 160 const char BBCE='U';
williequesada 0:a37ed180e6e3 161 const char BBCF='u';
williequesada 0:a37ed180e6e3 162 const char BBCG=30;
williequesada 0:a37ed180e6e3 163 const char BBCI='z';
williequesada 0:a37ed180e6e3 164 const char BBCK='W';
williequesada 0:a37ed180e6e3 165 const char R_ACTION='^';
williequesada 0:a37ed180e6e3 166 const char R_ERROR='*';
williequesada 0:a37ed180e6e3 167 const char R_INVALID='!';
williequesada 0:a37ed180e6e3 168 const char R_NO_DATA='+';
williequesada 0:a37ed180e6e3 169 const char R_COMAND_ERROR='?';
williequesada 0:a37ed180e6e3 170 const char R_START=':';
williequesada 0:a37ed180e6e3 171 const char R_POSITION1='q';
williequesada 0:a37ed180e6e3 172 const char R_POSITION2='s';
williequesada 0:a37ed180e6e3 173 const char R_NO_MAG_CARD='>';
williequesada 0:a37ed180e6e3 174 const char R_MAG_DETECT_ON='(';
williequesada 0:a37ed180e6e3 175 const char R_MAG_DETECT_OFF=')';
williequesada 0:a37ed180e6e3 176
williequesada 0:a37ed180e6e3 177 char StateReader[7]= {'0','0','0','0','0','0','0'};
williequesada 0:a37ed180e6e3 178 char CardReader_Buffer[255];
williequesada 0:a37ed180e6e3 179 int CardReader_Counter=0;
williequesada 0:a37ed180e6e3 180
williequesada 0:a37ed180e6e3 181 char Tecla;
williequesada 0:a37ed180e6e3 182 char Tecla_Before;
williequesada 0:a37ed180e6e3 183 char Comando;
williequesada 0:a37ed180e6e3 184 char InByte;
williequesada 0:a37ed180e6e3 185 uint32_t Inicio, Fin, Transcurrido;
williequesada 0:a37ed180e6e3 186
williequesada 0:a37ed180e6e3 187 char Tiempo[6];
williequesada 0:a37ed180e6e3 188 char Importe[8];
williequesada 0:a37ed180e6e3 189 char Espacio[6];
williequesada 0:a37ed180e6e3 190 char HoraRespuesta[6]="00:00";
williequesada 0:a37ed180e6e3 191 char HoraFinal[6]="00:00";
williequesada 0:a37ed180e6e3 192 char Parquimetro[5]="1067";
williequesada 0:a37ed180e6e3 193 char Municipio[10]="Santa Ana";//"San Jose";
williequesada 0:a37ed180e6e3 194 char CodigoMunicipio[3]="01";
williequesada 0:a37ed180e6e3 195 char NumeroRespuesta[7]="000000";
williequesada 0:a37ed180e6e3 196 char FechaRespuesta[11]="00-00-0000";
williequesada 0:a37ed180e6e3 197 char Track2[22]="5303105315252296=2108";
williequesada 0:a37ed180e6e3 198 char Alarmas[7]="AAAAAA";
williequesada 0:a37ed180e6e3 199 char PapelDisponible[5]="0000";
williequesada 0:a37ed180e6e3 200 char Clave[4]= {'4','3','2','1'};
williequesada 0:a37ed180e6e3 201 char RespuestaHosting[7]=" ";
williequesada 0:a37ed180e6e3 202 char HoraHosting[7]=" ";
williequesada 0:a37ed180e6e3 203 char Progreso[3];
williequesada 0:a37ed180e6e3 204 int Counter_Host=1318;
williequesada 0:a37ed180e6e3 205 int Precio=350;
williequesada 0:a37ed180e6e3 206 int TiempoMinutos;
williequesada 0:a37ed180e6e3 207 int Papel=4000;
williequesada 0:a37ed180e6e3 208 int Hostin_Conection=1320;
williequesada 0:a37ed180e6e3 209 bool Alarm=0;
williequesada 0:a37ed180e6e3 210 bool MantenimientoInterruption=0;
williequesada 0:a37ed180e6e3 211 int HoraHostingPantalla=1000;
williequesada 0:a37ed180e6e3 212 int MinutosTranscurrido=11;
williequesada 0:a37ed180e6e3 213 int Battery_State;
williequesada 0:a37ed180e6e3 214 int Battery_State_Before=1;
williequesada 0:a37ed180e6e3 215 float Battery_Voltage;
williequesada 0:a37ed180e6e3 216 float Panel_Voltage;
williequesada 0:a37ed180e6e3 217
williequesada 0:a37ed180e6e3 218
williequesada 0:a37ed180e6e3 219 //LowPowerTicker Host;
williequesada 0:a37ed180e6e3 220 //LowPowerTimer BaseClock;
williequesada 0:a37ed180e6e3 221 Ticker Host;
williequesada 0:a37ed180e6e3 222 Timer BaseClock;
williequesada 0:a37ed180e6e3 223
williequesada 0:a37ed180e6e3 224 void Keypad_Init()
williequesada 0:a37ed180e6e3 225 {
williequesada 0:a37ed180e6e3 226 Tecla_Before=NO_KEY;
williequesada 0:a37ed180e6e3 227 Keypad_F1=0;
williequesada 0:a37ed180e6e3 228 Keypad_F2=0;
williequesada 0:a37ed180e6e3 229 Keypad_F3=0;
williequesada 0:a37ed180e6e3 230 Keypad_F4=0;
williequesada 0:a37ed180e6e3 231 }
williequesada 0:a37ed180e6e3 232
williequesada 0:a37ed180e6e3 233 char KeyPad_Read(void)
williequesada 0:a37ed180e6e3 234 {
williequesada 0:a37ed180e6e3 235 Keypad_F1=1;
williequesada 0:a37ed180e6e3 236 Keypad_F2=0;
williequesada 0:a37ed180e6e3 237 Keypad_F3=0;
williequesada 0:a37ed180e6e3 238 Keypad_F4=0;
williequesada 0:a37ed180e6e3 239 wait_us(10);
williequesada 0:a37ed180e6e3 240 if(Keypad_C1.read()) {
williequesada 0:a37ed180e6e3 241 if(Tecla_Before!='1') {
williequesada 0:a37ed180e6e3 242 Tecla_Before='1';
williequesada 0:a37ed180e6e3 243 return '1';
williequesada 0:a37ed180e6e3 244 } else {
williequesada 0:a37ed180e6e3 245 return NO_KEY;
williequesada 0:a37ed180e6e3 246 }
williequesada 0:a37ed180e6e3 247 }
williequesada 0:a37ed180e6e3 248 if(Keypad_C2.read()) {
williequesada 0:a37ed180e6e3 249 if(Tecla_Before!='2') {
williequesada 0:a37ed180e6e3 250 Tecla_Before='2';
williequesada 0:a37ed180e6e3 251 return '2';
williequesada 0:a37ed180e6e3 252 } else {
williequesada 0:a37ed180e6e3 253 return NO_KEY;
williequesada 0:a37ed180e6e3 254 }
williequesada 0:a37ed180e6e3 255 }
williequesada 0:a37ed180e6e3 256 if(Keypad_C3.read()) {
williequesada 0:a37ed180e6e3 257 if(Tecla_Before!='3') {
williequesada 0:a37ed180e6e3 258 Tecla_Before='3';
williequesada 0:a37ed180e6e3 259 return '3';
williequesada 0:a37ed180e6e3 260 } else {
williequesada 0:a37ed180e6e3 261 return NO_KEY;
williequesada 0:a37ed180e6e3 262 }
williequesada 0:a37ed180e6e3 263 }
williequesada 0:a37ed180e6e3 264 if(Keypad_C4.read()) {
williequesada 0:a37ed180e6e3 265 if(Tecla_Before!='A') {
williequesada 0:a37ed180e6e3 266 Tecla_Before='A';
williequesada 0:a37ed180e6e3 267 return 'A';
williequesada 0:a37ed180e6e3 268 } else {
williequesada 0:a37ed180e6e3 269 return NO_KEY;
williequesada 0:a37ed180e6e3 270 }
williequesada 0:a37ed180e6e3 271 }
williequesada 0:a37ed180e6e3 272
williequesada 0:a37ed180e6e3 273 Keypad_F1=0;
williequesada 0:a37ed180e6e3 274 Keypad_F2=1;
williequesada 0:a37ed180e6e3 275 Keypad_F3=0;
williequesada 0:a37ed180e6e3 276 Keypad_F4=0;
williequesada 0:a37ed180e6e3 277 wait_us(10);
williequesada 0:a37ed180e6e3 278 if(Keypad_C1.read()) {
williequesada 0:a37ed180e6e3 279 if(Tecla_Before!='4') {
williequesada 0:a37ed180e6e3 280 Tecla_Before='4';
williequesada 0:a37ed180e6e3 281 return '4';
williequesada 0:a37ed180e6e3 282 } else {
williequesada 0:a37ed180e6e3 283 return NO_KEY;
williequesada 0:a37ed180e6e3 284 }
williequesada 0:a37ed180e6e3 285 }
williequesada 0:a37ed180e6e3 286 if(Keypad_C2.read()) {
williequesada 0:a37ed180e6e3 287 if(Tecla_Before!='5') {
williequesada 0:a37ed180e6e3 288 Tecla_Before='5';
williequesada 0:a37ed180e6e3 289 return '5';
williequesada 0:a37ed180e6e3 290 } else {
williequesada 0:a37ed180e6e3 291 return NO_KEY;
williequesada 0:a37ed180e6e3 292 }
williequesada 0:a37ed180e6e3 293 }
williequesada 0:a37ed180e6e3 294 if(Keypad_C3.read()) {
williequesada 0:a37ed180e6e3 295 if(Tecla_Before!='6') {
williequesada 0:a37ed180e6e3 296 Tecla_Before='6';
williequesada 0:a37ed180e6e3 297 return '6';
williequesada 0:a37ed180e6e3 298 } else {
williequesada 0:a37ed180e6e3 299 return NO_KEY;
williequesada 0:a37ed180e6e3 300 }
williequesada 0:a37ed180e6e3 301 }
williequesada 0:a37ed180e6e3 302 if(Keypad_C4.read()) {
williequesada 0:a37ed180e6e3 303 if(Tecla_Before!='B') {
williequesada 0:a37ed180e6e3 304 Tecla_Before='B';
williequesada 0:a37ed180e6e3 305 return 'B';
williequesada 0:a37ed180e6e3 306 } else {
williequesada 0:a37ed180e6e3 307 return NO_KEY;
williequesada 0:a37ed180e6e3 308 }
williequesada 0:a37ed180e6e3 309 }
williequesada 0:a37ed180e6e3 310
williequesada 0:a37ed180e6e3 311 Keypad_F1=0;
williequesada 0:a37ed180e6e3 312 Keypad_F2=0;
williequesada 0:a37ed180e6e3 313 Keypad_F3=1;
williequesada 0:a37ed180e6e3 314 Keypad_F4=0;
williequesada 0:a37ed180e6e3 315 wait_us(10);
williequesada 0:a37ed180e6e3 316 if(Keypad_C1.read()) {
williequesada 0:a37ed180e6e3 317 if(Tecla_Before!='7') {
williequesada 0:a37ed180e6e3 318 Tecla_Before='7';
williequesada 0:a37ed180e6e3 319 return '7';
williequesada 0:a37ed180e6e3 320 } else {
williequesada 0:a37ed180e6e3 321 return NO_KEY;
williequesada 0:a37ed180e6e3 322 }
williequesada 0:a37ed180e6e3 323 }
williequesada 0:a37ed180e6e3 324 if(Keypad_C2.read()) {
williequesada 0:a37ed180e6e3 325 if(Tecla_Before!='8') {
williequesada 0:a37ed180e6e3 326 Tecla_Before='8';
williequesada 0:a37ed180e6e3 327 return '8';
williequesada 0:a37ed180e6e3 328 } else {
williequesada 0:a37ed180e6e3 329 return NO_KEY;
williequesada 0:a37ed180e6e3 330 }
williequesada 0:a37ed180e6e3 331 }
williequesada 0:a37ed180e6e3 332 if(Keypad_C3.read()) {
williequesada 0:a37ed180e6e3 333 if(Tecla_Before!='9') {
williequesada 0:a37ed180e6e3 334 Tecla_Before='9';
williequesada 0:a37ed180e6e3 335 return '9';
williequesada 0:a37ed180e6e3 336 } else {
williequesada 0:a37ed180e6e3 337 return NO_KEY;
williequesada 0:a37ed180e6e3 338 }
williequesada 0:a37ed180e6e3 339 }
williequesada 0:a37ed180e6e3 340 if(Keypad_C4.read()) {
williequesada 0:a37ed180e6e3 341 if(Tecla_Before!='C') {
williequesada 0:a37ed180e6e3 342 Tecla_Before='C';
williequesada 0:a37ed180e6e3 343 return 'C';
williequesada 0:a37ed180e6e3 344 } else {
williequesada 0:a37ed180e6e3 345 return NO_KEY;
williequesada 0:a37ed180e6e3 346 }
williequesada 0:a37ed180e6e3 347 }
williequesada 0:a37ed180e6e3 348
williequesada 0:a37ed180e6e3 349 Keypad_F1=0;
williequesada 0:a37ed180e6e3 350 Keypad_F2=0;
williequesada 0:a37ed180e6e3 351 Keypad_F3=0;
williequesada 0:a37ed180e6e3 352 Keypad_F4=1;
williequesada 0:a37ed180e6e3 353 wait_us(10);
williequesada 0:a37ed180e6e3 354 if(Keypad_C1.read()) {
williequesada 0:a37ed180e6e3 355 if(Tecla_Before!='F') {
williequesada 0:a37ed180e6e3 356 Tecla_Before='F';
williequesada 0:a37ed180e6e3 357 return 'F';
williequesada 0:a37ed180e6e3 358 } else {
williequesada 0:a37ed180e6e3 359 return NO_KEY;
williequesada 0:a37ed180e6e3 360 }
williequesada 0:a37ed180e6e3 361 }
williequesada 0:a37ed180e6e3 362 if(Keypad_C2.read()) {
williequesada 0:a37ed180e6e3 363 if(Tecla_Before!='0') {
williequesada 0:a37ed180e6e3 364 Tecla_Before='0';
williequesada 0:a37ed180e6e3 365 return '0';
williequesada 0:a37ed180e6e3 366 } else {
williequesada 0:a37ed180e6e3 367 return NO_KEY;
williequesada 0:a37ed180e6e3 368 }
williequesada 0:a37ed180e6e3 369 }
williequesada 0:a37ed180e6e3 370 if(Keypad_C3.read()) {
williequesada 0:a37ed180e6e3 371 if(Tecla_Before!='E') {
williequesada 0:a37ed180e6e3 372 Tecla_Before='E';
williequesada 0:a37ed180e6e3 373 return 'E';
williequesada 0:a37ed180e6e3 374 } else {
williequesada 0:a37ed180e6e3 375 return NO_KEY;
williequesada 0:a37ed180e6e3 376 }
williequesada 0:a37ed180e6e3 377 }
williequesada 0:a37ed180e6e3 378 if(Keypad_C4.read()) {
williequesada 0:a37ed180e6e3 379 if(Tecla_Before!='D') {
williequesada 0:a37ed180e6e3 380 Tecla_Before='D';
williequesada 0:a37ed180e6e3 381 return 'D';
williequesada 0:a37ed180e6e3 382 } else {
williequesada 0:a37ed180e6e3 383 return NO_KEY;
williequesada 0:a37ed180e6e3 384 }
williequesada 0:a37ed180e6e3 385 }
williequesada 0:a37ed180e6e3 386
williequesada 0:a37ed180e6e3 387 Tecla_Before=NO_KEY;
williequesada 0:a37ed180e6e3 388 return NO_KEY;
williequesada 0:a37ed180e6e3 389 }
williequesada 0:a37ed180e6e3 390
williequesada 0:a37ed180e6e3 391 void KeyPad_InterruptDisable()
williequesada 0:a37ed180e6e3 392 {
williequesada 0:a37ed180e6e3 393 Keypad_C1.disable_irq();
williequesada 0:a37ed180e6e3 394 Keypad_C2.disable_irq();
williequesada 0:a37ed180e6e3 395 Keypad_C3.disable_irq();
williequesada 0:a37ed180e6e3 396 Keypad_C4.disable_irq();
williequesada 0:a37ed180e6e3 397 }
williequesada 0:a37ed180e6e3 398
williequesada 0:a37ed180e6e3 399 void KeyPad_InterruptEnable()
williequesada 0:a37ed180e6e3 400 {
williequesada 0:a37ed180e6e3 401 Keypad_C1.enable_irq();
williequesada 0:a37ed180e6e3 402 Keypad_C2.enable_irq();
williequesada 0:a37ed180e6e3 403 Keypad_C3.enable_irq();
williequesada 0:a37ed180e6e3 404 Keypad_C4.enable_irq();
williequesada 0:a37ed180e6e3 405 Keypad_F1=1;
williequesada 0:a37ed180e6e3 406 Keypad_F2=1;
williequesada 0:a37ed180e6e3 407 Keypad_F3=1;
williequesada 0:a37ed180e6e3 408 Keypad_F4=1;
williequesada 0:a37ed180e6e3 409 }
williequesada 0:a37ed180e6e3 410 //-----------------------------------------------------------------------------------------------------------------------------------------------------
williequesada 0:a37ed180e6e3 411 void PantallaInicio()
williequesada 0:a37ed180e6e3 412 {
williequesada 0:a37ed180e6e3 413 Computer.printf("Pantala de Inicio\n");
williequesada 0:a37ed180e6e3 414
williequesada 0:a37ed180e6e3 415 Screen.Limits();
williequesada 0:a37ed180e6e3 416 Screen.PutString(45,19,"Prueba E-Park");
williequesada 0:a37ed180e6e3 417 Screen.Show();
williequesada 0:a37ed180e6e3 418 wait_ms(2000);
williequesada 0:a37ed180e6e3 419
williequesada 0:a37ed180e6e3 420 Screen.Limits();
williequesada 0:a37ed180e6e3 421 Screen.PutString(58,12,"Grupo Setex");
williequesada 0:a37ed180e6e3 422 Screen.PutString(65,34,"Costa Rica");
williequesada 0:a37ed180e6e3 423 Screen.Show();
williequesada 0:a37ed180e6e3 424 wait_ms(3000);
williequesada 0:a37ed180e6e3 425 }
williequesada 0:a37ed180e6e3 426
williequesada 0:a37ed180e6e3 427 void AlarmasCall(int Periferico,bool Estado)
williequesada 0:a37ed180e6e3 428 {
williequesada 0:a37ed180e6e3 429 // 1 -> Lector
williequesada 0:a37ed180e6e3 430 // 2 -> Impresora
williequesada 0:a37ed180e6e3 431 // 3 -> Papel
williequesada 0:a37ed180e6e3 432 // 4 -> Puerta1
williequesada 0:a37ed180e6e3 433 // 5 -> Puerta2
williequesada 0:a37ed180e6e3 434 // 6 -> Bateria
williequesada 0:a37ed180e6e3 435 if(Estado) {
williequesada 0:a37ed180e6e3 436 Alarmas[Periferico-1]='E';
williequesada 0:a37ed180e6e3 437 Alarm=1;
williequesada 0:a37ed180e6e3 438 } else {
williequesada 0:a37ed180e6e3 439 Alarmas[Periferico-1]='A';
williequesada 0:a37ed180e6e3 440 }
williequesada 0:a37ed180e6e3 441 }
williequesada 0:a37ed180e6e3 442
williequesada 0:a37ed180e6e3 443 char GetTime(char Salida,uint32_t TimeOut)
williequesada 0:a37ed180e6e3 444 {
williequesada 0:a37ed180e6e3 445 bool Salir;
williequesada 0:a37ed180e6e3 446 bool Finalizar;
williequesada 0:a37ed180e6e3 447 bool Agregar;
williequesada 0:a37ed180e6e3 448 bool Restar;
williequesada 0:a37ed180e6e3 449 int PositionTime=3;
williequesada 0:a37ed180e6e3 450 int Hora=PositionTime/6;
williequesada 0:a37ed180e6e3 451 int Minuto=(PositionTime%6)*10;
williequesada 0:a37ed180e6e3 452 int Costo=(PositionTime/3)*Precio;
williequesada 0:a37ed180e6e3 453
williequesada 0:a37ed180e6e3 454 Tiempo[0]='0';
williequesada 0:a37ed180e6e3 455 Tiempo[1]=':';
williequesada 0:a37ed180e6e3 456 Tiempo[2]='3';
williequesada 0:a37ed180e6e3 457 Tiempo[3]='0';
williequesada 0:a37ed180e6e3 458 Tiempo[4]=' ';
williequesada 0:a37ed180e6e3 459 Tiempo[5]='\0';
williequesada 0:a37ed180e6e3 460
williequesada 0:a37ed180e6e3 461 sprintf(Importe,"%i*",Costo);
williequesada 0:a37ed180e6e3 462
williequesada 0:a37ed180e6e3 463 Screen.PutString(15,12,"Tiempo:");
williequesada 0:a37ed180e6e3 464 Screen.PutString(88,12,Tiempo);
williequesada 0:a37ed180e6e3 465 Screen.PutString(15,34,"Precio:");
williequesada 0:a37ed180e6e3 466 Screen.PutString(85,34,Importe);
williequesada 0:a37ed180e6e3 467 Screen.PutString(141,46,"Confirmar");
williequesada 0:a37ed180e6e3 468 Screen.Limits();
williequesada 0:a37ed180e6e3 469 Screen.Show();
williequesada 0:a37ed180e6e3 470
williequesada 0:a37ed180e6e3 471 if(Computer.writeable()) {
williequesada 0:a37ed180e6e3 472 Computer.printf("Tiempo y precio \n");
williequesada 0:a37ed180e6e3 473 Computer.printf(Tiempo);
williequesada 0:a37ed180e6e3 474 Computer.printf(" ");
williequesada 0:a37ed180e6e3 475 Computer.printf(Importe);
williequesada 0:a37ed180e6e3 476 Computer.printf("\n");
williequesada 0:a37ed180e6e3 477 }
williequesada 0:a37ed180e6e3 478 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 479 Keypad_Init();
williequesada 0:a37ed180e6e3 480 while(true) {
williequesada 0:a37ed180e6e3 481
williequesada 0:a37ed180e6e3 482 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 483 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 484 if(Transcurrido>TimeOut) {
williequesada 0:a37ed180e6e3 485 Screen.Clean();
williequesada 0:a37ed180e6e3 486 return USER_FINISH;
williequesada 0:a37ed180e6e3 487 }
williequesada 0:a37ed180e6e3 488
williequesada 0:a37ed180e6e3 489 Tecla=KeyPad_Read();
williequesada 0:a37ed180e6e3 490 if (Tecla!=NO_KEY) { // Se valida que se ingrese una tecla valida por el teclado
williequesada 0:a37ed180e6e3 491 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 492
williequesada 0:a37ed180e6e3 493 Agregar=(Tecla=='E');
williequesada 0:a37ed180e6e3 494 if ((Agregar)&&(PositionTime<72)) { // Sumar 30 minutos, maximos 12 horas
williequesada 0:a37ed180e6e3 495 PositionTime+=3;
williequesada 0:a37ed180e6e3 496 }
williequesada 0:a37ed180e6e3 497 Restar=((Tecla=='F')&&(PositionTime>3)); // Restar 10 minutos, minimo 30 minutos
williequesada 0:a37ed180e6e3 498 if (Restar) {
williequesada 0:a37ed180e6e3 499 PositionTime-=3;
williequesada 0:a37ed180e6e3 500 }
williequesada 0:a37ed180e6e3 501 Salir=(Tecla=='C'); // Cancelar operacion
williequesada 0:a37ed180e6e3 502 if (Salir) {
williequesada 0:a37ed180e6e3 503 Screen.Clean();
williequesada 0:a37ed180e6e3 504 return USER_FINISH;
williequesada 0:a37ed180e6e3 505 }
williequesada 0:a37ed180e6e3 506 Finalizar=(Tecla=='D'); // En caso de confirmacion
williequesada 0:a37ed180e6e3 507 if (Finalizar) {
williequesada 0:a37ed180e6e3 508 Screen.PutString(15,12,"Realizando");
williequesada 0:a37ed180e6e3 509 Screen.PutString(15,34,"Operacion...");
williequesada 0:a37ed180e6e3 510 Screen.PutChar(84,33,'!');
williequesada 0:a37ed180e6e3 511 Screen.Limits();
williequesada 0:a37ed180e6e3 512 Screen.Show();
williequesada 0:a37ed180e6e3 513 return Salida;
williequesada 0:a37ed180e6e3 514 }
williequesada 0:a37ed180e6e3 515
williequesada 0:a37ed180e6e3 516 Hora=PositionTime/6;
williequesada 0:a37ed180e6e3 517 Minuto=(PositionTime%6)*10;
williequesada 0:a37ed180e6e3 518 Costo=(PositionTime/3)*Precio;
williequesada 0:a37ed180e6e3 519 if(Minuto==0) { // Calcular tiempo en horas y minutos
williequesada 0:a37ed180e6e3 520 sprintf(Tiempo,"%i:0%i",Hora,Minuto);
williequesada 0:a37ed180e6e3 521 sprintf(Importe,"%i*",Costo);
williequesada 0:a37ed180e6e3 522 } else {
williequesada 0:a37ed180e6e3 523 sprintf(Tiempo,"%i:%i",Hora,Minuto);
williequesada 0:a37ed180e6e3 524 sprintf(Importe,"%i*",Costo);
williequesada 0:a37ed180e6e3 525 }
williequesada 0:a37ed180e6e3 526 TiempoMinutos=PositionTime*10;
williequesada 0:a37ed180e6e3 527
williequesada 0:a37ed180e6e3 528 //-------Mostrar en Patalla-------
williequesada 0:a37ed180e6e3 529 Screen.PutString(15,12,"Tiempo:");
williequesada 0:a37ed180e6e3 530 Screen.PutString(88,12,Tiempo);
williequesada 0:a37ed180e6e3 531 Screen.PutString(15,34,"Precio:");
williequesada 0:a37ed180e6e3 532 Screen.PutString(85,34,Importe);
williequesada 0:a37ed180e6e3 533 Screen.PutString(141,46,"Confirmar");
williequesada 0:a37ed180e6e3 534 Screen.Limits();
williequesada 0:a37ed180e6e3 535 Screen.Show();
williequesada 0:a37ed180e6e3 536
williequesada 0:a37ed180e6e3 537 if(Computer.writeable()) {
williequesada 0:a37ed180e6e3 538 Computer.printf(Tiempo);
williequesada 0:a37ed180e6e3 539 Computer.printf(" ");
williequesada 0:a37ed180e6e3 540 Computer.printf(Importe);
williequesada 0:a37ed180e6e3 541 Computer.printf("\n");
williequesada 0:a37ed180e6e3 542 }
williequesada 0:a37ed180e6e3 543 }
williequesada 0:a37ed180e6e3 544 }
williequesada 0:a37ed180e6e3 545 }
williequesada 0:a37ed180e6e3 546
williequesada 0:a37ed180e6e3 547 char GetPlace(char Salida,uint32_t TimeOut)
williequesada 0:a37ed180e6e3 548 {
williequesada 0:a37ed180e6e3 549 bool Numero;
williequesada 0:a37ed180e6e3 550 bool Borrar;
williequesada 0:a37ed180e6e3 551 bool Finalizar;
williequesada 0:a37ed180e6e3 552 bool Salir;
williequesada 0:a37ed180e6e3 553 uint8_t PositionPlace=0;
williequesada 0:a37ed180e6e3 554
williequesada 0:a37ed180e6e3 555 Espacio[0]='_';
williequesada 0:a37ed180e6e3 556 Espacio[1]=' ';
williequesada 0:a37ed180e6e3 557 Espacio[2]=' ';
williequesada 0:a37ed180e6e3 558 Espacio[3]=' ';
williequesada 0:a37ed180e6e3 559 Espacio[4]=' ';
williequesada 0:a37ed180e6e3 560 Espacio[5]='\0';
williequesada 0:a37ed180e6e3 561
williequesada 0:a37ed180e6e3 562 Screen.Limits();
williequesada 0:a37ed180e6e3 563 Screen.PutString(15,12,"Numero de espacio:");
williequesada 0:a37ed180e6e3 564 Screen.PutChar(28,11,'!');
williequesada 0:a37ed180e6e3 565 Screen.PutString(15,34,Espacio);
williequesada 0:a37ed180e6e3 566 Screen.Show();
williequesada 0:a37ed180e6e3 567
williequesada 0:a37ed180e6e3 568 if(Computer.writeable()) {
williequesada 0:a37ed180e6e3 569 Computer.printf("Obteniendo numero de espacio:\n");
williequesada 0:a37ed180e6e3 570 Computer.printf("%s \n",Espacio);
williequesada 0:a37ed180e6e3 571 }
williequesada 0:a37ed180e6e3 572 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 573 Keypad_Init();
williequesada 0:a37ed180e6e3 574 while(true) {
williequesada 0:a37ed180e6e3 575
williequesada 0:a37ed180e6e3 576 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 577 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 578 if(Transcurrido>TimeOut) {
williequesada 0:a37ed180e6e3 579 Screen.Clean();
williequesada 0:a37ed180e6e3 580 return USER_FINISH;
williequesada 0:a37ed180e6e3 581 }
williequesada 0:a37ed180e6e3 582
williequesada 0:a37ed180e6e3 583 Tecla=KeyPad_Read();
williequesada 0:a37ed180e6e3 584 if (Tecla!=NO_KEY) { // Se valida que se ingrese una tecla valida
williequesada 0:a37ed180e6e3 585 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 586
williequesada 0:a37ed180e6e3 587 Numero=(Tecla=='0')||(Tecla=='1')||(Tecla=='2')||(Tecla=='3')||(Tecla=='4')||(Tecla=='5')||(Tecla=='6')||(Tecla=='7')||(Tecla=='8')||(Tecla=='9');
williequesada 0:a37ed180e6e3 588 if ((Numero)&&(PositionPlace<4)) { //Agregar un digito
williequesada 0:a37ed180e6e3 589 Espacio[PositionPlace]=Tecla;
williequesada 0:a37ed180e6e3 590 PositionPlace++;
williequesada 0:a37ed180e6e3 591 Espacio[PositionPlace]='_';
williequesada 0:a37ed180e6e3 592 Espacio[4]=' ';
williequesada 0:a37ed180e6e3 593 }
williequesada 0:a37ed180e6e3 594 Borrar=(Tecla=='B')&&(PositionPlace>0);
williequesada 0:a37ed180e6e3 595 if (Borrar) { //Borrar el ultimo digito
williequesada 0:a37ed180e6e3 596 Espacio[PositionPlace]=' ';
williequesada 0:a37ed180e6e3 597 PositionPlace--;
williequesada 0:a37ed180e6e3 598 Espacio[PositionPlace]='_';
williequesada 0:a37ed180e6e3 599 Espacio[4]=' ';
williequesada 0:a37ed180e6e3 600 }
williequesada 0:a37ed180e6e3 601 Salir=(Tecla=='C'); //Cancelar operacion
williequesada 0:a37ed180e6e3 602 if (Salir) {
williequesada 0:a37ed180e6e3 603 Screen.Clean();
williequesada 0:a37ed180e6e3 604 return USER_FINISH;
williequesada 0:a37ed180e6e3 605 }
williequesada 0:a37ed180e6e3 606 Finalizar=((Tecla=='D')&&(PositionPlace==4)); //En caso de confirmacion
williequesada 0:a37ed180e6e3 607 if (Finalizar) {
williequesada 0:a37ed180e6e3 608 return Salida;
williequesada 0:a37ed180e6e3 609 }
williequesada 0:a37ed180e6e3 610 if(PositionPlace==4) { //Se debe confirmar cuando estan los 4 digitos
williequesada 0:a37ed180e6e3 611 Screen.Limits();
williequesada 0:a37ed180e6e3 612 Screen.PutString(15,12,"Numero de espacio:");
williequesada 0:a37ed180e6e3 613 Screen.PutChar(28,11,'!');
williequesada 0:a37ed180e6e3 614 Screen.PutString(15,34,Espacio);
williequesada 0:a37ed180e6e3 615 Screen.PutString(141,46,"Confirmar");
williequesada 0:a37ed180e6e3 616 Screen.Show();
williequesada 0:a37ed180e6e3 617 } else {
williequesada 0:a37ed180e6e3 618 Screen.Limits();
williequesada 0:a37ed180e6e3 619 Screen.PutString(15,12,"Numero de espacio:");
williequesada 0:a37ed180e6e3 620 Screen.PutChar(28,11,'!');
williequesada 0:a37ed180e6e3 621 Screen.PutString(15,34,Espacio);
williequesada 0:a37ed180e6e3 622 Screen.Show();
williequesada 0:a37ed180e6e3 623 }
williequesada 0:a37ed180e6e3 624 Computer.printf("%s\n",Espacio);
williequesada 0:a37ed180e6e3 625 }
williequesada 0:a37ed180e6e3 626 }
williequesada 0:a37ed180e6e3 627 }
williequesada 0:a37ed180e6e3 628
williequesada 0:a37ed180e6e3 629
williequesada 0:a37ed180e6e3 630 void Interrupt_CardReader()
williequesada 0:a37ed180e6e3 631 {
williequesada 0:a37ed180e6e3 632 if(CardReader.readable()) {
williequesada 0:a37ed180e6e3 633 CardReader_Buffer[CardReader_Counter]=CardReader.getc();
williequesada 0:a37ed180e6e3 634 CardReader_Counter++;
williequesada 0:a37ed180e6e3 635 }
williequesada 0:a37ed180e6e3 636 }
williequesada 0:a37ed180e6e3 637
williequesada 0:a37ed180e6e3 638 int ResetCard()
williequesada 0:a37ed180e6e3 639 {
williequesada 0:a37ed180e6e3 640 CardReader_Counter=0;
williequesada 0:a37ed180e6e3 641 StateReader[0]='S';
williequesada 0:a37ed180e6e3 642 Computer.printf("\n Reset card reader");
williequesada 0:a37ed180e6e3 643 if(CardReader.writeable()) {
williequesada 0:a37ed180e6e3 644 CardReader.putc(SOH); // 00000001
williequesada 0:a37ed180e6e3 645 CardReader.putc(ADDR); // 00000000
williequesada 0:a37ed180e6e3 646 CardReader.putc(LEN); // 00000000
williequesada 0:a37ed180e6e3 647 CardReader.putc(LEN); // 00000000
williequesada 0:a37ed180e6e3 648 CardReader.putc(DEV_RESET); // 01111111
williequesada 0:a37ed180e6e3 649 CardReader.putc(EOT); // 00000100
williequesada 0:a37ed180e6e3 650 CardReader.putc(BBCI); // 01111010
williequesada 0:a37ed180e6e3 651 }
williequesada 0:a37ed180e6e3 652 wait_ms(2000);
williequesada 0:a37ed180e6e3 653 for(int i=0; i<=CardReader_Counter; i++) {
williequesada 0:a37ed180e6e3 654 if(CardReader_Buffer[i]==R_START) {
williequesada 0:a37ed180e6e3 655 Computer.printf("\n START"); // Encendido
williequesada 0:a37ed180e6e3 656 StateReader[0]='A';
williequesada 0:a37ed180e6e3 657 AlarmasCall(1,0);
williequesada 0:a37ed180e6e3 658 return 1;
williequesada 0:a37ed180e6e3 659 }
williequesada 0:a37ed180e6e3 660 if(CardReader_Buffer[i]==R_INVALID) {
williequesada 0:a37ed180e6e3 661 Computer.printf("\n INVALID "); // Comando Invalido
williequesada 0:a37ed180e6e3 662 StateReader[0]='N';
williequesada 0:a37ed180e6e3 663 AlarmasCall(1,1);
williequesada 0:a37ed180e6e3 664 return 0;
williequesada 0:a37ed180e6e3 665 }
williequesada 0:a37ed180e6e3 666 if(CardReader_Buffer[i]==R_ERROR) {
williequesada 0:a37ed180e6e3 667 Computer.printf("\n ERROR "); // Error
williequesada 0:a37ed180e6e3 668 StateReader[0]='E';
williequesada 0:a37ed180e6e3 669 AlarmasCall(1,1);
williequesada 0:a37ed180e6e3 670 return 0;
williequesada 0:a37ed180e6e3 671 }
williequesada 0:a37ed180e6e3 672 if(CardReader_Buffer[i]==R_COMAND_ERROR) {
williequesada 0:a37ed180e6e3 673 Computer.printf("\n COMAND ERROR "); // Error en comando
williequesada 0:a37ed180e6e3 674 StateReader[0]='C';
williequesada 0:a37ed180e6e3 675 AlarmasCall(1,1);
williequesada 0:a37ed180e6e3 676 return 0;
williequesada 0:a37ed180e6e3 677 }
williequesada 0:a37ed180e6e3 678 }
williequesada 0:a37ed180e6e3 679 AlarmasCall(1,1);
williequesada 0:a37ed180e6e3 680 return 0;
williequesada 0:a37ed180e6e3 681 }
williequesada 0:a37ed180e6e3 682
williequesada 0:a37ed180e6e3 683 void DetectionCard(uint32_t TimeOut)
williequesada 0:a37ed180e6e3 684 {
williequesada 0:a37ed180e6e3 685 CardReader_Counter=0;
williequesada 0:a37ed180e6e3 686 StateReader[1]='S';
williequesada 0:a37ed180e6e3 687 StateReader[2]='S';
williequesada 0:a37ed180e6e3 688 StateReader[3]='S';
williequesada 0:a37ed180e6e3 689 if(StateReader[0]=='A') { // Se envia el comando Arm Debug
williequesada 0:a37ed180e6e3 690 Computer.printf("\n Introducir tarjeta");
williequesada 0:a37ed180e6e3 691 if(CardReader.writeable()) {
williequesada 0:a37ed180e6e3 692 CardReader.putc(SOH);
williequesada 0:a37ed180e6e3 693 CardReader.putc(ADDR);
williequesada 0:a37ed180e6e3 694 CardReader.putc(LEN);
williequesada 0:a37ed180e6e3 695 CardReader.putc(LEN);
williequesada 0:a37ed180e6e3 696 CardReader.putc(ARM_DEBUG);
williequesada 0:a37ed180e6e3 697 CardReader.putc(EOT);
williequesada 0:a37ed180e6e3 698 CardReader.putc(BBCF);
williequesada 0:a37ed180e6e3 699 }
williequesada 0:a37ed180e6e3 700 wait_ms(500);
williequesada 0:a37ed180e6e3 701 for(int i=0; i<=CardReader_Counter; i++) {
williequesada 0:a37ed180e6e3 702 if(CardReader_Buffer[i]==R_ACTION) {
williequesada 0:a37ed180e6e3 703 Computer.printf("\n ACTION "); // Accion ejecutada
williequesada 0:a37ed180e6e3 704 StateReader[1]='A';
williequesada 0:a37ed180e6e3 705 }
williequesada 0:a37ed180e6e3 706 if(CardReader_Buffer[i]==R_INVALID) {
williequesada 0:a37ed180e6e3 707 Computer.printf("\n INVALID "); // Comando Invalido
williequesada 0:a37ed180e6e3 708 StateReader[1]='N';
williequesada 0:a37ed180e6e3 709 }
williequesada 0:a37ed180e6e3 710 if(CardReader_Buffer[i]==R_ERROR) {
williequesada 0:a37ed180e6e3 711 Computer.printf("\n ERROR "); // Error
williequesada 0:a37ed180e6e3 712 StateReader[1]='E';
williequesada 0:a37ed180e6e3 713 }
williequesada 0:a37ed180e6e3 714 if(CardReader_Buffer[i]==R_COMAND_ERROR) {
williequesada 0:a37ed180e6e3 715 Computer.printf("\n COMAND ERROR ");// Error en comando
williequesada 0:a37ed180e6e3 716 StateReader[1]='C';
williequesada 0:a37ed180e6e3 717 }
williequesada 0:a37ed180e6e3 718 }
williequesada 0:a37ed180e6e3 719 CardReader_Counter=0;
williequesada 0:a37ed180e6e3 720
williequesada 0:a37ed180e6e3 721 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 722 while(CardReader_Counter==0) { // Esperando introduccion de tarjeta
williequesada 0:a37ed180e6e3 723 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 724 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 725 if(StateReader[1]=='C'||StateReader[1]=='E'||StateReader[1]=='N') {
williequesada 0:a37ed180e6e3 726 Computer.printf("\n Error en comando");
williequesada 0:a37ed180e6e3 727 break;
williequesada 0:a37ed180e6e3 728 }
williequesada 0:a37ed180e6e3 729 if(StateReader[1]=='S') {
williequesada 0:a37ed180e6e3 730 Computer.printf("\n Sin respuesta");
williequesada 0:a37ed180e6e3 731 break;
williequesada 0:a37ed180e6e3 732 }
williequesada 0:a37ed180e6e3 733 Tecla=KeyPad_Read();
williequesada 0:a37ed180e6e3 734 if(Tecla=='C') {
williequesada 0:a37ed180e6e3 735 Computer.printf("\n Cancelar operacion");
williequesada 0:a37ed180e6e3 736 if(CardReader.writeable()) {
williequesada 0:a37ed180e6e3 737 CardReader.putc(SOH);
williequesada 0:a37ed180e6e3 738 CardReader.putc(ADDR);
williequesada 0:a37ed180e6e3 739 CardReader.putc(LEN);
williequesada 0:a37ed180e6e3 740 CardReader.putc(LEN);
williequesada 0:a37ed180e6e3 741 CardReader.putc(ARM_ABORT);
williequesada 0:a37ed180e6e3 742 CardReader.putc(EOT);
williequesada 0:a37ed180e6e3 743 CardReader.putc(BBCG);
williequesada 0:a37ed180e6e3 744 }
williequesada 0:a37ed180e6e3 745 break;
williequesada 0:a37ed180e6e3 746 }
williequesada 0:a37ed180e6e3 747 if(Transcurrido>TimeOut) {
williequesada 0:a37ed180e6e3 748 Computer.printf("\n Tiempo de respuesta");
williequesada 0:a37ed180e6e3 749 if(CardReader.writeable()) {
williequesada 0:a37ed180e6e3 750 CardReader.putc(SOH);
williequesada 0:a37ed180e6e3 751 CardReader.putc(ADDR);
williequesada 0:a37ed180e6e3 752 CardReader.putc(LEN);
williequesada 0:a37ed180e6e3 753 CardReader.putc(LEN);
williequesada 0:a37ed180e6e3 754 CardReader.putc(ARM_ABORT);
williequesada 0:a37ed180e6e3 755 CardReader.putc(EOT);
williequesada 0:a37ed180e6e3 756 CardReader.putc(BBCG);
williequesada 0:a37ed180e6e3 757 }
williequesada 0:a37ed180e6e3 758 break;
williequesada 0:a37ed180e6e3 759 }
williequesada 0:a37ed180e6e3 760 }
williequesada 0:a37ed180e6e3 761 wait_ms(1000);
williequesada 0:a37ed180e6e3 762 for(int i=0; i<=CardReader_Counter; i++) {
williequesada 0:a37ed180e6e3 763 Computer.printf("%c",CardReader_Buffer[i]);
williequesada 0:a37ed180e6e3 764 if(CardReader_Buffer[i]==R_NO_MAG_CARD) {
williequesada 0:a37ed180e6e3 765 Computer.printf("\n Deteccion nula "); // No se detecta banda magnetica
williequesada 0:a37ed180e6e3 766 StateReader[2]='N';
williequesada 0:a37ed180e6e3 767 StateReader[3]='N';
williequesada 0:a37ed180e6e3 768 }
williequesada 0:a37ed180e6e3 769 if(CardReader_Buffer[i]==R_MAG_DETECT_ON) {
williequesada 0:a37ed180e6e3 770 Computer.printf("\n Deteccion on "); // Se inicia verificacion de banda
williequesada 0:a37ed180e6e3 771 StateReader[2]='A';
williequesada 0:a37ed180e6e3 772 }
williequesada 0:a37ed180e6e3 773 if(CardReader_Buffer[i]==R_MAG_DETECT_OFF) {
williequesada 0:a37ed180e6e3 774 Computer.printf("\n Deteccion off "); // Se termina verificacion de banda
williequesada 0:a37ed180e6e3 775 StateReader[3]='A';
williequesada 0:a37ed180e6e3 776 }
williequesada 0:a37ed180e6e3 777 if(CardReader_Buffer[i]==R_ACTION) {
williequesada 0:a37ed180e6e3 778 Computer.printf("\n Action arm abort "); // Accion ejecutada
williequesada 0:a37ed180e6e3 779 StateReader[1]='T';
williequesada 0:a37ed180e6e3 780 }
williequesada 0:a37ed180e6e3 781 }
williequesada 0:a37ed180e6e3 782 }
williequesada 0:a37ed180e6e3 783 }
williequesada 0:a37ed180e6e3 784
williequesada 0:a37ed180e6e3 785 int PositionCard()
williequesada 0:a37ed180e6e3 786 {
williequesada 0:a37ed180e6e3 787 CardReader_Counter=0;
williequesada 0:a37ed180e6e3 788 StateReader[4]='S';
williequesada 0:a37ed180e6e3 789 Computer.printf("\n Detectando tarjeta");
williequesada 0:a37ed180e6e3 790 if(CardReader.writeable()) {
williequesada 0:a37ed180e6e3 791 CardReader.putc(SOH);
williequesada 0:a37ed180e6e3 792 CardReader.putc(ADDR);
williequesada 0:a37ed180e6e3 793 CardReader.putc(LEN);
williequesada 0:a37ed180e6e3 794 CardReader.putc(LEN);
williequesada 0:a37ed180e6e3 795 CardReader.putc(CARD_POSITION);
williequesada 0:a37ed180e6e3 796 CardReader.putc(EOT);
williequesada 0:a37ed180e6e3 797 CardReader.putc(BBCA);
williequesada 0:a37ed180e6e3 798 }
williequesada 0:a37ed180e6e3 799 wait_ms(200);
williequesada 0:a37ed180e6e3 800 for(int i=0; i<=CardReader_Counter; i++) {
williequesada 0:a37ed180e6e3 801 Computer.printf("%c",CardReader_Buffer[i]);
williequesada 0:a37ed180e6e3 802 if(CardReader_Buffer[i]==R_POSITION1) {
williequesada 0:a37ed180e6e3 803 Computer.printf("\n Tarjeta en posicion incorrecta "); // Mal colocada la tarjeta
williequesada 0:a37ed180e6e3 804 StateReader[4]='N';
williequesada 0:a37ed180e6e3 805 return 0;
williequesada 0:a37ed180e6e3 806 }
williequesada 0:a37ed180e6e3 807 if(CardReader_Buffer[i]==R_POSITION2) {
williequesada 0:a37ed180e6e3 808 Computer.printf("\n Tarjeta en posicion correcta "); // Bien colocada la tarjeta
williequesada 0:a37ed180e6e3 809 StateReader[4]='A';
williequesada 0:a37ed180e6e3 810 return 1;
williequesada 0:a37ed180e6e3 811 }
williequesada 0:a37ed180e6e3 812 }
williequesada 0:a37ed180e6e3 813 return 0;
williequesada 0:a37ed180e6e3 814 }
williequesada 0:a37ed180e6e3 815
williequesada 0:a37ed180e6e3 816 uint8_t ReadCard(uint32_t TimeOut)
williequesada 0:a37ed180e6e3 817 {
williequesada 0:a37ed180e6e3 818 CardReader_Counter=0;
williequesada 0:a37ed180e6e3 819 StateReader[5]='S';
williequesada 0:a37ed180e6e3 820 StateReader[6]='S';
williequesada 0:a37ed180e6e3 821 if(StateReader[4]=='A') {
williequesada 0:a37ed180e6e3 822 Computer.printf("\n Retirar Tarjeta en un solo movimiento");
williequesada 0:a37ed180e6e3 823 if(CardReader.writeable()) {
williequesada 0:a37ed180e6e3 824 CardReader.putc(SOH);
williequesada 0:a37ed180e6e3 825 CardReader.putc(ADDR);
williequesada 0:a37ed180e6e3 826 CardReader.putc(LEN);
williequesada 0:a37ed180e6e3 827 CardReader.putc(LEN);
williequesada 0:a37ed180e6e3 828 CardReader.putc(ARM_MODE);
williequesada 0:a37ed180e6e3 829 CardReader.putc(EOT);
williequesada 0:a37ed180e6e3 830 CardReader.putc(BBCE);
williequesada 0:a37ed180e6e3 831 }
williequesada 0:a37ed180e6e3 832 wait_ms(300);
williequesada 0:a37ed180e6e3 833 for(int i=0; i<=CardReader_Counter; i++) {
williequesada 0:a37ed180e6e3 834 Computer.printf("%c",CardReader_Buffer[i]);
williequesada 0:a37ed180e6e3 835 if(CardReader_Buffer[i]==R_ACTION) {
williequesada 0:a37ed180e6e3 836 Computer.printf("\n ACTION "); // Accion ejecutada
williequesada 0:a37ed180e6e3 837 StateReader[5]='A';
williequesada 0:a37ed180e6e3 838 }
williequesada 0:a37ed180e6e3 839 if(CardReader_Buffer[i]==R_INVALID) {
williequesada 0:a37ed180e6e3 840 Computer.printf("\n INVALID "); // Comando Invalido
williequesada 0:a37ed180e6e3 841 StateReader[5]='N';
williequesada 0:a37ed180e6e3 842 }
williequesada 0:a37ed180e6e3 843 if(CardReader_Buffer[i]==R_ERROR) {
williequesada 0:a37ed180e6e3 844 Computer.printf("\n ERROR "); // Error
williequesada 0:a37ed180e6e3 845 StateReader[5]='E';
williequesada 0:a37ed180e6e3 846 }
williequesada 0:a37ed180e6e3 847 if(CardReader_Buffer[i]==R_COMAND_ERROR) {
williequesada 0:a37ed180e6e3 848 Computer.printf("\n COMAND ERROR ");// Error en comando
williequesada 0:a37ed180e6e3 849 StateReader[5]='C';
williequesada 0:a37ed180e6e3 850 }
williequesada 0:a37ed180e6e3 851 }
williequesada 0:a37ed180e6e3 852 CardReader_Counter=0;
williequesada 0:a37ed180e6e3 853 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 854 Keypad_Init();
williequesada 0:a37ed180e6e3 855 while(CardReader_Counter==0) { // Esperando introduccion de tarjeta
williequesada 0:a37ed180e6e3 856 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 857 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 858 if(StateReader[5]=='C'||StateReader[5]=='E'||StateReader[5]=='N') {
williequesada 0:a37ed180e6e3 859 Computer.printf("\n Error en comando");
williequesada 0:a37ed180e6e3 860 break;
williequesada 0:a37ed180e6e3 861 }
williequesada 0:a37ed180e6e3 862 if(StateReader[5]=='S') {
williequesada 0:a37ed180e6e3 863 Computer.printf("\n Sin Respuesta");
williequesada 0:a37ed180e6e3 864 break;
williequesada 0:a37ed180e6e3 865 }
williequesada 0:a37ed180e6e3 866 if(Transcurrido>TimeOut) {
williequesada 0:a37ed180e6e3 867 Computer.printf("\n Tiempo de respuesta superado");
williequesada 0:a37ed180e6e3 868 if(CardReader.writeable()) {
williequesada 0:a37ed180e6e3 869 CardReader.putc(SOH);
williequesada 0:a37ed180e6e3 870 CardReader.putc(ADDR);
williequesada 0:a37ed180e6e3 871 CardReader.putc(LEN);
williequesada 0:a37ed180e6e3 872 CardReader.putc(LEN);
williequesada 0:a37ed180e6e3 873 CardReader.putc(ARM_ABORT);
williequesada 0:a37ed180e6e3 874 CardReader.putc(EOT);
williequesada 0:a37ed180e6e3 875 CardReader.putc(BBCG);
williequesada 0:a37ed180e6e3 876 }
williequesada 0:a37ed180e6e3 877 StateReader[5]='T';
williequesada 0:a37ed180e6e3 878 break;
williequesada 0:a37ed180e6e3 879 }
williequesada 0:a37ed180e6e3 880 Tecla=KeyPad_Read();
williequesada 0:a37ed180e6e3 881 if(Tecla=='C') {
williequesada 0:a37ed180e6e3 882 Computer.printf("\n Cancelar operacion");
williequesada 0:a37ed180e6e3 883 if(CardReader.writeable()) {
williequesada 0:a37ed180e6e3 884 CardReader.putc(SOH);
williequesada 0:a37ed180e6e3 885 CardReader.putc(ADDR);
williequesada 0:a37ed180e6e3 886 CardReader.putc(LEN);
williequesada 0:a37ed180e6e3 887 CardReader.putc(LEN);
williequesada 0:a37ed180e6e3 888 CardReader.putc(ARM_ABORT);
williequesada 0:a37ed180e6e3 889 CardReader.putc(EOT);
williequesada 0:a37ed180e6e3 890 CardReader.putc(BBCG);
williequesada 0:a37ed180e6e3 891 }
williequesada 0:a37ed180e6e3 892 StateReader[5]='T';
williequesada 0:a37ed180e6e3 893 return 2;
williequesada 0:a37ed180e6e3 894 }
williequesada 0:a37ed180e6e3 895 }
williequesada 0:a37ed180e6e3 896 wait_ms(200);
williequesada 0:a37ed180e6e3 897 for(int i=0; i<=CardReader_Counter; i++) {
williequesada 0:a37ed180e6e3 898 Computer.printf("%c",CardReader_Buffer[i]);
williequesada 0:a37ed180e6e3 899 Computer.printf("-%2X-",CardReader_Buffer[i]);
williequesada 0:a37ed180e6e3 900 if(CardReader_Buffer[i]==R_NO_MAG_CARD) {
williequesada 0:a37ed180e6e3 901 Computer.printf("\n DETECCION NULA "); // No se detecta banda magnetica
williequesada 0:a37ed180e6e3 902 StateReader[6]='N';
williequesada 0:a37ed180e6e3 903 return 0;
williequesada 0:a37ed180e6e3 904 }
williequesada 0:a37ed180e6e3 905 if(CardReader_Buffer[i]==R_ACTION) {
williequesada 0:a37ed180e6e3 906 Computer.printf("\n TARJETA LEIDA "); // Tarjeta leida
williequesada 0:a37ed180e6e3 907 StateReader[6]='A';
williequesada 0:a37ed180e6e3 908 return 1;
williequesada 0:a37ed180e6e3 909 }
williequesada 0:a37ed180e6e3 910 if(CardReader_Buffer[i]==R_INVALID) {
williequesada 0:a37ed180e6e3 911 Computer.printf("\n INVALID "); // Comando Invalido
williequesada 0:a37ed180e6e3 912 StateReader[6]='N';
williequesada 0:a37ed180e6e3 913 return 0;
williequesada 0:a37ed180e6e3 914 }
williequesada 0:a37ed180e6e3 915 if(CardReader_Buffer[i]==R_ERROR) {
williequesada 0:a37ed180e6e3 916 Computer.printf("\n ERROR "); // Error
williequesada 0:a37ed180e6e3 917 StateReader[6]='E';
williequesada 0:a37ed180e6e3 918 }
williequesada 0:a37ed180e6e3 919 if(CardReader_Buffer[i]==R_COMAND_ERROR) {
williequesada 0:a37ed180e6e3 920 Computer.printf("\n COMAND ERROR "); // Error en comando
williequesada 0:a37ed180e6e3 921 StateReader[6]='C';
williequesada 0:a37ed180e6e3 922 return 0;
williequesada 0:a37ed180e6e3 923 }
williequesada 0:a37ed180e6e3 924 }
williequesada 0:a37ed180e6e3 925 }
williequesada 0:a37ed180e6e3 926 return 0;
williequesada 0:a37ed180e6e3 927 }
williequesada 0:a37ed180e6e3 928
williequesada 0:a37ed180e6e3 929 uint8_t RecibeDataCard()
williequesada 0:a37ed180e6e3 930 {
williequesada 0:a37ed180e6e3 931 if (StateReader[6]=='A') {
williequesada 0:a37ed180e6e3 932 CardReader_Counter=0;
williequesada 0:a37ed180e6e3 933 if(CardReader.writeable()) {
williequesada 0:a37ed180e6e3 934 CardReader.putc(SOH); // 00000001
williequesada 0:a37ed180e6e3 935 CardReader.putc(ADDR); // 00000000
williequesada 0:a37ed180e6e3 936 CardReader.putc(LEN); // 00000000
williequesada 0:a37ed180e6e3 937 CardReader.putc(LEN); // 00000000
williequesada 0:a37ed180e6e3 938 CardReader.putc(MAG_ISO_T2); // 01010101
williequesada 0:a37ed180e6e3 939 CardReader.putc(EOT); // 00000100
williequesada 0:a37ed180e6e3 940 CardReader.putc(BBCK);
williequesada 0:a37ed180e6e3 941 }
williequesada 0:a37ed180e6e3 942 wait_ms(200);
williequesada 0:a37ed180e6e3 943 for(int i=0; i<=CardReader_Counter; i++) {
williequesada 0:a37ed180e6e3 944 if(CardReader_Buffer[i]==R_NO_DATA) {
williequesada 0:a37ed180e6e3 945 Computer.printf("Sin lectura\n");
williequesada 0:a37ed180e6e3 946 return 2;
williequesada 0:a37ed180e6e3 947 }
williequesada 0:a37ed180e6e3 948 if(CardReader_Buffer[i]=='=') {
williequesada 0:a37ed180e6e3 949 Computer.printf("Datos leidos\n");
williequesada 0:a37ed180e6e3 950 for(int i=0; i<21; i++) {
williequesada 0:a37ed180e6e3 951 Track2[i]=CardReader_Buffer[i+4];
williequesada 0:a37ed180e6e3 952 }
williequesada 0:a37ed180e6e3 953 Computer.printf("<%s>",Track2);
williequesada 0:a37ed180e6e3 954 return 1;
williequesada 0:a37ed180e6e3 955 }
williequesada 0:a37ed180e6e3 956 }
williequesada 0:a37ed180e6e3 957 }
williequesada 0:a37ed180e6e3 958 return 0;
williequesada 0:a37ed180e6e3 959 }
williequesada 0:a37ed180e6e3 960
williequesada 0:a37ed180e6e3 961 int RetiroTarjeta(uint32_t TiempoFuera)
williequesada 0:a37ed180e6e3 962 {
williequesada 0:a37ed180e6e3 963 Computer.printf("Retiro tarjeta\n");
williequesada 0:a37ed180e6e3 964 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 965 while(true) {
williequesada 0:a37ed180e6e3 966 if(PositionCard()==0) {
williequesada 0:a37ed180e6e3 967 return 1;
williequesada 0:a37ed180e6e3 968 } else {
williequesada 0:a37ed180e6e3 969 Screen.Limits(); // Se pide al usuario por pantalla el retiro de la tarjeta
williequesada 0:a37ed180e6e3 970 Screen.PutString(15,12,"Retire tarjeta");
williequesada 0:a37ed180e6e3 971 Screen.Show();
williequesada 0:a37ed180e6e3 972 }
williequesada 0:a37ed180e6e3 973 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 974 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 975 if(Transcurrido>TiempoFuera) {
williequesada 0:a37ed180e6e3 976 StateReader[1]='T';
williequesada 0:a37ed180e6e3 977 return 0;
williequesada 0:a37ed180e6e3 978 }
williequesada 0:a37ed180e6e3 979 }
williequesada 0:a37ed180e6e3 980 }
williequesada 0:a37ed180e6e3 981
williequesada 0:a37ed180e6e3 982 uint8_t IngresoTarjeta(uint32_t TimeOut)
williequesada 0:a37ed180e6e3 983 {
williequesada 0:a37ed180e6e3 984 Computer.printf("Funcion ingreso de tarjeta\n");
williequesada 0:a37ed180e6e3 985
williequesada 0:a37ed180e6e3 986 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 987 Keypad_Init();
williequesada 0:a37ed180e6e3 988 while(true) {
williequesada 0:a37ed180e6e3 989 if(PositionCard()) {
williequesada 0:a37ed180e6e3 990 Computer.printf("Tarjeta ingresada\n");
williequesada 0:a37ed180e6e3 991 StateReader[1]='A';
williequesada 0:a37ed180e6e3 992 StateReader[2]='A';
williequesada 0:a37ed180e6e3 993 StateReader[3]='A';
williequesada 0:a37ed180e6e3 994 return 1;
williequesada 0:a37ed180e6e3 995 }
williequesada 0:a37ed180e6e3 996 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 997 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 998 if(Transcurrido>TimeOut) {
williequesada 0:a37ed180e6e3 999 Computer.printf("Tiempo limite\n");
williequesada 0:a37ed180e6e3 1000 StateReader[1]='T';
williequesada 0:a37ed180e6e3 1001 StateReader[2]='N';
williequesada 0:a37ed180e6e3 1002 StateReader[3]='N';
williequesada 0:a37ed180e6e3 1003 return 0;
williequesada 0:a37ed180e6e3 1004 }
williequesada 0:a37ed180e6e3 1005 Tecla=KeyPad_Read();
williequesada 0:a37ed180e6e3 1006 if(Tecla=='C') {
williequesada 0:a37ed180e6e3 1007 Computer.printf("Operacion cancelada\n");
williequesada 0:a37ed180e6e3 1008 StateReader[1]='T';
williequesada 0:a37ed180e6e3 1009 StateReader[2]='N';
williequesada 0:a37ed180e6e3 1010 StateReader[3]='N';
williequesada 0:a37ed180e6e3 1011 return 2;
williequesada 0:a37ed180e6e3 1012 }
williequesada 0:a37ed180e6e3 1013 }
williequesada 0:a37ed180e6e3 1014 }
williequesada 0:a37ed180e6e3 1015
williequesada 0:a37ed180e6e3 1016 uint8_t GetCard(char Salida,uint32_t TimeOutEntrada,uint32_t TimeOutSalida)
williequesada 0:a37ed180e6e3 1017 {
williequesada 0:a37ed180e6e3 1018 //CardReaderStatus=[Reset,ArmDebug,DetectionOn,DetectionOff,Position,Arm,Read]
williequesada 0:a37ed180e6e3 1019 // C-> Command error
williequesada 0:a37ed180e6e3 1020 // A-> Accepted
williequesada 0:a37ed180e6e3 1021 // N-> Invalid
williequesada 0:a37ed180e6e3 1022 // E-> Error
williequesada 0:a37ed180e6e3 1023 // N-> No detection
williequesada 0:a37ed180e6e3 1024 // S-> Without answer
williequesada 0:a37ed180e6e3 1025 // T-> Time out
williequesada 0:a37ed180e6e3 1026
williequesada 0:a37ed180e6e3 1027 Screen.Limits(); // Se pide al usuario por pantalla la intrduccion de la tarjeta
williequesada 0:a37ed180e6e3 1028 Screen.PutString(15,12,"Introduzca tarjeta");
williequesada 0:a37ed180e6e3 1029 Screen.PutString(15,34,"debito o credito");
williequesada 0:a37ed180e6e3 1030 Screen.PutChar(26,33,'!');
williequesada 0:a37ed180e6e3 1031 Screen.PutChar(110,33,'!');
williequesada 0:a37ed180e6e3 1032 Screen.Show();
williequesada 0:a37ed180e6e3 1033
williequesada 0:a37ed180e6e3 1034 if(ResetCard()) {
williequesada 0:a37ed180e6e3 1035 while(true) {
williequesada 0:a37ed180e6e3 1036
williequesada 0:a37ed180e6e3 1037 uint8_t RespuestaIngresoTarjeta = IngresoTarjeta(TimeOutEntrada);
williequesada 0:a37ed180e6e3 1038 if(RespuestaIngresoTarjeta==1) {
williequesada 0:a37ed180e6e3 1039 Screen.Limits();
williequesada 0:a37ed180e6e3 1040 Screen.PutString(15,12,"Retire tarjeta");
williequesada 0:a37ed180e6e3 1041 Screen.Show();
williequesada 0:a37ed180e6e3 1042 }
williequesada 0:a37ed180e6e3 1043 if(RespuestaIngresoTarjeta==0) {
williequesada 0:a37ed180e6e3 1044 Screen.PutString(15,12,"Sin deteccion");
williequesada 0:a37ed180e6e3 1045 Screen.PutChar(111,11,'!');
williequesada 0:a37ed180e6e3 1046 Screen.Limits();
williequesada 0:a37ed180e6e3 1047 Screen.Show();
williequesada 0:a37ed180e6e3 1048 wait(3);
williequesada 0:a37ed180e6e3 1049 Screen.Clean();
williequesada 0:a37ed180e6e3 1050 return USER_FINISH;
williequesada 0:a37ed180e6e3 1051 }
williequesada 0:a37ed180e6e3 1052 if(RespuestaIngresoTarjeta==2) {
williequesada 0:a37ed180e6e3 1053 Screen.Clean();
williequesada 0:a37ed180e6e3 1054 return USER_FINISH;
williequesada 0:a37ed180e6e3 1055 }
williequesada 0:a37ed180e6e3 1056
williequesada 0:a37ed180e6e3 1057 uint8_t RespuestaReadCard=ReadCard(TimeOutSalida);
williequesada 0:a37ed180e6e3 1058 if(RespuestaReadCard==2) {
williequesada 0:a37ed180e6e3 1059 Screen.Clean();
williequesada 0:a37ed180e6e3 1060 return USER_FINISH;
williequesada 0:a37ed180e6e3 1061 }
williequesada 0:a37ed180e6e3 1062
williequesada 0:a37ed180e6e3 1063
williequesada 0:a37ed180e6e3 1064 // Se le la tarjeta al retirarse
williequesada 0:a37ed180e6e3 1065 int DataResult=RecibeDataCard(); // Se corrobora que la informacion de la tajeta es la corre
williequesada 0:a37ed180e6e3 1066 if(DataResult==0) {
williequesada 0:a37ed180e6e3 1067 Screen.PutString(15,12,"Banda magnetica");
williequesada 0:a37ed180e6e3 1068 Screen.PutChar(125,11,'!');
williequesada 0:a37ed180e6e3 1069 Screen.PutString(15,34,"ilegible");
williequesada 0:a37ed180e6e3 1070 Screen.Limits();
williequesada 0:a37ed180e6e3 1071 Screen.Show();
williequesada 0:a37ed180e6e3 1072 wait(2);
williequesada 0:a37ed180e6e3 1073 if(RetiroTarjeta(7000)) {
williequesada 0:a37ed180e6e3 1074 Screen.Limits();
williequesada 0:a37ed180e6e3 1075 Screen.PutString(15,12,"Introduzca tarjeta");
williequesada 0:a37ed180e6e3 1076 Screen.PutString(15,34,"debito o credito");
williequesada 0:a37ed180e6e3 1077 Screen.PutChar(26,33,'!');
williequesada 0:a37ed180e6e3 1078 Screen.PutChar(110,33,'!');
williequesada 0:a37ed180e6e3 1079 Screen.Show();
williequesada 0:a37ed180e6e3 1080 } else {
williequesada 0:a37ed180e6e3 1081 Screen.Clean();
williequesada 0:a37ed180e6e3 1082 return USER_FINISH;
williequesada 0:a37ed180e6e3 1083 }
williequesada 0:a37ed180e6e3 1084 }
williequesada 0:a37ed180e6e3 1085 if(DataResult==1) {
williequesada 0:a37ed180e6e3 1086 return Salida;
williequesada 0:a37ed180e6e3 1087 }
williequesada 0:a37ed180e6e3 1088 if(DataResult==2) {
williequesada 0:a37ed180e6e3 1089 Screen.PutString(15,12,"Banda magnetica");
williequesada 0:a37ed180e6e3 1090 Screen.PutChar(125,11,'!');
williequesada 0:a37ed180e6e3 1091 Screen.PutString(15,34,"ilegible");
williequesada 0:a37ed180e6e3 1092 Screen.Limits();
williequesada 0:a37ed180e6e3 1093 Screen.Show();
williequesada 0:a37ed180e6e3 1094 wait(2);
williequesada 0:a37ed180e6e3 1095 if(RetiroTarjeta(7000)) {
williequesada 0:a37ed180e6e3 1096 Screen.Limits();
williequesada 0:a37ed180e6e3 1097 Screen.PutString(15,12,"Introduzca tarjeta");
williequesada 0:a37ed180e6e3 1098 Screen.PutString(15,34,"debito o credito");
williequesada 0:a37ed180e6e3 1099 Screen.PutChar(26,33,'!');
williequesada 0:a37ed180e6e3 1100 Screen.PutChar(110,33,'!');
williequesada 0:a37ed180e6e3 1101 Screen.Show();
williequesada 0:a37ed180e6e3 1102 } else {
williequesada 0:a37ed180e6e3 1103 Screen.Clean();
williequesada 0:a37ed180e6e3 1104 return USER_FINISH;
williequesada 0:a37ed180e6e3 1105 }
williequesada 0:a37ed180e6e3 1106 }
williequesada 0:a37ed180e6e3 1107 }
williequesada 0:a37ed180e6e3 1108 } else {
williequesada 0:a37ed180e6e3 1109 Screen.Limits();
williequesada 0:a37ed180e6e3 1110 Screen.PutString(15,20,"Error");
williequesada 0:a37ed180e6e3 1111 Screen.Show();
williequesada 0:a37ed180e6e3 1112 wait(3);
williequesada 0:a37ed180e6e3 1113 Screen.Clean();
williequesada 0:a37ed180e6e3 1114 return USER_FINISH;
williequesada 0:a37ed180e6e3 1115 }
williequesada 0:a37ed180e6e3 1116 }
williequesada 0:a37ed180e6e3 1117
williequesada 0:a37ed180e6e3 1118 uint8_t Continuar(uint8_t Salida,uint32_t TimeOut)
williequesada 0:a37ed180e6e3 1119 {
williequesada 0:a37ed180e6e3 1120 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1121 while(true) {
williequesada 0:a37ed180e6e3 1122 if(Slave.Answer()) {
williequesada 0:a37ed180e6e3 1123 Computer.printf("Continuar\n");
williequesada 0:a37ed180e6e3 1124 return Salida;
williequesada 0:a37ed180e6e3 1125 }
williequesada 0:a37ed180e6e3 1126 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1127 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 1128 if(Transcurrido>TimeOut) {
williequesada 0:a37ed180e6e3 1129 Computer.printf("Continuar tiempo\n");
williequesada 0:a37ed180e6e3 1130 Screen.PutString(15,12,"Operacion");
williequesada 0:a37ed180e6e3 1131 Screen.PutChar(84,11,'!');
williequesada 0:a37ed180e6e3 1132 Screen.PutString(15,34,"no disponible");
williequesada 0:a37ed180e6e3 1133 Screen.Limits();
williequesada 0:a37ed180e6e3 1134 Screen.Show();
williequesada 0:a37ed180e6e3 1135 wait(4);
williequesada 0:a37ed180e6e3 1136 return USER_FINISH;
williequesada 0:a37ed180e6e3 1137 }
williequesada 0:a37ed180e6e3 1138
williequesada 0:a37ed180e6e3 1139 }
williequesada 0:a37ed180e6e3 1140 }
williequesada 0:a37ed180e6e3 1141 uint8_t Respuesta1(uint8_t Salida,uint32_t TimeOut)
williequesada 0:a37ed180e6e3 1142 {
williequesada 0:a37ed180e6e3 1143 Screen.PutString(15,12,"Realizando");
williequesada 0:a37ed180e6e3 1144 Screen.PutString(15,34,"Operacion...");
williequesada 0:a37ed180e6e3 1145 Screen.PutChar(84,33,'!');
williequesada 0:a37ed180e6e3 1146 Screen.Limits();
williequesada 0:a37ed180e6e3 1147 Screen.Show();
williequesada 0:a37ed180e6e3 1148 wait_ms(TimeOut);
williequesada 0:a37ed180e6e3 1149 return Salida;
williequesada 0:a37ed180e6e3 1150 }
williequesada 0:a37ed180e6e3 1151 uint8_t Respuesta2(uint8_t Salida,uint32_t TimeOut)
williequesada 0:a37ed180e6e3 1152 {
williequesada 0:a37ed180e6e3 1153 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1154 while(true) {
williequesada 0:a37ed180e6e3 1155 if(Slave.Mensaje()) {
williequesada 0:a37ed180e6e3 1156 Computer.printf("Available\n");
williequesada 0:a37ed180e6e3 1157 wait_ms(100);
williequesada 0:a37ed180e6e3 1158 break;
williequesada 0:a37ed180e6e3 1159 }
williequesada 0:a37ed180e6e3 1160 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1161 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 1162 if(Transcurrido>TimeOut) {
williequesada 0:a37ed180e6e3 1163 break;
williequesada 0:a37ed180e6e3 1164 }
williequesada 0:a37ed180e6e3 1165 }
williequesada 0:a37ed180e6e3 1166 InByte=Slave.Recibe();
williequesada 0:a37ed180e6e3 1167 Computer.printf("%c",InByte);
williequesada 0:a37ed180e6e3 1168 if(InByte=='A') {
williequesada 0:a37ed180e6e3 1169 Screen.PutString(15,12,"Operacion");
williequesada 0:a37ed180e6e3 1170 Screen.PutChar(84,11,'!');
williequesada 0:a37ed180e6e3 1171 Screen.PutString(15,34,"Aceptada");
williequesada 0:a37ed180e6e3 1172 Screen.Limits();
williequesada 0:a37ed180e6e3 1173 Screen.Show();
williequesada 0:a37ed180e6e3 1174 wait_ms(1000);
williequesada 0:a37ed180e6e3 1175 FechaRespuesta[9]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1176 FechaRespuesta[9]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1177 FechaRespuesta[8]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1178 FechaRespuesta[7]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1179 FechaRespuesta[6]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1180 FechaRespuesta[5]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1181 FechaRespuesta[4]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1182 FechaRespuesta[3]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1183 FechaRespuesta[2]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1184 FechaRespuesta[1]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1185 FechaRespuesta[0]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1186 HoraRespuesta[4]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1187 HoraRespuesta[4]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1188 HoraRespuesta[3]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1189 HoraRespuesta[2]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1190 HoraRespuesta[1]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1191 HoraRespuesta[0]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1192 NumeroRespuesta[5]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1193 NumeroRespuesta[5]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1194 NumeroRespuesta[4]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1195 NumeroRespuesta[3]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1196 NumeroRespuesta[2]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1197 NumeroRespuesta[1]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1198 NumeroRespuesta[0]=Slave.Recibe();
williequesada 0:a37ed180e6e3 1199 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1200 while(true) {
williequesada 0:a37ed180e6e3 1201 InByte=Slave.Recibe();
williequesada 0:a37ed180e6e3 1202 if(InByte==NO_DATA) {
williequesada 0:a37ed180e6e3 1203 break;
williequesada 0:a37ed180e6e3 1204 }
williequesada 0:a37ed180e6e3 1205 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1206 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 1207 if(Transcurrido>100) {
williequesada 0:a37ed180e6e3 1208 break;
williequesada 0:a37ed180e6e3 1209 }
williequesada 0:a37ed180e6e3 1210 }
williequesada 0:a37ed180e6e3 1211 Computer.printf("<%s> <%s> <%s>\n",FechaRespuesta,HoraRespuesta,NumeroRespuesta);
williequesada 0:a37ed180e6e3 1212 return Salida;
williequesada 0:a37ed180e6e3 1213 } else {
williequesada 0:a37ed180e6e3 1214 Screen.PutString(15,12,"Operacion");
williequesada 0:a37ed180e6e3 1215 Screen.PutString(15,34,"Rechazada");
williequesada 0:a37ed180e6e3 1216 Screen.PutChar(84,11,'!');
williequesada 0:a37ed180e6e3 1217 Screen.Limits();
williequesada 0:a37ed180e6e3 1218 Screen.Show();
williequesada 0:a37ed180e6e3 1219 wait_ms(3000);
williequesada 0:a37ed180e6e3 1220 return USER_FINISH;
williequesada 0:a37ed180e6e3 1221 }
williequesada 0:a37ed180e6e3 1222 }
williequesada 0:a37ed180e6e3 1223
williequesada 0:a37ed180e6e3 1224 void CalculoHoraFinal()
williequesada 0:a37ed180e6e3 1225 {
williequesada 0:a37ed180e6e3 1226
williequesada 0:a37ed180e6e3 1227 int MinutoEstacionamiento=TiempoMinutos%60;
williequesada 0:a37ed180e6e3 1228 int HoraEstacionamiento=TiempoMinutos/60;
williequesada 0:a37ed180e6e3 1229
williequesada 0:a37ed180e6e3 1230 int HoraServicio=((uint8_t)HoraRespuesta[0]-48)*10+((uint8_t)HoraRespuesta[1]-48);
williequesada 0:a37ed180e6e3 1231 int MinutoServicio=((uint8_t)HoraRespuesta[3]-48)*10+((uint8_t)HoraRespuesta[4]-48);
williequesada 0:a37ed180e6e3 1232
williequesada 0:a37ed180e6e3 1233 if(HoraServicio<8){
williequesada 0:a37ed180e6e3 1234 HoraServicio=8;
williequesada 0:a37ed180e6e3 1235 MinutoServicio=0;
williequesada 0:a37ed180e6e3 1236 }
williequesada 0:a37ed180e6e3 1237
williequesada 0:a37ed180e6e3 1238 int MinutosTotal = MinutoServicio + MinutoEstacionamiento;
williequesada 0:a37ed180e6e3 1239 int HorasTotal = HoraServicio + HoraEstacionamiento;
williequesada 0:a37ed180e6e3 1240
williequesada 0:a37ed180e6e3 1241 while(MinutosTotal >= 60) {
williequesada 0:a37ed180e6e3 1242 MinutosTotal = MinutosTotal - 60;
williequesada 0:a37ed180e6e3 1243 HorasTotal = HorasTotal + 1;
williequesada 0:a37ed180e6e3 1244 }
williequesada 0:a37ed180e6e3 1245 if(HorasTotal>=24) {
williequesada 0:a37ed180e6e3 1246 HorasTotal=HorasTotal-24;
williequesada 0:a37ed180e6e3 1247 }
williequesada 0:a37ed180e6e3 1248
williequesada 0:a37ed180e6e3 1249 if(MinutosTotal<10) { // Calcular tiempo en horas y minutos
williequesada 0:a37ed180e6e3 1250 sprintf(HoraFinal,"%i:0%i",HorasTotal,MinutosTotal);
williequesada 0:a37ed180e6e3 1251 } else {
williequesada 0:a37ed180e6e3 1252 sprintf(HoraFinal,"%i:%i",HorasTotal,MinutosTotal);
williequesada 0:a37ed180e6e3 1253 }
williequesada 0:a37ed180e6e3 1254
williequesada 0:a37ed180e6e3 1255 }
williequesada 0:a37ed180e6e3 1256
williequesada 0:a37ed180e6e3 1257 uint8_t Imprimir(uint8_t Salida)
williequesada 0:a37ed180e6e3 1258 {
williequesada 0:a37ed180e6e3 1259 int PrinterState;
williequesada 0:a37ed180e6e3 1260 PrinterState = Impresora.Power(1);
williequesada 0:a37ed180e6e3 1261 Screen.PutString(15,12,"Imprimiendo");
williequesada 0:a37ed180e6e3 1262 Screen.PutString(15,34,"Tiquete");
williequesada 0:a37ed180e6e3 1263 Screen.Limits();
williequesada 0:a37ed180e6e3 1264 Screen.Show();
williequesada 0:a37ed180e6e3 1265
williequesada 0:a37ed180e6e3 1266 CalculoHoraFinal();
williequesada 0:a37ed180e6e3 1267 if(PrinterState){
williequesada 0:a37ed180e6e3 1268 PrinterState=Impresora.Reset();
williequesada 0:a37ed180e6e3 1269 }
williequesada 0:a37ed180e6e3 1270
williequesada 0:a37ed180e6e3 1271 if(PrinterState==0) {
williequesada 0:a37ed180e6e3 1272 Screen.Limits();
williequesada 0:a37ed180e6e3 1273 Screen.PutString(15,12,"Operacion aceptada");
williequesada 0:a37ed180e6e3 1274 Screen.PutChar(84,11,'!');
williequesada 0:a37ed180e6e3 1275 Screen.PutString(15,34,"Tiquete no disponible");
williequesada 0:a37ed180e6e3 1276 Screen.Limits();
williequesada 0:a37ed180e6e3 1277 Screen.Show();
williequesada 0:a37ed180e6e3 1278 wait(2);
williequesada 0:a37ed180e6e3 1279 Computer.printf("Error.\n");
williequesada 0:a37ed180e6e3 1280 Impresora.End();
williequesada 0:a37ed180e6e3 1281 AlarmasCall(2,1);
williequesada 0:a37ed180e6e3 1282 wait(4);
williequesada 0:a37ed180e6e3 1283 }
williequesada 0:a37ed180e6e3 1284 if(PrinterState==2) {
williequesada 0:a37ed180e6e3 1285 Screen.Limits();
williequesada 0:a37ed180e6e3 1286 Screen.PutString(15,12,"Operacion aceptada");
williequesada 0:a37ed180e6e3 1287 Screen.PutChar(84,11,'!');
williequesada 0:a37ed180e6e3 1288 Screen.PutString(15,34,"Tiquete no disponible");
williequesada 0:a37ed180e6e3 1289 Screen.Limits();
williequesada 0:a37ed180e6e3 1290 Screen.Show();
williequesada 0:a37ed180e6e3 1291 wait(2);
williequesada 0:a37ed180e6e3 1292 Computer.printf("Error.\n");
williequesada 0:a37ed180e6e3 1293 Impresora.End();
williequesada 0:a37ed180e6e3 1294 AlarmasCall(2,1);
williequesada 0:a37ed180e6e3 1295 wait(4);
williequesada 0:a37ed180e6e3 1296 }
williequesada 0:a37ed180e6e3 1297 if(PrinterState==1) {
williequesada 0:a37ed180e6e3 1298
williequesada 0:a37ed180e6e3 1299 PrinterState=Impresora.Output(FechaRespuesta,HoraRespuesta,HoraFinal,Espacio,Tiempo,NumeroRespuesta,Importe);
williequesada 0:a37ed180e6e3 1300 if(PrinterState==0) {
williequesada 0:a37ed180e6e3 1301 Computer.printf("Alarma Output\n");
williequesada 0:a37ed180e6e3 1302 AlarmasCall(2,1);
williequesada 0:a37ed180e6e3 1303 } else {
williequesada 0:a37ed180e6e3 1304 AlarmasCall(2,0);
williequesada 0:a37ed180e6e3 1305 }
williequesada 0:a37ed180e6e3 1306
williequesada 0:a37ed180e6e3 1307 PrinterState=Impresora.Paper(450);
williequesada 0:a37ed180e6e3 1308 if(PrinterState==0) {
williequesada 0:a37ed180e6e3 1309 Computer.printf("Alarma Papel\n");
williequesada 0:a37ed180e6e3 1310 AlarmasCall(2,1);
williequesada 0:a37ed180e6e3 1311 } else {
williequesada 0:a37ed180e6e3 1312 AlarmasCall(2,0);
williequesada 0:a37ed180e6e3 1313 }
williequesada 0:a37ed180e6e3 1314
williequesada 0:a37ed180e6e3 1315 PrinterState=Impresora.Cutter(1);
williequesada 0:a37ed180e6e3 1316 if(PrinterState==0) {
williequesada 0:a37ed180e6e3 1317 Computer.printf("Alarma Cutter\n");
williequesada 0:a37ed180e6e3 1318 AlarmasCall(2,1);
williequesada 0:a37ed180e6e3 1319 } else {
williequesada 0:a37ed180e6e3 1320 AlarmasCall(2,0);
williequesada 0:a37ed180e6e3 1321 }
williequesada 0:a37ed180e6e3 1322
williequesada 0:a37ed180e6e3 1323 Screen.PutString(15,12,"Retire");
williequesada 0:a37ed180e6e3 1324 Screen.PutString(15,34,"Tiquete");
williequesada 0:a37ed180e6e3 1325 Screen.Limits();
williequesada 0:a37ed180e6e3 1326 Screen.Show();
williequesada 0:a37ed180e6e3 1327 wait(1);
williequesada 0:a37ed180e6e3 1328
williequesada 0:a37ed180e6e3 1329 PrinterState=Impresora.End();
williequesada 0:a37ed180e6e3 1330 if(PrinterState==0) {
williequesada 0:a37ed180e6e3 1331 Computer.printf("Alarma Cutter\n");
williequesada 0:a37ed180e6e3 1332 AlarmasCall(2,1);
williequesada 0:a37ed180e6e3 1333 } else {
williequesada 0:a37ed180e6e3 1334 AlarmasCall(2,0);
williequesada 0:a37ed180e6e3 1335 }
williequesada 0:a37ed180e6e3 1336 wait(1);
williequesada 0:a37ed180e6e3 1337 }
williequesada 0:a37ed180e6e3 1338
williequesada 0:a37ed180e6e3 1339 PrinterState=Impresora.Power(0);
williequesada 0:a37ed180e6e3 1340 int TiquetesDisponibles=Papel-Impresora.Ticket(1);
williequesada 0:a37ed180e6e3 1341 if(TiquetesDisponibles<200) {
williequesada 0:a37ed180e6e3 1342 sprintf(PapelDisponible,"%i",TiquetesDisponibles);
williequesada 0:a37ed180e6e3 1343 AlarmasCall(3,1);
williequesada 0:a37ed180e6e3 1344 } else {
williequesada 0:a37ed180e6e3 1345 sprintf(PapelDisponible,"%i",TiquetesDisponibles);
williequesada 0:a37ed180e6e3 1346 AlarmasCall(3,0);
williequesada 0:a37ed180e6e3 1347 }
williequesada 0:a37ed180e6e3 1348 return Salida;
williequesada 0:a37ed180e6e3 1349 }
williequesada 0:a37ed180e6e3 1350
williequesada 0:a37ed180e6e3 1351
williequesada 0:a37ed180e6e3 1352 void Usuario_OperacionConsecutiva()
williequesada 0:a37ed180e6e3 1353 {
williequesada 0:a37ed180e6e3 1354 uint8_t Comando=USER_INIT;
williequesada 0:a37ed180e6e3 1355 if(Comando==USER_INIT) {
williequesada 0:a37ed180e6e3 1356 Computer.printf("Usuario operacion consecutiva\n");
williequesada 0:a37ed180e6e3 1357 Screen.On(HoraHostingPantalla);
williequesada 0:a37ed180e6e3 1358 wait_ms(20);
williequesada 0:a37ed180e6e3 1359 Screen.Init();
williequesada 0:a37ed180e6e3 1360 Screen.Clean();
williequesada 0:a37ed180e6e3 1361 BaseClock.reset();
williequesada 0:a37ed180e6e3 1362 Comando=USER_PLACE;
williequesada 0:a37ed180e6e3 1363 }
williequesada 0:a37ed180e6e3 1364
williequesada 0:a37ed180e6e3 1365 if(Comando==USER_PLACE) {
williequesada 0:a37ed180e6e3 1366 Computer.printf("Usuario espacio\n");
williequesada 0:a37ed180e6e3 1367 CardReaderPower=1;
williequesada 0:a37ed180e6e3 1368 Comando=GetPlace(USER_CARD,15000);
williequesada 0:a37ed180e6e3 1369 if(Comando==USER_CARD) {
williequesada 0:a37ed180e6e3 1370 Slave.Command(COMMAND_INIT);
williequesada 0:a37ed180e6e3 1371 }
williequesada 0:a37ed180e6e3 1372 }
williequesada 0:a37ed180e6e3 1373
williequesada 0:a37ed180e6e3 1374 if(Comando==USER_CARD) {
williequesada 0:a37ed180e6e3 1375 Computer.printf("Usuario tarjeta\n");
williequesada 0:a37ed180e6e3 1376 Comando=GetCard(USER_TIME,20000,5000);
williequesada 0:a37ed180e6e3 1377 if(Comando==USER_TIME) {
williequesada 0:a37ed180e6e3 1378 Slave.Command(COMMAND_GPRS);
williequesada 0:a37ed180e6e3 1379 }
williequesada 0:a37ed180e6e3 1380 }
williequesada 0:a37ed180e6e3 1381
williequesada 0:a37ed180e6e3 1382 if(Comando==USER_TIME) {
williequesada 0:a37ed180e6e3 1383 Computer.printf("Usuario tiempo\n");
williequesada 0:a37ed180e6e3 1384 CardReaderPower=0;
williequesada 0:a37ed180e6e3 1385 Comando=GetTime(USER_DATA,15000);
williequesada 0:a37ed180e6e3 1386 if (Comando==USER_FINISH){
williequesada 0:a37ed180e6e3 1387 Slave.Command(COMMAND_END);
williequesada 0:a37ed180e6e3 1388 }
williequesada 0:a37ed180e6e3 1389 Comando=Continuar(Comando,7000);
williequesada 0:a37ed180e6e3 1390 }
williequesada 0:a37ed180e6e3 1391
williequesada 0:a37ed180e6e3 1392 if(Comando==USER_DATA) {
williequesada 0:a37ed180e6e3 1393 Computer.printf("Usuario datos\n");
williequesada 0:a37ed180e6e3 1394 Slave.Command(COMMAND_DATA);
williequesada 0:a37ed180e6e3 1395 Slave.Send_User(Parquimetro,Municipio,TiempoMinutos,Espacio,Track2);
williequesada 0:a37ed180e6e3 1396 Comando=Continuar(USER_POST,20000);
williequesada 0:a37ed180e6e3 1397 }
williequesada 0:a37ed180e6e3 1398
williequesada 0:a37ed180e6e3 1399 if(Comando==USER_POST) {
williequesada 0:a37ed180e6e3 1400 Computer.printf("Usuario operacion\n");
williequesada 0:a37ed180e6e3 1401 Slave.Command(COMMAND_POST);
williequesada 0:a37ed180e6e3 1402 Comando=Respuesta1(USER_ANSWER,3000);
williequesada 0:a37ed180e6e3 1403 }
williequesada 0:a37ed180e6e3 1404
williequesada 0:a37ed180e6e3 1405 if(Comando==USER_ANSWER) {
williequesada 0:a37ed180e6e3 1406 Computer.printf("Usuario respuesta\n");
williequesada 0:a37ed180e6e3 1407 Slave.Command(COMMAND_ANSWER);
williequesada 0:a37ed180e6e3 1408 Comando=Respuesta2(USER_PRINT,50000);
williequesada 0:a37ed180e6e3 1409 }
williequesada 0:a37ed180e6e3 1410
williequesada 0:a37ed180e6e3 1411 if(Comando==USER_PRINT) {
williequesada 0:a37ed180e6e3 1412 Computer.printf("Usuario imprimiendo\n");
williequesada 0:a37ed180e6e3 1413 Comando=Imprimir(USER_FINISH);
williequesada 0:a37ed180e6e3 1414 }
williequesada 0:a37ed180e6e3 1415
williequesada 0:a37ed180e6e3 1416 if(Comando==USER_FINISH) {
williequesada 0:a37ed180e6e3 1417 Computer.printf("Usuario finalizar\n");
williequesada 0:a37ed180e6e3 1418 Comando=Impresora.End();
williequesada 0:a37ed180e6e3 1419 Screen.Clean();
williequesada 0:a37ed180e6e3 1420 CardReaderPower=0;
williequesada 0:a37ed180e6e3 1421 Impresora.Power(0);
williequesada 0:a37ed180e6e3 1422 Screen.Off();
williequesada 0:a37ed180e6e3 1423 }
williequesada 0:a37ed180e6e3 1424 }
williequesada 0:a37ed180e6e3 1425
williequesada 0:a37ed180e6e3 1426 void Usuario(uint8_t Entrada)
williequesada 0:a37ed180e6e3 1427 {
williequesada 0:a37ed180e6e3 1428 uint8_t Comando=Entrada;
williequesada 0:a37ed180e6e3 1429 if(Comando==USER_INIT) {
williequesada 0:a37ed180e6e3 1430 Computer.printf("Usuario iniciar\n");
williequesada 0:a37ed180e6e3 1431 Screen.On(HoraHostingPantalla);
williequesada 0:a37ed180e6e3 1432 wait_ms(20);
williequesada 0:a37ed180e6e3 1433 Screen.Init();
williequesada 0:a37ed180e6e3 1434 Slave.Awake();
williequesada 0:a37ed180e6e3 1435 Slave.Command(COMMAND_ON);
williequesada 0:a37ed180e6e3 1436 //PantallaInicio();
williequesada 0:a37ed180e6e3 1437 BaseClock.start();
williequesada 0:a37ed180e6e3 1438 BaseClock.reset();
williequesada 0:a37ed180e6e3 1439 Comando=USER_PLACE;
williequesada 0:a37ed180e6e3 1440 }
williequesada 0:a37ed180e6e3 1441
williequesada 0:a37ed180e6e3 1442 if(Comando==USER_INIT2) {
williequesada 0:a37ed180e6e3 1443 Computer.printf("Usuario iniciar\n");
williequesada 0:a37ed180e6e3 1444 BaseClock.start();
williequesada 0:a37ed180e6e3 1445 BaseClock.reset();
williequesada 0:a37ed180e6e3 1446 Comando=USER_PLACE;
williequesada 0:a37ed180e6e3 1447 }
williequesada 0:a37ed180e6e3 1448
williequesada 0:a37ed180e6e3 1449 if(Comando==USER_INIT3) {
williequesada 0:a37ed180e6e3 1450 Computer.printf("Usuario iniciar\n");
williequesada 0:a37ed180e6e3 1451 BaseClock.start();
williequesada 0:a37ed180e6e3 1452 BaseClock.reset();
williequesada 0:a37ed180e6e3 1453 Computer.printf("Usuario espacio\n");
williequesada 0:a37ed180e6e3 1454 CardReaderPower=1;
williequesada 0:a37ed180e6e3 1455 Comando=GetPlace(USER_CARD,15000);
williequesada 0:a37ed180e6e3 1456 }
williequesada 0:a37ed180e6e3 1457
williequesada 0:a37ed180e6e3 1458 if(Comando==USER_INIT4) {
williequesada 0:a37ed180e6e3 1459 Computer.printf("Usuario iniciar\n");
williequesada 0:a37ed180e6e3 1460 BaseClock.start();
williequesada 0:a37ed180e6e3 1461 BaseClock.reset();
williequesada 0:a37ed180e6e3 1462 Computer.printf("Usuario espacio\n");
williequesada 0:a37ed180e6e3 1463 CardReaderPower=1;
williequesada 0:a37ed180e6e3 1464 Comando=GetPlace(USER_CARD2,15000);
williequesada 0:a37ed180e6e3 1465 }
williequesada 0:a37ed180e6e3 1466
williequesada 0:a37ed180e6e3 1467
williequesada 0:a37ed180e6e3 1468 if(Comando==USER_INIT5) {
williequesada 0:a37ed180e6e3 1469 Computer.printf("Usuario iniciar\n");
williequesada 0:a37ed180e6e3 1470 BaseClock.start();
williequesada 0:a37ed180e6e3 1471 BaseClock.reset();
williequesada 0:a37ed180e6e3 1472 Computer.printf("Usuario espacio\n");
williequesada 0:a37ed180e6e3 1473 CardReaderPower=1;
williequesada 0:a37ed180e6e3 1474 Comando=GetPlace(USER_CARD2,15000);
williequesada 0:a37ed180e6e3 1475 if(Comando==USER_CARD2) {
williequesada 0:a37ed180e6e3 1476 Slave.Command(HOSTING_OFF);
williequesada 0:a37ed180e6e3 1477 }
williequesada 0:a37ed180e6e3 1478 }
williequesada 0:a37ed180e6e3 1479
williequesada 0:a37ed180e6e3 1480 if(Comando==USER_PLACE) {
williequesada 0:a37ed180e6e3 1481 Computer.printf("Usuario espacio\n");
williequesada 0:a37ed180e6e3 1482 CardReaderPower=1;
williequesada 0:a37ed180e6e3 1483 Comando=GetPlace(USER_CARD,15000);
williequesada 0:a37ed180e6e3 1484 if(Comando==USER_CARD) {
williequesada 0:a37ed180e6e3 1485 Slave.Command(COMMAND_INIT);
williequesada 0:a37ed180e6e3 1486 }
williequesada 0:a37ed180e6e3 1487 }
williequesada 0:a37ed180e6e3 1488
williequesada 0:a37ed180e6e3 1489 if(Comando==USER_CARD2) {
williequesada 0:a37ed180e6e3 1490 Computer.printf("Usuario tarjetA 2\n");
williequesada 0:a37ed180e6e3 1491 Comando=GetCard(USER_TIME,20000,5000);
williequesada 0:a37ed180e6e3 1492 }
williequesada 0:a37ed180e6e3 1493
williequesada 0:a37ed180e6e3 1494 if(Comando==USER_CARD) {
williequesada 0:a37ed180e6e3 1495 Computer.printf("Usuario tarjeta\n");
williequesada 0:a37ed180e6e3 1496 Comando=GetCard(USER_TIME,20000,5000);
williequesada 0:a37ed180e6e3 1497 if(Comando==USER_TIME) {
williequesada 0:a37ed180e6e3 1498 Slave.Command(COMMAND_GPRS);
williequesada 0:a37ed180e6e3 1499 }
williequesada 0:a37ed180e6e3 1500 }
williequesada 0:a37ed180e6e3 1501
williequesada 0:a37ed180e6e3 1502 if(Comando==USER_TIME) {
williequesada 0:a37ed180e6e3 1503 Computer.printf("Usuario tiempo\n");
williequesada 0:a37ed180e6e3 1504 CardReaderPower=0;
williequesada 0:a37ed180e6e3 1505 Comando=GetTime(USER_DATA,15000);
williequesada 0:a37ed180e6e3 1506 if (Comando==USER_FINISH){
williequesada 0:a37ed180e6e3 1507 Slave.Command(COMMAND_END);
williequesada 0:a37ed180e6e3 1508 }
williequesada 0:a37ed180e6e3 1509 Comando=Continuar(Comando,7000);
williequesada 0:a37ed180e6e3 1510 }
williequesada 0:a37ed180e6e3 1511
williequesada 0:a37ed180e6e3 1512 if(Comando==USER_DATA) {
williequesada 0:a37ed180e6e3 1513 Computer.printf("Usuario datos\n");
williequesada 0:a37ed180e6e3 1514 Slave.Command(COMMAND_DATA);
williequesada 0:a37ed180e6e3 1515 Slave.Send_User(Parquimetro,Municipio,TiempoMinutos,Espacio,Track2);
williequesada 0:a37ed180e6e3 1516 Computer.printf("Tiempo: -%i-\n",TiempoMinutos);
williequesada 0:a37ed180e6e3 1517 Computer.printf("Parquimetro: -%s-\n",Parquimetro);
williequesada 0:a37ed180e6e3 1518 Computer.printf("Municipio: -%s-\n",Municipio);
williequesada 0:a37ed180e6e3 1519 Computer.printf("Espacio: -%s-\n",Espacio);
williequesada 0:a37ed180e6e3 1520 Computer.printf("Tiempo: -%s-\n",Track2);
williequesada 0:a37ed180e6e3 1521 Computer.printf("-%s-%s-%i-%s-%s-",Parquimetro,Municipio,TiempoMinutos,Espacio,Track2);
williequesada 0:a37ed180e6e3 1522 Comando=Continuar(USER_POST,20000);
williequesada 0:a37ed180e6e3 1523 if (Comando==USER_FINISH){
williequesada 0:a37ed180e6e3 1524 Slave.Command(COMMAND_END);
williequesada 0:a37ed180e6e3 1525 }
williequesada 0:a37ed180e6e3 1526
williequesada 0:a37ed180e6e3 1527 }
williequesada 0:a37ed180e6e3 1528
williequesada 0:a37ed180e6e3 1529 if(Comando==USER_POST) {
williequesada 0:a37ed180e6e3 1530 Computer.printf("Usuario operacion\n");
williequesada 0:a37ed180e6e3 1531 Slave.Command(COMMAND_POST);
williequesada 0:a37ed180e6e3 1532 Comando=Respuesta1(USER_ANSWER,3000);
williequesada 0:a37ed180e6e3 1533 }
williequesada 0:a37ed180e6e3 1534
williequesada 0:a37ed180e6e3 1535 if(Comando==USER_ANSWER) {
williequesada 0:a37ed180e6e3 1536 Computer.printf("Usuario respuesta\n");
williequesada 0:a37ed180e6e3 1537 Slave.Command(COMMAND_ANSWER);
williequesada 0:a37ed180e6e3 1538 Comando=Respuesta2(USER_PRINT,50000);
williequesada 0:a37ed180e6e3 1539 }
williequesada 0:a37ed180e6e3 1540
williequesada 0:a37ed180e6e3 1541 if(Comando==USER_PRINT) {
williequesada 0:a37ed180e6e3 1542 Computer.printf("Usuario imprimiendo\n");
williequesada 0:a37ed180e6e3 1543 Comando=Imprimir(USER_FINISH);
williequesada 0:a37ed180e6e3 1544 }
williequesada 0:a37ed180e6e3 1545
williequesada 0:a37ed180e6e3 1546 if(Comando==USER_FINISH) {
williequesada 0:a37ed180e6e3 1547 Computer.printf("Usuario finalizar\n");
williequesada 0:a37ed180e6e3 1548 Comando=Impresora.End();
williequesada 0:a37ed180e6e3 1549 Screen.Clean();
williequesada 0:a37ed180e6e3 1550 CardReaderPower=0;
williequesada 0:a37ed180e6e3 1551 Impresora.Power(0);
williequesada 0:a37ed180e6e3 1552 Screen.Off();
williequesada 0:a37ed180e6e3 1553 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1554 Keypad_Init();
williequesada 0:a37ed180e6e3 1555 while(true) {
williequesada 0:a37ed180e6e3 1556 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1557 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 1558 if(Transcurrido>10000) {
williequesada 0:a37ed180e6e3 1559 break;
williequesada 0:a37ed180e6e3 1560 }
williequesada 0:a37ed180e6e3 1561 Tecla=KeyPad_Read();
williequesada 0:a37ed180e6e3 1562 if (Tecla!=NO_KEY) {
williequesada 0:a37ed180e6e3 1563 Usuario_OperacionConsecutiva();
williequesada 0:a37ed180e6e3 1564 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1565 }
williequesada 0:a37ed180e6e3 1566 }
williequesada 0:a37ed180e6e3 1567 Slave.Command(COMMAND_OFF);
williequesada 0:a37ed180e6e3 1568 }
williequesada 0:a37ed180e6e3 1569 }
williequesada 0:a37ed180e6e3 1570
williequesada 0:a37ed180e6e3 1571 //-----------------------------------------------------------------------------------------------------------------------------------------------------
williequesada 0:a37ed180e6e3 1572
williequesada 0:a37ed180e6e3 1573 void Interrupt_Mantenimiento()
williequesada 0:a37ed180e6e3 1574 {
williequesada 0:a37ed180e6e3 1575 MantenimientoInterruption=1;
williequesada 0:a37ed180e6e3 1576 }
williequesada 0:a37ed180e6e3 1577
williequesada 0:a37ed180e6e3 1578 void M_PantallaConfiguracion()
williequesada 0:a37ed180e6e3 1579 {
williequesada 0:a37ed180e6e3 1580 Computer.printf("Pantala modo configuracion\n");
williequesada 0:a37ed180e6e3 1581
williequesada 0:a37ed180e6e3 1582 Screen.Limits();
williequesada 0:a37ed180e6e3 1583 Screen.PutString(35,19,"Modo Configuracion");
williequesada 0:a37ed180e6e3 1584 Screen.Show();
williequesada 0:a37ed180e6e3 1585 wait_ms(1000);
williequesada 0:a37ed180e6e3 1586 }
williequesada 0:a37ed180e6e3 1587
williequesada 0:a37ed180e6e3 1588 uint8_t M_MenuConfiguracion(uint32_t Delay)
williequesada 0:a37ed180e6e3 1589 {
williequesada 0:a37ed180e6e3 1590
williequesada 0:a37ed180e6e3 1591 int Selection=1;
williequesada 0:a37ed180e6e3 1592 uint8_t Salida=M_SISTEMA;
williequesada 0:a37ed180e6e3 1593 int SelectionBox[2]= {4,7};
williequesada 0:a37ed180e6e3 1594 bool Arriba;
williequesada 0:a37ed180e6e3 1595 bool Abajo;
williequesada 0:a37ed180e6e3 1596 bool Finalizar;
williequesada 0:a37ed180e6e3 1597 bool Salir;
williequesada 0:a37ed180e6e3 1598 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1599
williequesada 0:a37ed180e6e3 1600 Screen.Limits();
williequesada 0:a37ed180e6e3 1601 Screen.Rectangle(SelectionBox[0],SelectionBox[1],8,8);
williequesada 0:a37ed180e6e3 1602 Screen.PutString(15,4,"Sistema");
williequesada 0:a37ed180e6e3 1603 Screen.PutString(15,23,"Red");
williequesada 0:a37ed180e6e3 1604 Screen.PutString(15,42,"Impresora");
williequesada 0:a37ed180e6e3 1605 Screen.PutString(135,4,"Teclado");
williequesada 0:a37ed180e6e3 1606 Screen.PutString(135,23,"Lectora");
williequesada 0:a37ed180e6e3 1607 Screen.PutString(135,42,"Informacion");
williequesada 0:a37ed180e6e3 1608 Screen.Show();
williequesada 0:a37ed180e6e3 1609
williequesada 0:a37ed180e6e3 1610 Computer.printf("Sistema\n");
williequesada 0:a37ed180e6e3 1611
williequesada 0:a37ed180e6e3 1612 while(true) {
williequesada 0:a37ed180e6e3 1613 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1614 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 1615 if(Transcurrido>Delay) {
williequesada 0:a37ed180e6e3 1616 return M_OFF;
williequesada 0:a37ed180e6e3 1617 }
williequesada 0:a37ed180e6e3 1618 Tecla = KeyPad_Read();
williequesada 0:a37ed180e6e3 1619 if (Tecla!=NO_KEY) { // Se valida que se ingrese algo en el teclado
williequesada 0:a37ed180e6e3 1620 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1621
williequesada 0:a37ed180e6e3 1622 Arriba=(Tecla=='F');
williequesada 0:a37ed180e6e3 1623 if (Arriba) { //Subir puntero
williequesada 0:a37ed180e6e3 1624 Selection++;
williequesada 0:a37ed180e6e3 1625 if(Selection==7) {
williequesada 0:a37ed180e6e3 1626 Selection=1;
williequesada 0:a37ed180e6e3 1627 }
williequesada 0:a37ed180e6e3 1628 }
williequesada 0:a37ed180e6e3 1629 Abajo=(Tecla=='E');
williequesada 0:a37ed180e6e3 1630 if (Abajo) { //Bajar puntero
williequesada 0:a37ed180e6e3 1631 Selection--;
williequesada 0:a37ed180e6e3 1632 if(Selection==0) {
williequesada 0:a37ed180e6e3 1633 Selection=6;
williequesada 0:a37ed180e6e3 1634 }
williequesada 0:a37ed180e6e3 1635 }
williequesada 0:a37ed180e6e3 1636 Salir=(Tecla=='C'); //Cancelar Operacion
williequesada 0:a37ed180e6e3 1637 if (Salir) {
williequesada 0:a37ed180e6e3 1638 return M_OFF;
williequesada 0:a37ed180e6e3 1639 }
williequesada 0:a37ed180e6e3 1640 Finalizar=(Tecla=='D'); //En caso de confirmacion
williequesada 0:a37ed180e6e3 1641 if (Finalizar) {
williequesada 0:a37ed180e6e3 1642 return Salida;
williequesada 0:a37ed180e6e3 1643 }
williequesada 0:a37ed180e6e3 1644 switch (Selection) {
williequesada 0:a37ed180e6e3 1645 case 1:
williequesada 0:a37ed180e6e3 1646 SelectionBox[0]=4;
williequesada 0:a37ed180e6e3 1647 SelectionBox[1]=7;
williequesada 0:a37ed180e6e3 1648 Computer.printf("Sistema\n");
williequesada 0:a37ed180e6e3 1649 Salida=M_SISTEMA;
williequesada 0:a37ed180e6e3 1650 break;
williequesada 0:a37ed180e6e3 1651 case 2:
williequesada 0:a37ed180e6e3 1652 SelectionBox[0]=4;
williequesada 0:a37ed180e6e3 1653 SelectionBox[1]=26;
williequesada 0:a37ed180e6e3 1654 Computer.printf("Red\n");
williequesada 0:a37ed180e6e3 1655 Salida=M_RED;
williequesada 0:a37ed180e6e3 1656 break;
williequesada 0:a37ed180e6e3 1657 case 3:
williequesada 0:a37ed180e6e3 1658 SelectionBox[0]=4;
williequesada 0:a37ed180e6e3 1659 SelectionBox[1]=45;
williequesada 0:a37ed180e6e3 1660 Computer.printf("Impresora\n");
williequesada 0:a37ed180e6e3 1661 Salida=M_IMPRESORA;
williequesada 0:a37ed180e6e3 1662 break;
williequesada 0:a37ed180e6e3 1663 case 4:
williequesada 0:a37ed180e6e3 1664 SelectionBox[0]=124;
williequesada 0:a37ed180e6e3 1665 SelectionBox[1]=7;
williequesada 0:a37ed180e6e3 1666 Computer.printf("Teclado\n");
williequesada 0:a37ed180e6e3 1667 Salida=M_TECLADO;
williequesada 0:a37ed180e6e3 1668 break;
williequesada 0:a37ed180e6e3 1669 case 5:
williequesada 0:a37ed180e6e3 1670 SelectionBox[0]=124;
williequesada 0:a37ed180e6e3 1671 SelectionBox[1]=26;
williequesada 0:a37ed180e6e3 1672 Computer.printf("Lectora\n");
williequesada 0:a37ed180e6e3 1673 Salida=M_LECTORA;
williequesada 0:a37ed180e6e3 1674 break;
williequesada 0:a37ed180e6e3 1675 case 6:
williequesada 0:a37ed180e6e3 1676 SelectionBox[0]=124;
williequesada 0:a37ed180e6e3 1677 SelectionBox[1]=45;
williequesada 0:a37ed180e6e3 1678 Computer.printf("Informacion\n");
williequesada 0:a37ed180e6e3 1679 Salida=M_INFORMACION;
williequesada 0:a37ed180e6e3 1680 break;
williequesada 0:a37ed180e6e3 1681 }
williequesada 0:a37ed180e6e3 1682
williequesada 0:a37ed180e6e3 1683 Screen.Limits();
williequesada 0:a37ed180e6e3 1684 Screen.Rectangle(SelectionBox[0],SelectionBox[1],8,8);
williequesada 0:a37ed180e6e3 1685 Screen.PutString(15,4,"Sistema");
williequesada 0:a37ed180e6e3 1686 Screen.PutString(15,23,"Red");
williequesada 0:a37ed180e6e3 1687 Screen.PutString(15,42,"Impresora");
williequesada 0:a37ed180e6e3 1688 Screen.PutString(135,4,"Teclado");
williequesada 0:a37ed180e6e3 1689 Screen.PutString(135,23,"Lectora");
williequesada 0:a37ed180e6e3 1690 Screen.PutString(135,42,"Informacion");
williequesada 0:a37ed180e6e3 1691 Screen.Show();
williequesada 0:a37ed180e6e3 1692 }
williequesada 0:a37ed180e6e3 1693 }
williequesada 0:a37ed180e6e3 1694 }
williequesada 0:a37ed180e6e3 1695
williequesada 0:a37ed180e6e3 1696 uint8_t M_MenuSistema(uint32_t Delay)
williequesada 0:a37ed180e6e3 1697 {
williequesada 0:a37ed180e6e3 1698
williequesada 0:a37ed180e6e3 1699 uint8_t Salida=M_PARQUIMETRO;
williequesada 0:a37ed180e6e3 1700 int Selection=1;
williequesada 0:a37ed180e6e3 1701 int SelectionBox[2]= {4,7};
williequesada 0:a37ed180e6e3 1702 bool Arriba;
williequesada 0:a37ed180e6e3 1703 bool Abajo;
williequesada 0:a37ed180e6e3 1704 bool Finalizar;
williequesada 0:a37ed180e6e3 1705 bool Salir;
williequesada 0:a37ed180e6e3 1706 bool Atras;
williequesada 0:a37ed180e6e3 1707 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1708
williequesada 0:a37ed180e6e3 1709 Screen.Limits();
williequesada 0:a37ed180e6e3 1710 Screen.Rectangle(SelectionBox[0],SelectionBox[1],8,8);
williequesada 0:a37ed180e6e3 1711 Screen.PutString(15,4,"Id Parquimetro");
williequesada 0:a37ed180e6e3 1712 Screen.PutString(15,23,"Id Municipalidad");
williequesada 0:a37ed180e6e3 1713 Screen.PutString(15,42,"Precio 10 mins");
williequesada 0:a37ed180e6e3 1714 Screen.Show();
williequesada 0:a37ed180e6e3 1715 Computer.printf("Id parquimetro\n");
williequesada 0:a37ed180e6e3 1716
williequesada 0:a37ed180e6e3 1717 while(true) {
williequesada 0:a37ed180e6e3 1718 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1719 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 1720 if(Transcurrido>Delay) {
williequesada 0:a37ed180e6e3 1721 return M_OFF;
williequesada 0:a37ed180e6e3 1722 }
williequesada 0:a37ed180e6e3 1723 Tecla = KeyPad_Read();
williequesada 0:a37ed180e6e3 1724 if (Tecla!=NO_KEY) { // Se valida que se ingrese algo en el teclado
williequesada 0:a37ed180e6e3 1725 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1726
williequesada 0:a37ed180e6e3 1727 Arriba=(Tecla=='F');
williequesada 0:a37ed180e6e3 1728 if (Arriba) { //Subir puntero
williequesada 0:a37ed180e6e3 1729 Selection++;
williequesada 0:a37ed180e6e3 1730 if(Selection==4) {
williequesada 0:a37ed180e6e3 1731 Selection=1;
williequesada 0:a37ed180e6e3 1732 }
williequesada 0:a37ed180e6e3 1733 }
williequesada 0:a37ed180e6e3 1734 Abajo=(Tecla=='E');
williequesada 0:a37ed180e6e3 1735 if (Abajo) { //Bajar puntero
williequesada 0:a37ed180e6e3 1736 Selection--;
williequesada 0:a37ed180e6e3 1737 if(Selection==0) {
williequesada 0:a37ed180e6e3 1738 Selection=3;
williequesada 0:a37ed180e6e3 1739 }
williequesada 0:a37ed180e6e3 1740 }
williequesada 0:a37ed180e6e3 1741 Salir=(Tecla=='C'); //Cancelar Operacion
williequesada 0:a37ed180e6e3 1742 if (Salir) {
williequesada 0:a37ed180e6e3 1743 return M_OFF;
williequesada 0:a37ed180e6e3 1744 }
williequesada 0:a37ed180e6e3 1745 Atras=(Tecla=='B');
williequesada 0:a37ed180e6e3 1746 if (Atras) { //Atras en menu
williequesada 0:a37ed180e6e3 1747 return M_ATRAS;
williequesada 0:a37ed180e6e3 1748 }
williequesada 0:a37ed180e6e3 1749 Finalizar=(Tecla=='D'); //En caso de confirmacion
williequesada 0:a37ed180e6e3 1750 if (Finalizar) {
williequesada 0:a37ed180e6e3 1751 return Salida;
williequesada 0:a37ed180e6e3 1752 }
williequesada 0:a37ed180e6e3 1753 switch (Selection) {
williequesada 0:a37ed180e6e3 1754 case 1:
williequesada 0:a37ed180e6e3 1755 SelectionBox[0]=4;
williequesada 0:a37ed180e6e3 1756 SelectionBox[1]=7;
williequesada 0:a37ed180e6e3 1757 Computer.printf("Id Parquimetro\n");
williequesada 0:a37ed180e6e3 1758 Salida=M_PARQUIMETRO;
williequesada 0:a37ed180e6e3 1759 break;
williequesada 0:a37ed180e6e3 1760 case 2:
williequesada 0:a37ed180e6e3 1761 SelectionBox[0]=4;
williequesada 0:a37ed180e6e3 1762 SelectionBox[1]=26;
williequesada 0:a37ed180e6e3 1763 Computer.printf("Id Municipalidad\n");
williequesada 0:a37ed180e6e3 1764 Salida=M_MUNICIPIO;
williequesada 0:a37ed180e6e3 1765 break;
williequesada 0:a37ed180e6e3 1766 case 3:
williequesada 0:a37ed180e6e3 1767 SelectionBox[0]=4;
williequesada 0:a37ed180e6e3 1768 SelectionBox[1]=45;
williequesada 0:a37ed180e6e3 1769 Computer.printf("Precio 10mins\n");
williequesada 0:a37ed180e6e3 1770 Salida=M_PRECIO;
williequesada 0:a37ed180e6e3 1771 break;
williequesada 0:a37ed180e6e3 1772 }
williequesada 0:a37ed180e6e3 1773 Screen.Limits();
williequesada 0:a37ed180e6e3 1774 Screen.Rectangle(SelectionBox[0],SelectionBox[1],8,8);
williequesada 0:a37ed180e6e3 1775 Screen.PutString(15,4,"Id Parquimetro");
williequesada 0:a37ed180e6e3 1776 Screen.PutString(15,23,"Id Municipalidad");
williequesada 0:a37ed180e6e3 1777 Screen.PutString(15,42,"Precio 10 mins");
williequesada 0:a37ed180e6e3 1778 Screen.Show();
williequesada 0:a37ed180e6e3 1779 }
williequesada 0:a37ed180e6e3 1780 }
williequesada 0:a37ed180e6e3 1781 }
williequesada 0:a37ed180e6e3 1782
williequesada 0:a37ed180e6e3 1783 uint8_t M_MenuConexion(uint32_t Delay)
williequesada 0:a37ed180e6e3 1784 {
williequesada 0:a37ed180e6e3 1785 uint8_t Salida=M_SENAL;
williequesada 0:a37ed180e6e3 1786 int Selection=1;
williequesada 0:a37ed180e6e3 1787 int SelectionBox[2]= {4,7};
williequesada 0:a37ed180e6e3 1788 bool Arriba;
williequesada 0:a37ed180e6e3 1789 bool Abajo;
williequesada 0:a37ed180e6e3 1790 bool Finalizar;
williequesada 0:a37ed180e6e3 1791 bool Salir;
williequesada 0:a37ed180e6e3 1792 bool Atras;
williequesada 0:a37ed180e6e3 1793 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1794
williequesada 0:a37ed180e6e3 1795 Screen.Limits();
williequesada 0:a37ed180e6e3 1796 Screen.Rectangle(SelectionBox[0],SelectionBox[1],8,8);
williequesada 0:a37ed180e6e3 1797 Screen.Rectangle(129,6,5,0);
williequesada 0:a37ed180e6e3 1798 Screen.PutString(15,4,"Intensidad senal");
williequesada 0:a37ed180e6e3 1799 Screen.PutString(15,23,"Prueba hosting");
williequesada 0:a37ed180e6e3 1800 Screen.PutString(15,42,"Conexion red");
williequesada 0:a37ed180e6e3 1801 Screen.Show();
williequesada 0:a37ed180e6e3 1802
williequesada 0:a37ed180e6e3 1803 Computer.printf("Intensidad senal\n");
williequesada 0:a37ed180e6e3 1804
williequesada 0:a37ed180e6e3 1805 while(true) {
williequesada 0:a37ed180e6e3 1806 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1807 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 1808 if(Transcurrido>Delay) {
williequesada 0:a37ed180e6e3 1809 return M_OFF;
williequesada 0:a37ed180e6e3 1810 }
williequesada 0:a37ed180e6e3 1811 Tecla = KeyPad_Read();
williequesada 0:a37ed180e6e3 1812 if (Tecla!=NO_KEY) { // Se valida que se ingrese algo en el teclado
williequesada 0:a37ed180e6e3 1813 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1814
williequesada 0:a37ed180e6e3 1815 Arriba=(Tecla=='F');
williequesada 0:a37ed180e6e3 1816 if (Arriba) { //Subir puntero
williequesada 0:a37ed180e6e3 1817 Selection++;
williequesada 0:a37ed180e6e3 1818 if(Selection==4) {
williequesada 0:a37ed180e6e3 1819 Selection=1;
williequesada 0:a37ed180e6e3 1820 }
williequesada 0:a37ed180e6e3 1821 }
williequesada 0:a37ed180e6e3 1822 Abajo=(Tecla=='E');
williequesada 0:a37ed180e6e3 1823 if (Abajo) { //Bajar puntero
williequesada 0:a37ed180e6e3 1824 Selection--;
williequesada 0:a37ed180e6e3 1825 if(Selection==0) {
williequesada 0:a37ed180e6e3 1826 Selection=3;
williequesada 0:a37ed180e6e3 1827 }
williequesada 0:a37ed180e6e3 1828 }
williequesada 0:a37ed180e6e3 1829 Atras=(Tecla=='B');
williequesada 0:a37ed180e6e3 1830 if (Atras) { //Atras en menu
williequesada 0:a37ed180e6e3 1831 return M_ATRAS;
williequesada 0:a37ed180e6e3 1832 }
williequesada 0:a37ed180e6e3 1833 Salir=(Tecla=='C'); //Cancelar Operacion
williequesada 0:a37ed180e6e3 1834 if (Salir) {
williequesada 0:a37ed180e6e3 1835 return M_OFF;
williequesada 0:a37ed180e6e3 1836 }
williequesada 0:a37ed180e6e3 1837 Finalizar=(Tecla=='D'); //En caso de confirmacion
williequesada 0:a37ed180e6e3 1838 if (Finalizar) {
williequesada 0:a37ed180e6e3 1839 return Salida;
williequesada 0:a37ed180e6e3 1840 }
williequesada 0:a37ed180e6e3 1841 switch (Selection) {
williequesada 0:a37ed180e6e3 1842 case 1:
williequesada 0:a37ed180e6e3 1843 SelectionBox[0]=4;
williequesada 0:a37ed180e6e3 1844 SelectionBox[1]=7;
williequesada 0:a37ed180e6e3 1845 Computer.printf("Intensidad senal\n");
williequesada 0:a37ed180e6e3 1846 Salida=M_SENAL;
williequesada 0:a37ed180e6e3 1847 break;
williequesada 0:a37ed180e6e3 1848 case 2:
williequesada 0:a37ed180e6e3 1849 SelectionBox[0]=4;
williequesada 0:a37ed180e6e3 1850 SelectionBox[1]=26;
williequesada 0:a37ed180e6e3 1851 Computer.printf("Prueba hosting\n");
williequesada 0:a37ed180e6e3 1852 Salida=M_HOSTING;
williequesada 0:a37ed180e6e3 1853 break;
williequesada 0:a37ed180e6e3 1854 case 3:
williequesada 0:a37ed180e6e3 1855 SelectionBox[0]=4;
williequesada 0:a37ed180e6e3 1856 SelectionBox[1]=45;
williequesada 0:a37ed180e6e3 1857 Computer.printf("Conexion red\n");
williequesada 0:a37ed180e6e3 1858 Salida=M_CONEXION_SIM ;
williequesada 0:a37ed180e6e3 1859 break;
williequesada 0:a37ed180e6e3 1860 }
williequesada 0:a37ed180e6e3 1861 Screen.Limits();
williequesada 0:a37ed180e6e3 1862 Screen.Rectangle(SelectionBox[0],SelectionBox[1],8,8);
williequesada 0:a37ed180e6e3 1863 Screen.Rectangle(129,6,5,0);
williequesada 0:a37ed180e6e3 1864 Screen.PutString(15,4,"Intensidad senal");
williequesada 0:a37ed180e6e3 1865 Screen.PutString(15,23,"Prueba hosting");
williequesada 0:a37ed180e6e3 1866 Screen.PutString(15,42,"Conexion red");
williequesada 0:a37ed180e6e3 1867 Screen.Show();
williequesada 0:a37ed180e6e3 1868 }
williequesada 0:a37ed180e6e3 1869 }
williequesada 0:a37ed180e6e3 1870 }
williequesada 0:a37ed180e6e3 1871
williequesada 0:a37ed180e6e3 1872 uint8_t M_MenuImpresora(uint32_t Delay)
williequesada 0:a37ed180e6e3 1873 {
williequesada 0:a37ed180e6e3 1874 uint8_t Salida=M_PAPEL;
williequesada 0:a37ed180e6e3 1875 int Selection=1;
williequesada 0:a37ed180e6e3 1876 int SelectionBox[2]= {4,7};
williequesada 0:a37ed180e6e3 1877 bool Arriba;
williequesada 0:a37ed180e6e3 1878 bool Abajo;
williequesada 0:a37ed180e6e3 1879 bool Finalizar;
williequesada 0:a37ed180e6e3 1880 bool Salir;
williequesada 0:a37ed180e6e3 1881 bool Atras;
williequesada 0:a37ed180e6e3 1882 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1883
williequesada 0:a37ed180e6e3 1884 Screen.Limits();
williequesada 0:a37ed180e6e3 1885 Screen.Rectangle(SelectionBox[0],SelectionBox[1],8,8);
williequesada 0:a37ed180e6e3 1886 Screen.PutString(15,4,"Cambio de papel");
williequesada 0:a37ed180e6e3 1887 Screen.PutString(15,23,"Tiquete de prueba");
williequesada 0:a37ed180e6e3 1888 Screen.PutString(15,42,"Conexion impresora");
williequesada 0:a37ed180e6e3 1889 Screen.Show();
williequesada 0:a37ed180e6e3 1890
williequesada 0:a37ed180e6e3 1891 Computer.printf("Cambio de papel\n");
williequesada 0:a37ed180e6e3 1892
williequesada 0:a37ed180e6e3 1893 while(true) {
williequesada 0:a37ed180e6e3 1894 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1895 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 1896 if(Transcurrido>Delay) {
williequesada 0:a37ed180e6e3 1897 return M_OFF;
williequesada 0:a37ed180e6e3 1898 }
williequesada 0:a37ed180e6e3 1899 Tecla = KeyPad_Read();
williequesada 0:a37ed180e6e3 1900 if (Tecla!=NO_KEY) { // Se valida que se ingrese algo en el teclado
williequesada 0:a37ed180e6e3 1901 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1902
williequesada 0:a37ed180e6e3 1903 Arriba=(Tecla=='F');
williequesada 0:a37ed180e6e3 1904 if (Arriba) { //Subir puntero
williequesada 0:a37ed180e6e3 1905 Selection++;
williequesada 0:a37ed180e6e3 1906 if(Selection==4) {
williequesada 0:a37ed180e6e3 1907 Selection=1;
williequesada 0:a37ed180e6e3 1908 }
williequesada 0:a37ed180e6e3 1909 }
williequesada 0:a37ed180e6e3 1910 Abajo=(Tecla=='E');
williequesada 0:a37ed180e6e3 1911 if (Abajo) { //Bajar puntero
williequesada 0:a37ed180e6e3 1912 Selection--;
williequesada 0:a37ed180e6e3 1913 if(Selection==0) {
williequesada 0:a37ed180e6e3 1914 Selection=3;
williequesada 0:a37ed180e6e3 1915 }
williequesada 0:a37ed180e6e3 1916 }
williequesada 0:a37ed180e6e3 1917 Salir=(Tecla=='C'); //Cancelar Operacion
williequesada 0:a37ed180e6e3 1918 if (Salir) {
williequesada 0:a37ed180e6e3 1919 return M_OFF;
williequesada 0:a37ed180e6e3 1920 }
williequesada 0:a37ed180e6e3 1921 Atras=(Tecla=='B');
williequesada 0:a37ed180e6e3 1922 if (Atras) { //Atras en menu
williequesada 0:a37ed180e6e3 1923 return M_ATRAS;
williequesada 0:a37ed180e6e3 1924 }
williequesada 0:a37ed180e6e3 1925 Finalizar=(Tecla=='D'); //En caso de confirmacion
williequesada 0:a37ed180e6e3 1926 if (Finalizar) {
williequesada 0:a37ed180e6e3 1927 return Salida;
williequesada 0:a37ed180e6e3 1928 }
williequesada 0:a37ed180e6e3 1929 switch (Selection) {
williequesada 0:a37ed180e6e3 1930 case 1:
williequesada 0:a37ed180e6e3 1931 SelectionBox[0]=4;
williequesada 0:a37ed180e6e3 1932 SelectionBox[1]=7;
williequesada 0:a37ed180e6e3 1933 Computer.printf("Cambio de papel\n");
williequesada 0:a37ed180e6e3 1934 Salida=M_PAPEL;
williequesada 0:a37ed180e6e3 1935 break;
williequesada 0:a37ed180e6e3 1936 case 2:
williequesada 0:a37ed180e6e3 1937 SelectionBox[0]=4;
williequesada 0:a37ed180e6e3 1938 SelectionBox[1]=26;
williequesada 0:a37ed180e6e3 1939 Computer.printf("Tiquete de prueba\n");
williequesada 0:a37ed180e6e3 1940 Salida=M_IMPRESION;
williequesada 0:a37ed180e6e3 1941 break;
williequesada 0:a37ed180e6e3 1942 case 3:
williequesada 0:a37ed180e6e3 1943 SelectionBox[0]=4;
williequesada 0:a37ed180e6e3 1944 SelectionBox[1]=45;
williequesada 0:a37ed180e6e3 1945 Computer.printf("Conexion impresora\n");
williequesada 0:a37ed180e6e3 1946 Salida=M_CONEXION_IMP;
williequesada 0:a37ed180e6e3 1947 break;
williequesada 0:a37ed180e6e3 1948 }
williequesada 0:a37ed180e6e3 1949 Screen.Limits();
williequesada 0:a37ed180e6e3 1950 Screen.Rectangle(SelectionBox[0],SelectionBox[1],8,8);
williequesada 0:a37ed180e6e3 1951 Screen.PutString(15,4,"Cambio de papel");
williequesada 0:a37ed180e6e3 1952 Screen.PutString(15,23,"Tiquete de prueba");
williequesada 0:a37ed180e6e3 1953 Screen.PutString(15,42,"Conexion impresora");
williequesada 0:a37ed180e6e3 1954 Screen.Show();
williequesada 0:a37ed180e6e3 1955 }
williequesada 0:a37ed180e6e3 1956 }
williequesada 0:a37ed180e6e3 1957 }
williequesada 0:a37ed180e6e3 1958
williequesada 0:a37ed180e6e3 1959 uint8_t M_MenuLectora(uint32_t Delay)
williequesada 0:a37ed180e6e3 1960 {
williequesada 0:a37ed180e6e3 1961 uint8_t Salida=M_LECTURA;
williequesada 0:a37ed180e6e3 1962 int Selection=1;
williequesada 0:a37ed180e6e3 1963 int SelectionBox[2]= {4,7};
williequesada 0:a37ed180e6e3 1964 bool Arriba;
williequesada 0:a37ed180e6e3 1965 bool Abajo;
williequesada 0:a37ed180e6e3 1966 bool Finalizar;
williequesada 0:a37ed180e6e3 1967 bool Salir;
williequesada 0:a37ed180e6e3 1968 bool Atras;
williequesada 0:a37ed180e6e3 1969 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1970
williequesada 0:a37ed180e6e3 1971 Screen.Limits();
williequesada 0:a37ed180e6e3 1972 Screen.Rectangle(SelectionBox[0],SelectionBox[1],8,8);
williequesada 0:a37ed180e6e3 1973 Screen.PutString(15,4,"Prueba de lectura");
williequesada 0:a37ed180e6e3 1974 Screen.PutString(15,23,"Conexion lectora");
williequesada 0:a37ed180e6e3 1975 Screen.Show();
williequesada 0:a37ed180e6e3 1976
williequesada 0:a37ed180e6e3 1977 Computer.printf("Prueba de lectura\n");
williequesada 0:a37ed180e6e3 1978
williequesada 0:a37ed180e6e3 1979 while(true) {
williequesada 0:a37ed180e6e3 1980 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1981 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 1982 if(Transcurrido>Delay) {
williequesada 0:a37ed180e6e3 1983 return M_OFF;
williequesada 0:a37ed180e6e3 1984 }
williequesada 0:a37ed180e6e3 1985 Tecla = KeyPad_Read();
williequesada 0:a37ed180e6e3 1986 if (Tecla!=NO_KEY) { // Se valida que se ingrese algo en el teclado
williequesada 0:a37ed180e6e3 1987 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 1988
williequesada 0:a37ed180e6e3 1989 Arriba=(Tecla=='F');
williequesada 0:a37ed180e6e3 1990 if (Arriba) { //Subir puntero
williequesada 0:a37ed180e6e3 1991 Selection++;
williequesada 0:a37ed180e6e3 1992 if(Selection==3) {
williequesada 0:a37ed180e6e3 1993 Selection=1;
williequesada 0:a37ed180e6e3 1994 }
williequesada 0:a37ed180e6e3 1995 }
williequesada 0:a37ed180e6e3 1996 Abajo=(Tecla=='E');
williequesada 0:a37ed180e6e3 1997 if (Abajo) { //Bajar puntero
williequesada 0:a37ed180e6e3 1998 Selection--;
williequesada 0:a37ed180e6e3 1999 if(Selection==0) {
williequesada 0:a37ed180e6e3 2000 Selection=2;
williequesada 0:a37ed180e6e3 2001 }
williequesada 0:a37ed180e6e3 2002 }
williequesada 0:a37ed180e6e3 2003 Salir=(Tecla=='C'); //Cancelar Operacion
williequesada 0:a37ed180e6e3 2004 if (Salir) {
williequesada 0:a37ed180e6e3 2005 return M_OFF;
williequesada 0:a37ed180e6e3 2006 }
williequesada 0:a37ed180e6e3 2007 Atras=(Tecla=='B');
williequesada 0:a37ed180e6e3 2008 if (Atras) { //Atras en menu
williequesada 0:a37ed180e6e3 2009 return M_ATRAS;
williequesada 0:a37ed180e6e3 2010 }
williequesada 0:a37ed180e6e3 2011 Finalizar=(Tecla=='D'); //En caso de confirmacion
williequesada 0:a37ed180e6e3 2012 if (Finalizar) {
williequesada 0:a37ed180e6e3 2013 return Salida;
williequesada 0:a37ed180e6e3 2014 }
williequesada 0:a37ed180e6e3 2015 switch (Selection) {
williequesada 0:a37ed180e6e3 2016 case 1:
williequesada 0:a37ed180e6e3 2017 SelectionBox[0]=4;
williequesada 0:a37ed180e6e3 2018 SelectionBox[1]=7;
williequesada 0:a37ed180e6e3 2019 Computer.printf("Prueba de lectura\n");
williequesada 0:a37ed180e6e3 2020 Salida=M_LECTURA;
williequesada 0:a37ed180e6e3 2021 break;
williequesada 0:a37ed180e6e3 2022 case 2:
williequesada 0:a37ed180e6e3 2023 SelectionBox[0]=4;
williequesada 0:a37ed180e6e3 2024 SelectionBox[1]=26;
williequesada 0:a37ed180e6e3 2025 Computer.printf("Conexion lectora\n");
williequesada 0:a37ed180e6e3 2026 Salida=M_CONEXION_LEC;
williequesada 0:a37ed180e6e3 2027 break;
williequesada 0:a37ed180e6e3 2028 }
williequesada 0:a37ed180e6e3 2029
williequesada 0:a37ed180e6e3 2030 Screen.Limits();
williequesada 0:a37ed180e6e3 2031 Screen.Rectangle(SelectionBox[0],SelectionBox[1],8,8);
williequesada 0:a37ed180e6e3 2032 Screen.PutString(15,4,"Prueba de lectura");
williequesada 0:a37ed180e6e3 2033 Screen.PutString(15,23,"Conexion lectora");
williequesada 0:a37ed180e6e3 2034 Screen.Show();
williequesada 0:a37ed180e6e3 2035 }
williequesada 0:a37ed180e6e3 2036 }
williequesada 0:a37ed180e6e3 2037 }
williequesada 0:a37ed180e6e3 2038
williequesada 0:a37ed180e6e3 2039 uint8_t M_MenuTeclado(long Delay)
williequesada 0:a37ed180e6e3 2040 {
williequesada 0:a37ed180e6e3 2041 uint8_t Salida=M_PRUEBA_TECLA;
williequesada 0:a37ed180e6e3 2042 int Selection=1;
williequesada 0:a37ed180e6e3 2043 int SelectionBox[2]= {4,7};
williequesada 0:a37ed180e6e3 2044 bool Arriba;
williequesada 0:a37ed180e6e3 2045 bool Abajo;
williequesada 0:a37ed180e6e3 2046 bool Finalizar;
williequesada 0:a37ed180e6e3 2047 bool Salir;
williequesada 0:a37ed180e6e3 2048 bool Atras;
williequesada 0:a37ed180e6e3 2049 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2050
williequesada 0:a37ed180e6e3 2051 Screen.Limits();
williequesada 0:a37ed180e6e3 2052 Screen.Rectangle(SelectionBox[0],SelectionBox[1],8,8);
williequesada 0:a37ed180e6e3 2053 Screen.PutString(15,4,"Prueba de teclado");
williequesada 0:a37ed180e6e3 2054 Screen.Show();
williequesada 0:a37ed180e6e3 2055 Computer.printf("Prueba de teclado\n");
williequesada 0:a37ed180e6e3 2056
williequesada 0:a37ed180e6e3 2057 while(true) {
williequesada 0:a37ed180e6e3 2058 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2059 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 2060 if(Transcurrido>Delay) {
williequesada 0:a37ed180e6e3 2061 return M_OFF;
williequesada 0:a37ed180e6e3 2062 }
williequesada 0:a37ed180e6e3 2063 Tecla = KeyPad_Read();
williequesada 0:a37ed180e6e3 2064 if (Tecla!=NO_KEY) { // Se valida que se ingrese algo en el teclado
williequesada 0:a37ed180e6e3 2065 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2066
williequesada 0:a37ed180e6e3 2067 Arriba=(Tecla=='F');
williequesada 0:a37ed180e6e3 2068 if (Arriba) { //Subir puntero
williequesada 0:a37ed180e6e3 2069 Selection++;
williequesada 0:a37ed180e6e3 2070 if(Selection==2) {
williequesada 0:a37ed180e6e3 2071 Selection=1;
williequesada 0:a37ed180e6e3 2072 }
williequesada 0:a37ed180e6e3 2073 }
williequesada 0:a37ed180e6e3 2074 Abajo=(Tecla=='E');
williequesada 0:a37ed180e6e3 2075 if (Abajo) { //Bajar puntero
williequesada 0:a37ed180e6e3 2076 Selection--;
williequesada 0:a37ed180e6e3 2077 if(Selection==0) {
williequesada 0:a37ed180e6e3 2078 Selection=1;
williequesada 0:a37ed180e6e3 2079 }
williequesada 0:a37ed180e6e3 2080 }
williequesada 0:a37ed180e6e3 2081 Salir=(Tecla=='C'); //Cancelar Operacion
williequesada 0:a37ed180e6e3 2082 if (Salir) {
williequesada 0:a37ed180e6e3 2083 return M_OFF;
williequesada 0:a37ed180e6e3 2084 }
williequesada 0:a37ed180e6e3 2085 Atras=(Tecla=='B');
williequesada 0:a37ed180e6e3 2086 if (Atras) { //Atras en menu
williequesada 0:a37ed180e6e3 2087 return M_ATRAS;
williequesada 0:a37ed180e6e3 2088 }
williequesada 0:a37ed180e6e3 2089 Finalizar=(Tecla=='D'); //En caso de confirmacion
williequesada 0:a37ed180e6e3 2090 if (Finalizar) {
williequesada 0:a37ed180e6e3 2091 return Salida;
williequesada 0:a37ed180e6e3 2092 }
williequesada 0:a37ed180e6e3 2093 switch (Selection) {
williequesada 0:a37ed180e6e3 2094 case 1:
williequesada 0:a37ed180e6e3 2095 SelectionBox[0]=4;
williequesada 0:a37ed180e6e3 2096 SelectionBox[1]=7;
williequesada 0:a37ed180e6e3 2097 Computer.printf("Prueba de teclado\n");
williequesada 0:a37ed180e6e3 2098 Salida=M_PRUEBA_TECLA;
williequesada 0:a37ed180e6e3 2099 break;
williequesada 0:a37ed180e6e3 2100 }
williequesada 0:a37ed180e6e3 2101 Screen.Limits();
williequesada 0:a37ed180e6e3 2102 Screen.Rectangle(SelectionBox[0],SelectionBox[1],8,8);
williequesada 0:a37ed180e6e3 2103 Screen.PutString(15,4,"Prueba de teclado");
williequesada 0:a37ed180e6e3 2104 Screen.Show();
williequesada 0:a37ed180e6e3 2105 }
williequesada 0:a37ed180e6e3 2106 }
williequesada 0:a37ed180e6e3 2107 }
williequesada 0:a37ed180e6e3 2108
williequesada 0:a37ed180e6e3 2109 uint8_t M_MenuInformacion()
williequesada 0:a37ed180e6e3 2110 {
williequesada 0:a37ed180e6e3 2111 return M_INFORMACION;
williequesada 0:a37ed180e6e3 2112 }
williequesada 0:a37ed180e6e3 2113
williequesada 0:a37ed180e6e3 2114 void M_Parquimetro(uint32_t TimeOut)
williequesada 0:a37ed180e6e3 2115 {
williequesada 0:a37ed180e6e3 2116 char ID_Actual[5]; //Lectura de valor en memoria
williequesada 0:a37ed180e6e3 2117 sprintf(ID_Actual,"%s",Parquimetro);
williequesada 0:a37ed180e6e3 2118 int SelectionLine1[4]= {99,32,9,0};
williequesada 0:a37ed180e6e3 2119 int SelectionLine2[4]= {99,50,9,0};
williequesada 0:a37ed180e6e3 2120 int Line=1;
williequesada 0:a37ed180e6e3 2121 bool Numero;
williequesada 0:a37ed180e6e3 2122 bool Arriba;
williequesada 0:a37ed180e6e3 2123 bool Abajo;
williequesada 0:a37ed180e6e3 2124 bool Salir;
williequesada 0:a37ed180e6e3 2125 bool Atras;
williequesada 0:a37ed180e6e3 2126 bool Finalizar;
williequesada 0:a37ed180e6e3 2127
williequesada 0:a37ed180e6e3 2128 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2129
williequesada 0:a37ed180e6e3 2130 Screen.Rectangle(SelectionLine1[0],SelectionLine1[1],SelectionLine1[2],SelectionLine1[3]);
williequesada 0:a37ed180e6e3 2131 Screen.Rectangle(SelectionLine2[0],SelectionLine2[1],SelectionLine2[2],SelectionLine2[3]);
williequesada 0:a37ed180e6e3 2132 Screen.PutString(15,12,"Id Parquimetro");
williequesada 0:a37ed180e6e3 2133 Screen.PutChar(100,34,ID_Actual[0]);
williequesada 0:a37ed180e6e3 2134 Screen.PutChar(110,34,ID_Actual[1]);
williequesada 0:a37ed180e6e3 2135 Screen.PutChar(120,34,ID_Actual[2]);
williequesada 0:a37ed180e6e3 2136 Screen.PutChar(130,34,ID_Actual[3]);
williequesada 0:a37ed180e6e3 2137 Screen.Limits();
williequesada 0:a37ed180e6e3 2138 Screen.Show();
williequesada 0:a37ed180e6e3 2139 Computer.printf("Id Parquimetro\n");
williequesada 0:a37ed180e6e3 2140 Computer.printf("%s\n",ID_Actual);
williequesada 0:a37ed180e6e3 2141
williequesada 0:a37ed180e6e3 2142 while(true) {
williequesada 0:a37ed180e6e3 2143 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2144 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 2145 if(Transcurrido>TimeOut) {
williequesada 0:a37ed180e6e3 2146 break;
williequesada 0:a37ed180e6e3 2147 }
williequesada 0:a37ed180e6e3 2148 Tecla=KeyPad_Read();
williequesada 0:a37ed180e6e3 2149 if (Tecla!=NO_KEY) { // Se valida que se ingrese algo en el teclado
williequesada 0:a37ed180e6e3 2150 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2151
williequesada 0:a37ed180e6e3 2152 Numero=(Tecla=='0')||(Tecla=='1')||(Tecla=='2')||(Tecla=='3')||(Tecla=='4')||(Tecla=='5')||(Tecla=='6')||(Tecla=='7')||(Tecla=='8')||(Tecla=='9');
williequesada 0:a37ed180e6e3 2153 if (Numero) { //Cambiar numero
williequesada 0:a37ed180e6e3 2154 if((Tecla=='0')&&(Line==1)) {
williequesada 0:a37ed180e6e3 2155 ID_Actual[Line-1]='1';
williequesada 0:a37ed180e6e3 2156 } else {
williequesada 0:a37ed180e6e3 2157 ID_Actual[Line-1]=Tecla;
williequesada 0:a37ed180e6e3 2158 }
williequesada 0:a37ed180e6e3 2159 Line++;
williequesada 0:a37ed180e6e3 2160 if(Line==5) {
williequesada 0:a37ed180e6e3 2161 Line=1;
williequesada 0:a37ed180e6e3 2162 }
williequesada 0:a37ed180e6e3 2163 if(Line==0) {
williequesada 0:a37ed180e6e3 2164 Line=4;
williequesada 0:a37ed180e6e3 2165 }
williequesada 0:a37ed180e6e3 2166 }
williequesada 0:a37ed180e6e3 2167 Arriba=(Tecla=='E');
williequesada 0:a37ed180e6e3 2168 if (Arriba) { //Subir puntero
williequesada 0:a37ed180e6e3 2169 Line++;
williequesada 0:a37ed180e6e3 2170 if(Line==5) {
williequesada 0:a37ed180e6e3 2171 Line=1;
williequesada 0:a37ed180e6e3 2172 }
williequesada 0:a37ed180e6e3 2173 }
williequesada 0:a37ed180e6e3 2174 Abajo=(Tecla=='F');
williequesada 0:a37ed180e6e3 2175 if (Abajo) { //Bajar puntero
williequesada 0:a37ed180e6e3 2176 Line--;
williequesada 0:a37ed180e6e3 2177 if(Line==0) {
williequesada 0:a37ed180e6e3 2178 Line=4;
williequesada 0:a37ed180e6e3 2179 }
williequesada 0:a37ed180e6e3 2180 }
williequesada 0:a37ed180e6e3 2181 Salir=(Tecla=='C'); //Cancelar Operacion
williequesada 0:a37ed180e6e3 2182 if (Salir) {
williequesada 0:a37ed180e6e3 2183 break;
williequesada 0:a37ed180e6e3 2184 }
williequesada 0:a37ed180e6e3 2185 Atras=(Tecla=='B');
williequesada 0:a37ed180e6e3 2186 if (Atras) { //Atras en menu
williequesada 0:a37ed180e6e3 2187 break;
williequesada 0:a37ed180e6e3 2188 }
williequesada 0:a37ed180e6e3 2189 Finalizar=(Tecla=='D'); //En caso de confirmacion
williequesada 0:a37ed180e6e3 2190 if (Finalizar) {
williequesada 0:a37ed180e6e3 2191 sprintf(Parquimetro,"%s",ID_Actual);
williequesada 0:a37ed180e6e3 2192 break;
williequesada 0:a37ed180e6e3 2193 }
williequesada 0:a37ed180e6e3 2194 switch (Line) {
williequesada 0:a37ed180e6e3 2195 case 1:
williequesada 0:a37ed180e6e3 2196 SelectionLine1[0]=99;
williequesada 0:a37ed180e6e3 2197 SelectionLine2[0]=99;
williequesada 0:a37ed180e6e3 2198 break;
williequesada 0:a37ed180e6e3 2199 case 2:
williequesada 0:a37ed180e6e3 2200 SelectionLine1[0]=109;
williequesada 0:a37ed180e6e3 2201 SelectionLine2[0]=109;
williequesada 0:a37ed180e6e3 2202 break;
williequesada 0:a37ed180e6e3 2203 case 3:
williequesada 0:a37ed180e6e3 2204 SelectionLine1[0]=119;
williequesada 0:a37ed180e6e3 2205 SelectionLine2[0]=119;
williequesada 0:a37ed180e6e3 2206 break;
williequesada 0:a37ed180e6e3 2207 case 4:
williequesada 0:a37ed180e6e3 2208 SelectionLine1[0]=129;
williequesada 0:a37ed180e6e3 2209 SelectionLine2[0]=129;
williequesada 0:a37ed180e6e3 2210 break;
williequesada 0:a37ed180e6e3 2211 }
williequesada 0:a37ed180e6e3 2212 //-------Mostrar en Patalla-------
williequesada 0:a37ed180e6e3 2213 Screen.Rectangle(SelectionLine1[0],SelectionLine1[1],SelectionLine1[2],SelectionLine1[3]);
williequesada 0:a37ed180e6e3 2214 Screen.Rectangle(SelectionLine2[0],SelectionLine2[1],SelectionLine2[2],SelectionLine2[3]);
williequesada 0:a37ed180e6e3 2215 Screen.PutString(15,12,"Id Parquimetro");
williequesada 0:a37ed180e6e3 2216 Screen.PutChar(100,34,ID_Actual[0]);
williequesada 0:a37ed180e6e3 2217 Screen.PutChar(110,34,ID_Actual[1]);
williequesada 0:a37ed180e6e3 2218 Screen.PutChar(120,34,ID_Actual[2]);
williequesada 0:a37ed180e6e3 2219 Screen.PutChar(130,34,ID_Actual[3]);
williequesada 0:a37ed180e6e3 2220 Screen.Limits();
williequesada 0:a37ed180e6e3 2221 Screen.Show();
williequesada 0:a37ed180e6e3 2222 Computer.printf("%s\n",ID_Actual);
williequesada 0:a37ed180e6e3 2223 }
williequesada 0:a37ed180e6e3 2224 }
williequesada 0:a37ed180e6e3 2225 }
williequesada 0:a37ed180e6e3 2226
williequesada 0:a37ed180e6e3 2227 void M_Municipio(uint32_t TimeOut)
williequesada 0:a37ed180e6e3 2228 {
williequesada 0:a37ed180e6e3 2229 char CodigoMunicipio_Actual[3]; //Lectura de valor en memoria
williequesada 0:a37ed180e6e3 2230 sprintf(CodigoMunicipio_Actual,"%s",CodigoMunicipio);
williequesada 0:a37ed180e6e3 2231
williequesada 0:a37ed180e6e3 2232 int SelectionLine1[4]= {109,32,9,0};
williequesada 0:a37ed180e6e3 2233 int SelectionLine2[4]= {109,50,9,0};
williequesada 0:a37ed180e6e3 2234 int Line=1;
williequesada 0:a37ed180e6e3 2235 bool Numero;
williequesada 0:a37ed180e6e3 2236 bool Arriba;
williequesada 0:a37ed180e6e3 2237 bool Abajo;
williequesada 0:a37ed180e6e3 2238 bool Salir;
williequesada 0:a37ed180e6e3 2239 bool Atras;
williequesada 0:a37ed180e6e3 2240 bool Finalizar;
williequesada 0:a37ed180e6e3 2241
williequesada 0:a37ed180e6e3 2242 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2243
williequesada 0:a37ed180e6e3 2244 Screen.Rectangle(SelectionLine1[0],SelectionLine1[1],SelectionLine1[2],SelectionLine1[3]);
williequesada 0:a37ed180e6e3 2245 Screen.Rectangle(SelectionLine2[0],SelectionLine2[1],SelectionLine2[2],SelectionLine2[3]);
williequesada 0:a37ed180e6e3 2246 Screen.PutString(15,12,"Id Municipalidad");
williequesada 0:a37ed180e6e3 2247 Screen.PutChar(110,34,CodigoMunicipio_Actual[0]);
williequesada 0:a37ed180e6e3 2248 Screen.PutChar(120,34,CodigoMunicipio_Actual[1]);
williequesada 0:a37ed180e6e3 2249 Screen.Limits();
williequesada 0:a37ed180e6e3 2250 Screen.Show();
williequesada 0:a37ed180e6e3 2251 Computer.printf("Id Municipalidad\n");
williequesada 0:a37ed180e6e3 2252 Computer.printf("%s\n",CodigoMunicipio_Actual);
williequesada 0:a37ed180e6e3 2253
williequesada 0:a37ed180e6e3 2254 while(true) {
williequesada 0:a37ed180e6e3 2255 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2256 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 2257 if(Transcurrido>TimeOut) {
williequesada 0:a37ed180e6e3 2258 break;
williequesada 0:a37ed180e6e3 2259 }
williequesada 0:a37ed180e6e3 2260 Tecla=KeyPad_Read();
williequesada 0:a37ed180e6e3 2261 if (Tecla!=NO_KEY) { // Se valida que se ingrese algo en el teclado
williequesada 0:a37ed180e6e3 2262 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2263
williequesada 0:a37ed180e6e3 2264 Numero=(Tecla=='0')||(Tecla=='1')||(Tecla=='2')||(Tecla=='3')||(Tecla=='4')||(Tecla=='5')||(Tecla=='6')||(Tecla=='7')||(Tecla=='8')||(Tecla=='9');
williequesada 0:a37ed180e6e3 2265 if (Numero) { //Cambiar numero
williequesada 0:a37ed180e6e3 2266 CodigoMunicipio_Actual[Line-1]=Tecla;
williequesada 0:a37ed180e6e3 2267 Line++;
williequesada 0:a37ed180e6e3 2268 if(Line==3) {
williequesada 0:a37ed180e6e3 2269 Line=1;
williequesada 0:a37ed180e6e3 2270 }
williequesada 0:a37ed180e6e3 2271 if(Line==0) {
williequesada 0:a37ed180e6e3 2272 Line=2;
williequesada 0:a37ed180e6e3 2273 }
williequesada 0:a37ed180e6e3 2274 }
williequesada 0:a37ed180e6e3 2275 Arriba=(Tecla=='E');
williequesada 0:a37ed180e6e3 2276 if (Arriba) { //Subir puntero
williequesada 0:a37ed180e6e3 2277 Line++;
williequesada 0:a37ed180e6e3 2278 if(Line==3) {
williequesada 0:a37ed180e6e3 2279 Line=1;
williequesada 0:a37ed180e6e3 2280 }
williequesada 0:a37ed180e6e3 2281 }
williequesada 0:a37ed180e6e3 2282 Abajo=(Tecla=='F');
williequesada 0:a37ed180e6e3 2283 if (Abajo) { //Bajar puntero
williequesada 0:a37ed180e6e3 2284 Line--;
williequesada 0:a37ed180e6e3 2285 if(Line==0) {
williequesada 0:a37ed180e6e3 2286 Line=2;
williequesada 0:a37ed180e6e3 2287 }
williequesada 0:a37ed180e6e3 2288 }
williequesada 0:a37ed180e6e3 2289 Salir=(Tecla=='C'); //Cancelar Operacion
williequesada 0:a37ed180e6e3 2290 if (Salir) {
williequesada 0:a37ed180e6e3 2291 break;
williequesada 0:a37ed180e6e3 2292 }
williequesada 0:a37ed180e6e3 2293 Atras=(Tecla=='B');
williequesada 0:a37ed180e6e3 2294 if (Atras) { //Atras en menu
williequesada 0:a37ed180e6e3 2295 break;
williequesada 0:a37ed180e6e3 2296 }
williequesada 0:a37ed180e6e3 2297 Finalizar=(Tecla=='D'); //En caso de confirmacion
williequesada 0:a37ed180e6e3 2298 if (Finalizar) {
williequesada 0:a37ed180e6e3 2299 sprintf(CodigoMunicipio,"%s",CodigoMunicipio_Actual);
williequesada 0:a37ed180e6e3 2300 if((CodigoMunicipio[0]=='0')&&(CodigoMunicipio[1]=='1')) {
williequesada 0:a37ed180e6e3 2301 sprintf(Municipio,"San Jose");
williequesada 0:a37ed180e6e3 2302 Computer.printf("San Jose\n");
williequesada 0:a37ed180e6e3 2303 }
williequesada 0:a37ed180e6e3 2304 if((CodigoMunicipio[0]=='0')&&(CodigoMunicipio[1]=='2')) {
williequesada 0:a37ed180e6e3 2305 sprintf(Municipio,"Tibas");
williequesada 0:a37ed180e6e3 2306 Computer.printf("Tibas\n");
williequesada 0:a37ed180e6e3 2307 }
williequesada 0:a37ed180e6e3 2308 break;
williequesada 0:a37ed180e6e3 2309 }
williequesada 0:a37ed180e6e3 2310 switch (Line) {
williequesada 0:a37ed180e6e3 2311 case 1:
williequesada 0:a37ed180e6e3 2312 SelectionLine1[0]=109;
williequesada 0:a37ed180e6e3 2313 SelectionLine2[0]=109;
williequesada 0:a37ed180e6e3 2314 break;
williequesada 0:a37ed180e6e3 2315 case 2:
williequesada 0:a37ed180e6e3 2316 SelectionLine1[0]=119;
williequesada 0:a37ed180e6e3 2317 SelectionLine2[0]=119;
williequesada 0:a37ed180e6e3 2318 break;
williequesada 0:a37ed180e6e3 2319 }
williequesada 0:a37ed180e6e3 2320 //-------Mostrar en Patalla-------
williequesada 0:a37ed180e6e3 2321 Screen.Rectangle(SelectionLine1[0],SelectionLine1[1],SelectionLine1[2],SelectionLine1[3]);
williequesada 0:a37ed180e6e3 2322 Screen.Rectangle(SelectionLine2[0],SelectionLine2[1],SelectionLine2[2],SelectionLine2[3]);
williequesada 0:a37ed180e6e3 2323 Screen.PutString(15,12,"Id Municipalidad");
williequesada 0:a37ed180e6e3 2324 Screen.PutChar(110,34,CodigoMunicipio_Actual[0]);
williequesada 0:a37ed180e6e3 2325 Screen.PutChar(120,34,CodigoMunicipio_Actual[1]);
williequesada 0:a37ed180e6e3 2326 Screen.Limits();
williequesada 0:a37ed180e6e3 2327 Screen.Show();
williequesada 0:a37ed180e6e3 2328 Computer.printf("%s\n",CodigoMunicipio_Actual);
williequesada 0:a37ed180e6e3 2329 }
williequesada 0:a37ed180e6e3 2330 }
williequesada 0:a37ed180e6e3 2331 }
williequesada 0:a37ed180e6e3 2332
williequesada 0:a37ed180e6e3 2333 void M_Precio(uint32_t TimeOut)
williequesada 0:a37ed180e6e3 2334 {
williequesada 0:a37ed180e6e3 2335 char Precio_Actual[5]; //Lectura de valor en memoria
williequesada 0:a37ed180e6e3 2336 if(Precio>999) {
williequesada 0:a37ed180e6e3 2337 sprintf(Precio_Actual,"%i",Precio);
williequesada 0:a37ed180e6e3 2338 }
williequesada 0:a37ed180e6e3 2339 if(Precio<1000) {
williequesada 0:a37ed180e6e3 2340 sprintf(Precio_Actual,"0%i",Precio);
williequesada 0:a37ed180e6e3 2341 }
williequesada 0:a37ed180e6e3 2342 if(Precio<100) {
williequesada 0:a37ed180e6e3 2343 sprintf(Precio_Actual,"00%i",Precio);
williequesada 0:a37ed180e6e3 2344 }
williequesada 0:a37ed180e6e3 2345 if(Precio<10) {
williequesada 0:a37ed180e6e3 2346 sprintf(Precio_Actual,"000%i",Precio);
williequesada 0:a37ed180e6e3 2347 }
williequesada 0:a37ed180e6e3 2348
williequesada 0:a37ed180e6e3 2349 int SelectionLine1[4]= {99,32,9,0};
williequesada 0:a37ed180e6e3 2350 int SelectionLine2[4]= {99,50,9,0};
williequesada 0:a37ed180e6e3 2351 int Line=1;
williequesada 0:a37ed180e6e3 2352 bool Numero;
williequesada 0:a37ed180e6e3 2353 bool Arriba;
williequesada 0:a37ed180e6e3 2354 bool Abajo;
williequesada 0:a37ed180e6e3 2355 bool Salir;
williequesada 0:a37ed180e6e3 2356 bool Atras;
williequesada 0:a37ed180e6e3 2357 bool Finalizar;
williequesada 0:a37ed180e6e3 2358 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2359
williequesada 0:a37ed180e6e3 2360 Screen.Rectangle(SelectionLine1[0],SelectionLine1[1],SelectionLine1[2],SelectionLine1[3]);
williequesada 0:a37ed180e6e3 2361 Screen.Rectangle(SelectionLine2[0],SelectionLine2[1],SelectionLine2[2],SelectionLine2[3]);
williequesada 0:a37ed180e6e3 2362 Screen.PutString(15,12,"Precio establecido");
williequesada 0:a37ed180e6e3 2363 Screen.PutChar(100,34,Precio_Actual[0]);
williequesada 0:a37ed180e6e3 2364 Screen.PutChar(110,34,Precio_Actual[1]);
williequesada 0:a37ed180e6e3 2365 Screen.PutChar(120,34,Precio_Actual[2]);
williequesada 0:a37ed180e6e3 2366 Screen.PutChar(130,34,Precio_Actual[3]);
williequesada 0:a37ed180e6e3 2367 Screen.PutChar(140,34,'*');
williequesada 0:a37ed180e6e3 2368 Screen.Limits();
williequesada 0:a37ed180e6e3 2369 Screen.Show();
williequesada 0:a37ed180e6e3 2370 Computer.printf("Precio establecido\n");
williequesada 0:a37ed180e6e3 2371 Computer.printf("%s\n",Precio_Actual);
williequesada 0:a37ed180e6e3 2372
williequesada 0:a37ed180e6e3 2373 while(true) {
williequesada 0:a37ed180e6e3 2374 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2375 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 2376 if(Transcurrido>TimeOut) {
williequesada 0:a37ed180e6e3 2377 break;
williequesada 0:a37ed180e6e3 2378 }
williequesada 0:a37ed180e6e3 2379 Tecla=KeyPad_Read();
williequesada 0:a37ed180e6e3 2380 if (Tecla!=NO_KEY) { // Se valida que se ingrese algo en el teclado
williequesada 0:a37ed180e6e3 2381 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2382
williequesada 0:a37ed180e6e3 2383 Numero=(Tecla=='0')||(Tecla=='1')||(Tecla=='2')||(Tecla=='3')||(Tecla=='4')||(Tecla=='5')||(Tecla=='6')||(Tecla=='7')||(Tecla=='8')||(Tecla=='9');
williequesada 0:a37ed180e6e3 2384 if (Numero) { //Cambiar numero
williequesada 0:a37ed180e6e3 2385 Precio_Actual[Line-1]=Tecla;
williequesada 0:a37ed180e6e3 2386 Line++;
williequesada 0:a37ed180e6e3 2387 if(Line==5) {
williequesada 0:a37ed180e6e3 2388 Line=1;
williequesada 0:a37ed180e6e3 2389 }
williequesada 0:a37ed180e6e3 2390 if(Line==0) {
williequesada 0:a37ed180e6e3 2391 Line=4;
williequesada 0:a37ed180e6e3 2392 }
williequesada 0:a37ed180e6e3 2393 }
williequesada 0:a37ed180e6e3 2394 Arriba=(Tecla=='E');
williequesada 0:a37ed180e6e3 2395 if (Arriba) { //Subir puntero
williequesada 0:a37ed180e6e3 2396 Line++;
williequesada 0:a37ed180e6e3 2397 if(Line==5) {
williequesada 0:a37ed180e6e3 2398 Line=1;
williequesada 0:a37ed180e6e3 2399 }
williequesada 0:a37ed180e6e3 2400 }
williequesada 0:a37ed180e6e3 2401 Abajo=(Tecla=='F');
williequesada 0:a37ed180e6e3 2402 if (Abajo) { //Bajar puntero
williequesada 0:a37ed180e6e3 2403 Line--;
williequesada 0:a37ed180e6e3 2404 if(Line==0) {
williequesada 0:a37ed180e6e3 2405 Line=4;
williequesada 0:a37ed180e6e3 2406 }
williequesada 0:a37ed180e6e3 2407 }
williequesada 0:a37ed180e6e3 2408 Salir=(Tecla=='C'); //Cancelar Operacion
williequesada 0:a37ed180e6e3 2409 if (Salir) {
williequesada 0:a37ed180e6e3 2410 break;
williequesada 0:a37ed180e6e3 2411 }
williequesada 0:a37ed180e6e3 2412 Atras=(Tecla=='B');
williequesada 0:a37ed180e6e3 2413 if (Atras) { //Atras en menu
williequesada 0:a37ed180e6e3 2414 break;
williequesada 0:a37ed180e6e3 2415 }
williequesada 0:a37ed180e6e3 2416 Finalizar=(Tecla=='D'); //En caso de confirmacion
williequesada 0:a37ed180e6e3 2417 if (Finalizar) {
williequesada 0:a37ed180e6e3 2418 Precio=((uint8_t)Precio_Actual[0]-48)*1000+((uint8_t)Precio_Actual[1]-48)*100+((uint8_t)Precio_Actual[2]-48)*10+((uint8_t)Precio_Actual[3]-48);
williequesada 0:a37ed180e6e3 2419 break;
williequesada 0:a37ed180e6e3 2420 }
williequesada 0:a37ed180e6e3 2421 switch (Line) {
williequesada 0:a37ed180e6e3 2422 case 1:
williequesada 0:a37ed180e6e3 2423 SelectionLine1[0]=99;
williequesada 0:a37ed180e6e3 2424 SelectionLine2[0]=99;
williequesada 0:a37ed180e6e3 2425 break;
williequesada 0:a37ed180e6e3 2426 case 2:
williequesada 0:a37ed180e6e3 2427 SelectionLine1[0]=109;
williequesada 0:a37ed180e6e3 2428 SelectionLine2[0]=109;
williequesada 0:a37ed180e6e3 2429 break;
williequesada 0:a37ed180e6e3 2430 case 3:
williequesada 0:a37ed180e6e3 2431 SelectionLine1[0]=119;
williequesada 0:a37ed180e6e3 2432 SelectionLine2[0]=119;
williequesada 0:a37ed180e6e3 2433 break;
williequesada 0:a37ed180e6e3 2434 case 4:
williequesada 0:a37ed180e6e3 2435 SelectionLine1[0]=129;
williequesada 0:a37ed180e6e3 2436 SelectionLine2[0]=129;
williequesada 0:a37ed180e6e3 2437 break;
williequesada 0:a37ed180e6e3 2438 }
williequesada 0:a37ed180e6e3 2439 //-------Mostrar en Patalla-------
williequesada 0:a37ed180e6e3 2440 Screen.Rectangle(SelectionLine1[0],SelectionLine1[1],SelectionLine1[2],SelectionLine1[3]);
williequesada 0:a37ed180e6e3 2441 Screen.Rectangle(SelectionLine2[0],SelectionLine2[1],SelectionLine2[2],SelectionLine2[3]);
williequesada 0:a37ed180e6e3 2442 Screen.PutString(15,12,"Precio establecido");
williequesada 0:a37ed180e6e3 2443 Screen.PutChar(100,34,Precio_Actual[0]);
williequesada 0:a37ed180e6e3 2444 Screen.PutChar(110,34,Precio_Actual[1]);
williequesada 0:a37ed180e6e3 2445 Screen.PutChar(120,34,Precio_Actual[2]);
williequesada 0:a37ed180e6e3 2446 Screen.PutChar(130,34,Precio_Actual[3]);
williequesada 0:a37ed180e6e3 2447 Screen.PutChar(140,34,'*');
williequesada 0:a37ed180e6e3 2448 Screen.Limits();
williequesada 0:a37ed180e6e3 2449 Screen.Show();
williequesada 0:a37ed180e6e3 2450 Computer.printf("%s\n",Precio_Actual);
williequesada 0:a37ed180e6e3 2451 }
williequesada 0:a37ed180e6e3 2452 }
williequesada 0:a37ed180e6e3 2453 }
williequesada 0:a37ed180e6e3 2454
williequesada 0:a37ed180e6e3 2455 void M_IntensidadSenal()
williequesada 0:a37ed180e6e3 2456 {
williequesada 0:a37ed180e6e3 2457 char Senal[]="000";
williequesada 0:a37ed180e6e3 2458 Slave.Command(COMMAND_SIGNAL);
williequesada 0:a37ed180e6e3 2459 Screen.Rectangle(129,14,5,0);
williequesada 0:a37ed180e6e3 2460 Screen.PutString(15,12,"Intensidad senal");
williequesada 0:a37ed180e6e3 2461 Screen.PutString(15,34,"Conectando...");
williequesada 0:a37ed180e6e3 2462 Screen.Limits();
williequesada 0:a37ed180e6e3 2463 Screen.Show();
williequesada 0:a37ed180e6e3 2464 Computer.printf("Conectando...\n");
williequesada 0:a37ed180e6e3 2465 wait(3);
williequesada 0:a37ed180e6e3 2466
williequesada 0:a37ed180e6e3 2467 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2468 while(true) {
williequesada 0:a37ed180e6e3 2469 if(Slave.Available()) {
williequesada 0:a37ed180e6e3 2470 Computer.putc('A');
williequesada 0:a37ed180e6e3 2471 wait_ms(200);
williequesada 0:a37ed180e6e3 2472 break;
williequesada 0:a37ed180e6e3 2473 }
williequesada 0:a37ed180e6e3 2474 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2475 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 2476 if(Transcurrido>20000) {
williequesada 0:a37ed180e6e3 2477 Computer.putc('E');
williequesada 0:a37ed180e6e3 2478 break;
williequesada 0:a37ed180e6e3 2479 }
williequesada 0:a37ed180e6e3 2480 }
williequesada 0:a37ed180e6e3 2481 InByte=Slave.Recibe();
williequesada 0:a37ed180e6e3 2482 if(InByte=='A') {
williequesada 0:a37ed180e6e3 2483 Senal[2]=Slave.Recibe();
williequesada 0:a37ed180e6e3 2484 Senal[1]=Slave.Recibe();
williequesada 0:a37ed180e6e3 2485 Senal[0]=Slave.Recibe();
williequesada 0:a37ed180e6e3 2486 Screen.Rectangle(129,14,5,0);
williequesada 0:a37ed180e6e3 2487 Screen.PutString(15,12,"Intensidad senal");
williequesada 0:a37ed180e6e3 2488 Screen.PutString(15,34,"CSQ:");
williequesada 0:a37ed180e6e3 2489 Screen.PutChar(70,34,Senal[0]);
williequesada 0:a37ed180e6e3 2490 Screen.PutChar(80,34,Senal[1]);
williequesada 0:a37ed180e6e3 2491 Screen.PutChar(92,34,'.');
williequesada 0:a37ed180e6e3 2492 Screen.PutChar(96,34,Senal[2]);
williequesada 0:a37ed180e6e3 2493 Screen.Limits();
williequesada 0:a37ed180e6e3 2494 Screen.Show();
williequesada 0:a37ed180e6e3 2495 Computer.printf("CSQ: %s\n",Senal);
williequesada 0:a37ed180e6e3 2496 wait(3);
williequesada 0:a37ed180e6e3 2497 } else {
williequesada 0:a37ed180e6e3 2498 Screen.Rectangle(129,14,5,0);
williequesada 0:a37ed180e6e3 2499 Screen.PutString(15,12,"Intensidad senal");
williequesada 0:a37ed180e6e3 2500 Screen.PutString(15,34,"Error.");
williequesada 0:a37ed180e6e3 2501 Screen.Limits();
williequesada 0:a37ed180e6e3 2502 Screen.Show();
williequesada 0:a37ed180e6e3 2503 Computer.printf("Error\n");
williequesada 0:a37ed180e6e3 2504 wait(3);
williequesada 0:a37ed180e6e3 2505 }
williequesada 0:a37ed180e6e3 2506 }
williequesada 0:a37ed180e6e3 2507 void M_ConexionSim900()
williequesada 0:a37ed180e6e3 2508 {
williequesada 0:a37ed180e6e3 2509 Screen.PutString(15,12,"Conexion red");
williequesada 0:a37ed180e6e3 2510 Screen.PutString(15,34,"Conetando...");
williequesada 0:a37ed180e6e3 2511 Screen.Limits();
williequesada 0:a37ed180e6e3 2512 Screen.Show();
williequesada 0:a37ed180e6e3 2513 Computer.printf("Conectando...\n");
williequesada 0:a37ed180e6e3 2514
williequesada 0:a37ed180e6e3 2515 Slave.Command(COMMAND_CONNECT);
williequesada 0:a37ed180e6e3 2516 while(true) {
williequesada 0:a37ed180e6e3 2517 if(Slave.Available()) {
williequesada 0:a37ed180e6e3 2518 wait_ms(200);
williequesada 0:a37ed180e6e3 2519 break;
williequesada 0:a37ed180e6e3 2520 }
williequesada 0:a37ed180e6e3 2521 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2522 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 2523 if(Transcurrido>20000) {
williequesada 0:a37ed180e6e3 2524 Computer.putc('E');
williequesada 0:a37ed180e6e3 2525 break;
williequesada 0:a37ed180e6e3 2526 }
williequesada 0:a37ed180e6e3 2527 }
williequesada 0:a37ed180e6e3 2528 InByte=Slave.Recibe();
williequesada 0:a37ed180e6e3 2529 if(InByte=='A') {
williequesada 0:a37ed180e6e3 2530 Screen.PutString(15,12,"Conexion red");
williequesada 0:a37ed180e6e3 2531 Screen.PutString(15,34,"Conectado.");
williequesada 0:a37ed180e6e3 2532 Screen.Limits();
williequesada 0:a37ed180e6e3 2533 Screen.Show();
williequesada 0:a37ed180e6e3 2534 wait(3);
williequesada 0:a37ed180e6e3 2535 } else {
williequesada 0:a37ed180e6e3 2536 Screen.PutString(15,12,"Conexion red");
williequesada 0:a37ed180e6e3 2537 Screen.PutString(15,34,"Error.");
williequesada 0:a37ed180e6e3 2538 Screen.Limits();
williequesada 0:a37ed180e6e3 2539 Screen.Show();
williequesada 0:a37ed180e6e3 2540 wait(3);
williequesada 0:a37ed180e6e3 2541 }
williequesada 0:a37ed180e6e3 2542 }
williequesada 0:a37ed180e6e3 2543
williequesada 0:a37ed180e6e3 2544 void M_PruebaTiquete()
williequesada 0:a37ed180e6e3 2545 {
williequesada 0:a37ed180e6e3 2546 Screen.PutString(15,12,"Tiquete de prueba");
williequesada 0:a37ed180e6e3 2547 Screen.PutString(15,34,"Conectando...");
williequesada 0:a37ed180e6e3 2548 Screen.Limits();
williequesada 0:a37ed180e6e3 2549 Screen.Show();
williequesada 0:a37ed180e6e3 2550 wait(1);
williequesada 0:a37ed180e6e3 2551 Computer.printf("Conectando...\n");
williequesada 0:a37ed180e6e3 2552
williequesada 0:a37ed180e6e3 2553 Impresora.Power(1);
williequesada 0:a37ed180e6e3 2554 wait_ms(1000);
williequesada 0:a37ed180e6e3 2555 Comando=Impresora.Reset();
williequesada 0:a37ed180e6e3 2556
williequesada 0:a37ed180e6e3 2557 if(Comando==2) {
williequesada 0:a37ed180e6e3 2558 Screen.PutString(15,12,"Tiquete de prueba");
williequesada 0:a37ed180e6e3 2559 Screen.PutString(15,34,"Error.");
williequesada 0:a37ed180e6e3 2560 Screen.Limits();
williequesada 0:a37ed180e6e3 2561 Screen.Show();
williequesada 0:a37ed180e6e3 2562 Computer.printf("Error\n");
williequesada 0:a37ed180e6e3 2563
williequesada 0:a37ed180e6e3 2564 Impresora.End();
williequesada 0:a37ed180e6e3 2565 AlarmasCall(2,1);
williequesada 0:a37ed180e6e3 2566 wait(3);
williequesada 0:a37ed180e6e3 2567 }
williequesada 0:a37ed180e6e3 2568 if(Comando==1) {
williequesada 0:a37ed180e6e3 2569 Screen.PutString(15,12,"Tiquete de prueba");
williequesada 0:a37ed180e6e3 2570 Screen.PutString(15,34,"Imprimiendo...");
williequesada 0:a37ed180e6e3 2571 Screen.Limits();
williequesada 0:a37ed180e6e3 2572 Screen.Show();
williequesada 0:a37ed180e6e3 2573 Computer.printf("Imprimiendo...\n");
williequesada 0:a37ed180e6e3 2574
williequesada 0:a37ed180e6e3 2575 Comando=Impresora.Output(FechaRespuesta,"00:00","00:00","0000","00:00","000000","0000*");
williequesada 0:a37ed180e6e3 2576 if(Comando==0) {
williequesada 0:a37ed180e6e3 2577 Computer.printf("Alarma Output\n");
williequesada 0:a37ed180e6e3 2578 AlarmasCall(2,1);
williequesada 0:a37ed180e6e3 2579 } else {
williequesada 0:a37ed180e6e3 2580 AlarmasCall(2,0);
williequesada 0:a37ed180e6e3 2581 }
williequesada 0:a37ed180e6e3 2582
williequesada 0:a37ed180e6e3 2583 Comando=Impresora.Paper(600);
williequesada 0:a37ed180e6e3 2584 if(Comando==0) {
williequesada 0:a37ed180e6e3 2585 Computer.printf("Alarma Papel\n");
williequesada 0:a37ed180e6e3 2586 AlarmasCall(2,1);
williequesada 0:a37ed180e6e3 2587 } else {
williequesada 0:a37ed180e6e3 2588 AlarmasCall(2,0);
williequesada 0:a37ed180e6e3 2589 }
williequesada 0:a37ed180e6e3 2590
williequesada 0:a37ed180e6e3 2591 Comando=Impresora.Cutter(1);
williequesada 0:a37ed180e6e3 2592 if(Comando==0) {
williequesada 0:a37ed180e6e3 2593 Computer.printf("Alarma Cutter\n");
williequesada 0:a37ed180e6e3 2594 AlarmasCall(2,1);
williequesada 0:a37ed180e6e3 2595 } else {
williequesada 0:a37ed180e6e3 2596 AlarmasCall(2,0);
williequesada 0:a37ed180e6e3 2597 }
williequesada 0:a37ed180e6e3 2598
williequesada 0:a37ed180e6e3 2599 Screen.PutString(15,12,"Tiquete de prueba");
williequesada 0:a37ed180e6e3 2600 Screen.PutString(15,34,"Retire.");
williequesada 0:a37ed180e6e3 2601 Screen.Limits();
williequesada 0:a37ed180e6e3 2602 Screen.Show();
williequesada 0:a37ed180e6e3 2603 Computer.printf("Retire\n");
williequesada 0:a37ed180e6e3 2604 wait(1);
williequesada 0:a37ed180e6e3 2605 Comando=Impresora.End();
williequesada 0:a37ed180e6e3 2606 wait(2);
williequesada 0:a37ed180e6e3 2607 }
williequesada 0:a37ed180e6e3 2608 if(Comando==0) {
williequesada 0:a37ed180e6e3 2609 Screen.PutString(15,12,"Tiquete de prueba");
williequesada 0:a37ed180e6e3 2610 Screen.PutString(15,34,"Error.");
williequesada 0:a37ed180e6e3 2611 Screen.Limits();
williequesada 0:a37ed180e6e3 2612 Screen.Show();
williequesada 0:a37ed180e6e3 2613 Computer.printf("Error\n");
williequesada 0:a37ed180e6e3 2614 Comando=Impresora.End();
williequesada 0:a37ed180e6e3 2615 AlarmasCall(2,1);
williequesada 0:a37ed180e6e3 2616 wait(3);
williequesada 0:a37ed180e6e3 2617 }
williequesada 0:a37ed180e6e3 2618 Impresora.Power(0);
williequesada 0:a37ed180e6e3 2619
williequesada 0:a37ed180e6e3 2620 int TiquetesDisponibles=Papel-Impresora.Ticket(1);
williequesada 0:a37ed180e6e3 2621 if(TiquetesDisponibles<200) {
williequesada 0:a37ed180e6e3 2622 sprintf(PapelDisponible,"%i",TiquetesDisponibles);
williequesada 0:a37ed180e6e3 2623 AlarmasCall(3,1);
williequesada 0:a37ed180e6e3 2624 } else {
williequesada 0:a37ed180e6e3 2625 sprintf(PapelDisponible,"%i",TiquetesDisponibles);
williequesada 0:a37ed180e6e3 2626 AlarmasCall(3,0);
williequesada 0:a37ed180e6e3 2627 }
williequesada 0:a37ed180e6e3 2628 }
williequesada 0:a37ed180e6e3 2629
williequesada 0:a37ed180e6e3 2630 void M_ConexionImpresora()
williequesada 0:a37ed180e6e3 2631 {
williequesada 0:a37ed180e6e3 2632 Screen.PutString(15,12,"Conexion impresora");
williequesada 0:a37ed180e6e3 2633 Screen.PutString(15,34,"Conectando...");
williequesada 0:a37ed180e6e3 2634 Screen.Limits();
williequesada 0:a37ed180e6e3 2635 Screen.Show();
williequesada 0:a37ed180e6e3 2636 Computer.printf("Conectando...\n");
williequesada 0:a37ed180e6e3 2637
williequesada 0:a37ed180e6e3 2638 Impresora.Power(1);
williequesada 0:a37ed180e6e3 2639 wait_ms(1000);
williequesada 0:a37ed180e6e3 2640 Comando=Impresora.Reset();
williequesada 0:a37ed180e6e3 2641
williequesada 0:a37ed180e6e3 2642 if(Comando==2) {
williequesada 0:a37ed180e6e3 2643 Screen.PutString(15,12,"Conexion impresora");
williequesada 0:a37ed180e6e3 2644 Screen.PutString(15,34,"Desconectada.");
williequesada 0:a37ed180e6e3 2645 Screen.Limits();
williequesada 0:a37ed180e6e3 2646 Screen.Show();
williequesada 0:a37ed180e6e3 2647 Computer.printf("Desconectada\n");
williequesada 0:a37ed180e6e3 2648 Impresora.End();
williequesada 0:a37ed180e6e3 2649 AlarmasCall(2,1);
williequesada 0:a37ed180e6e3 2650 wait(3);
williequesada 0:a37ed180e6e3 2651 }
williequesada 0:a37ed180e6e3 2652 if(Comando==1) {
williequesada 0:a37ed180e6e3 2653 Screen.PutString(15,12,"Conexion impresora");
williequesada 0:a37ed180e6e3 2654 Screen.PutString(15,34,"Conectada.");
williequesada 0:a37ed180e6e3 2655 Screen.Limits();
williequesada 0:a37ed180e6e3 2656 Screen.Show();
williequesada 0:a37ed180e6e3 2657 Computer.printf("Conectada\n");
williequesada 0:a37ed180e6e3 2658 Comando=Impresora.End();
williequesada 0:a37ed180e6e3 2659 AlarmasCall(2,0);
williequesada 0:a37ed180e6e3 2660 wait(3);
williequesada 0:a37ed180e6e3 2661 }
williequesada 0:a37ed180e6e3 2662 if(Comando==0) {
williequesada 0:a37ed180e6e3 2663 Screen.PutString(15,12,"Conexion impresora");
williequesada 0:a37ed180e6e3 2664 Screen.PutString(15,34,"Conectada error.");
williequesada 0:a37ed180e6e3 2665 Screen.Limits();
williequesada 0:a37ed180e6e3 2666 Screen.Show();
williequesada 0:a37ed180e6e3 2667 Computer.printf("Error\n");
williequesada 0:a37ed180e6e3 2668 Comando=Impresora.End();
williequesada 0:a37ed180e6e3 2669 AlarmasCall(2,1);
williequesada 0:a37ed180e6e3 2670 wait(3);
williequesada 0:a37ed180e6e3 2671 }
williequesada 0:a37ed180e6e3 2672 Impresora.Power(0);
williequesada 0:a37ed180e6e3 2673 }
williequesada 0:a37ed180e6e3 2674
williequesada 0:a37ed180e6e3 2675 void M_CambioPapel(uint32_t TimeOut)
williequesada 0:a37ed180e6e3 2676 {
williequesada 0:a37ed180e6e3 2677 char Papel_Actual[5]; //Lectura de valor en memoria
williequesada 0:a37ed180e6e3 2678 if(Papel>999) {
williequesada 0:a37ed180e6e3 2679 sprintf(Papel_Actual,"%i",Papel);
williequesada 0:a37ed180e6e3 2680 }
williequesada 0:a37ed180e6e3 2681 if(Papel<1000) {
williequesada 0:a37ed180e6e3 2682 sprintf(Papel_Actual,"0%i",Papel);
williequesada 0:a37ed180e6e3 2683 }
williequesada 0:a37ed180e6e3 2684 if(Papel<100) {
williequesada 0:a37ed180e6e3 2685 sprintf(Papel_Actual,"00%i",Papel);
williequesada 0:a37ed180e6e3 2686 }
williequesada 0:a37ed180e6e3 2687 if(Papel<10) {
williequesada 0:a37ed180e6e3 2688 sprintf(Papel_Actual,"000%i",Papel);
williequesada 0:a37ed180e6e3 2689 }
williequesada 0:a37ed180e6e3 2690
williequesada 0:a37ed180e6e3 2691 int SelectionLine1[4]= {99,32,9,0};
williequesada 0:a37ed180e6e3 2692 int SelectionLine2[4]= {99,50,9,0};
williequesada 0:a37ed180e6e3 2693 int Line=1;
williequesada 0:a37ed180e6e3 2694 bool Numero;
williequesada 0:a37ed180e6e3 2695 bool Arriba;
williequesada 0:a37ed180e6e3 2696 bool Abajo;
williequesada 0:a37ed180e6e3 2697 bool Salir;
williequesada 0:a37ed180e6e3 2698 bool Atras;
williequesada 0:a37ed180e6e3 2699 bool Finalizar;
williequesada 0:a37ed180e6e3 2700
williequesada 0:a37ed180e6e3 2701 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2702
williequesada 0:a37ed180e6e3 2703 Screen.Rectangle(SelectionLine1[0],SelectionLine1[1],SelectionLine1[2],SelectionLine1[3]);
williequesada 0:a37ed180e6e3 2704 Screen.Rectangle(SelectionLine2[0],SelectionLine2[1],SelectionLine2[2],SelectionLine2[3]);
williequesada 0:a37ed180e6e3 2705 Screen.PutString(15,12,"Cambio de papel");
williequesada 0:a37ed180e6e3 2706 Screen.PutChar(100,34,Papel_Actual[0]);
williequesada 0:a37ed180e6e3 2707 Screen.PutChar(110,34,Papel_Actual[1]);
williequesada 0:a37ed180e6e3 2708 Screen.PutChar(120,34,Papel_Actual[2]);
williequesada 0:a37ed180e6e3 2709 Screen.PutChar(130,34,Papel_Actual[3]);
williequesada 0:a37ed180e6e3 2710 Screen.Limits();
williequesada 0:a37ed180e6e3 2711 Screen.Show();
williequesada 0:a37ed180e6e3 2712 Computer.printf("Cambio de papel\n");
williequesada 0:a37ed180e6e3 2713 Computer.printf("%s\n",Papel_Actual);
williequesada 0:a37ed180e6e3 2714
williequesada 0:a37ed180e6e3 2715 while(true) {
williequesada 0:a37ed180e6e3 2716 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2717 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 2718 if(Transcurrido>TimeOut) {
williequesada 0:a37ed180e6e3 2719 break;
williequesada 0:a37ed180e6e3 2720 }
williequesada 0:a37ed180e6e3 2721 Tecla=KeyPad_Read();
williequesada 0:a37ed180e6e3 2722 if (Tecla!=NO_KEY) { // Se valida que se ingrese algo en el teclado
williequesada 0:a37ed180e6e3 2723 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2724
williequesada 0:a37ed180e6e3 2725 Numero=(Tecla=='0')||(Tecla=='1')||(Tecla=='2')||(Tecla=='3')||(Tecla=='4')||(Tecla=='5')||(Tecla=='6')||(Tecla=='7')||(Tecla=='8')||(Tecla=='9');
williequesada 0:a37ed180e6e3 2726 if (Numero) { //Cambiar numero
williequesada 0:a37ed180e6e3 2727 Papel_Actual[Line-1]=Tecla;
williequesada 0:a37ed180e6e3 2728 Line++;
williequesada 0:a37ed180e6e3 2729 if(Line==5) {
williequesada 0:a37ed180e6e3 2730 Line=1;
williequesada 0:a37ed180e6e3 2731 }
williequesada 0:a37ed180e6e3 2732 if(Line==0) {
williequesada 0:a37ed180e6e3 2733 Line=4;
williequesada 0:a37ed180e6e3 2734 }
williequesada 0:a37ed180e6e3 2735 }
williequesada 0:a37ed180e6e3 2736 Arriba=(Tecla=='E');
williequesada 0:a37ed180e6e3 2737 if (Arriba) { //Subir puntero
williequesada 0:a37ed180e6e3 2738 Line++;
williequesada 0:a37ed180e6e3 2739 if(Line==5) {
williequesada 0:a37ed180e6e3 2740 Line=1;
williequesada 0:a37ed180e6e3 2741 }
williequesada 0:a37ed180e6e3 2742 }
williequesada 0:a37ed180e6e3 2743 Abajo=(Tecla=='F');
williequesada 0:a37ed180e6e3 2744 if (Abajo) { //Bajar puntero
williequesada 0:a37ed180e6e3 2745 Line--;
williequesada 0:a37ed180e6e3 2746 if(Line==0) {
williequesada 0:a37ed180e6e3 2747 Line=4;
williequesada 0:a37ed180e6e3 2748 }
williequesada 0:a37ed180e6e3 2749 }
williequesada 0:a37ed180e6e3 2750 Salir=(Tecla=='C'); //Cancelar Operacion
williequesada 0:a37ed180e6e3 2751 if (Salir) {
williequesada 0:a37ed180e6e3 2752 break;
williequesada 0:a37ed180e6e3 2753 }
williequesada 0:a37ed180e6e3 2754 Atras=(Tecla=='B');
williequesada 0:a37ed180e6e3 2755 if (Atras) { //Atras en menu
williequesada 0:a37ed180e6e3 2756 break;
williequesada 0:a37ed180e6e3 2757 }
williequesada 0:a37ed180e6e3 2758 Finalizar=(Tecla=='D'); //En caso de confirmacion
williequesada 0:a37ed180e6e3 2759 if (Finalizar) {
williequesada 0:a37ed180e6e3 2760 Papel=((uint8_t)Papel_Actual[0]-48)*1000+((uint8_t)Papel_Actual[1]-48)*100+((uint8_t)Papel_Actual[2]-48)*10+((uint8_t)Papel_Actual[3]-48);
williequesada 0:a37ed180e6e3 2761 int TiquetesDisponibles=Papel-Impresora.Ticket(1);
williequesada 0:a37ed180e6e3 2762 if(TiquetesDisponibles<200) {
williequesada 0:a37ed180e6e3 2763 sprintf(PapelDisponible,"%i",TiquetesDisponibles);
williequesada 0:a37ed180e6e3 2764 AlarmasCall(3,1);
williequesada 0:a37ed180e6e3 2765 } else {
williequesada 0:a37ed180e6e3 2766 sprintf(PapelDisponible,"%i",TiquetesDisponibles);
williequesada 0:a37ed180e6e3 2767 AlarmasCall(3,0);
williequesada 0:a37ed180e6e3 2768 }
williequesada 0:a37ed180e6e3 2769 break;
williequesada 0:a37ed180e6e3 2770 }
williequesada 0:a37ed180e6e3 2771 switch (Line) {
williequesada 0:a37ed180e6e3 2772 case 1:
williequesada 0:a37ed180e6e3 2773 SelectionLine1[0]=99;
williequesada 0:a37ed180e6e3 2774 SelectionLine2[0]=99;
williequesada 0:a37ed180e6e3 2775 break;
williequesada 0:a37ed180e6e3 2776 case 2:
williequesada 0:a37ed180e6e3 2777 SelectionLine1[0]=109;
williequesada 0:a37ed180e6e3 2778 SelectionLine2[0]=109;
williequesada 0:a37ed180e6e3 2779 break;
williequesada 0:a37ed180e6e3 2780 case 3:
williequesada 0:a37ed180e6e3 2781 SelectionLine1[0]=119;
williequesada 0:a37ed180e6e3 2782 SelectionLine2[0]=119;
williequesada 0:a37ed180e6e3 2783 break;
williequesada 0:a37ed180e6e3 2784 case 4:
williequesada 0:a37ed180e6e3 2785 SelectionLine1[0]=129;
williequesada 0:a37ed180e6e3 2786 SelectionLine2[0]=129;
williequesada 0:a37ed180e6e3 2787 break;
williequesada 0:a37ed180e6e3 2788 }
williequesada 0:a37ed180e6e3 2789 //-------Mostrar en Patalla-------
williequesada 0:a37ed180e6e3 2790 Screen.Rectangle(SelectionLine1[0],SelectionLine1[1],SelectionLine1[2],SelectionLine1[3]);
williequesada 0:a37ed180e6e3 2791 Screen.Rectangle(SelectionLine2[0],SelectionLine2[1],SelectionLine2[2],SelectionLine2[3]);
williequesada 0:a37ed180e6e3 2792 Screen.PutString(15,12,"Cambio de papel");
williequesada 0:a37ed180e6e3 2793 Screen.PutChar(100,34,Papel_Actual[0]);
williequesada 0:a37ed180e6e3 2794 Screen.PutChar(110,34,Papel_Actual[1]);
williequesada 0:a37ed180e6e3 2795 Screen.PutChar(120,34,Papel_Actual[2]);
williequesada 0:a37ed180e6e3 2796 Screen.PutChar(130,34,Papel_Actual[3]);
williequesada 0:a37ed180e6e3 2797 Screen.Limits();
williequesada 0:a37ed180e6e3 2798 Screen.Show();
williequesada 0:a37ed180e6e3 2799 Computer.printf("%s\n",Papel_Actual);
williequesada 0:a37ed180e6e3 2800 }
williequesada 0:a37ed180e6e3 2801 }
williequesada 0:a37ed180e6e3 2802 }
williequesada 0:a37ed180e6e3 2803 void M_PruebaTeclado(uint32_t TimeOut)
williequesada 0:a37ed180e6e3 2804 {
williequesada 0:a37ed180e6e3 2805 bool Numero;
williequesada 0:a37ed180e6e3 2806 int Line=0;
williequesada 0:a37ed180e6e3 2807 char Secuencia[16]= {'1','2','3','A','4','5','6','B','7','8','9','C','F','0','E','D'};
williequesada 0:a37ed180e6e3 2808 char SecuenciaSelect[2];
williequesada 0:a37ed180e6e3 2809 SecuenciaSelect[0]='1';
williequesada 0:a37ed180e6e3 2810 SecuenciaSelect[1]='\0';
williequesada 0:a37ed180e6e3 2811 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2812
williequesada 0:a37ed180e6e3 2813 Screen.Limits();
williequesada 0:a37ed180e6e3 2814 Screen.PutString(15,12,"Prueba de teclado");
williequesada 0:a37ed180e6e3 2815 Screen.PutString(15,34,"> <");
williequesada 0:a37ed180e6e3 2816 Screen.PutString(33,34,SecuenciaSelect);
williequesada 0:a37ed180e6e3 2817 Screen.Show();
williequesada 0:a37ed180e6e3 2818 Computer.putc(SecuenciaSelect[0]);
williequesada 0:a37ed180e6e3 2819
williequesada 0:a37ed180e6e3 2820 while(true) {
williequesada 0:a37ed180e6e3 2821 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2822 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 2823 if(Transcurrido>TimeOut) {
williequesada 0:a37ed180e6e3 2824 Screen.Limits();
williequesada 0:a37ed180e6e3 2825 Screen.PutString(15,12,"Prueba de teclado");
williequesada 0:a37ed180e6e3 2826 Screen.PutString(15,34,"Error.");
williequesada 0:a37ed180e6e3 2827 Screen.Show();
williequesada 0:a37ed180e6e3 2828 Computer.printf("\nError\n");
williequesada 0:a37ed180e6e3 2829 wait(3);
williequesada 0:a37ed180e6e3 2830 }
williequesada 0:a37ed180e6e3 2831 Tecla = KeyPad_Read();
williequesada 0:a37ed180e6e3 2832 if (Tecla!=NO_KEY) { // Se valida que se ingrese algo en el teclado
williequesada 0:a37ed180e6e3 2833 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2834
williequesada 0:a37ed180e6e3 2835 Numero=(Tecla==Secuencia[Line]);
williequesada 0:a37ed180e6e3 2836 if (Numero) { //Cambiar numero
williequesada 0:a37ed180e6e3 2837 Line++;
williequesada 0:a37ed180e6e3 2838 SecuenciaSelect[0]=Secuencia[Line];
williequesada 0:a37ed180e6e3 2839 }
williequesada 0:a37ed180e6e3 2840
williequesada 0:a37ed180e6e3 2841 if (Line>15) { //Cambiar numero
williequesada 0:a37ed180e6e3 2842 Screen.Limits();
williequesada 0:a37ed180e6e3 2843 Screen.PutString(15,12,"Prueba de teclado");
williequesada 0:a37ed180e6e3 2844 Screen.PutString(15,34,"Aprobada.");
williequesada 0:a37ed180e6e3 2845 Screen.Show();
williequesada 0:a37ed180e6e3 2846 Computer.printf("\nAprobada\n");
williequesada 0:a37ed180e6e3 2847 wait(3);
williequesada 0:a37ed180e6e3 2848 break;
williequesada 0:a37ed180e6e3 2849 }
williequesada 0:a37ed180e6e3 2850
williequesada 0:a37ed180e6e3 2851 Screen.Limits();
williequesada 0:a37ed180e6e3 2852 Screen.PutString(15,12,"Prueba de teclado");
williequesada 0:a37ed180e6e3 2853 Screen.PutString(15,34,"> <");
williequesada 0:a37ed180e6e3 2854 Screen.PutString(33,34,SecuenciaSelect);
williequesada 0:a37ed180e6e3 2855 Screen.Show();
williequesada 0:a37ed180e6e3 2856 Computer.putc(SecuenciaSelect[0]);
williequesada 0:a37ed180e6e3 2857 }
williequesada 0:a37ed180e6e3 2858 }
williequesada 0:a37ed180e6e3 2859
williequesada 0:a37ed180e6e3 2860 }
williequesada 0:a37ed180e6e3 2861
williequesada 0:a37ed180e6e3 2862 void M_ConexionLectora()
williequesada 0:a37ed180e6e3 2863 {
williequesada 0:a37ed180e6e3 2864 CardReaderPower=1;
williequesada 0:a37ed180e6e3 2865 Screen.Limits();
williequesada 0:a37ed180e6e3 2866 Screen.PutString(15,12,"Conexion lectora");
williequesada 0:a37ed180e6e3 2867 Screen.PutString(15,34,"Conectando...");
williequesada 0:a37ed180e6e3 2868 Screen.Show();
williequesada 0:a37ed180e6e3 2869 Computer.printf("Conectando...\n");
williequesada 0:a37ed180e6e3 2870 wait(2);
williequesada 0:a37ed180e6e3 2871 CardReader_Counter=0;
williequesada 0:a37ed180e6e3 2872 if(CardReader.writeable()) {
williequesada 0:a37ed180e6e3 2873 CardReader.putc(SOH); // 00000001
williequesada 0:a37ed180e6e3 2874 CardReader.putc(ADDR); // 00000000
williequesada 0:a37ed180e6e3 2875 CardReader.putc(LEN); // 00000000
williequesada 0:a37ed180e6e3 2876 CardReader.putc(LEN); // 00000000
williequesada 0:a37ed180e6e3 2877 CardReader.putc(DEV_RESET); // 01111111
williequesada 0:a37ed180e6e3 2878 CardReader.putc(EOT); // 00000100
williequesada 0:a37ed180e6e3 2879 CardReader.putc(BBCI); // 01111010
williequesada 0:a37ed180e6e3 2880 }
williequesada 0:a37ed180e6e3 2881 int RespuestaConexion;
williequesada 0:a37ed180e6e3 2882 wait_ms(2000);
williequesada 0:a37ed180e6e3 2883 if(CardReader_Counter>0) {
williequesada 0:a37ed180e6e3 2884 for(int i=0; i<=CardReader_Counter; i++) {
williequesada 0:a37ed180e6e3 2885 if(CardReader_Buffer[i]==R_START) {
williequesada 0:a37ed180e6e3 2886 RespuestaConexion=1;
williequesada 0:a37ed180e6e3 2887 AlarmasCall(1,0);
williequesada 0:a37ed180e6e3 2888 }
williequesada 0:a37ed180e6e3 2889 if(CardReader_Buffer[i]==R_INVALID) {
williequesada 0:a37ed180e6e3 2890 RespuestaConexion=2;
williequesada 0:a37ed180e6e3 2891 AlarmasCall(1,1);
williequesada 0:a37ed180e6e3 2892 }
williequesada 0:a37ed180e6e3 2893 if(CardReader_Buffer[i]==R_ERROR) {
williequesada 0:a37ed180e6e3 2894 RespuestaConexion=2;
williequesada 0:a37ed180e6e3 2895 AlarmasCall(1,1);
williequesada 0:a37ed180e6e3 2896 }
williequesada 0:a37ed180e6e3 2897 if(CardReader_Buffer[i]==R_COMAND_ERROR) {
williequesada 0:a37ed180e6e3 2898 RespuestaConexion=2;
williequesada 0:a37ed180e6e3 2899 AlarmasCall(1,1);
williequesada 0:a37ed180e6e3 2900 }
williequesada 0:a37ed180e6e3 2901 }
williequesada 0:a37ed180e6e3 2902 } else {
williequesada 0:a37ed180e6e3 2903 RespuestaConexion=0;
williequesada 0:a37ed180e6e3 2904 AlarmasCall(1,1);
williequesada 0:a37ed180e6e3 2905 }
williequesada 0:a37ed180e6e3 2906
williequesada 0:a37ed180e6e3 2907 if(RespuestaConexion==0) {
williequesada 0:a37ed180e6e3 2908 Screen.Limits();
williequesada 0:a37ed180e6e3 2909 Screen.PutString(15,12,"Conexion lectora");
williequesada 0:a37ed180e6e3 2910 Screen.PutString(15,34,"Desconectada.");
williequesada 0:a37ed180e6e3 2911 Screen.Show();
williequesada 0:a37ed180e6e3 2912 Computer.printf("Desconectada\n");
williequesada 0:a37ed180e6e3 2913 wait(3);
williequesada 0:a37ed180e6e3 2914 }
williequesada 0:a37ed180e6e3 2915 if(RespuestaConexion==1) {
williequesada 0:a37ed180e6e3 2916 Screen.Limits();
williequesada 0:a37ed180e6e3 2917 Screen.PutString(15,12,"Conexion lectora");
williequesada 0:a37ed180e6e3 2918 Screen.PutString(15,34,"Conectada.");
williequesada 0:a37ed180e6e3 2919 Screen.Show();
williequesada 0:a37ed180e6e3 2920 Computer.printf("Conectada\n");
williequesada 0:a37ed180e6e3 2921 wait(3);
williequesada 0:a37ed180e6e3 2922 }
williequesada 0:a37ed180e6e3 2923 if(RespuestaConexion==2) {
williequesada 0:a37ed180e6e3 2924 Screen.Limits();
williequesada 0:a37ed180e6e3 2925 Screen.PutString(15,12,"Conexion lectora");
williequesada 0:a37ed180e6e3 2926 Screen.PutString(15,34,"Conectada error.");
williequesada 0:a37ed180e6e3 2927 Screen.Show();
williequesada 0:a37ed180e6e3 2928 Computer.printf("Conectada error\n");
williequesada 0:a37ed180e6e3 2929 wait(3);
williequesada 0:a37ed180e6e3 2930 }
williequesada 0:a37ed180e6e3 2931 CardReaderPower=0;
williequesada 0:a37ed180e6e3 2932 }
williequesada 0:a37ed180e6e3 2933
williequesada 0:a37ed180e6e3 2934 int M_RetiroTarjeta(uint32_t TiempoFuera)
williequesada 0:a37ed180e6e3 2935 {
williequesada 0:a37ed180e6e3 2936 Computer.printf("Retiro tarjeta\n");
williequesada 0:a37ed180e6e3 2937 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2938 while(true) {
williequesada 0:a37ed180e6e3 2939 if(PositionCard()==0) {
williequesada 0:a37ed180e6e3 2940 return 1;
williequesada 0:a37ed180e6e3 2941 } else {
williequesada 0:a37ed180e6e3 2942 Screen.Limits(); // Se pide al usuario por pantalla el retiro de la tarjeta
williequesada 0:a37ed180e6e3 2943 Screen.PutString(15,12,"Prueba de lectura");
williequesada 0:a37ed180e6e3 2944 Screen.PutString(15,34,"Retire tarjeta.");
williequesada 0:a37ed180e6e3 2945 Screen.Show();
williequesada 0:a37ed180e6e3 2946 }
williequesada 0:a37ed180e6e3 2947 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 2948 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 2949 if(Transcurrido>TiempoFuera) {
williequesada 0:a37ed180e6e3 2950 StateReader[1]='T';
williequesada 0:a37ed180e6e3 2951 return 0;
williequesada 0:a37ed180e6e3 2952 }
williequesada 0:a37ed180e6e3 2953 }
williequesada 0:a37ed180e6e3 2954 }
williequesada 0:a37ed180e6e3 2955
williequesada 0:a37ed180e6e3 2956 void M_PruebaLectora()
williequesada 0:a37ed180e6e3 2957 {
williequesada 0:a37ed180e6e3 2958 CardReaderPower=1;
williequesada 0:a37ed180e6e3 2959 Screen.PutString(15,12,"Prueba de lectura");
williequesada 0:a37ed180e6e3 2960 Screen.PutString(15,34,"Conectando...");
williequesada 0:a37ed180e6e3 2961 Screen.Limits(); // Se inicia el lector de tarjetas
williequesada 0:a37ed180e6e3 2962 Screen.Show();
williequesada 0:a37ed180e6e3 2963 wait(2);
williequesada 0:a37ed180e6e3 2964
williequesada 0:a37ed180e6e3 2965 Screen.Limits(); // Se pide al usuario por pantalla la intrduccion de la tarjeta
williequesada 0:a37ed180e6e3 2966 Screen.PutString(15,12,"Prueba de lectura");
williequesada 0:a37ed180e6e3 2967 Screen.PutString(15,34,"Introduzca tarjeta.");
williequesada 0:a37ed180e6e3 2968 Screen.Show();
williequesada 0:a37ed180e6e3 2969
williequesada 0:a37ed180e6e3 2970 if(ResetCard()) {
williequesada 0:a37ed180e6e3 2971 while(true) {
williequesada 0:a37ed180e6e3 2972
williequesada 0:a37ed180e6e3 2973 uint8_t RespuestaIngresoTarjeta = IngresoTarjeta(10000);
williequesada 0:a37ed180e6e3 2974 if(RespuestaIngresoTarjeta==1) {
williequesada 0:a37ed180e6e3 2975 Screen.Limits();
williequesada 0:a37ed180e6e3 2976 Screen.PutString(15,12,"Prueba de lectura");
williequesada 0:a37ed180e6e3 2977 Screen.PutString(15,34,"Retire tarjeta.");
williequesada 0:a37ed180e6e3 2978 Screen.Show();
williequesada 0:a37ed180e6e3 2979 }
williequesada 0:a37ed180e6e3 2980 if(RespuestaIngresoTarjeta==0) {
williequesada 0:a37ed180e6e3 2981 Screen.PutString(15,12,"Prueba de lectura");
williequesada 0:a37ed180e6e3 2982 Screen.PutString(15,34,"Sin deteccion.");
williequesada 0:a37ed180e6e3 2983 Screen.Limits();
williequesada 0:a37ed180e6e3 2984 Screen.Show();
williequesada 0:a37ed180e6e3 2985 wait(3);
williequesada 0:a37ed180e6e3 2986 Screen.Clean();
williequesada 0:a37ed180e6e3 2987 break;
williequesada 0:a37ed180e6e3 2988 }
williequesada 0:a37ed180e6e3 2989 if(RespuestaIngresoTarjeta==2) {
williequesada 0:a37ed180e6e3 2990 Screen.PutString(15,12,"Prueba de lectura");
williequesada 0:a37ed180e6e3 2991 Screen.PutString(15,34,"Error.");
williequesada 0:a37ed180e6e3 2992 Screen.Limits();
williequesada 0:a37ed180e6e3 2993 Screen.Show();
williequesada 0:a37ed180e6e3 2994 wait(3);
williequesada 0:a37ed180e6e3 2995 break;
williequesada 0:a37ed180e6e3 2996 }
williequesada 0:a37ed180e6e3 2997
williequesada 0:a37ed180e6e3 2998 uint8_t RespuestaReadCard=ReadCard(5000);
williequesada 0:a37ed180e6e3 2999 if(RespuestaReadCard==2) {
williequesada 0:a37ed180e6e3 3000 Screen.PutString(15,12,"Prueba de lectura");
williequesada 0:a37ed180e6e3 3001 Screen.PutString(15,34,"Error.");
williequesada 0:a37ed180e6e3 3002 Screen.Limits();
williequesada 0:a37ed180e6e3 3003 Screen.Show();
williequesada 0:a37ed180e6e3 3004 wait(3);
williequesada 0:a37ed180e6e3 3005 break;
williequesada 0:a37ed180e6e3 3006 }
williequesada 0:a37ed180e6e3 3007
williequesada 0:a37ed180e6e3 3008
williequesada 0:a37ed180e6e3 3009 // Se le la tarjeta al retirarse
williequesada 0:a37ed180e6e3 3010 int DataResult=RecibeDataCard(); // Se corrobora que la informacion de la tajeta es la corre
williequesada 0:a37ed180e6e3 3011 if(DataResult==0) {
williequesada 0:a37ed180e6e3 3012 Screen.PutString(15,12,"Prueba de lectura");
williequesada 0:a37ed180e6e3 3013 Screen.PutString(15,34,"ilegible.");
williequesada 0:a37ed180e6e3 3014 Screen.Limits();
williequesada 0:a37ed180e6e3 3015 Screen.Show();
williequesada 0:a37ed180e6e3 3016 wait(2);
williequesada 0:a37ed180e6e3 3017 if(M_RetiroTarjeta(7000)) {
williequesada 0:a37ed180e6e3 3018 Screen.Limits();
williequesada 0:a37ed180e6e3 3019 Screen.PutString(15,12,"Prueba de lectura");
williequesada 0:a37ed180e6e3 3020 Screen.PutString(15,34,"Introduzca tarjeta");
williequesada 0:a37ed180e6e3 3021 Screen.Show();
williequesada 0:a37ed180e6e3 3022 } else {
williequesada 0:a37ed180e6e3 3023 Screen.PutString(15,12,"Prueba de lectura");
williequesada 0:a37ed180e6e3 3024 Screen.PutString(15,34,"Error.");
williequesada 0:a37ed180e6e3 3025 Screen.Limits();
williequesada 0:a37ed180e6e3 3026 Screen.Show();
williequesada 0:a37ed180e6e3 3027 wait(3);
williequesada 0:a37ed180e6e3 3028 break;
williequesada 0:a37ed180e6e3 3029 }
williequesada 0:a37ed180e6e3 3030 }
williequesada 0:a37ed180e6e3 3031 if(DataResult==1) {
williequesada 0:a37ed180e6e3 3032 Screen.PutString(15,12,"Prueba de lectura");
williequesada 0:a37ed180e6e3 3033 Screen.PutString(15,34,"Aprobada.");
williequesada 0:a37ed180e6e3 3034 Screen.Limits();
williequesada 0:a37ed180e6e3 3035 Screen.Show();
williequesada 0:a37ed180e6e3 3036 Computer.printf("\nAprobada\n");
williequesada 0:a37ed180e6e3 3037 wait(3);
williequesada 0:a37ed180e6e3 3038 break;
williequesada 0:a37ed180e6e3 3039 }
williequesada 0:a37ed180e6e3 3040 if(DataResult==2) {
williequesada 0:a37ed180e6e3 3041 Screen.PutString(15,12,"Prueba de lectura");
williequesada 0:a37ed180e6e3 3042 Screen.PutString(15,34,"ilegible");
williequesada 0:a37ed180e6e3 3043 Screen.Limits();
williequesada 0:a37ed180e6e3 3044 Screen.Show();
williequesada 0:a37ed180e6e3 3045 wait(2);
williequesada 0:a37ed180e6e3 3046 if(M_RetiroTarjeta(7000)) {
williequesada 0:a37ed180e6e3 3047 Screen.Limits();
williequesada 0:a37ed180e6e3 3048 Screen.PutString(15,12,"Prueba de lectura");
williequesada 0:a37ed180e6e3 3049 Screen.PutString(15,34,"Introduzca tarjeta");
williequesada 0:a37ed180e6e3 3050 Screen.PutChar(26,33,'!');
williequesada 0:a37ed180e6e3 3051 Screen.PutChar(110,33,'!');
williequesada 0:a37ed180e6e3 3052 Screen.Show();
williequesada 0:a37ed180e6e3 3053 } else {
williequesada 0:a37ed180e6e3 3054 Screen.PutString(15,12,"Prueba de lectura");
williequesada 0:a37ed180e6e3 3055 Screen.PutString(15,34,"Error.");
williequesada 0:a37ed180e6e3 3056 Screen.Limits();
williequesada 0:a37ed180e6e3 3057 Screen.Show();
williequesada 0:a37ed180e6e3 3058 wait(3);
williequesada 0:a37ed180e6e3 3059 break;
williequesada 0:a37ed180e6e3 3060 }
williequesada 0:a37ed180e6e3 3061 }
williequesada 0:a37ed180e6e3 3062 }
williequesada 0:a37ed180e6e3 3063 } else {
williequesada 0:a37ed180e6e3 3064 Screen.PutString(15,12,"Prueba de lectura");
williequesada 0:a37ed180e6e3 3065 Screen.PutString(15,34,"Error.");
williequesada 0:a37ed180e6e3 3066 Screen.Limits();
williequesada 0:a37ed180e6e3 3067 Screen.Show();
williequesada 0:a37ed180e6e3 3068 wait(3);
williequesada 0:a37ed180e6e3 3069 }
williequesada 0:a37ed180e6e3 3070 CardReaderPower=0;
williequesada 0:a37ed180e6e3 3071 }
williequesada 0:a37ed180e6e3 3072
williequesada 0:a37ed180e6e3 3073 void M_Informacion()
williequesada 0:a37ed180e6e3 3074 {
williequesada 0:a37ed180e6e3 3075 int TiquetesDisponibles=Papel-Impresora.Ticket(1);
williequesada 0:a37ed180e6e3 3076 if(TiquetesDisponibles<200) {
williequesada 0:a37ed180e6e3 3077 sprintf(PapelDisponible,"%i",TiquetesDisponibles);
williequesada 0:a37ed180e6e3 3078 AlarmasCall(3,1);
williequesada 0:a37ed180e6e3 3079 } else {
williequesada 0:a37ed180e6e3 3080 sprintf(PapelDisponible,"%i",TiquetesDisponibles);
williequesada 0:a37ed180e6e3 3081 AlarmasCall(3,0);
williequesada 0:a37ed180e6e3 3082 }
williequesada 0:a37ed180e6e3 3083
williequesada 0:a37ed180e6e3 3084 Screen.PutString(15,4,"Transaccion:");
williequesada 0:a37ed180e6e3 3085 Screen.PutString(129,4,FechaRespuesta);
williequesada 0:a37ed180e6e3 3086 Screen.PutString(15,23,"Papel:");
williequesada 0:a37ed180e6e3 3087 Screen.PutString(129,23,PapelDisponible);
williequesada 0:a37ed180e6e3 3088 Screen.PutString(15,42,"Estado:");
williequesada 0:a37ed180e6e3 3089 Screen.PutString(129,42,Alarmas);
williequesada 0:a37ed180e6e3 3090 Screen.Limits();//AlarmasCall
williequesada 0:a37ed180e6e3 3091 Screen.Show();
williequesada 0:a37ed180e6e3 3092 wait(5);
williequesada 0:a37ed180e6e3 3093 }
williequesada 0:a37ed180e6e3 3094
williequesada 0:a37ed180e6e3 3095 bool M_ClaveIngreso(uint32_t TimeOut)
williequesada 0:a37ed180e6e3 3096 {
williequesada 0:a37ed180e6e3 3097 char Clave_Actual[5]="))))";
williequesada 0:a37ed180e6e3 3098 int SelectionLine1[4]= {99,32,8,0};
williequesada 0:a37ed180e6e3 3099 int SelectionLine2[4]= {99,50,8,0};
williequesada 0:a37ed180e6e3 3100 int Line=1;
williequesada 0:a37ed180e6e3 3101 bool Numero;
williequesada 0:a37ed180e6e3 3102 bool Arriba;
williequesada 0:a37ed180e6e3 3103 bool Abajo;
williequesada 0:a37ed180e6e3 3104 bool Salir;
williequesada 0:a37ed180e6e3 3105 bool Atras;
williequesada 0:a37ed180e6e3 3106 bool Finalizar;
williequesada 0:a37ed180e6e3 3107 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 3108
williequesada 0:a37ed180e6e3 3109 Screen.Rectangle(SelectionLine1[0],SelectionLine1[1],SelectionLine1[2],SelectionLine1[3]);
williequesada 0:a37ed180e6e3 3110 Screen.Rectangle(SelectionLine2[0],SelectionLine2[1],SelectionLine2[2],SelectionLine2[3]);
williequesada 0:a37ed180e6e3 3111 Screen.PutString(15,12,"Ingrese password");
williequesada 0:a37ed180e6e3 3112 Screen.PutChar(100,34,Clave_Actual[0]);
williequesada 0:a37ed180e6e3 3113 Screen.PutChar(110,34,Clave_Actual[1]);
williequesada 0:a37ed180e6e3 3114 Screen.PutChar(120,34,Clave_Actual[2]);
williequesada 0:a37ed180e6e3 3115 Screen.PutChar(130,34,Clave_Actual[3]);
williequesada 0:a37ed180e6e3 3116 Screen.Limits();
williequesada 0:a37ed180e6e3 3117 Screen.Show();
williequesada 0:a37ed180e6e3 3118 Computer.printf("Ingrese password\n");
williequesada 0:a37ed180e6e3 3119 Computer.printf("%s\n",Clave);
williequesada 0:a37ed180e6e3 3120
williequesada 0:a37ed180e6e3 3121 while(true) {
williequesada 0:a37ed180e6e3 3122 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 3123 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 3124 if(Transcurrido>TimeOut) {
williequesada 0:a37ed180e6e3 3125 return 0;
williequesada 0:a37ed180e6e3 3126 }
williequesada 0:a37ed180e6e3 3127 Tecla=KeyPad_Read();
williequesada 0:a37ed180e6e3 3128 if (Tecla!=NO_KEY) { // Se valida que se ingrese algo en el teclado
williequesada 0:a37ed180e6e3 3129 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 3130
williequesada 0:a37ed180e6e3 3131 Numero=(Tecla=='0')||(Tecla=='1')||(Tecla=='2')||(Tecla=='3')||(Tecla=='4')||(Tecla=='5')||(Tecla=='6')||(Tecla=='7')||(Tecla=='8')||(Tecla=='9');
williequesada 0:a37ed180e6e3 3132 if (Numero) { //Cambiar numero
williequesada 0:a37ed180e6e3 3133 Clave_Actual[Line-1]=Tecla;
williequesada 0:a37ed180e6e3 3134 Line++;
williequesada 0:a37ed180e6e3 3135 Screen.Rectangle(SelectionLine1[0],SelectionLine1[1],SelectionLine1[2],SelectionLine1[3]);
williequesada 0:a37ed180e6e3 3136 Screen.Rectangle(SelectionLine2[0],SelectionLine2[1],SelectionLine2[2],SelectionLine2[3]);
williequesada 0:a37ed180e6e3 3137 Screen.PutString(15,12,"Ingrese password");
williequesada 0:a37ed180e6e3 3138 Screen.PutChar(100,34,Clave_Actual[0]);
williequesada 0:a37ed180e6e3 3139 Screen.PutChar(111,34,Clave_Actual[1]);
williequesada 0:a37ed180e6e3 3140 Screen.PutChar(122,34,Clave_Actual[2]);
williequesada 0:a37ed180e6e3 3141 Screen.PutChar(133,34,Clave_Actual[3]);
williequesada 0:a37ed180e6e3 3142 Screen.Limits();
williequesada 0:a37ed180e6e3 3143 Screen.Show();
williequesada 0:a37ed180e6e3 3144 if(Line==5) {
williequesada 0:a37ed180e6e3 3145 Line=1;
williequesada 0:a37ed180e6e3 3146 }
williequesada 0:a37ed180e6e3 3147 if(Line==0) {
williequesada 0:a37ed180e6e3 3148 Line=4;
williequesada 0:a37ed180e6e3 3149 }
williequesada 0:a37ed180e6e3 3150 wait_ms(100);
williequesada 0:a37ed180e6e3 3151 }
williequesada 0:a37ed180e6e3 3152 Arriba=(Tecla=='E');
williequesada 0:a37ed180e6e3 3153 if (Arriba) { //Subir puntero
williequesada 0:a37ed180e6e3 3154 Line++;
williequesada 0:a37ed180e6e3 3155 if(Line==5) {
williequesada 0:a37ed180e6e3 3156 Line=1;
williequesada 0:a37ed180e6e3 3157 }
williequesada 0:a37ed180e6e3 3158 }
williequesada 0:a37ed180e6e3 3159 Abajo=(Tecla=='F');
williequesada 0:a37ed180e6e3 3160 if (Abajo) { //Bajar puntero
williequesada 0:a37ed180e6e3 3161 Line--;
williequesada 0:a37ed180e6e3 3162 if(Line==0) {
williequesada 0:a37ed180e6e3 3163 Line=4;
williequesada 0:a37ed180e6e3 3164 }
williequesada 0:a37ed180e6e3 3165 }
williequesada 0:a37ed180e6e3 3166 Salir=(Tecla=='C'); //Cancelar Operacion
williequesada 0:a37ed180e6e3 3167 if (Salir) {
williequesada 0:a37ed180e6e3 3168 return 0;
williequesada 0:a37ed180e6e3 3169 }
williequesada 0:a37ed180e6e3 3170 Atras=(Tecla=='B');
williequesada 0:a37ed180e6e3 3171 if (Atras) { //Atras en menu
williequesada 0:a37ed180e6e3 3172 return 0;
williequesada 0:a37ed180e6e3 3173 }
williequesada 0:a37ed180e6e3 3174 Finalizar=(Tecla=='D'); //En caso de confirmacion
williequesada 0:a37ed180e6e3 3175 if (Finalizar) {
williequesada 0:a37ed180e6e3 3176 if((Clave_Actual[0]==Clave[0])&&(Clave_Actual[1]==Clave[1])&&(Clave_Actual[2]==Clave[2])&&(Clave_Actual[3]==Clave[3])) {
williequesada 0:a37ed180e6e3 3177 return 1;
williequesada 0:a37ed180e6e3 3178 } else {
williequesada 0:a37ed180e6e3 3179 return 0;
williequesada 0:a37ed180e6e3 3180 }
williequesada 0:a37ed180e6e3 3181 }
williequesada 0:a37ed180e6e3 3182 switch (Line) {
williequesada 0:a37ed180e6e3 3183 case 1:
williequesada 0:a37ed180e6e3 3184 SelectionLine1[0]=99;
williequesada 0:a37ed180e6e3 3185 SelectionLine2[0]=99;
williequesada 0:a37ed180e6e3 3186 break;
williequesada 0:a37ed180e6e3 3187 case 2:
williequesada 0:a37ed180e6e3 3188 SelectionLine1[0]=110;
williequesada 0:a37ed180e6e3 3189 SelectionLine2[0]=110;
williequesada 0:a37ed180e6e3 3190 break;
williequesada 0:a37ed180e6e3 3191 case 3:
williequesada 0:a37ed180e6e3 3192 SelectionLine1[0]=121;
williequesada 0:a37ed180e6e3 3193 SelectionLine2[0]=121;
williequesada 0:a37ed180e6e3 3194 break;
williequesada 0:a37ed180e6e3 3195 case 4:
williequesada 0:a37ed180e6e3 3196 SelectionLine1[0]=132;
williequesada 0:a37ed180e6e3 3197 SelectionLine2[0]=132;
williequesada 0:a37ed180e6e3 3198 break;
williequesada 0:a37ed180e6e3 3199 }
williequesada 0:a37ed180e6e3 3200 //-------Mostrar en Patalla-------
williequesada 0:a37ed180e6e3 3201 Screen.Rectangle(SelectionLine1[0],SelectionLine1[1],SelectionLine1[2],SelectionLine1[3]);
williequesada 0:a37ed180e6e3 3202 Screen.Rectangle(SelectionLine2[0],SelectionLine2[1],SelectionLine2[2],SelectionLine2[3]);
williequesada 0:a37ed180e6e3 3203 Screen.PutString(15,12,"Ingrese password");
williequesada 0:a37ed180e6e3 3204 Screen.PutChar(100,34,')');
williequesada 0:a37ed180e6e3 3205 Screen.PutChar(111,34,')');
williequesada 0:a37ed180e6e3 3206 Screen.PutChar(122,34,')');
williequesada 0:a37ed180e6e3 3207 Screen.PutChar(133,34,')');
williequesada 0:a37ed180e6e3 3208 Screen.Limits();
williequesada 0:a37ed180e6e3 3209 Screen.Show();
williequesada 0:a37ed180e6e3 3210 Computer.printf("%s\n",Clave);
williequesada 0:a37ed180e6e3 3211 }
williequesada 0:a37ed180e6e3 3212 }
williequesada 0:a37ed180e6e3 3213 }
williequesada 0:a37ed180e6e3 3214
williequesada 0:a37ed180e6e3 3215 //------------------------------------------------------------------------------------------------------------------------------------------------------
williequesada 0:a37ed180e6e3 3216 void Interrupt_Host()
williequesada 0:a37ed180e6e3 3217 {
williequesada 0:a37ed180e6e3 3218 Counter_Host++;
williequesada 0:a37ed180e6e3 3219 MinutosTranscurrido++;
williequesada 0:a37ed180e6e3 3220 Battery_State = Charger.Control();
williequesada 0:a37ed180e6e3 3221 if(Counter_Host>Hostin_Conection) {
williequesada 0:a37ed180e6e3 3222 Alarm=1;
williequesada 0:a37ed180e6e3 3223 Counter_Host=0;
williequesada 0:a37ed180e6e3 3224 }
williequesada 0:a37ed180e6e3 3225 if(MinutosTranscurrido>11){
williequesada 0:a37ed180e6e3 3226 HoraHostingPantalla++;
williequesada 0:a37ed180e6e3 3227 MinutosTranscurrido=0;
williequesada 0:a37ed180e6e3 3228 }
williequesada 0:a37ed180e6e3 3229 if((Battery_State==0)&&(Battery_State!=Battery_State_Before)){
williequesada 0:a37ed180e6e3 3230 //AlarmasCall(6,1);
williequesada 0:a37ed180e6e3 3231 }
williequesada 0:a37ed180e6e3 3232 if((Battery_State==1)||(Battery_State==2)) {
williequesada 0:a37ed180e6e3 3233 //AlarmasCall(6,0);
williequesada 0:a37ed180e6e3 3234 }
williequesada 0:a37ed180e6e3 3235 Computer.printf("\n-%i-%i-",HoraHostingPantalla,Battery_State);
williequesada 0:a37ed180e6e3 3236 Panel_Voltage=Charger.PanelRead();
williequesada 0:a37ed180e6e3 3237 Battery_Voltage=Charger.BatteryRead();
williequesada 0:a37ed180e6e3 3238 Computer.printf("B:%.2f P:%.2f\n",Battery_Voltage,Panel_Voltage);
williequesada 0:a37ed180e6e3 3239 Battery_State_Before=Battery_State;
williequesada 0:a37ed180e6e3 3240 }
williequesada 0:a37ed180e6e3 3241
williequesada 0:a37ed180e6e3 3242 void H_EnviarPaso(uint8_t Entrada_Comando)
williequesada 0:a37ed180e6e3 3243 {
williequesada 0:a37ed180e6e3 3244 switch (Entrada_Comando) {
williequesada 0:a37ed180e6e3 3245 case 1:
williequesada 0:a37ed180e6e3 3246 Slave.Command(HOSTING_STEP1);
williequesada 0:a37ed180e6e3 3247 Progreso[0]=' ';
williequesada 0:a37ed180e6e3 3248 Progreso[1]='1';
williequesada 0:a37ed180e6e3 3249 Progreso[2]='0';
williequesada 0:a37ed180e6e3 3250 break;
williequesada 0:a37ed180e6e3 3251 case 2:
williequesada 0:a37ed180e6e3 3252 Slave.Command(HOSTING_STEP2);
williequesada 0:a37ed180e6e3 3253 Progreso[0]=' ';
williequesada 0:a37ed180e6e3 3254 Progreso[1]='2';
williequesada 0:a37ed180e6e3 3255 Progreso[2]='0';
williequesada 0:a37ed180e6e3 3256 break;
williequesada 0:a37ed180e6e3 3257 case 3:
williequesada 0:a37ed180e6e3 3258 Slave.Command(HOSTING_STEP3);
williequesada 0:a37ed180e6e3 3259 Progreso[0]=' ';
williequesada 0:a37ed180e6e3 3260 Progreso[1]='3';
williequesada 0:a37ed180e6e3 3261 Progreso[2]='0';
williequesada 0:a37ed180e6e3 3262 break;
williequesada 0:a37ed180e6e3 3263 case 4:
williequesada 0:a37ed180e6e3 3264 Slave.Command(HOSTING_STEP4);
williequesada 0:a37ed180e6e3 3265 Progreso[0]=' ';
williequesada 0:a37ed180e6e3 3266 Progreso[1]='4';
williequesada 0:a37ed180e6e3 3267 Progreso[2]='0';
williequesada 0:a37ed180e6e3 3268 break;
williequesada 0:a37ed180e6e3 3269 case 5:
williequesada 0:a37ed180e6e3 3270 Slave.Command(HOSTING_STEP5);
williequesada 0:a37ed180e6e3 3271 Progreso[0]=' ';
williequesada 0:a37ed180e6e3 3272 Progreso[1]='5';
williequesada 0:a37ed180e6e3 3273 Progreso[2]='0';
williequesada 0:a37ed180e6e3 3274 break;
williequesada 0:a37ed180e6e3 3275 case 6:
williequesada 0:a37ed180e6e3 3276 Slave.Command(HOSTING_STEP6);
williequesada 0:a37ed180e6e3 3277 Progreso[0]=' ';
williequesada 0:a37ed180e6e3 3278 Progreso[1]='6';
williequesada 0:a37ed180e6e3 3279 Progreso[2]='0';
williequesada 0:a37ed180e6e3 3280 break;
williequesada 0:a37ed180e6e3 3281 case 7:
williequesada 0:a37ed180e6e3 3282 Slave.Command(HOSTING_STEP7);
williequesada 0:a37ed180e6e3 3283 Progreso[0]=' ';
williequesada 0:a37ed180e6e3 3284 Progreso[1]='7';
williequesada 0:a37ed180e6e3 3285 Progreso[2]='0';
williequesada 0:a37ed180e6e3 3286 break;
williequesada 0:a37ed180e6e3 3287 case 8:
williequesada 0:a37ed180e6e3 3288 Slave.Command(HOSTING_STEP8);
williequesada 0:a37ed180e6e3 3289 Slave.Send_Hosting(Parquimetro,Municipio,Alarmas);
williequesada 0:a37ed180e6e3 3290 Computer.printf("-%s-%s-%s-\n",Parquimetro,Municipio,Alarmas);
williequesada 0:a37ed180e6e3 3291 Progreso[0]=' ';
williequesada 0:a37ed180e6e3 3292 Progreso[1]='8';
williequesada 0:a37ed180e6e3 3293 Progreso[2]='0';
williequesada 0:a37ed180e6e3 3294 break;
williequesada 0:a37ed180e6e3 3295 case 9:
williequesada 0:a37ed180e6e3 3296 Slave.Command(HOSTING_STEP9);
williequesada 0:a37ed180e6e3 3297 Progreso[0]=' ';
williequesada 0:a37ed180e6e3 3298 Progreso[1]='9';
williequesada 0:a37ed180e6e3 3299 Progreso[2]='0';
williequesada 0:a37ed180e6e3 3300 break;
williequesada 0:a37ed180e6e3 3301 case 10:
williequesada 0:a37ed180e6e3 3302 Slave.Command(HOSTING_STEP10);
williequesada 0:a37ed180e6e3 3303 Progreso[0]='1';
williequesada 0:a37ed180e6e3 3304 Progreso[1]='0';
williequesada 0:a37ed180e6e3 3305 Progreso[2]='0';
williequesada 0:a37ed180e6e3 3306 break;
williequesada 0:a37ed180e6e3 3307 case 11:
williequesada 0:a37ed180e6e3 3308 Slave.Command(HOSTING_STEP11);
williequesada 0:a37ed180e6e3 3309 Progreso[0]='1';
williequesada 0:a37ed180e6e3 3310 Progreso[1]='0';
williequesada 0:a37ed180e6e3 3311 Progreso[2]='0';
williequesada 0:a37ed180e6e3 3312 break;
williequesada 0:a37ed180e6e3 3313 }
williequesada 0:a37ed180e6e3 3314 }
williequesada 0:a37ed180e6e3 3315
williequesada 0:a37ed180e6e3 3316 void EsperarSim900(int TimeOut)
williequesada 0:a37ed180e6e3 3317 {
williequesada 0:a37ed180e6e3 3318 Computer.printf("Espera sim900\n");
williequesada 0:a37ed180e6e3 3319 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 3320 Keypad_Init();
williequesada 0:a37ed180e6e3 3321 while(true) {
williequesada 0:a37ed180e6e3 3322 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 3323 Transcurrido=Fin-Inicio;
williequesada 0:a37ed180e6e3 3324 if(Transcurrido>TimeOut) {
williequesada 0:a37ed180e6e3 3325 Computer.printf("Espera sim900 salir\n");
williequesada 0:a37ed180e6e3 3326 BaseClock.stop();
williequesada 0:a37ed180e6e3 3327 break;
williequesada 0:a37ed180e6e3 3328 }
williequesada 0:a37ed180e6e3 3329 Tecla=KeyPad_Read();
williequesada 0:a37ed180e6e3 3330 if (Tecla!=NO_KEY) {
williequesada 0:a37ed180e6e3 3331 Computer.printf("Espera sim900 teclado\n");
williequesada 0:a37ed180e6e3 3332 Screen.On(HoraHostingPantalla);
williequesada 0:a37ed180e6e3 3333 wait_ms(20);
williequesada 0:a37ed180e6e3 3334 Screen.Init();
williequesada 0:a37ed180e6e3 3335 PantallaInicio();
williequesada 0:a37ed180e6e3 3336 Usuario(USER_INIT);
williequesada 0:a37ed180e6e3 3337 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 3338 }
williequesada 0:a37ed180e6e3 3339 }
williequesada 0:a37ed180e6e3 3340 }
williequesada 0:a37ed180e6e3 3341
williequesada 0:a37ed180e6e3 3342 void Hosting()
williequesada 0:a37ed180e6e3 3343 {
williequesada 0:a37ed180e6e3 3344 uint8_t PasoHostingNum=1;
williequesada 0:a37ed180e6e3 3345 H_EnviarPaso(PasoHostingNum);
williequesada 0:a37ed180e6e3 3346 Computer.printf("Hosting iniciando\n");
williequesada 0:a37ed180e6e3 3347 Computer.printf("Paso %i\n", PasoHostingNum);
williequesada 0:a37ed180e6e3 3348
williequesada 0:a37ed180e6e3 3349 BaseClock.start();
williequesada 0:a37ed180e6e3 3350 while(true) {
williequesada 0:a37ed180e6e3 3351 if(PasoHostingNum>10) {
williequesada 0:a37ed180e6e3 3352 Computer.printf("Paso final\n");
williequesada 0:a37ed180e6e3 3353 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 3354 while(true) {
williequesada 0:a37ed180e6e3 3355 if(Slave.Mensaje()) {
williequesada 0:a37ed180e6e3 3356 wait_ms(75);
williequesada 0:a37ed180e6e3 3357 break;
williequesada 0:a37ed180e6e3 3358 }
williequesada 0:a37ed180e6e3 3359 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 3360 Transcurrido=Fin-Inicio;//49
williequesada 0:a37ed180e6e3 3361 if(Transcurrido>10000) {
williequesada 0:a37ed180e6e3 3362 break;
williequesada 0:a37ed180e6e3 3363 }
williequesada 0:a37ed180e6e3 3364 }
williequesada 0:a37ed180e6e3 3365 HoraHosting[4]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3366 HoraHosting[3]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3367 HoraHosting[2]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3368 HoraHosting[1]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3369 HoraHosting[0]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3370 HoraHosting[5]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3371 HoraHosting[5]='\0';
williequesada 0:a37ed180e6e3 3372 RespuestaHosting[5]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3373 RespuestaHosting[4]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3374 RespuestaHosting[3]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3375 RespuestaHosting[2]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3376 RespuestaHosting[1]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3377 RespuestaHosting[0]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3378 //alertPQ response OK+390+11:42
williequesada 0:a37ed180e6e3 3379 // pperez@gmail.com 4321
williequesada 0:a37ed180e6e3 3380 // 34.211.174.1 port 3306
williequesada 0:a37ed180e6e3 3381 // Base de datos s0p0rt310
williequesada 0:a37ed180e6e3 3382 Computer.printf("-%s-\n",RespuestaHosting);
williequesada 0:a37ed180e6e3 3383 Computer.printf("H-%s-H\n",HoraHosting);
williequesada 0:a37ed180e6e3 3384 if(HoraHosting[2]==':'){
williequesada 0:a37ed180e6e3 3385 HoraHostingPantalla=((uint8_t)HoraHosting[0]-48)*600+((uint8_t)HoraHosting[1]-48)*60+((uint8_t)HoraHosting[3]-48)*10 + ((uint8_t)HoraHosting[4]-48);
williequesada 0:a37ed180e6e3 3386 Computer.printf("Mayor",HoraHostingPantalla);
williequesada 0:a37ed180e6e3 3387 }
williequesada 0:a37ed180e6e3 3388
williequesada 0:a37ed180e6e3 3389 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 3390 while(true) {
williequesada 0:a37ed180e6e3 3391 if(Slave.Answer()) {
williequesada 0:a37ed180e6e3 3392 wait_ms(50);
williequesada 0:a37ed180e6e3 3393 break;
williequesada 0:a37ed180e6e3 3394 }
williequesada 0:a37ed180e6e3 3395 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 3396 Transcurrido=Fin-Inicio;//49
williequesada 0:a37ed180e6e3 3397 if(Transcurrido>10000) {
williequesada 0:a37ed180e6e3 3398 break;
williequesada 0:a37ed180e6e3 3399 }
williequesada 0:a37ed180e6e3 3400 }
williequesada 0:a37ed180e6e3 3401 if((RespuestaHosting[0]=='O')&&RespuestaHosting[1]=='K') {
williequesada 0:a37ed180e6e3 3402 Computer.printf("Alarmas aprobada\n");
williequesada 0:a37ed180e6e3 3403 Alarm=false;
williequesada 0:a37ed180e6e3 3404 break;
williequesada 0:a37ed180e6e3 3405 } else {
williequesada 0:a37ed180e6e3 3406 Computer.printf("Alarmas fallo\n");
williequesada 0:a37ed180e6e3 3407 break;
williequesada 0:a37ed180e6e3 3408 }
williequesada 0:a37ed180e6e3 3409 }
williequesada 0:a37ed180e6e3 3410
williequesada 0:a37ed180e6e3 3411 Tecla=KeyPad_Read();
williequesada 0:a37ed180e6e3 3412 if(Tecla!=NO_KEY) {
williequesada 0:a37ed180e6e3 3413 Screen.On(HoraHostingPantalla);
williequesada 0:a37ed180e6e3 3414 wait_ms(20);
williequesada 0:a37ed180e6e3 3415 Screen.Init();
williequesada 0:a37ed180e6e3 3416 if(PasoHostingNum==1) {
williequesada 0:a37ed180e6e3 3417 Computer.printf("Teclado encender Paso==1\n");
williequesada 0:a37ed180e6e3 3418 Usuario(USER_INIT);
williequesada 0:a37ed180e6e3 3419 break;
williequesada 0:a37ed180e6e3 3420 }
williequesada 0:a37ed180e6e3 3421 if(PasoHostingNum<3) {
williequesada 0:a37ed180e6e3 3422 Computer.printf("Teclado Paso<3\n");
williequesada 0:a37ed180e6e3 3423 Usuario(USER_INIT2);
williequesada 0:a37ed180e6e3 3424 break;
williequesada 0:a37ed180e6e3 3425 }
williequesada 0:a37ed180e6e3 3426 if(PasoHostingNum<6) {
williequesada 0:a37ed180e6e3 3427 Computer.printf("Teclado Paso<6\n");
williequesada 0:a37ed180e6e3 3428 Usuario(USER_INIT3);
williequesada 0:a37ed180e6e3 3429 break;
williequesada 0:a37ed180e6e3 3430 }
williequesada 0:a37ed180e6e3 3431 if(PasoHostingNum==6) {
williequesada 0:a37ed180e6e3 3432 Computer.printf("Teclado Paso==6\n");
williequesada 0:a37ed180e6e3 3433 Usuario(USER_INIT4);
williequesada 0:a37ed180e6e3 3434 break;
williequesada 0:a37ed180e6e3 3435 }
williequesada 0:a37ed180e6e3 3436 if(PasoHostingNum<=8) {
williequesada 0:a37ed180e6e3 3437 Computer.printf("Teclado Paso<=8\n");
williequesada 0:a37ed180e6e3 3438 Usuario(USER_INIT5);
williequesada 0:a37ed180e6e3 3439 break;
williequesada 0:a37ed180e6e3 3440 }
williequesada 0:a37ed180e6e3 3441 if(PasoHostingNum<=10) {
williequesada 0:a37ed180e6e3 3442 Computer.printf("Teclado Paso<=10\n");
williequesada 0:a37ed180e6e3 3443 Usuario(USER_INIT5);
williequesada 0:a37ed180e6e3 3444 break;
williequesada 0:a37ed180e6e3 3445 }
williequesada 0:a37ed180e6e3 3446 if(PasoHostingNum<=11) {
williequesada 0:a37ed180e6e3 3447 Computer.printf("Teclado Paso<=11\n");
williequesada 0:a37ed180e6e3 3448 PantallaInicio();
williequesada 0:a37ed180e6e3 3449 Usuario(USER_INIT5);
williequesada 0:a37ed180e6e3 3450 }
williequesada 0:a37ed180e6e3 3451 }
williequesada 0:a37ed180e6e3 3452
williequesada 0:a37ed180e6e3 3453 if (Slave.Answer()) {
williequesada 0:a37ed180e6e3 3454 PasoHostingNum++;
williequesada 0:a37ed180e6e3 3455 Computer.printf("Paso %i\n", PasoHostingNum);
williequesada 0:a37ed180e6e3 3456 H_EnviarPaso(PasoHostingNum);
williequesada 0:a37ed180e6e3 3457 }
williequesada 0:a37ed180e6e3 3458 }
williequesada 0:a37ed180e6e3 3459 Slave.Command(COMMAND_OFF);
williequesada 0:a37ed180e6e3 3460 }
williequesada 0:a37ed180e6e3 3461
williequesada 0:a37ed180e6e3 3462 void M_PruebaHosting()
williequesada 0:a37ed180e6e3 3463 {
williequesada 0:a37ed180e6e3 3464 int Paso=1;
williequesada 0:a37ed180e6e3 3465 int PasoSiguiente=1;
williequesada 0:a37ed180e6e3 3466
williequesada 0:a37ed180e6e3 3467 while(true) {
williequesada 0:a37ed180e6e3 3468 if (Paso==PasoSiguiente) {
williequesada 0:a37ed180e6e3 3469 Computer.printf("Paso %i\n",Paso);
williequesada 0:a37ed180e6e3 3470 H_EnviarPaso(Paso);
williequesada 0:a37ed180e6e3 3471 Paso=Paso+1;
williequesada 0:a37ed180e6e3 3472 if(Paso>11) {
williequesada 0:a37ed180e6e3 3473 Computer.printf("Paso %i final\n",Paso);
williequesada 0:a37ed180e6e3 3474 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 3475 while(true) {
williequesada 0:a37ed180e6e3 3476 if(Slave.Mensaje()) {
williequesada 0:a37ed180e6e3 3477 wait_ms(75);
williequesada 0:a37ed180e6e3 3478 break;
williequesada 0:a37ed180e6e3 3479 }
williequesada 0:a37ed180e6e3 3480 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 3481 Transcurrido=Fin-Inicio;//49
williequesada 0:a37ed180e6e3 3482 if(Transcurrido>10000) {
williequesada 0:a37ed180e6e3 3483 break;
williequesada 0:a37ed180e6e3 3484 }
williequesada 0:a37ed180e6e3 3485 }
williequesada 0:a37ed180e6e3 3486 HoraHosting[5]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3487 HoraHosting[4]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3488 HoraHosting[3]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3489 HoraHosting[2]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3490 HoraHosting[1]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3491 HoraHosting[0]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3492 RespuestaHosting[5]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3493 RespuestaHosting[4]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3494 RespuestaHosting[3]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3495 RespuestaHosting[2]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3496 RespuestaHosting[1]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3497 RespuestaHosting[0]=Slave.Recibe();
williequesada 0:a37ed180e6e3 3498
williequesada 0:a37ed180e6e3 3499 Computer.printf("-%s-\n",RespuestaHosting);
williequesada 0:a37ed180e6e3 3500 Computer.printf("-%s-\n",HoraHosting);
williequesada 0:a37ed180e6e3 3501
williequesada 0:a37ed180e6e3 3502 Inicio=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 3503 while(true) {
williequesada 0:a37ed180e6e3 3504 if(Slave.Answer()) {
williequesada 0:a37ed180e6e3 3505 wait_ms(50);
williequesada 0:a37ed180e6e3 3506 break;
williequesada 0:a37ed180e6e3 3507 }
williequesada 0:a37ed180e6e3 3508 Fin=BaseClock.read_ms();
williequesada 0:a37ed180e6e3 3509 Transcurrido=Fin-Inicio;//49
williequesada 0:a37ed180e6e3 3510 if(Transcurrido>10000) {
williequesada 0:a37ed180e6e3 3511 break;
williequesada 0:a37ed180e6e3 3512 }
williequesada 0:a37ed180e6e3 3513 }
williequesada 0:a37ed180e6e3 3514 if((RespuestaHosting[0]=='O')&&RespuestaHosting[1]=='K') {
williequesada 0:a37ed180e6e3 3515 Computer.printf("Alarmas aprobada\n");
williequesada 0:a37ed180e6e3 3516 Screen.PutString(15,12,"Prueba hosting");
williequesada 0:a37ed180e6e3 3517 Screen.PutString(15,34,"Aprobada.");
williequesada 0:a37ed180e6e3 3518 Screen.Limits();
williequesada 0:a37ed180e6e3 3519 Screen.Show();
williequesada 0:a37ed180e6e3 3520 wait_ms(2000);
williequesada 0:a37ed180e6e3 3521 Alarm=false;
williequesada 0:a37ed180e6e3 3522 break;
williequesada 0:a37ed180e6e3 3523 } else {
williequesada 0:a37ed180e6e3 3524 Computer.printf("Alarmas fallo\n");
williequesada 0:a37ed180e6e3 3525 Screen.PutString(15,12,"Prueba hosting");
williequesada 0:a37ed180e6e3 3526 Screen.PutString(15,34,"Error.");
williequesada 0:a37ed180e6e3 3527 Screen.Limits();
williequesada 0:a37ed180e6e3 3528 Screen.Show();
williequesada 0:a37ed180e6e3 3529 wait_ms(2000);
williequesada 0:a37ed180e6e3 3530 break;
williequesada 0:a37ed180e6e3 3531 }
williequesada 0:a37ed180e6e3 3532 }
williequesada 0:a37ed180e6e3 3533 Screen.PutString(15,12,"Prueba hosting");
williequesada 0:a37ed180e6e3 3534 Screen.PutString(15,34,"Progreso:");
williequesada 0:a37ed180e6e3 3535 Screen.PutChar(105,34,Progreso[0]);
williequesada 0:a37ed180e6e3 3536 Screen.PutChar(115,34,Progreso[1]);
williequesada 0:a37ed180e6e3 3537 Screen.PutChar(125,34,Progreso[2]);
williequesada 0:a37ed180e6e3 3538 Screen.PutChar(135,34,'%');
williequesada 0:a37ed180e6e3 3539 Screen.Limits();
williequesada 0:a37ed180e6e3 3540 Screen.Show();
williequesada 0:a37ed180e6e3 3541 }
williequesada 0:a37ed180e6e3 3542 if (Slave.Answer()) {
williequesada 0:a37ed180e6e3 3543 PasoSiguiente=PasoSiguiente+1;
williequesada 0:a37ed180e6e3 3544 Computer.printf("Next\n");
williequesada 0:a37ed180e6e3 3545 }
williequesada 0:a37ed180e6e3 3546 }
williequesada 0:a37ed180e6e3 3547 }
williequesada 0:a37ed180e6e3 3548
williequesada 0:a37ed180e6e3 3549 void Mantenimiento()
williequesada 0:a37ed180e6e3 3550 {
williequesada 0:a37ed180e6e3 3551 Screen.On(HoraHostingPantalla);
williequesada 0:a37ed180e6e3 3552 wait_ms(20);
williequesada 0:a37ed180e6e3 3553 Screen.Init();
williequesada 0:a37ed180e6e3 3554 BaseClock.start();
williequesada 0:a37ed180e6e3 3555 M_PantallaConfiguracion();
williequesada 0:a37ed180e6e3 3556 bool ClaveAceptada=M_ClaveIngreso(5000);
williequesada 0:a37ed180e6e3 3557 while(ClaveAceptada) {
williequesada 0:a37ed180e6e3 3558 Comando=M_MenuConfiguracion(30000);
williequesada 0:a37ed180e6e3 3559 switch(Comando) {
williequesada 0:a37ed180e6e3 3560 case M_SISTEMA:
williequesada 0:a37ed180e6e3 3561 Computer.printf("--> Sistema\n");
williequesada 0:a37ed180e6e3 3562 Comando=M_MenuSistema(30000);
williequesada 0:a37ed180e6e3 3563 if(Comando==M_PARQUIMETRO) {
williequesada 0:a37ed180e6e3 3564 Computer.printf("--> Id parquimetro\n");
williequesada 0:a37ed180e6e3 3565 M_Parquimetro(30000);
williequesada 0:a37ed180e6e3 3566 }
williequesada 0:a37ed180e6e3 3567 if(Comando==M_MUNICIPIO) {
williequesada 0:a37ed180e6e3 3568 Computer.printf("--> Id municipalidad\n");
williequesada 0:a37ed180e6e3 3569 M_Municipio(30000);
williequesada 0:a37ed180e6e3 3570 }
williequesada 0:a37ed180e6e3 3571 if(Comando==M_PRECIO) {
williequesada 0:a37ed180e6e3 3572 Computer.printf("--> Precio 10mins\n");
williequesada 0:a37ed180e6e3 3573 M_Precio(30000);
williequesada 0:a37ed180e6e3 3574 }
williequesada 0:a37ed180e6e3 3575 break;
williequesada 0:a37ed180e6e3 3576
williequesada 0:a37ed180e6e3 3577 case M_RED:
williequesada 0:a37ed180e6e3 3578 Computer.printf("--> Red\n");
williequesada 0:a37ed180e6e3 3579 Comando=M_MenuConexion(30000);
williequesada 0:a37ed180e6e3 3580 if(Comando==M_SENAL) {
williequesada 0:a37ed180e6e3 3581 Computer.printf("--> Intensidad senal\n");
williequesada 0:a37ed180e6e3 3582 M_IntensidadSenal();
williequesada 0:a37ed180e6e3 3583 }
williequesada 0:a37ed180e6e3 3584 if(Comando==M_HOSTING) {
williequesada 0:a37ed180e6e3 3585 Computer.printf("--> Prueba hosting\n");
williequesada 0:a37ed180e6e3 3586 M_PruebaHosting();
williequesada 0:a37ed180e6e3 3587 }
williequesada 0:a37ed180e6e3 3588 if(Comando==M_CONEXION_SIM) {
williequesada 0:a37ed180e6e3 3589 Computer.printf("--> Conexion modulo\n");
williequesada 0:a37ed180e6e3 3590 M_ConexionSim900();
williequesada 0:a37ed180e6e3 3591 }
williequesada 0:a37ed180e6e3 3592 break;
williequesada 0:a37ed180e6e3 3593
williequesada 0:a37ed180e6e3 3594 case M_IMPRESORA:
williequesada 0:a37ed180e6e3 3595 Computer.printf("--> Impresora\n");
williequesada 0:a37ed180e6e3 3596 Comando=M_MenuImpresora(30000);
williequesada 0:a37ed180e6e3 3597 if(Comando==M_PAPEL) {
williequesada 0:a37ed180e6e3 3598 Computer.printf("--> Cambio de papel\n");
williequesada 0:a37ed180e6e3 3599 M_CambioPapel(30000);
williequesada 0:a37ed180e6e3 3600 }
williequesada 0:a37ed180e6e3 3601 if(Comando==M_IMPRESION) {
williequesada 0:a37ed180e6e3 3602 Computer.printf("--> Tiquete de prueba\n");
williequesada 0:a37ed180e6e3 3603 M_PruebaTiquete();
williequesada 0:a37ed180e6e3 3604 }
williequesada 0:a37ed180e6e3 3605 if(Comando==M_CONEXION_IMP) {
williequesada 0:a37ed180e6e3 3606 Computer.printf("--> Conexion impresora\n");
williequesada 0:a37ed180e6e3 3607 M_ConexionImpresora();
williequesada 0:a37ed180e6e3 3608 }
williequesada 0:a37ed180e6e3 3609 break;
williequesada 0:a37ed180e6e3 3610
williequesada 0:a37ed180e6e3 3611 case M_TECLADO:
williequesada 0:a37ed180e6e3 3612 Computer.printf("--> Teclado\n");
williequesada 0:a37ed180e6e3 3613 Comando=M_MenuTeclado(30000);
williequesada 0:a37ed180e6e3 3614 if(Comando==M_PRUEBA_TECLA) {
williequesada 0:a37ed180e6e3 3615 Computer.printf("--> Prueba de teclado\n");
williequesada 0:a37ed180e6e3 3616 M_PruebaTeclado(3000);
williequesada 0:a37ed180e6e3 3617 }
williequesada 0:a37ed180e6e3 3618 break;
williequesada 0:a37ed180e6e3 3619
williequesada 0:a37ed180e6e3 3620 case M_LECTORA:
williequesada 0:a37ed180e6e3 3621 Computer.printf("--> Lectora\n");
williequesada 0:a37ed180e6e3 3622 Comando=M_MenuLectora(30000);
williequesada 0:a37ed180e6e3 3623 if(Comando==M_LECTURA) {
williequesada 0:a37ed180e6e3 3624 Computer.printf("--> Prueba de lectura\n");
williequesada 0:a37ed180e6e3 3625 M_PruebaLectora();
williequesada 0:a37ed180e6e3 3626 }
williequesada 0:a37ed180e6e3 3627 if(Comando==M_CONEXION_LEC) {
williequesada 0:a37ed180e6e3 3628 Computer.printf("--> Conexion lectora\n");
williequesada 0:a37ed180e6e3 3629 M_ConexionLectora();
williequesada 0:a37ed180e6e3 3630 }
williequesada 0:a37ed180e6e3 3631 break;
williequesada 0:a37ed180e6e3 3632
williequesada 0:a37ed180e6e3 3633 case M_INFORMACION:
williequesada 0:a37ed180e6e3 3634 Comando=M_MenuInformacion();
williequesada 0:a37ed180e6e3 3635 if(Comando==M_INFORMACION) {
williequesada 0:a37ed180e6e3 3636 Computer.printf("--> Informacion\n");
williequesada 0:a37ed180e6e3 3637 M_Informacion();
williequesada 0:a37ed180e6e3 3638 }
williequesada 0:a37ed180e6e3 3639 break;
williequesada 0:a37ed180e6e3 3640
williequesada 0:a37ed180e6e3 3641 default:
williequesada 0:a37ed180e6e3 3642 Comando=M_OFF;
williequesada 0:a37ed180e6e3 3643 }
williequesada 0:a37ed180e6e3 3644
williequesada 0:a37ed180e6e3 3645 if(Comando==M_OFF) {
williequesada 0:a37ed180e6e3 3646 Computer.printf("Cerrando modo configuracion\n");
williequesada 0:a37ed180e6e3 3647 Screen.Clean();
williequesada 0:a37ed180e6e3 3648 MantenimientoInterruption=0;
williequesada 0:a37ed180e6e3 3649 BaseClock.stop();
williequesada 0:a37ed180e6e3 3650 Screen.Off();
williequesada 0:a37ed180e6e3 3651 break;
williequesada 0:a37ed180e6e3 3652 }
williequesada 0:a37ed180e6e3 3653 }
williequesada 0:a37ed180e6e3 3654 Screen.Clean();
williequesada 0:a37ed180e6e3 3655 MantenimientoInterruption=0;
williequesada 0:a37ed180e6e3 3656 Screen.Off();
williequesada 0:a37ed180e6e3 3657 wait(1);
williequesada 0:a37ed180e6e3 3658 }
williequesada 0:a37ed180e6e3 3659
williequesada 0:a37ed180e6e3 3660 int main()
williequesada 0:a37ed180e6e3 3661 {
williequesada 0:a37ed180e6e3 3662 Screen.On(HoraHostingPantalla);
williequesada 0:a37ed180e6e3 3663 Screen.Init();
williequesada 0:a37ed180e6e3 3664 Screen.Clean();
williequesada 0:a37ed180e6e3 3665 Keypad_C1.rise(&KeyPad_InterruptDisable);
williequesada 0:a37ed180e6e3 3666 Keypad_C2.rise(&KeyPad_InterruptDisable);
williequesada 0:a37ed180e6e3 3667 Keypad_C3.rise(&KeyPad_InterruptDisable);
williequesada 0:a37ed180e6e3 3668 Keypad_C4.rise(&KeyPad_InterruptDisable);
williequesada 0:a37ed180e6e3 3669 Configuracion.rise(&Interrupt_Mantenimiento);
williequesada 0:a37ed180e6e3 3670 CardReader.attach(&Interrupt_CardReader);
williequesada 0:a37ed180e6e3 3671 Host.attach(&Interrupt_Host,5);//1800 30 minutos
williequesada 0:a37ed180e6e3 3672 Computer.printf("Prototipo Completo\n");
williequesada 0:a37ed180e6e3 3673 Screen.Off();
williequesada 0:a37ed180e6e3 3674 while(1) {
williequesada 0:a37ed180e6e3 3675 KeyPad_InterruptEnable();
williequesada 0:a37ed180e6e3 3676 Doors.InterruptEnable();
williequesada 0:a37ed180e6e3 3677 hal_sleep();
williequesada 0:a37ed180e6e3 3678 Tecla=KeyPad_Read();
williequesada 0:a37ed180e6e3 3679 if(Tecla!=NO_KEY) {
williequesada 0:a37ed180e6e3 3680 LedUsuario=1;
williequesada 0:a37ed180e6e3 3681 MAX232=0;
williequesada 0:a37ed180e6e3 3682 Usuario(USER_INIT);
williequesada 0:a37ed180e6e3 3683 EsperarSim900(5000);
williequesada 0:a37ed180e6e3 3684 LedUsuario=0;
williequesada 0:a37ed180e6e3 3685 MAX232=1;
williequesada 0:a37ed180e6e3 3686 }
williequesada 0:a37ed180e6e3 3687 if(MantenimientoInterruption) {
williequesada 0:a37ed180e6e3 3688 LedMantenimiento=1;
williequesada 0:a37ed180e6e3 3689 Mantenimiento();
williequesada 0:a37ed180e6e3 3690 LedMantenimiento=0;
williequesada 0:a37ed180e6e3 3691 }
williequesada 0:a37ed180e6e3 3692 if(Doors.Read()>0) {
williequesada 0:a37ed180e6e3 3693 Alarm=1;
williequesada 0:a37ed180e6e3 3694 AlarmasCall((3+Doors.Read()),1);
williequesada 0:a37ed180e6e3 3695 } else {
williequesada 0:a37ed180e6e3 3696 AlarmasCall(4,0);
williequesada 0:a37ed180e6e3 3697 AlarmasCall(5,0);
williequesada 0:a37ed180e6e3 3698 }
williequesada 0:a37ed180e6e3 3699 if(Alarm) {
williequesada 0:a37ed180e6e3 3700 LedHosting=1;
williequesada 0:a37ed180e6e3 3701 Hosting();
williequesada 0:a37ed180e6e3 3702 EsperarSim900(5000);
williequesada 0:a37ed180e6e3 3703 LedHosting=0;
williequesada 0:a37ed180e6e3 3704 }
williequesada 0:a37ed180e6e3 3705 }
williequesada 0:a37ed180e6e3 3706 }