Home

Control Remoto Mediante Comunicaciones TCP/IP de Radioayudas

image

Contents

1. e Al arrancar el di logo se captura del registro de Windows la informaci n de la leyenda que aparece en el di logo Ahora la aplicaci n queda a la espera de que el usuario realice alguna acci n sobre el dialogo del Propiedades e Se puede modificar el contenido de los cuadros de texto y al pulsar el Bot n OK escribe en el registro de Windows la informaci n modificada y se regresa al di logo principal e Si cerrara el di logo sin pulsar Ok no se registrar an las modificaciones realizadas en el registro de Windows 3 m Control remoto mediante comunicaci n TCP IP de Radioayudas A eron uticas Di logo Cliente vi QA Conrecled Lependa Entradas nM E O Estado 000000001111 Mi ainda EUER E Ennio PONencaga 2 Equipo en antena F S TS jtakeP OFF ol E Eos ON anean Saidas gt gt E ord E Cora xi n Il lt montos Eppase Cenar 4 Equipo S ON sa antena a Alma de eienen E Um H HE H H H Equipo 5 OFF E 127001 S TE di Prowl EAE RF F F F amp Fiese Alarma Mita Al arrancar el di logo se aptura del registro de Windows la informaci n de la conexi n IP Port que aparece en el di logo Ahora la aplicaci n queda a la espera de que el usuario realice alguna acci n sobre el dialogo del Propiedades Se puede modificar el contenido de los cuadros de texto IP y Port para indicar en que direcci n y en que puerto se debe real
2. void CMSWinsockControl ABRCerrarSck TODO Add your command handler code here Close void CMSWinsockControl ABROnSendCompleteWinsockl TODO Add your command handler code here CString CMSWinsockControl ABRConvertirEstado int Estado switch Estado case O return Closed break case return Open break case 2 return Listening break case 3 return Connection pendingOpen a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira 70 i a break case 4 return break case 5 return break case 6 return break case 7 return break case 8 return break case 9 return break y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Resolving host Host resolved Connecting Connected Peer is closing the connection Error default return NULL break Agust Baub Rovira 71 L a ABRCClienteDlgUtils h funciones tiles para el di logo cliente void CClienteDlg InsertarRegistro CString Nombre CString Estado CString Hora CString aux m pSet gt m Nombre Nombre m pSet gt m Estado Estado m_pSet gt m_Hora Hora EscribirRegistro m pSet amp m BaseDatosDlgSet m pSet gt ABRAbrirBD m pSet gt ABRInsertarRegistro Nombre Estado Hora m pSet gt ABRCerrarBD CString CClienteDlg InsertarHora CSt
3. m_Socket2 GetState 7 Salida3 Salida3 m Socket2 ABREnviarSck Salidas Escribir amp m EditEnviado Leer amp m EditSalida3 else m_ChkSal3 SetCheck void CClienteDlg O OnChk4 TODO Add your control notification handler code here LT m Socket 2 GetState 7 Salida4 Salida4 m Socket2 ABREnviarSck Salida4 Escribir amp m_EditEnviado Leer amp m EditSalida4 else m_ChkSal4 SetCheck void CClienteDlg 0 OnChk5 TODO Add your control notification handler code here Page 4 of 5 19 30 ClienteDlg cpp 2901 2 30 209 260 261 262 263 264 265 266 267 268 269 270 211 272 279 214 2795 276 217 278 279 280 281 232 233 284 285 286 281 288 209 290 291 292 293 294 295 296 29717 298 299 300 301 302 303 304 305 306 307 308 309 310 311 if m Socket2 GetState 7 Salida5 Salida5 m_Socket2 ABREnviarSck Salida5 Escribir amp m EditEnviado Leer amp m EditSalida5 else m ChkSal5 SetCheck 0 void CClienteDlg OnChk6 TODO Add your control notification handler code here 1f m_Socket2 GetState 7 Salida6 Salida6 m_Socket2 ABREnviarSck Salida6 Escribir amp m_EditEnviado Leer amp m EditSalida6 j else m ChkSal6 SetCheck 0 void CClienteDlg OnChk7 TODO Add your control notification handler code here if m Socke
4. m_pSet gt m_Estado m_pSet gt m_Hora j void CBaseDatosDlg OnButtonBuscar TODO Add your control notification handler code here m_pSet gt m_Nombre m_pSet gt m_Estado m_pSet gt m_Hora m pSet gt ABRBuscarRegistro Leer amp m EditNombre Leer amp m EditEstado Leer amp m EditHora OnButtonUltimo j Agusti Baubi Rovira 21 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a Preparar CProyectoBDDlg para utilizar el RecordSet A adir a ProyectoBDDlg h include BaseDatosSet h class CBaseDatosSet ProyectoBDDlg h header file fif defined AFX_PROYECTOBDDLG_H__14710EF7_3ED3_43D7_BACE_258C8EA5D161__INCLUDED_ define AFX PROYECTOBDDLG H 14710EF7 3ED3 43D7 BACE 258C8EA5D161 INCLUDED include BaseDatosSet h fif MSC VER gt 1000 Fpragma once endif MSC VER gt 1000 WII TT III HH I CProyectoBDDlg dialog class CBaseDatosSet class CBaseDatosDlg class CProyectoBDDIg public CDialog Construction Insertar en la cabecera del fichero include BaseDatosDlg h fif ldefined AFX_PROYECTOBDDLG_H__14710EF7_3ED3_43D7_BACE_258C8EA5D161__INCLUDED_ define AFX_PROYECTOBDDLG_H__14710EF7_3ED3_43D7_BACE_258C8EA5D161__INCLUDED_ include BaseDatosSet h include BaseDatosDlg h Added by ClassView if _MSC_VER gt 1000 pragma once endif MSC VER gt 1000 REEL TEASE EE EAE TERE ET ADV AL EAT SE
5. m pSet gt m Estado m pSet gt m Hora m pSet gt ABRBuscarTodosLosRegistros OnBurtonbleimo EscribirRegistro void CBaseDatosDlg OnButtonLimpiar TODO Add your control notification handler code here m_EditNombre SetWindowText Page 3 of 4 09 01 2002 19 29 BaseDatosDlg cpp 09 01 2002 19 29 193 m EditEstado SetWindowText 194 m EditHora SetWindowText 195 m pSet gt m Nombre 196 m pSet gt m Estado 197 m pSet gt m Hora 198 jJ 199 200 void CBaseDatosDlg OnButtonBuscar 201 4 202 TODO Add your control notification handler code here 203 m_pSet gt m_Nombre 204 m pSet gt m Estado 205 m pset gt m Hora 206 207 m pSet gt ABRBuscarRegistro Leer amp m EditNombre Leer amp m EditEstado Leer amp m EditHora 208 209 OnButtonUltimo 210 211 212 213 214 Page 4 of 4 BaseDatosDlg h 09 01 2002 19 30 O 30 OP WN H WO 10 13 12 La 14 liks 16 L7 1 8 LS 20 21 22 23 24 25 26 21 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 od 32 53 54 SO 56 57 58 59 60 61 62 63 64 fif defined AFX_BASEDATOSDLG_H_9210F9FE_A9F7_11D5_97E1_FCCD2DB3034F__ INCLUDED_ define AFX_BASEDATOSDLG_H__9210F9FE_A9F7_11D5_97E1_FCCD2DB3034F__ INCLUDED_ include BaseDatosSet h Added by ClassView F1f _MSC_VER gt 1000 pragma once endif _MSC VER gt
6. El software realizado en este proyecto controla el puerto paralelo de un PC y ofrece ocho salidas y cuatro entradas digitales directas para controlar las se ales anteriores En caso de necesitar m s se ales que las ofrecidas se puede utilizar el m todo de codificaci n de las se ales as podr amos disponer de 2 256 salidas y 2 16 entradas digitales codificadas Tambi n cabe la posibilidad de instalar m s de un PC en una determinada instalaci n Las se ales del puerto paralelo deben cablearse a los equipos de las radioayudas mediante las adaptaciones necesarias en cada caso para capturar la informaci n necesaria a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a Configuraci n del Hardware El software realizado ProyectoBD exe se debe instalar en un ordenador PC compatible con el sistema operativo Windows 95 o superior Para conseguir controlar remotamente las instalaciones se pueden utilizar diferentes configuraciones del hardware Segun el caso el hardware para conectarse a la red TCP IP es diferente 1 Intranet Local Podemos enlazar con la red TCP IP directamente con una tarjeta de red a nuestra Intranet Local 2 Intranet con conexi n a Internet a traves de un proxy Enlazamos con la red TCP IP con la tarjeta de red a nuestra Intarnet Local y con la ayuda de un servidor proxy a Internet 3 Conexi n a Internet a trav s de ISP Conectarnos telefonica
7. 138 afx msg void OnConnectionRequestWinsockl long requestID 139 afx msg void OnCloseWinsockl 140 afx msg void OnDataArrivalWinsockl long bytesTotal 141 afx msg void OnTimer UINT nIDEvent 142 afx msg void OnAccinPropiedades 143 afx msg void OnAccinCliente 144 DECLARE EVENTSINK MAP 145 JAFX MSG 146 DECLARE MESSAGE MAP 147 3 148 149 AFX_INSERT_LOCATION 150 Microsoft Visual C will insert additional declarations immediately before the previous lin 151 152 endif defined AFX PROYECTOBDDLG H 9210F9F6 A9F7 11D5 97E1 FCCD2DB3034F INCLUDED 153 Page 3 of 3 ProyectoBD dsp CO 1 O0 OP WN K A A WWW LV CO L CO CO CO WN ND N N DN N PD PO NN FS Lo ES o FS FR RFR FR ES RS O OOHX OU 4 V N F O O O J O AP GON RP O O O Sl O Ln 4S UV N H O O E A Q1 a a OQ YN YN YN CH As ds BA ds A d OO 1 O O1 s WNF O WO WA ON OB QQ NP O1 Ov OY Ul e O LO OY ON OD me N 0970242002 19231 Microsoft Developer Studio Project File Name ProyectoBD Package Owner lt 4 gt Microsoft Developer Studio Generated Build File Format Version 6 00 h owe DO NOT EDIT FX TARGTYPE WIn32 X36 Appli at ron OxOIOI CFG ProyectoBD Win32 Debug MESSAGE MESSAGE MESSAGE MESSAGE MESSAGE MESSAGE MESSAGE MESSAGE MESSAGE MESSAGE MESSAGE MESSAGE MESSAGE MESSAGE MESSAGE PROP PROP PROP dk This is not a valid makef
8. 87 88 Generated message map functions 89 AFX_MSG CClienteD1g 90 virtual BOOL OnInitDialog 91 afx msg void OnButtonConectar 92 afx msg void OnChangeEdit013 93 afx msg void OnChangeEdit014 94 afx msg void OnConnectWinsockl 95 afx msg void OnButtonCerrar 96 afx msg void OnDataArrivalWinsockl long bytesTotal 27 arx msg void OnChkl 98 afx_msg void OnChk2 99 afx msg void OnChk3 100 afx msg void OnChk4 101 afx_msg void OnChk5 102 atx msg void OnChk6 103 afx_msg void OnChk7 104 arx msg void OnChk8 105 afx msg void OnCloseWinsockl 106 DECLARE EVENTSINK MAP 107 AFX_MSG 108 DECLARE MESSAGE MAP 109 Es 110 111 AFX_INSERT LOCATION 112 Microsoft Visual C will insert additional declarations immediately before the previous lin 113 114 endif defined AFX CLIENTEDLG H _D341D442_B0DF_11D5_97E1_B4A0DF43684E__INCLUDED_ 115 Page 2 of 2 mswinsockcontrol cpp 09 01 2002 19 30 CO 1 A OF WN RPR QO O O O UI UIT UI UT UI UIT UI UT UT LH e aS aS uS RB S BP aS BRB OB C WWW Y Y YU Y YN NN PO DDN PO NO N N rS PS Ep op np pn n py n O N H O 0 10 U1 4 UW NH i0 0 10 LH 4S CO NN IH OO O O 10 LH iS C IO I9 OO O Jo LH e CO lU LA O O O 10 LH iS UV INN HO LO Machine generated IDispatch wrapper class es created by Microsoft Visual C NOTE Do not modify the contents of this file If this class is regenerated by Microsoft Visual C your modification
9. C0 QU CO L CO VW CO WN N N N DS Po N N PO PO Rh o LR FF FR FR FR FEF O O O 1 On O1 S VU N F O O WONA O O RAUDNE O O OANA A UI 45 UV N H O O ds A A A A A A A A GI OT 01 01 01 Ol O1 O1 O OO 1 OY O1 ds Y N H O O 0 10 OP WN S O1 OY ON HO OY OY ON me N NO_DEPENDENCLES Microsoft Developer Studio generated include file Used by ProyectoBD rc define define define define define def ine define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define IDM_ABOUTBOX IDD_ABOUTBOX IDS_ABOUTBOX IDD_PROYECTOBD_DIALOG IDD BASEDATOSDLG DIALOG IDD CLIENTEDLG DIALOG IDR MAINFRAME IDR MENU1 IDD PROPIEDADES DIALOG IDC EDIT NOMBRE IDC EDIT ESTADO IDC EDIT HORA IDC BUTTON PRIMERO IDC BUTTON ANTERIOR IDC BUTTON SIGUIENTE IDC BUTTON ULTIMO IDC BUTTON INSERTAR IDC BUTTON BORRAR IDC_BUTTON_ACTUALIZAR IDC_BUTTON_BUSCARTODOS IDC_BUTTON_LIMPIAR IDC_BUTTON_BUSCAR IDE STATIC LDC CHECK IL IDC CHECK LDC CHECKS IDC_CHECK4 LDC CHECKS IDC_CHECK6 IDE CHECK DC CHECKS I
10. CASO NO MODAL En el fichero BaseDatosDlg cpp en la clase CBaseDatosDlg Modificar la funci n CBaseDatosDlg CBaseDatosDlg CWnd pParent NULL y incluir Create IDD CBaseDatosDlg CBaseDatosDlg CWnd pParent NULL CDialog CBaseDatosDlg IDD pParent AFX DATA INIT CBaseDatosD1g AFX DATA INIT Create IDD En el fichero ProyectoBDDIg h Incluir class CBaseDatosDlg antes de la definici n de la clase class CProyectoBDDlg public CDialog GETAN a a A TATI AA L VLE VTA DAA LAA PUTA AA TAR ADA EAE EE ded d TRE a od EF d CProyectoBDDig dialog class CBaseDatosDlg class CProyectoBDDlg public CDialog Crear Variable gt CBaseDatosDlg m_pBaseDatosDlg public CProyectoBDDlg CWnd pParent NULL standard constructor CBaseDatosDlg m_pBaseDatosDlg Dialog Data En el fichero ProyectoBDDlg cpp En el constructor CProyectoBDDlg CProyectoBDDlg CWnd pParent NULL Incluir m_pBaseDatosDlg new CBaseDatosDlg CProyectoBDDlg CProyectoBDDlg CWnd pParent NULL CDialog CProyectoBDDlg IDD pParent a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira AFX DATA INIT CProyectoBDDlg AFX DATA INIT Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m hlIcon AfxGetApp LoadIcon IDR MAINFRAME m pBaseDatosDlg new CBaseDatosDlg Anadir include BaseDatosDlg h
11. Leer 8 m_EditSalida8 Leyenda GetLength Leer amp m EditEntradal Leyenda GetLength Leer amp m EditEntrada2 Leyenda GetLength Leer amp m EditEntrada3 Leyenda GetLength Leer amp m EditEntrada4 Agust Baub Rovira 67 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira m EditSalidal SetWindowText AfxGetApp gt GetProfileString Leyenda Salidal m EditSalida2 SetWindowText AfxGetApp gt GetProfileString Leyenda Salida2 m EditSalida3 SetWindowText AfxGetApp gt GetProfileString Leyenda Salida3 m EditSalida4 SetWindowText AfxGetApp gt GetProfileString Leyenda Salida4 m EditSalida5 SetWindowText AfxGetApp gt GetProfileString Leyenda Salida5 m EditSalida6 SetWindowText AfxGetApp gt GetProfileString Leyenda Salida6 m EditSalida7 SetWindowText AfxGetApp gt GetProfileString Leyenda Salida7 m EditSalida8 SetWindowText AfxGetApp gt GetProfileString Leyenda Salida8 m EditEntradal SetWindowText AfxGetApp gt GetProfileString Leyenda Entradal m EditEntrada2 SetWindowText AfxGetApp gt GetProfileString Leyenda Entrada2 m EditEntrada3 SetWindowText AfxGetApp gt GetProfileString Leyenda Entrada3 m EditEntrada4 SetWindowText AfxGetApp gt GetProfileString Leyenda Entrada4 m
12. Protocolo Nivel de aplicaci n Nivel de red Protocolo TCP Nivel de transporte TS T m n PA por E STEL T a eels ee MM H Ma AMICO H Fi AA a I L EnWnemsb u Nivel de enlace Torre de protocolos de una LAN ejecutando TCP IP El programa servidor escucha continuamente por un extremo del canal mientras que el programa cliente se conecta peri dicamente con el programa servidor para intercambiar datos Ejemplo El servidor puede ser un servidor de p ginas web basado en http y el cliente un programa Navegador a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a El Protocolo Internet IP El nivel de protocolo Internet IP es por donde se empieza a estudiar TCP IP El protocolo IP define paquetes datagramas que constituyen las unidades fundamentales en una comunicaci n en Internet Estos paquetes inferiores a 1Kbyte van rebotando por todo el mundo cuando se esta ejecutando una aplicaci n de Internet se abre una p gina web se carga un fichero v a FTP se env a un correo electr nico etc Longitud de la Longitud total del datagrama cabecera 4 bits en bytes 16 bytes Redundancia 20 s lo en la cabecera IP 16 bytes bytes Direcci n IP emisor 32 bytes i Direcci n IP destino 32 bytes Opciones si existen Datos Estructura simplificada de un datagrama IP El datagrama IP contiene direcciones de 32 bits tanto p
13. Si durante la conexi n se pulsa el Bot n Cerrar se cierra la conexi n del cliente con el servidor y se puede volver a conectar otra vez con el mismo servidor o con otro diferente en otra IP y puerto distinto Si se cerrara el di logo tambi n se cierra la conexi n y se regresa al di logo principal 35 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Soluci n al problema de la IP din mica La direcci n IP es el identificador de cada host dentro de su red Cada host conectado a una red tiene una direcci n IP asignada la cual debe ser distinta a todas las dem s direcciones que est n vigentes en ese momento en el conjunto de redes visibles por el host En el caso de Internet no puede haber dos ordenadores con 2 direcciones IP p blicas iguales Pero s podr amos tener dos ordenadores con la misma direcci n IP siempre y cuando pertenezcan a redes independientes entre s sin ning n camino posible que las comunique Las direcciones IP se clasifican en Direcciones IP p blicas Son visibles en todo Internet Un ordenador con una IP p blica es accesible visible desde cualquier otro ordenador conectado a Internet Para conectarse a Internet es necesario tener una direcci n IP p blica Direcciones IP privadas reservadas Son visibles nicamente por otros hosts de su propia red o de otras redes privadas interconectadas por routers Se utilizan en las empresas
14. if Entrada2 1 Estado Insert 27 1 EnviarEstadoAlSck 9 81 354 11 wp 19 41 t ai e uL 19 03 ds usa dis 29 De SE Pr Agust Baub Rovira 66 Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas else Estado lneert 27 Q0 Ti if Entrada3 1 Estado Insert 29 else Estado Insert 29 Q0 js if Entrada4 1 Estado Insert 31 1 else Estado Insert 31 0 m Socketl ABREnviarSck Estado m Socketl ABREnviarSck Estado void CProyectoBDDlg EnviarLeyendaAlSck CString Leyenda CString Estado Estado Leyenda Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda Insert Leyenda GetLength Leyenda GetLength Leyenda GetLength Leyenda GetLength Leyenda GetLength Leyenda GetLength Leyenda GetLength Leyenda GetLength Leyenda GetLength y AA Eg W AES Leyenda GetLength Leyenda GetLength Leyenda GetLength Leyenda GetLength Leyenda GetLength Leyenda GetLength dU EA W Re bg gag Leyenda GetLength Leye
15. 1 else Entrada3 0 if Estado Mid 30 1 1 else Entrada4 0 ActualizarPuerto Entrada2 1 Entrada3 1 Entrada4 1 Agust Baub Rovira Leyenda Mid 8 23 Leyenda Leyenda Mid 32 Leyenda GetLength aux Leyenda Mid 0 Leyenda FindOneOf Leyenda Leyenda Mid Leyenda FindOneOf m EditSalidal SetWindowText aux aux Leyenda Mid 0 Leyenda FindOneOf Leyenda Leyenda Mid Leyenda FindOneOf m EditSalida2 SetWindowText aux MD 1 Leyenda Getlength 1 Leyenda GetLength 73 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira aux Leyenda Mid 0 Leyenda FindOneOf Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength m_EditSalida3 SetWindowText aux aux Leyenda Mid 0 Leyenda FindOneOf Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength m_EditSalida4 SetWindowText aux aux Leyenda Mid 0 Leyenda FindOneOf Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength m EditSalida5 SetWindowText aux aux Leyenda Mid 0 Leyenda FindOneOf Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength m EditSalida6 SetWindowText aux aux Leyenda Mid 0 Leyenda FindOneOf Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength m EditSalida7 SetWindowText aux aux Leyenda Mid 0 Leyenda FindOneOf Leyenda
16. 280 else out 1 281 Salida6 Salida6 282 break 283 case 7 284 if Salida7 out 0 285 else out 1 286 Salida7 Salida7 261 break 288 case 8 289 if Salida8 out 0 290 else out 1 291 Salida8 Salida8 292 break 293 case 9 294 if Entradal out 0 295 else out 1 296 break 297 case 10 298 if Entrada2 out 0 299 else out 1 300 break 301 case 11 302 if Entrada3 out 0 303 else out 1 304 break 305 Case 12 306 ir Entradad ouc 0 307 else out 1 308 break 309 default 310 return NULL SII 312 313 return out 314 315 316 317 318 319 void CClienteDlg LeerEntradasPuerto 320 4 Page 5 of 7 ABRCClienteDlgUtils h 09 01 2002 19 29 321 int EntlAux 322 int Ent2Aux 323 int Ent3Aux 324 int Ent4Aux 325 Guardar Entradas anteriores 326 EntlAux Entradal 327 Ent2Aux Entrada2 328 Ent3Aux Entrada3 329 Ent4Aux Entrada4 330 Actualizar las entradas 331 Entradal PuertoParalelo Entradal 332 Entrada2 PuertoParalelo Entrada2 333 Entrada3 PuertoParalelo Entrada3 334 Entrada4 PuertoParalelo Entrada4 335 Actualizar Entradas en el dialogo 336 if Entradal 1 m CheckEntl SetCheck 1 337 else m CheckEntl SetCheck 0 338 if Entrada2 1 m CheckEnt2 SetCheck 1 339 else m CheckEnt2 SetCheck 0 340 if Entrada3 1 m CheckEnt3 SetCheck 1 341 else m CheckEnt3 SetCheck 0 342 if Entrada
17. AFX INSERT LOCATION 70 Microsoft Visual C will insert additional declarations immediately before the previous line FI 72 endif defined AFX BASEDATOSDLG H 9210F9FE A9F7 11D5 97E1 FCCD2DB3034F INCLUDED 73 Page 2 of 2 BaseDatosSet cpp 09 01 2002 19 30 1 BaseDatosSet cpp implementation file A yy 3 4 include stdafx h 5 include ProyectoBD h 6 include BaseDatosSet h gt 8 include ABRdb h 9 10 11 ifdef _DEBUG 12 define new DEBUG NEW 13 undef THIS FILE 14 static char THIS FILE FILE 15 endif 16 IT AIRE LA R AAA LL VT LALA F V LI EL VELL A VA AE eae 18 CBaseDatosSet 19 20 IMPLEMENT DYNAMIC CBaseDatosSet CRecordset 21 22 CBaseDatosSet CBaseDatosSet CDatabase pdb 23 CRecordset pdb 24 1 25 AFX_FIELD_INIT CBaseDatosSet 26 m Nombre T 27 m Estado T 99 s 28 m Hora _T A9 m nFields 3 30 YAFX FIELD INIT 31 m nDefaultType dynaset 32 33 34 35 CString CBaseDatosSet GetDefaultConnect 36 1 37 return T ODBC DRIVER MICROSOFT ACCESS DRIVER mdb DSN sDBO C windows escritorio 38 39 CString aux 40 if AfxGetApp gt GetProfilestring BD Path 41 42 AfxGetApp gt WriteProfileString Socket Port 888 43 ATxGeLtApp wWriteProfileString BD Pata bal map 44 45 AfxGetApp gt WriteProfileString Leyenda Salidal Salidal 46 AfxGetApp WriteProfileString Leyenda Sali
18. CProyectoBDD1g OnCheck4 TODO Add your control OnSalidasSalida4 CProyectoBDDIg OnCheck5 fi TODO Add your control OnSalidasSalida5 CProyectoBDD1g OnCheck6 TODO Add your control OnSalidasSalida6 CProyectoBDD1g OnCheck7 TODO Add your control OnSalidasSalida7 CProyectoBDD1g OnCheck8 TODO Add your control OnSalidasSalida8 notification notification notification notification notification handler handler handler handler handler code code code code code here here here here here Agust Baub Rovira 33 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a A adir a CProyectoBDDis la clase para controlar el puerto paralelo Debemos a adir la clase PuertoParalelo cpp y PuertoParalelo h Project gt AddtoProject gt Files gt PuertoParalelo cpp Project gt AddtoProject gt Files gt PuertoParalelo h En ProyectoBDDlg h Insertar en la cabecera del fichero include PuertoParalelo h fif defined AFX PROYECTOBDDLG H 14710EF7 3ED3 43D7 BACE 258C8EA5DD161 INCLUDED define AFX PROYECTOBDDLG H 14710EF7 3ED3 43D7 BACE 258C8EA5D161 INCLUDED tinclude BaseDatosSet h include PuertoParalelo h Added by ClassView include BaseDatosDlg h Added by ClassView Hif _MSC_VER gt 1000 pragma once endif _MSC_VER gt 1000 VLA LLL E T EE A AT AD LA PIRAPO
19. G9IFO1 2002 19231 ProvectoBb opt 193 194 195 196 LO 198 199 200 201 202 203 204 203 205 207 208 209 210 211 zl 2155 214 215 216 E 218 279 2 20 221 222 Z ZA 224 LAD 226 ZAN 228 229 2 30 28 2 32 2 33 234 2303 2 26 2 34 238 239 240 No DO TRI DO RI NN DN ND A A A A A A A A A N O1 01 UI O1 O1 NOP GQ Pr O O OND MRA CO NH NO ND NM NO NI PN O1 O1 Control34 IDC EDIT15 edit 1350631552 Control35 IDC STATIC Static 1342308352 Control36 IDC STATIC button 1342177287 CLS CPropiedades1D1lg Type 0 HeaderFile Propiedades1Dlg h ImplementationFile PropiedadesiDig cpp BaseClass CDialog Filter D LastObject CPropiedadeslDlg VirtualFilter dWC DLG IDD CLIENTEDLG DIALOG Type 1 Class CClienteDlg ControlCount 54 Controll IDC STATICI1 static 1342308352 Control2 IDC_STATIC button 1342177287 Control3 1DC WINSOCK1 24e0DD696 BB45 11CF 9ABC 00C0C7EIBIsD 1342242516 Control4IDC STATIC button 1342177287 Control5 IDC STATIC static 1342308352 Control6 IDC_EDIT0O1 edtt 1350633600 Control IDC STATIC static 1342308352 Controls IDC EDITO2 ed1t 1550633600 Control9 IDC STATIC static 1347308352 Control10 IDC_EDITO3 edit 1350633600 Control11 IDC_STATIC static 1342308352 Controll2l1DG EDITO4 edit 1350633600 Controll13 IDC STATES static 1342308352 Controll14 IDC EDITO5 edit 1350633600 Control15 IDC STATIC static 1342308352 Controll6 IDC EDI
20. di Copiar en la carpeta del poyecto los ficheros que deberemos incluir en el proyecto para utilizar funciones propias tiles para las diferentes partes del proyecto PuertoParalelo cpp PuertoParalelo h ABRdb h ABRCBaseDatosDlgUtils h ABRCProyectoBDDlg Utils h ABRWinsock h ABRCClienteDlg Utils h Clase que controla el puerto paralelo Funciones para gestionar la tase de datos Funciones tiles para el di logo base de datos Funciones tiles para el di logo principal Funciones tiles gestionar el control Winsock Funciones tiles para el di logo cliente Preparar y copiar en la carpeta del proyecto el fichero de la Base de datos que utilizaremos como historico en la aplicaci n bd1 mdb Tabla Historico Campos Nombre Estado Hora Se registra que salida o entrada a cambiado Se registra el estado en que se encuentra On Off Se registra a que hora se ha producido el cambio de estado y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira E Li a Preparar el proyecto para utilizar funciones de Visual C sobre bases de datos A adir funcionalidad ODBC A adir a StdAfx h Zinclude afxdb h Zinclude afxdao h stdafx h include file for standard system include files or project specific include files that are used frequently but are changed infrequently fif defined AFX STDAFX H 9210F9F8 A9F7 11D5 97E1 FCCD2DB3034F INCLUDED def
21. include stdafx h include ProyectoBD h include ProyectoBDDlg h include BaseDatosDlg h include ABRCProyectoBDD1gUtils h ifdef _DEBUG define new DEBUG NEW undef THIS FILE static char THIS FILE FILE fendif ASI EI ASI LELE VLA LV LL L L LX EVLI FLA LU LV AE AVA IIA LA TU LA LIA CAboutDlg dialog used for App About class CAboutDlg public CDialog publico CAboutDlg Dialog Data AFX DATA CAboutD1g enum IDD IDD ABOUTBOX AFX DATA ClassWizard generated virtual function overrides AFX VIRTUAL CAboutDlg protected virtual void DoDataExchange CDataExchange pDX DDX DDV support JAFX VIRTUAL Implementation protected AFX MSG CAboutD1g AFX MSG DECLARE MESSAGE MAP by CAboucDIG CAbouLDlg lt CDralog CAboutDlg sIDD AFX_DATA_INIT CAboutDlg YYAFX DATA INIT void CAboutDlg DoDataExchange CDataExchange pDX CDialog DoDataExchange pDX AFX_DATA_MAP CAboutDlg AFX_DATA_MAP BEGIN MESSAGE MAP CAboutDlg CDialog AFX MSG MAP CAboutD1g No message handlers AFX MSG MAP END MESSAGE MAP EO HL FS VAA AA MA EDITA EIA VAL LAL IAE LADRAR CProyectoBDDlg dialog Page 1 of 8 09 01 2002 19 31 ProvectoBDDig epp 65 66 67 68 69 70 FL T2 13 74 Ja 76 77 78 19 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 35 26 2 98 99 100 LOL 102 103 104 105
22. void CMSWinsockControl Listen InvokeHelper 0x41 DISPATCH_METHOD VT_EMPTY NULL NULL void CMSWinsockControl Accept long requestID static BYTE parms VIS_14 InvokeHelper 0x42 DISPATCH_METHOD VI_EMPTY NULL parms request ID Page 2 of 3 mswinsockcontrol cpp 09 01 2002 19 30 129 3 130 131 void CMSWinsockControl SendData const VARIANT data 132 4 133 static BYTE parms 134 VIS VARIANT 135 InvokeHelper 0x43 DISPATCH_METHOD VT_EMPTY NULL parms 136 data 137 L 138 139 void CMSWinsockControl GetData VARIANT data const VARIANT amp type const VARIANT amp maxLen 140 141 static BYTE parms 142 VIS PVARIANT VIS VARIANT VIS VARIANT 143 InvokeHelper 0x44 DISPATCH_METHOD VI_EMPTY NULL parms 144 data type amp maxLen 145 146 147 void CMSWinsockControl PeekData VARIANT data const VARIANT amp type const VARIANT amp maxLen 148 149 static BYTE parms 150 VTS_PVARIANT VTS_VARIANT VIS_VARIANT 151 InvokeHelper 0x45 DISPATCH_METHOD VI_EMPTY NULL parms 152 data amp type amp maxLen 153 q 154 155 void CMSwinsockControl Close t 156 4 157 InvokeHelper 0x46 DISPATCH METHOD VT_EMPTY NULL NULL 158 7 159 160 void CMSWinsockControl Bind const VARIANT amp LocalPort const VARIANT amp LocalIP 161 1 162 static BYTE parms 163 VTS_VARIANT VIS_VARIANT 164 InvokeHelper 0x47 DISPATCH METHOD VT_EMPTY NULL pa
23. 09 0171 Z2002 19231 ProvectoBb opt 769 770 INL FIZ ENS 774 775 776 177 778 119 780 781 182 TOs 184 tos 786 EO 788 789 790 91 FIA 793 794 793 796 T9 TS TOS 800 801 802 803 804 805 806 807 808 809 810 om ae OZ 813 814 815 816 817 818 819 820 SAL 822 823 824 825 826 827 828 829 830 831 832 Control45 IDC CHK3 button 1342242883 Cont rol46 IDC_CHK4 button 1342242883 Control4 IDC CHK5 button 1342242883 Control48 IDC CHK6 button 1342242883 Control 49 IDC_CHK7 button 1342242883 Cont rol50 IDC_CHK8 button 1342242883 Control51 IDC CHK9 button 1476460611 Control52 IDC_CHK10 button 1476460611 Control53 IDC_CHK11 button 1476460611 Cont rol54 IDC_CHK12 button 1476460611 CLS CClienteDlg Type 0 HeaderFile ClienteDlg h ImplementationFile ClienteDlg cpp BaseClass CDialog Filter D VirtualFilter dWC LastObject IDC WINSOCK1 l 64 Column2 Estado 1 64 Column3 Hora 1 64 DLG IDD PROPIEDADES DIALOG Page 13 of 16 09 0171 Z2002 19231 ProvectoBb opt 833 334 835 836 837 838 839 840 CO CO O 00 CO CO CO OO CO A A A A A A A A A A On oo oo UI CO CO 00 CO CO CO CO O1 CO O1 O O 1 O OB VON I O O 0 SI O OP WN S CO O1 Type 1 Class CPropiedadesiDlg ControlCount 36 Control1 IDOK button 1342242817 Control2 IDCANCEL button 1342242816 Control3 IDC STATIC Static 1342308352 Control4 IDC EDIT dit 1350631
24. 88 m pSet gt ABRAbrirBD 89 90 EscribirRegistro 91 OnButtonBuscartodos 92 m_EditNombre SetSel m_EditNombre GetWindowTextLength m_EditNombre GetWindowTextLength 93 Do not call CDialog OnPaint for painting messages 94 95 96 void CBaseDatosDlg OnButtonPrimero 97 4 98 TODO Add your control notification handler code here 99 m pSet gt ABRPrimerRegistro 100 BorrarCampos 101 EscribirRegistro 1 102 103 104 void CBaseDatosDlg OnButtonAnterior 105 4 106 TODO Add your control notification handler code here 107 m pSet gt ABRAnteriorRegistro 108 BorrarCampos 109 EscribirRegistro 110 111 112 void CBaseDatosDlg OnButtonSiguiente kl 34 114 TODO Add your control notification handler code here 115 m pSet gt ABRSiguienteRegistro 116 77 OnButtonLimpiar 117 EscribirRegistro 118 119 3 120 121 void CBaseDatosDlg OnButtonUltimo 122 1 123 TODO Add your control notification handler code here 124 125 m pSet gt ABRUltimoRegistro 126 OnButtonLimplar 127 EscribirRegistro 1228 Page 2 of 4 BaseDatosDlg cpp 129 130 151 132 133 134 135 136 1357 138 139 140 141 142 143 144 145 146 147 148 149 150 131 132 LoS 154 153 156 157 158 159 160 161 162 163 164 165 166 16 168 169 170 LE ne 173 174 1723 176 177 Jug 179 180 181 182 183 184 Les 186 187 188 189
25. Agust Baub Rovira a A id plas INDICE ESCOLA TE NICA Instalaci n de la aplicaci n ProyectoBD exe eene ee ee Funcionamiento de la aplicaci n cuina tatiana cena dada Si IPERIOR Dialogo principal Aplicaci n servidor sss sees LE oi Moo Baso de Dd Ens il M Y ERIA Dialogo Propiedades sucesion lso iia li Di logo Cliente a UNIVERSITAT ROVIRA 1 VIRGILI Proyecto Final de Carrera CONTROL REMOTO MEDIANTE COMUNICACI N TCP IP DE RADIOAYUDAS AERONAUTICAS MANUAL DE USUARIO e Ingeniero Superior en Autom tica y Electr nica Industrial Agust n Baub Rovira Febrero 2002 y Control remoto mediante comunicaci n TCP IP de Radioayudas A eron uticas iz Instalaci n de la aplicaci n ProyectoBD exe Para la utilizaci n de la aplicaci n de este proyecto en un ordenador PC compatible son necesarios los siguientes requisitos e Sistema Operativo Windows 95 o superior e Tarjeta de Puerto Paralelo en el PC e Tarjeta de red o modem para conexi n a red TCP IP e Control mswinsockcontrol ocx registrado en el PC e Controlador ODBC de Microsoft Data Access instalado Con el disco de instalaci n se incluye el fichero de instalaci n de la aplicaci n ProyectoBDsetup exe Estefichero instalar el fichero de la aplicaci n ProyectoBD exe y la base de datos necesaria para su utilizaci n bd1 mdb Ahora la aplicaci n ya esta lista para se ejecutada en el ordenador instalado Menu Inicio
26. CO 1 O OP WN H WO 13 12 k 14 liks 16 L7 1 8 19 20 21 22 23 24 25 26 21 28 29 30 31 32 33 34 35 36 24 38 39 A A Oe WN LA ds H CString CBaseDatosDlg InsertarHora CString Hora COleDateTime date COleDateTime GetCurrentTime 09 01 2002 19 29 Hora Format 2d 2d d 2d 2d 2d date GetDay date GetMonth date GetYear dat return Hora void CBaseDatosDLg Escribir CEdit Edit CString String CString aux Fdit gt GetWindowText aux aux Insert aux GetLength String aux Insert aux GetLength r n Edit gt SetWindowText aux Edit gt SetSel Edit gt GetWindowTextLength Edit Lrzne5croll Edit 5GetsScerollLimrt SB VERT UpdateData FALSE CString CBaseDatosDlg Leer CEdit Edit CString aux Edit gt GetWindowText aux return aux void CBaseDatosDlg EscribirRegistro m EditNombre SetWindowText m pSet m Nombre m EditEstado SetWindowText m pSet m Estado m EditHora SetWindowText m pSet m Hora void CBaseDatosDlg BorrarCampos m EditNombre SetWindowText m EditEstado SetWindowText m EditHora SetWindowText Page 1 of 1 Edit gt GetWindowTextLength TRUE ABRCClienteDlgUtils h 09 01 2002 19 29 1 void CClienteDlg InsertarRegistro CString Nombre CString Estado CString Hora A 4 3 CSEring aux 4 5 m pSet gt m Nombre Nombre 6 m
27. EDITTEXT IDC_EDIT014 302 123 73 12 ES_AUTOHSCROLL ES_READONLY GROUP BOX Leyenda Salidas IDC STATIC 177 186 100 130 GROUP BOX Leyenda Entradas IDC STATIC 277 18 100 15 GROUPBOX Conexi n IDC_STATIC 278 97 100 51 LTEXT Path IDC_STATIC 18 119 18 10 EDITTEXT IDC_EDIT16 18 129 145 12 ES_AUTOHSCROLL ES_READONLY GROUP BOX Base de Datos IDC STATIC 15 11 0 150 38 IDD BASEDATOSDIG DIALOG DIALOG DISCARDABLE 0 O 260 86 STYLE DS MODALFRAME WS POPUP WS CAPTION WS SYSMENU CAPTION Base de Datos FONT 8 MS Sans Serif BEGIN LIEXT Static IDC_STATIC1 7 7 133 9 EDITTEXT IDC EDIT NOMBRE 39 22 102 12 ES_AUTOHSCROLL EDITTEXT IDC EDIT ESTADO 39 34 102 12 ES_AUTOHSCROLL EDITTEXT IDC EDIT HORA 39 47 102 12 ES AUTOHSCROLL PUSHBUTTON PRIMERO IDC BUTTON PRIMERO 143 63 51 16 PUSHBUTTON ANTERIOR LDC BUTTON ANTERIOR 39 03 51 195 PUSHBUTTON SIGUIENTE IDC BUTTON SIGUIENTE 91 63 31 16 PUSHBUTTON ULTIMO IDC BUTTON ULTIMO 195 63 51 16 PUSHBUTTON A ADIR IDC BUTTON INSERTAR 195 31 51 16 PUSHBUTTON BORRAR IDC BUTTON BORRAR 143 47 51 16 PUSHBUTTON ACTUALIZAR IDC_BUTTON_ACTUALIZAR 195 47 51 16 PUSHBUTTON TODOS IDC BUTTON BUSCARTODOE 145 315 16 PUSHBUTTON LIMPIAR IDC BUTTON LIMPIAR 143 15 51 16 PUSHBUTTON BUSCAR IDC BUTTON BUSCAR 195 15 51 16 RTEXT Nombres ITDC STATIC 7 23 30 11 RTEXT Estados IDC STATIC 7 36 30 11 RTEXT Horai IDC STATIC 7 47 30 11 END IDD PROPIEDADE
28. Idefined AFX_BASEDATOSSET_H__9210F9FF_A9F7_11D5_97E1_FCCD2DB3034F__ INCLUDED_ Page 1 of 1 ClienteDlg cpp CO 0 OP WN R A S WWW LW CO CO CO VW CO WN N N N NN NN N N NN FFF FR FR FR FEF O O O NO OFWNF O O O J O Un RAUDNE O O O J O A 45 UV DN H O O ds A A A A A A A O O oo oo Ol O1 O1 O O 1 O O1 ds VON H O O 0 10 OB WN H O1 OY ON HO OY OY O A N ClienteDlg cpp implementation file include Finclude include include stdatfx h ProyectoBD h ClienteDlg h ABRCClienteDlgUtils h ifdef DEBUG define new DEBUG NEW undef THIS FILE static char THIS FILE _ FILE _ endif PS CTIA IT SEA ESE ELI CADA LLA AT U VALA VA XL PLA CLA AAA REA ELA PL LA J CClie nteDlg dialog CClienteDlg CClienteDlg CWnd pParent NULL CDialog CClienteDlg IDD pParent void CClienteDlg DoDataExchange CDataExchange pDX m Staticl YAFX DATA INIT AFX DATA INIT CClienteDlg E P CDialog DoDataExchange pDX AFX DATA MAP CClienteDlg DDX Control p DDX Control p DDX Control p DX DX IDC CHK12 IDC CHK11 IDC CHK10 m ChkEnt4 in ChkEnt3 m ChkEntAZ DDX_Control p IDC_CHK9 m ChkEntl DDX_Control p IDC_CHK8 m ChkSal8 DDX_Control p IDC_CHK6 m ChkSal6 DDX_Control p IDC_CHK7 m ChkSal7 DDX_Control p IDC_CHK5 m ChkSal5 DDX_Control p IDC_CHK4 m ChkSal4 DDX_Control p IDC_CHK3 m ChkSal3 DDX_Co
29. gt GetProfileString Leyenda Entrada2 420 m EditEntrada3 SetWindowText AfxGetApp gt GetProfileString Leyenda Entrada3 421 m EditEntrada4 SetWindowText AfxGetApp gt GetProfileString Leyenda Entrada4 422 423 m EditIP SetWindowText m Socketl GetLocalIP 424 AfxGetApp gt WriteProfileString Socket IP m Socketl GetLocalIP 425 426 m EditPort SetWindowText AfxGetApp GetProfileString Socket Port 427 428 m EditPath SetWindowText AfxGetApp gt GetProfileString BD Path 429 430 UpdateData FALSE 431 432 1 7 Page 7 of 7 ABRCProyectoBDDlgUtils h 09 01 2002 19 29 1 void CProyectoBDDlg InsertarRegistro CString Nombre CString Estado CString Hora 2 4 3 CString aux 4 5 m pSet gt m Nombre Nombre 6 m_pSet gt m_Estado Estado 7 m pSet m Hora Hora 8 EscribirRegistro 9 10 11 m pSet amp m BaseDatosDilgSet 12 m pSet gt ABRAbrirBD 13 14 m pSet gt ABRInsertarRegistro Nombre Estado Hora 15 16 m pSet gt ABRCerrarBD L7 18 19 20 CString CProyectoBDDlg InsertarHora 21 22 CString Hora 23 COleDateTime date COleDateTime GetCurrentTime 24 25 Hora Format 2d 2d d 2d 2d 2d date GetDay date Get Month 1 date GetYear da 26 27 return Hora 28 29 30 void CProyectoBDDlg EscribirRegistro 31 4 32 m EditNombre SetWindowText m pSet m Nombre 33 m EditEstado SetWindowText m pSet gt m Estado
30. if Entradal 1 Estado Insert 25 else Estado Insert 25 0 if Entrada2 1 Estado Insert 27 1 else Estado Insert 27 0 if Entrada3 1 Estado Insert 29 else Estado Insert 29 0 if Entrada4 1 Estado Insert 31 1 else Estado Insert 31 0 Estado Insert Estado GetLength Estado Insert Estado GetLength m Socketl ABREnviarSck Estado void CProyectoBDDlg ImprimirLeyenda MW Leyenda Page 7 of 8 ABRCProyectoBDDlgUtils h O1 D N PO O1 01 O1 OI OY 01 ds CO Ho PP a Js Js Js Js a BR Ol POU O1 O CO D O1 LO 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 CString aux m EditSalidal m EditSalida2 m EditSalida3 m EditSalida4 m EditSalida5 m_EditSalida6 m EditSalida7 m EditSalidas m EditEntradal SetWindowText m EditEntrada2 SetWindowText m EditEntrada3 SetWindowText m EditEntrada4 SetWindowText m EditIP SetWindowText AfxGetApp gt WriteProfileString m EditPort SetWindowText m_EditPath SetWindowText UpdateData FALSE AfxGetApp gt GetProfileString AfxGetApp gt GetProfileString Page SetWindowText AfxGetApp GetProfileString SetWindowText AfxGetApp GetProfileString SetWindowText AfxGetApp GetProfileString SetWindowText AfxGetApp GetProfileString SetWindowText AfxGetApp GetProfileString SetWindowText AfxGetApp GetProfile
31. occccccccccnoconnonoocoromonnnos 22 Completar di logo principal del Proyecto sss 23 A adir a CProyectoBDDlg la clase para controlar el puerto paralelo 34 A adir a CProyectoBDDlg funciones de servidor esses 35 Preparar la clase CMSWinsockControl para utilizar funciones propias 37 Realizar CTRL F5 para compilar hasta aqu el proyecto e esses 39 A adir a CProyectoBDDlg un dialogo de propiedades eeeeeeeeeeeeenooosseooooonon 40 Realizar CTRL F5 para compilar hasta aqu el proyecto c errei 44 A adir a CProyectoBDDlg un di logo cliente eres 45 Preparar la clase CClienteDlg para utilizar funciones propias 47 Realizar CTRL F5 para compilar hasta aqu el proyecto e esee 54 Ficheros que incluimos en el proyecto esse ee eee 55 PuertoParalelo cpp y PuertoParalelo h clase que controla el puerto paralelo 56 ABRdb h funciones para gestionar la base de datos esses 58 ABRCBaseDatosDlgUtils h funciones tiles para el di logo base de datos 61 ABRCProyectoBDDlg Utils h funciones tiles para el di logo principal 62 ABRWinsock h funciones tiles gestionar el control Winsock 69 ABRCClienteDlgUtils h funciones tiles par
32. 1342177287 Control a IDE STATIC static 1342308352 COntrolesLDC EDITO 607 t 1350635600 Control IDC STATIC static 1342308352 Control8 1DC EDITOZ e0rt 1350633600 Control9 IDC_STATIC static 1342308352 Controell0 IDC EDITO03 6dit 1350633600 Controll1 IDC STATIC static 1342308352 Controll2 IDC EDITO4 edit 1350633600 Controll13 IDC STATIC statue 1342308352 Controll14 IDC EDITO5 edit 13506335600 Controll15 IDC STATIC static 1342308352 COnErOL G 1DC EDITO6 dit 1550635600 Control1 7 IDC_STATIC static 1342308352 Controlle IDC_EDITO edit 1350633600 Controll9 IDC STATIC static 1342308352 Cont rol20 IDC_EDIT0O8 edit 1350633600 Control21 IDC STATIC static 1342308352 Controlz22 1D _ ED TITO9 edtt 1350633600 Contr l23 IDE STATIC stati 1342308352 Control24 IDC EDITO10 edit 1350633600 Control25 IDC STATIC state 1342308352 ControlZ6 1D _EDITOLI1 edit 1350633600 Control2721DG STATIC static 1342308352 Control26 IDC BDITOI2 e6d01t 13550655000 Controls 9 1 DC STATIC Stable 1342308352 ControlS0 IDe ADITOLS Sart 1350631952 Control31 IDC STATIC static 1342308352 Control32 IDC EDITO14 dit 12ax Control42 IDC STATIC button 1342177287 Control43 IDC_CHK1 button 1342242883 Control44 IDC CHK2 button 1342242883 Control45 IDC_CHK3 button 1342242883 Control46 IDC_CHK4 button 1342242883 Control4 IDC CHK5 button 1342242883 Control48 IDC_CHK6 button 1342242883 Control 49 IDC_CHK7 button 1342242883 Contro
33. 263 m CheckSal6 SetCheck 1 264 265 else 266 267 PuertoParalelo Salida6 0 268 m CheckSal6 SetCheck 0 269 270 if Salida7 1 271 272 PuertoParalelo Salida7 1 273 m CheckSal7 SetCheck 1 274 275 else 276 211 PuertoParalelo Salida 7 0 218 m CheckSal7 SetCheck 0 279 280 if Salida8 1 281 282 PuertoParalelo Salida8 1 283 m Checksale Set Check 1 284 285 else 286 287 PuertoParalelo Salida8 0 288 m ChecksSals SecCheck 0 289 290 291 Enviar Nuevo Estado al Socket 292 293 if m Socketl GetState 7 EnviarEstadoAlSck 294 295 296 297 void CProyectoBDDlg LeerEntradasPuerto 298 299 int EntlAux 300 int Ent2Aux 301 int Ent3Aux 302 int Ent4Aux 303 Guardar Entradas anteriores 304 EntlAux Entradal 305 Ent2Aux Entrada2 306 Ent3Aux Entrada3 307 Ent 4Aux Entrada4 308 Actualizar las entradas 309 Entradal PuertoParalelo Entradal 310 Entrada2 PuertoParalelo Entrada2 311 Entrada3 PuertoParalelo Entrada3 312 Entrada4 PuertoParalelo Entrada4 313 Actualizar Entradas en el dialogo 314 if Entradal 1 m CheckEnti SetCheck 1 315 else m CheckEntl SetCheck 0 316 if Entrada2 1 m CheckEnt2 SetCheck 1 317 else m CheckEnt2 SetCheck 0 318 if Entrada3 1 m CheckEnt3 SetCheck 1 319 else m CheckEnt3 SetCheck 0 320 if Entrada4 1 m CheckEnt4 SetCheck 1 Page 5 of 8 ABRCProyectoBD
34. 34 m EditHora SetWindowText m pSet gt m Hora 35 j 36 37 CString CProyectoBDDlg Leer CEdit Edit 38 39 CString aux 40 Edit gt GetWindowText aux 41 return aux 42 43 44 void CProyectoBDDlg InicializarSalidas 45 46 CString Estado 47 48 Entradal PuertoParalelo Entradal 49 Entrada2 PuertoParalelo Entrada2 50 Entrada3 PuertoParalelo Entrada3 od Entrada4 PuertoParalelo Entrada4 52 XI 53 m pSet gt ABRBuscarRegistro Se Cierra Dialogo de Salidas 54 if m pSet gt m Nombre Se Cierra Dialogo de Salidas 55 56 m pSet gt ABRInsertarRegistro Inicio de la Base de Datos InsertarHora mu Estado 0 Y U Y 0 U 0 0 D 58 59 else 60 61 m pSet ABRUltimoRegistro 62 Estado m pSet gt m Estado 63 64 Page 1 of 8 ABRCProyectoBDDlgUtils h 65 66 67 68 69 70 FL T2 13 74 75 76 177 78 19 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 35 26 97 98 99 100 LOL 102 103 104 105 106 LO 108 109 LIO 111 ILZ 113 114 LILA 116 117 118 LLY 120 AL 122 123 124 125 126 127 128 if Estado Mid 0 1 1 else Salidal 0 if Estado Mid 2 1 1 else Salida2 0 if Estado Mid 4 1 1 else Salida3 0 if Estado Mid 6 1 1 else Salida4 0 if Estado Mid 8 1 1 else Salida5 0 1f Estado Mid 10 1 1 else Salida6 0 if Estado Mid 12 1 1 else Salida7 0 1f Estado Mid 14 1 1 else Salida8 0
35. 390 if Salida7 1 Estado Insert 21 1 391 else Estado Insert 21 0 392 if Salida8 1 Estado Insert 23 1 393 else Estado Insert 23 0 394 if Entradal 1 Estado Insert 25 1 395 else Estado Insert 25 0 396 if Entrada2 1 Estado Insert 27 1 397 else Estado Insert 27 0 398 if Entrada3 1 Estado Insert 29 1 399 else Estado Insert 29 0 is 400 if Entrada4 1 Estado Insert 31 1 401 else Estado Insert 31 0 402 403 m Socketl ABREnviarSck Estado 404 405 406 void CClienteDlg ImprimirLeyenda 407 4 408 CString aux 409 m EditSalidal SetWindowText AfxGetApp GetProfileString Leyenda Salidal 410 m EditSalida2 SetWindowText AfxGetApp gt GetProfilestring Leyenda Salida2 411 m EditSalida3 SetWindowText AfxGetApp GetProfileString Leyenda Salida3 412 m EditSalida4 SetWindowText AfxGetApp GetProfileString Leyenda Salida4 413 m EditSalida5 SetWindowText AfxGetApp gt GetProfileString Leyenda Salida5 414 m EditSalida6 SetWindowText AfxGetApp gt GetProfileString Leyenda Salida6 415 m EditSalida7 SetWindowText AfxGetApp gt GetProfilestring Leyenda Salida7 416 m EditSalida8 SetWindowText AfxGetApp gt GetProfileString Leyenda Salida8 417 418 m EditEntradal SetWindowText AfxGetApp gt GetProfileString Leyenda Entradal 419 m EditEntrada2 SetWindowText AfxGetApp
36. 66 67 68 69 70 71 72 73 74 75 76 17 78 T9 80 81 82 83 84 85 86 87 88 89 90 21 92 93 94 35 96 97 98 99 100 101 102 103 if estado outp 0x378 3np 0x378 0x10 j else outp 0x378 inp 0x378 amp 0x10 void CPuertoParalelo Salida6 bool estado if estado outp 0x378 inp 0x378 0x20 else _outp 0x378 _inp 0x378 8 0x20 void CPuertoParalelo Salida7 bool estado if estado _outp 0 378 10np 0x578 0x40 5 else _outp 0x378 _inp 0x378 8 0x40 void CPuertoParalelo Salida8 bool estado L estado _outp 0x378 inp 0x373 0560 else _outp 0x378 _inp 0x378 8 0x80 int CPuertoParalelo Entradal return _inp 0x379 0x08 gt gt 3 int CPuertoParalelo Entrada2 return _inp 0x379 0x10 gt gt 4 int CPuertoParalelo Entrada3 return CC an 0x3 79 40x20 gt 5 int CPuertoParalelo Entrada4 return _inp 0x379 0x40 gt gt 6 Page 2 of 2 09 01 2002 19 31 PuertoParalelo h 09 01 2002 19 31 1 PuertoParalelo h interface for the CPuertoParalelo class 2 yj SAA III AMIA ANAIS NI ADA ADA DIA ALA AAA AAA T TA ANA EEL V AA LF AA 4 5 dif defined AFX PUERTOPARALELO H 4E5D8741_A1E6_11D5_97E1_A19932F01649 INCLUDED 6 define AFX PUERTOPARALELO H 4E5D8741_A1E6_11D5_97E1_A19932F01649 INCLUDED _ 7 8 dif MSC VER gt 1000 9 pragma once 10 endif MSC VER gt 1000 11 12 inciud lt conio h
37. 7 ABRCerrarBD Open 0 sqlcmd NULL UltimoRegistro LeerRegistro void CBaseDatosSet ABRBuscarTodosLosRegistros CString sqlomd LE IsOpen sqlcomd Format SELECT FROM Historico ABRCerrarBD Open 0 sqlcmd NULL ABRUItimoRegistro CString CBaseDatosSet ABRContarRegistros CString sqlema CString aux if IsOpen 1 sqlcmd Format SELECT COUNT Hora FROM Historico ABRCerrarBD Open 0 sqlcmd NULL aux Format s Registros en la Base de Datos m_Nombre sqlemd Format SELECT FROM Historico ABRCerrarBD Open 0 sqlcmd NULL return aux Page 3 of 3 ABRWinsock h 09 01 2002 19 29 CO 1 0 OP WN RPR OV O O UI UT UI UIT UI UIT UI UIT UIT Ln dS 4S dS KB BABA BAB DB BW C C C CO C CO C CO CO NO PO IO IO PO IO NO INO ND N IS EB pB p p ps pon pa n N H O 4o J GOK W N Xo YO OK Y NO E C amp o O00 O3 0 ds W MN HOU CO lt Oy ds YN Ow Oa Oy oe Now 63 64 Se deben incluir las declaraciones de las funciones de este fichero en el fichero MSWinsockControl h void CMSWinsockControl ABRConectarSck FT o TODO Add your control notification handler code here CString m host CStELOO m ports VARIANT vtHost VARIANT vtPort if AfxGetApp gt GetProfileString Socket2 IP AfxGet App gt WriteProfileString if AfxGetApp gt GetProfileString Socket2 Port AfxGetApp g
38. 889 en decimal si trabajamos con el LPTI o bien leer la direcci n 0x279 633 en decimal si trabajamos con el LPT2 La lectura ser devuelta en un byte en donde el bit 6 corresponde al pin 10 el bit 5 corresponde al pin 12 el bit 4 corresponde al pin 13 y el bit 3 corresponde al pin 15 En la siguiente tabla se puede ver lo antedicho en una forma m s gr fica Escritura Salida de Datos Escritura en direcci n 0x378 LPT1 o 0x278 LPT2 DATO bik errs BIT5 ub kak pira BIT 1 BITO DB25 Pin9 Pin8 Pin7 Pin6 PinS ERS Pin 3 Pin2 26 ay Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira i Lectura en direcci n 0x379 LPT1 o 0x279 LPT2 DATO BIT7 BIT6 BITS BIT 4 BIT 3 BIT2 BIT 1 BIT O No Pin Pin Pin Pin No No ote usar 110 12 13 15 usar usar No usar 27 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira e Implementaci n de la clase CPuertoParalelo Para utilizar el puerto paralelo con Visual C hemos implementado una clase llamada CPuertoParalelo que proporciona los m todos adecuados para controlar el puerto paralelo desde nuestra aplicaci n Esta clase esta formada por dos ficheros PuertoParalelo h y PuertoParalelo cpp Los principales m todos que ofrece las clase son Leer Realiza la lectura de las entradas Escribir int dato Realiza la escritura de las salidas Salidan bool estado Realiza el ca
39. ABRSiguienteRegistro if IsOpen amp amp ISEOF amp amp ISBOF MoveNext if IsOpen amp amp ISEOF MoveNext void CBaseDatosSet ABRAnteriorRegistro if IsOpen amp amp ISBOF amp amp ISEOF MovePrev if IsOpen amp amp ISBOF MovePrev Agust Baub Rovira void CBaseDatosSet ABRInsertarRegistro CString Nombre CString Estado CString Hora CString salema UpdateData TRUE if IsOpen sqlcmd Format INSERT INTO Historico Nombre Estado Hora os os s Nombre Estado Hora m_pDatabase gt ExecuteSQL sqlcmd 4 ABRBuscarTodosLosRegistros VALUES void CBaseDatosSet ABRBorrarRegistro CString Nombre CString Estado CString Hora 58 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira iz CString sqlcmd UpdateData TRUE CString n CString e CString h if Nombre n lt gt if Estado e lt gt if Hora h lt gt if IsOpen sqlcmd Format DELETE FROM Historico WHERE Nombre s s AND Estado amp s s AND Hora s s n Nombre e Estado h Hora if n e amp amp e h amp amp h lt gt if AfxMessageBox Seguro que desea Borrar Todos Los Registros MB_YESNO IDYES m pDatabase gt ExecuteSQL sqLcma else m_pDatabase gt Execu
40. Contro127 IDC_STATIC static 1342308352 Contrel26 IDC EDIT012 edit 1350633600 Contro129 IDC_STATIC static 1342308352 Control30IDC EDITOI e E 1350631552 Control31 IDC STATIC static 13423083592 Control32 IDC_EDIT014 edit 1 ax Control45 IDC CHK3 button 1342242883 Control46 IDC_CHK4 button 1342242883 Control4 IDC CHK5 button 1342242883 Control48 1DC_CHAK6 button 1342242883 Cont rol49 IDC_CHK7 button 1342242883 Cont rol50 IDC_CHK8 button 1342242883 Control51 2IDC CHK9 button 1476460611 Page 11 of 16 EIS 0172002 gt 19231 ProvectoBb opt TOS 706 7077 708 TOS 710 Vil TEZ 4419 714 TLS ELE FEY 718 119 420 qo FLA 723 724 TAS 126 127 deno dA 730 Jo 1 32 1233 734 34915 Pers FS 38 139 740 A A JX N N N ds A RA A N A A J D O1 al O1 SI lt lt lt lt lt lt wa lt OT O1 O1 al O1 O1 O O JJ O OP O N H O O 0 J O OB WN Pp O1 Control52 IDC_CHK10 button 1476460611 Control53 IDC_CHK11 button 1476460611 Control54 IDC CHK12 button 1476460611 CLS CClienteDlg Type 0 HeaderFile ClienteDlg h ImplementationFile ClienteDlg cpp BaseClass CDialog Filter D VirtualFilter dWC LastObject IDC WINSOCK1 p l 64 Column2 Estado 1 64 Column3 Hora 1 64 DLG IDD PROPIEDADES DIALOG Type 1 Class CPropiedades1Dlg ControlCount 36 Control1 IDOK button 1342242817 Control2 IDCANCEL button 1342242816 Control3 IDC STA
41. Edi JE dit EE enn Ed vonj mj aj aj v m mj m Fat ra x n asse E ab EE e ES S MD mA B uw 35 a Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Crear variable m_Socketl chsswizard member variables IDC WINSOCKI m Socketl Control HFC Classwizard MN xj Message Maps Member Variables Automation Actives Events Class Into Project Class name Add Class FrovectoBD LPravectaBB Dl bl Add Variable EA APropectobO Dlg hb EA AProvectoBD Dlg cpp LAG Control ID s Type Member Delete arable IDE EDITUZ CE dit m Edits alidaz y eae IDC EDITOS CE dit m E ditS alida3 Update Columns IDE EDITUM CE dit m EqitS alida4 ear IDC EDIT US CE dit m Edit alidab Bind il IOC EDITUE CE dit m Edit alidab IDE EDITOr CE dit m E OIS alida IDE EDITUS CE dit m Edit alida HOC EDITUS CE dit m_EditEntradal IDC STATIC CString m Static HOC WINSOCEA CMSWwinsock Control m Socket Description ProyectoB D A HACER Colocar aqu controles de cuadro de di logo Nombre Ear OS Leyenda Salidas Estado Edt gt ES Hora fc 4 Salidas E E NM E NM E E Entradas pa PE ai a Leyenda Entradas 1 Edit 2 Edit 3 Edit Port E dit 36 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a Preparar la clase CMSWins
42. Function gt EditCode OnButtonUltimo Classwizard gt MessageMap CBaseDatosDlg gt IDC BUTTON ULTIMO BN CLICKED gt Add Function gt EditCode Copiar el c digo de las funciones anteriores en BaseDatosDlg cpp void CBaseDatosDlg OnButtonPrimero TODO Add your control notification handler code here m pSet gt ABRPrimerRegistro BorrarCampos EscribirRegistro void CBaseDatosDlg OnButtonAnterior TODO Add your control notification handler code here m_pSet gt ABRAnteriorRegistro BorrarCampos EscribirRegistro void CBaseDatosDlg OnButtonSiguiente TODO Add your control notification handler code here 19 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira m pSet gt ABRSiguienteRegistro i OnButtonLimpiar EscribirR egistro void CBaseDatosDlg OnButtonUltimo TODO Add your control notification handler code here m_pSet gt ABRUltimoRegistro OnButtonLimpiar EscribirRegistro j void CBaseDatosDlg OnButtonInsertar TODO Add your control notification handler code here CString aux if Leer amp m_EditNombre m pSet gt m_Nombre if Leer amp m_EditEstado m_pSet gt m_Estado m_pSet gt m_Hora InsertarHora EscribirRegistro m_pSet gt ABRInsertarRegistro Leer amp m_EditNomb re Leer amp m_EditEstado Leer amp m_EditHora m Staticl
43. IDC CHKI CButton m ChkSall IDC CHKS CButton m_ChkSal amp IDC_CHkK9 CButton m_ChkEntl IDC CHKI2 CButton m ChkEnt4 IDC EDITOI CEdit m EditSalidal IDC EDITOS CEdit m EditSalidas IDC EDITO9 CEdit m EditEntradal IDC EDITOI2 CEdit m EditEntrada4 IDC EDITO013 CEdit m EditIP IDC EDITOI4 CEdit m EditPort IDC EDITOI6 CEdit m EditRecibido Propiedades Read Only Multiline VerticalScroll Auto HScroll IDC EDITOI7 CEdit m_EditEnviado Propiedades Read Only Multiline VerticalScroll Auto HScroll 45 Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas IDC_BUTTON_CONECTAR CButton IDC_BUTTON_CERRAR CButton IDC STATICI CString IDC WINSOCKI CMSWinsockControl MFC ClassWizard PropectoBD o EIDE BUTTON CERRAR o CButton m Buttonlerar MOC BUTTON CONECTAR CButton m ButtonConectar IDE CHE L Button m_EhkSall IDE CHEIO CEutton m ChkEnt2 IDE CHE 11 CEutton m ChkEnt3 IIDC CHET2 LButtan m ChkEnt4 CEutton m ChkS al CEutton m ChkSal3 CEutton m ChkSald LButten m Lhk5alh LButten m ChkSalb Crear variables en ClienteDlg h int Salidal int Salidas int Entradal int Entrada4 class CClienteDlg public CDialog Construction public Agust Baub Rovira m_ButtonConectar m_ButtonCerrar m Staticl m Socket2 CClenteD lg Update Columns Bing Al CClienteDlg CWnd pParent NULL standard constructor int Salida int Salida2 int Salida3 int Salida4 int
44. LILA 116 117 118 LLY 120 AL 122 123 124 125 126 127 128 AFX_ DATA MAP BEGIN MESSAGE MAP CClienteDlg CDialog AFX MSG MAP CClienteDlg ON BN CLICKRED IDC BUTTON CONECTAR OnButtonConectar ON EN CHANGE IDC EDITO13 OnChangeEdit013 ON EN CHANGE IDC EDITO14 OnChangeEdit014 ON BN CLICKED IDC BUTTON CERRAR OnButtonCerrar ON BN CLICKED IDC CHK1 OnChkl ON BN CLICKED IDC CHK2 OnChk2 ON BN CLICKED IDC CHK3 OnChk3 ON BN CLICKED IDC CHK4 OnChk4 ON BN CLICKED IDC CHK5 OnChk5 ON BN CLICKED IDC CHK6 OnChk6 ON BN CLICKED IDC CHKT OnChk7 ON BN CLICKED IDC CHK8 OnChk8 AFX_MSG_MAP END MESSAGE MAP TAL T TV TA FLA AA AA T LE AAA O ARANA LAA XA AT PLA AAA AF LA E CClienteDlg message handlers BOOL CClienteDlg OnInitDialog CDialog 0nInitbialogl 7 TODO Add extra initialization here m_Static1 m_Socket2 ABRConvertirEstado m Socket2 GetState UpdateData FALSE if AfxGetApp gt GetProfileString Socket2 IP AfxGetApp WriteProfileString S if AfxGetApp gt GetProfileString Socket2 Port AfxGetApp WriteProfileString m EditIP SetWindowText AfxGetApp gt GetProfilestring Socket2 IP m EditPort SetWindowText AfxGetApp GetProfileString Socket2 Port m ButtonCerrar EnableWindow FALSE m ButtonConectar EnableWindow TRUE Salidal 0 Salida2 0 Salida3 0 Salida4 0 Salida5 0 Sa
45. MENUITEM Salida MENUITEM Salida6 MENUITEM Salida7 MENUITEM Salidas END END TOUT PETAL LALA TTT AA TATA PA LAVA TUT AA A AAA NANA AAA TIAS HIE NI AP Dialog Info i IDD PROYECTOBD DIALOG DLGINIT BEGIN IDC WINSOCK1 0x376 120 O 0x0024 0x0000 0x0032 0x0063 0x0034 0x0039 Ox0030 0x002d 0x0063 0x0032 0x0064 0x0064 0x0063 0x0066 0x002d 0x0039 0x0061 0x0064 0x0030 0x0039 0x0030 0x0063 0x0057 0x00965 0x0038 0x0064 0x4321 0x1234 0x0008 0x0000 Ox0000 0xd892 Ox248d 0x0000 0x0006 0x0000 Ox0000 0x0000 0x0000 0x0000 0x5ade 0x0054 0 ID_ACCIN_BASEDEDATOS ID ACCIN PROPIEDADES ID ACCIN CLIENTE ID SALIDAS SALIDAI ID SALIDAS SALIDAZ ID SALIDAS SALIDA3 ID SALIDAS SALIDA4 ID SALIDAS SALIDAS ID SALIDAS SALIDAG ID SALIDAS SALIDA ID SALIDAS SALIDAS 070066 Ox003e 0x0030 0x002d 0x0031 O0x0031 0x0036 Ox002d Ux0030 0x0037 O0x0062 0x0037 0x0265 Ox0000 0x0265 0x0000 0x0000 0x0000 Page 7 of 8 09 01 2002 19 31 ProyectoBD re 09 01 2002 19 31 449 END 450 451 IDD_CLIENTEDLG DIALOG DLGINIT 452 BEGIN 453 IDC_WINSOCK1 0x376 116 O 454 0x0024 0x0000 0x0032 0x0063 0x0034 0x0039 0x0066 0x0038 0x0030 455 0x0030 0x002d 0x0063 0x0032 0x0064 0x0064 0x002d 0x0031 0x003l 456 0x0063 0x0066 0x002d 0x0039 0x0061 0x0064 0x0036 0x002d 0x0030 457 020050 0x0038 0x0050 0x0063 0x0037 020065 0x0037 0 0062 0x0037 458 Ox0038 0x0064 O
46. O O O NO O1 4 UV N F O O O 1 O AP WNF O O O SS O AFP UV N H O O A A A A A A A A PO O O TOS OF WN rS On Q1 Oo UI NO O1 OY 01 Ww CO PuertoParalelo cpp implementation of the CPuertoParalelo class EXAMINE TAI NAAA T AAA AT VELA AAA LT PADAL ALL EL P AAA GE include satdafai n tinclude PuertoParalelo h ifdef _DEBUG undef THIS FILE static char THIS FILE FILE define new DEBUG NEW endif CHANTA AAA IA RIAS AS V TAA E Ed Construction Destruetion THAT ATT H CL HX T XA LLV T A L VL T VA Y LLA AA NS IIA ATTE AN CPuertoParalelo CPuertoParalelo CPuertoParalelo CPuertoParalelo int CPuertoParalelo Leer 1 return _inp 0x379 void CPuertoParalelo Escribir int dato _outp 0x378 dato void CPuertoParalelo Salidal bool estado if estado outp 0x3 8 1np 0x378 0x01 else _outp 0x378 _inp 0x378 8 0x01 void CPuertoParalelo Salida2 bool estado if estado outp 0x378 inp 0x378 0x02 else _outp 0x378 _inp 0x378 8 0x02 void CPuertoParalelo Salida3 bool estado if estado outp 0x378 inp 0x378 0x04 else _outp 0x378 _inp 0x378 8 0x04 void CPuertoParalelo Salida4 bool estado if estado _outp 0x378 10p 0x378 0x03 else _outp 0x378 _inp 0x378 amp 0x08 void CPuertoParalelo Salida5 bool estado Page 1 of 2 PuertoParalelo cpp 65
47. ProyectoBDDlg cpp implementation file include stdafx h include ProyectoBD h include ProyectoBDDlg h include BaseDatosDlg h Insertar funci n OnAccinBasedeDatos Classwizard Ctrl W gt MessageMap ID ACCIN BASEDEDATOS gt COMMAND gt Add Function gt Ok gt EditCode MFC ClassWizard ET n E ajx Message Maps Member Variables Automation Actives Events Class Into Project Class name Add Class PropectoB D CProyectoBO Dlg m Add Function E APropectoBD Dlg h EA AProvectoBDDlg cpp Object IDs Messages Delete Function LPropectoB O Elo ID ACCIN BASEDEDATOS UPDATE COMMAND LI Edit Code O ACCIN_CLIENTE ES ci IDCACCIN PROPIEDAD Add Member Function E xl ID SALIDAS SALIDA HID SALIDAS SALIDA2 Member function name ID SALIDAS SALIDAJ aM S ccinBasededatos Member functions Cancel V DoDataExchange Message COMMAND w OnlnitDialog Object ID ID_ACCIN_BASEDEDATOS wW OnPaint WM Ww OnluenDraglcon ON We BLUERTDBRABICUN w OnSusCommand ON We SYSLOMMAND xl Description Handle a command from menu accel cmd button void CProyectoBDDlg OnAccinBasededatos TODO Add your command handler code here m pBaseDatosDlg gt ShowWindow SW_SHOW m pBaseDatosDlg SetFocus Nota Si se quisiera utilizar el caso modal se realizar a de la siguiente manera y Control remoto mediante comunicaci n TCP IP de Radioayuda
48. m else m CheckEnt3 SetCheck 0 erCheck 0 if Entrada4 1 m CheckEnt4 SetCheck else m CheckEnt4 SetCheck 0 Registro en la base de datos de los if EntlAux Entradal InsertarRegistro Leer amp m EditEntradal MirarEstado 9 InsertarHora if Ent2Aux Entrada2 InsertarRegistro Leer amp m EditEntrada2 MirarEstado 10 InsertarHora if Ent3Aux Entrada3 InsertarRegistro Leer amp m EditEntrada3 MirarEstado 11 InsertarHora if Ent4Aux Entrada4 InsertarRegistro Leer amp m EditEntrada4 MirarEstado 12 InsertarHora CheckEnt2 SetCheck CheckEnb3 SetCheck cambios Enviar Estado al socket si hay cambios 1f EntlAux Entradal Ent2Aux Entrada2 Ent3Aux Entrada3 Ent 4Aux Entra if m Socketl GetState void CProyectoBDDlg EnviarEstadoAlSck CString Estado Estado Estado if Salidal 1 Estado Insert else Estado Insert 9 0 if Salida2 1 Estado Insert else Estado Insert 11 0 if Salida3 1 Estado Insert else Estado Insert 13 0 if Salida4 1 Estado Insert else Estados Insert 19 0 if Salida5 1 Estado Insert else Estado Insert 17 0 ji if Salida6 1 Estado Insert else Estado Insert 19 0 if Salida7 1 Estado Insert else Estado Insert 21 0 if Salida8 1 Estado Insert else Estado Insert 23 0 if Entradal 1 Estado Insert 25 1 else Estado Insert 25 0
49. m pDatabase gt ExecuteSOL sqlcmd else m_pDatabase gt ExecutesQL sqlcmd Fi LimpiarCampos a ABRBuscarTodosLosRegistros void CBaseDatosSet ABRActualizarRegistro CString Nombre CString Estado CString Hora Cotrrng sq lema UpdateData TRUE if IsOpen 1 sqlcmd Format UPDATE Historico SET Nombre Ss Estado s Hora s WHERE Nombre 5s m_pDatabase gt ExecuteSQL sqlcmd IS ABRBuscarTodosLosRegistros void CBaseDatosSet ABRBuscarRegistro CString Nombre CString Estado CString Hora CString sq lema aux UpdateData TRUE CString n CString e CString h Page 2 of 3 ABRdb h 129 130 151 132 133 134 135 136 1357 138 139 140 141 142 143 144 145 146 147 148 149 150 131 132 l 154 153 156 157 158 159 160 161 162 163 164 165 166 LOJ 168 169 170 LJ ne 173 174 1723 176 177 Jug 179 180 181 182 183 184 Les 186 187 188 189 L IT IT LE y F f Er FI di El f 09 01 2002 19 29 Nombre n lt gt Estado n aste Hora n Eseye IsOpen sqlcmd Format SELECT COUNT Hora FROM Historico WHERE Nombre s s AND Estado s ABRCerrarBD Open 0 sqlcmd NULL aux Format s Registros encontrados m pSet gt m Nombre m Staticl aux UpdateData FALSE sglcmd Format SELECT FROM Historico WHERE Nombre s s AND Estado s s AND Hor 7 LimpiarCampos
50. n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira BD AfxGetApp gt GetProfileString BD Path PropiedadeslDlg DoModal While PropiedadesiDlg IsWindowVisible ImprimirLeyenda if atoi Leer amp m EditPort int m Socketl GetLocalPort Socketl ABRCerrarSck Socketl SetLocalPort atoi Leer amp m EditPort Socketl ABREscucharSck Staticl m Socketl ABRConvertirEstado m Socketl GetState pdateData FALSE 3 333 G if BD AfxGetApp gt GetProfileString BD Path exit 1 Realizar CTRL F5 para compilar hasta aqu el proyecto 44 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a A adir a CProyectoBDDlg un di logo cliente Crear dialogo cliente DD_CLIENTEDLG_DIALOG Insert gt New Class gt Form class gt CClienteDlg Borrar botones Ok y Cancel Insertar los mismos controles que en el dialogo servidor IDD_ProyectoBD_DIALOG tal y como se muestra en la siguiente figura A HACER Colocar aqu controles de cuadro de di logo Leyenda S alidas Leyenda Entradas Socket Recibido Edit Enviado Edt 4 Edi Edt lo di Edt la Edi Edt la ER ERE E dit Conectar Cerrar E salidas pe Conexi n Entradas Edit ES Edo gt 3 15 15 E Edit E maaa an a md nna a Crear variables Class Wizard gt Member variables
51. void CProvectoBDDlg InicializarSalidas CString Estado Entradai PuertoParalelo Entradal Entrada2 PuertoParalelo Entrada2 Entrada3 PuertoParalelo Entrada3 Entrada4 PuertoParalelo Entrada4 ui m pSet gt ABRBuscarRegistro Se Cierra Dialogo de Salidas if m pSet gt m Nombre Se Cierra Dialogo de Salidas m pSet gt ABRInsertarRegistro Inicio de la Base de Datos InsertarHora Estado 0 0 0 O 0 O O 0 0 O O O else m pSet gt ABRUltimoRegistro Estado m pSet gt m Estado if Estado Mid 0 1 1 Salidal 1 else Salidal 0 if Estado Mid 2 1 1 Salida2 1 else Salida2 0 62 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira E i i if Estado Mid 4 1 1 Salida3 1 else Salida3 0 if Estado Mid 6 1 1 Salida4 1 else Salida4 0 if Estado Mid 8 1 1 Salida5 1 else Salida5 0 if Estado Mid 10 1 1 Salida6 1 else Salida6 0 if Estado Mid 12 1 1 Salida 1 else Salida7 20 if Estado Mid 14 1 1 Salida8 1 else Salida8 20 if Estado Mid 16 1 1 Entradal 1 else Entradal 0 if Estado Mid 18 1 1 else Entrada2 0 if Estado Mid else Entrada3 0 if Estado Mid else Entrada4 0 Entrada2 1 20 1 1 Entrada3 1 22 1 1 Entrada4 1 m_EditNombre SetWindowText m EditEstado SetWindowText m EditHora SetWindowText Se abre Dialogo de Salidas Es
52. 1 Edit 2 Edit 3 Edit 4 Edit Hora E dit Salidas MSWinsocklontrol E NM NM E M M NM Entradas EAG G ai Base de Datos ip Edi Path s Fort Edit Edi Conexi n Clear variable m Socketl classwizard member variables IDC WINSOCKI m Socketl Control 16 i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a i LI MFC Classwizard m EU E m aj x Message Map Member Variables Automation Actives Events Class Info Project Class name Add Class ProyectoB O w LProvectaBDDlg w Add Variable LA APropectoBDDlg h EA APropectoB0 Bla cop Control ID s Type Member Delete Variable IDC EDITOS CE dit m EditSalidaz A IDC EDITOS CE dit m EditS alida3 Apae Columns IDC EDIT OJ CE dit m EditSalidad TG IDC EDITUS CE dit m EdiSalidab Ema A IDC EDIT UG CE dit m EdiSalidab HOC EDITO CE dit m EdtSaldar OL EDITUS CE dit m EdtSaldas IDC EDITUS CE dit m EdiEntradal UE SUE AS Bo Li UU m Socket Description la variable creada m_Socketl es una instancia de la clase CMSWinsockControl y por la tanto hereda todas las propiedades m todos y eventos de dicha clase Getdata Listen Para facilitar la programaci n hemos creado unas funciones propias incluidas en el fichero ABRWinsock h que a adimos a la clase CMSWinsockCon
53. 106 LO 108 109 LIO 111 ILZ 1 13 114 LILA 116 117 118 LLY 120 AL 122 123 124 125 126 127 128 CProyectoBDDlg CProyectoBDDlg CWnd pParent NULL void CProyectoBDDlg DoDataExchange CDataExchange pDX BEGIN_MESSAGE_MAP CProyectoBDDlg CDialog CProyectoBDDlg IDD pParent AFX_DATA_INIT CProyectoBDD1g m Staticl T J 7 ARR DATA INIT Note that LoadIcon does not require a subsequent DestroyIcon in Win32 AfxGetApp gt LoadIcon IDR MAINFRAME m hicon m pBaseDatosDlg CDialog DoDataExchange pDX new CBaseDatosDlg AFX DATA MAP CProyectoBDDlg DDX ControlipDX DDX Control DDX Contro DDX Contro DDX Control DDX Control DDX Contro DDX Control DDK Control DDX Contro DDX Control DDX Control DDX Control DDX Control DDX Control DDX Control DDX Contro DDX Control DDX Control DDX Control DDX Control DDX Control DDX Control DDX Control DDX Control DDX Control DDX Control DDX Control DDX Control pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX pDX DDX Control pDX DDX Text pDX DDX Control pDX AAA AA AA A M AAS A ZAS AAS A A A AA A AAS AAS AAS AAS AAS A ZS A A A o Am A IDC STATICH AFX_DATA MAP IDC EDITI16 IDC EDITOLA IDC EDITO13 IDC_EDITO12 IDC BDTTOTI IDC EDITOLO IDC EDITOS
54. 19 30 65 66 67 68 69 70 FL T2 73 74 75 76 177 78 19 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 35 26 ZR 98 99 100 LOL 102 103 104 105 106 107 108 L09 LLO 111 LIZ 113 114 LILA 116 117 118 LLY 120 AL 122 123 124 125 126 127 128 long CMSWinsockControl GetRemotePort long result InvokeHelper 0x1 DISPATCH_PROPERTYGET VI_14 void amp result NULL return result void CMSWinsockControl SetRemotePort long nNewValue Static BYTE parms VIS 14 InvokeHelper 0x1 DISPATCH PROPERTYPUT VT EMPTY NULL parms nNewValue long CMSWinsockControl GetLocalPort lone result InvokeHelper 0x2 DISPATCH PROPERTYGET VT I4 void amp result NULL return result void CMSWinsockControl SetLocalPort long nNewValue static BYTE parms VIS_14 InvokeHelper 0x2 DISPATCH_PROPERTYPUT VI_EMPTY NULL parms nNewValue short CMSWinsockControl GetState short result InvokeHelper 0x8 DISPATCH PROPERTYGET VT I2 void amp result NULL return result long CMSWinsockControl GetBytesReceived long result InvokeHelper 0x9 DISPATCH PROPERTYGET VT I4 void amp result NULL return result void CMSWinsockControl Connect const VARIANT amp RemoteHost const VARIANT amp RemotePort static BYTE parms VTS_VARIANT VIS_VARIANT InvokeHelper 0x40 DISPATCH_METHOD VT_EMPTY NULL parms amp RemoteHost amp RemotePort
55. 19 31 ProyectoBDD1g cpp 09 01 2002 19 31 129 ON_WM_DESTROY 130 ON BN CLICKED IDC CHECK OnCheckl 131 ON_BN_CLICKED 1DC_CHECK2 OnCheck2 132 ON_BN_CLICKED IDC_CHECK3 OnCheck3 133 ON_BN_CLICKED IDC_CHECK4 OnCheck4 134 ON_BN_CLICKED IDC_CHECK5 OnCheck 5 135 ON BN CLICKED IDC CHECK6 OnChecko 136 ON EN CLICKED IDC CHECK OnCheck 137 ON BN CLICKED IDC CHECK8 OnCheck8 138 ON WM TIMER 139 ON COMMAND ID ACCIN PROPIEDADES OnAccinPropiedades 140 ON COMMAND ID ACCIN CLIENTE OnAccinCliente 141 L YAFX MSG MAP 142 END MESSAGE MAP 143 1485 AAS ISIT AA AAA IXJTYPQITITIQIZXTTIITPTJITYTV AAA ATL LAA ATA AV LLA E 145 CProyectoBDDlg message handlers 146 147 BOOL CProyectoBDD1g OnInitDialog 148 149 CDialog OninitDialog 150 154 Add About menu item to system menu 152 153 IDM_ABOUTBOX must be in the system command range 154 ASSERT IDM_ABOUTBOX OXFFFO IDM ABOUTBOX 155 ASSERT IDM_ABOUTBOX lt 0xF 000 156 157 CMenu pSysMenu GetSystemMenu FALSE 158 if pSysMenu NULL 159 160 CString strAboutMenu 161 strAboutMenu LoadString IDS_ABOUTBOX 162 if strAboutMenu IsEmpty 163 164 pSysMenu gt AppendMenu MF_SEPARATOR 165 pSysMenu gt AppendMenu MF STRING IDM ABOUTBOX strAboutMenu 166 167 168 169 Set the icon for this dialog The framework does this automatically 170 when the application s main
56. 190 EST 192 void CBaseDatosDlg OnButtonInsertar PH 7i TODO Add your control notification handler code here CString aux if Leer amp m EditNombre m pSet gt m Nombre if Leer amp m EditEstado m pSet gt m Estado 2 m pSet m Hora InsertarHora EscribirRegistro m pSet gt ABRInsertarRegistro Leer amp m EditNombre Leer amp m EditEstado Leer amp m EditHora m Staticl m pSet gt ABRContarRegistros UpdateData FALSE OnButtonBuscartodos void CBaseDatosDlg OnButtonBorrar TODO Add your control notification handler code here m pSet gt ABRBorrarRegistro Leer amp m_EditNombre Leer amp m_EditEstado Leer amp m_EditHora OnButtonBuscartodos if m pSet gt GetRecordCount 0 m pSet gt ABRInsertarRegistro Inicio de la Base de Datos InsertarHora OnButtonBuscartodos SetFocus void CBaseDatosDlg OnButtonActualizar TODO Add your control notification handler code here lf Leer amp m_EditNombre amp amp Leer amp m_EditEstado amp amp Leer amp m_EditHora m pSet gt ABRActualizarRegistro Leer amp m_EditNombre Leer amp m_EditEstado Leer amp m_EditHora void CBaseDatosDlg OnButtonBuscartodos TODO Add your control notification handler code here m Staticl m pSet gt ABRContarRegistros UpdateData FALSE m pSet gt m Nombre
57. 190 else out 1 191 break 192 case 11 Page 3 of 8 ABRCProyectoBDDlgUtils h 09 01 2002 19 29 193 if Entrada3 out 0 194 else out 1 195 break 196 case 12 197 if Entrada4 out 0 198 else out 1 199 break 200 default 201 return NULL 202 203 204 return out 205 206 207 208 void CProyectoBDDlg ActualizarPuerto 209 210 if Salidal 1 211 212 PuertoParalelo Salidal 1 213 m CheckSall SetCheck 1 214 215 else 216 217 PuertoParalelo Salidal 0 ZAS m CheckSall SetCheck 0 219 220 1f Salida2 1 221 222 PuertoParalelo Salida2 1 223 m CheckSal2 SetCheck 1 224 225 else 226 2271 PuertoParalelo Salida2 0 228 m CheckSal2 SetCheck 0 229 230 if Salida3 1 231 232 PuertoParalelo Salida3 1 233 m CheckSal3 SetCheck l 234 235 else 236 237 PuertoParalelo Salida3 0 238 m CheckSals SecCheck 0 239 240 if Salida4 1 241 242 PuertoParalelo Salida4 1 243 m CheckSal4 SetCheck 1 244 245 else 246 247 PuertoParalelo Salida4 0 248 m CheckSal4 SetCheck 0 249 250 if Salida5 1 251 252 PuertoParalelo Salida5 1 253 m CheckSal5 SetCheck 1 254 255 else 256 Page 4 of 8 ABRCProyectoBDDlgUtils h 09 01 2002 19 29 257 PuertoParalelo Salida5 0 258 m CheckSal5 SetCheck 0 259 260 if Salida6 1 261 262 PuertoParalelo Salida6 1
58. 417 ActualizarPuerto 278 279 280 void CProyectoBDD1g OnSalidasSalida2 281 4 282 TODO Add your command handler code here 283 InsertarRegistro Leer amp m EditSalida2 MirarEstado 2 InsertarHora 284 ActualizarPuerto 285 286 287 void CProyectoBDD1lg OnSalidasSalida3 288 4 289 TODO Add your command handler code here 290 InsertarRegistro Leer amp m EditSalida3 Mirarkstado 3 InsertarHora 291 ActualizarPuerto 292 a 293 294 void CProyectoBDDlg OnSalidasSalida4f 295 4 296 TODO Add your command handler code here 297 InsertarRegistro Leer amp m EditSalida4 MirarEstado 4 InsertarHora 298 ActualizarPuerto 299 1 300 301 void CProyectoBDDlg OnSalidasSalidas 302 4 303 TODO Add your command handler code here 304 InsertarRegistro Leer amp m EditSalida5 Mirarkstado 5 InsertarHora 305 ActualizarPuerto 306 307 308 void CProyectoBDDlg OnSalidasSalida6 309 4 310 TODO Add your command handler code here 311 InsertarRegistro Leer amp m_EditSalida6 MirarEstado 6 InsertarHora 312 ActualizarPuerto 313 314 315 void CProyectoBDDlg OnSalidasSalida7 316 4 317 TODO Add your command handler code here 318 InsertarRegistro Leer amp m_EditSalida7 MirarEstado 7 InsertarHora 319 ActualizarPuerto 320 Page 5 of 8 ProyectoBDD1g cpp 09 01 2002 19 31 321 322 void CProyectoBDDlg OnSalidasSal
59. 67 68 69 70 FL T2 13 74 Ja 76 77 78 19 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 35 26 2 98 99 100 LOL 102 103 104 105 106 LO 108 109 LIO 111 ILZ 113 114 LILA 116 117 118 LLY 120 AL 122 123 124 125 126 127 128 Entrada3 PuertoParalelo Entrada3 Entrada4 PuertoParalelo Entrada4 Estado m_Socket2 Dato if Estado Mid 8 1 1 else Salidal 0 1f Estado Mid 10 else Salida2 0 1f Estado Mid 12 else Salida3 0 1f Estado Mid 14 else Salida4 0 1f Estado Mid 16 else Salida5 0 1f Estado Mid 18 else Salida6 0 1f Estado Mid 20 else Salida7 0 if Estado Mid 22 else Salida8 0 1f Estado Mid 24 else Entradal 0 1f Estado Mid 26 else Entrada2 0 if Estado Mid 28 else Entrada3 0 if Estado Mid 30 else Entrada4 0 ActualizarPuerto 1 1 l1jecMpe Lo Fa 1 1 1 h 1 4 ken 1 4 1 jesse Salidal 1 Salida2 1 Salida3 1 Salida4 1 Salida5 1 Salida6 1 Salida7 1 Salida8 1 Entradal 1 Entrada2 1 Entrada3 1 Entrada4 1 void CClienteDlg InicializarLeyenda CString Leyenda CString Estado CString aux Leyenda m_Socket2 Dato Estado Estado Estado Insert Estado GetLength Leyenda Mid Escribir amp m EditRecibido Estado 1f Estado Mid 8 1 1 else Salidal 0 1f Estado Mid 10 else Salida2 0 if Estado Mid 12 else Sali
60. Aeron uticas Agust Baub Rovira TODO Add your control notification handler code here m_Socket2 ABRCerrarSck Staticl m Socket2 ABRConvertirEstado m Socket2 GetState pdateData FALSE ButtonCerrar EnableWindow FALSE ButtonConectar EnableWindow TRUE m U m m A adir funci n OnDataArrivalWinsock1 Classwizard gt MessageMap CClienteDlg gt IDC WINSOCKI DataArrival Add Function gt gt EditCode m_Socket2 ABROnDataArrivalWinsock1 bytestotal CString aux aux m_Socket2 Dato aux aux Mid 0 7 if aux Estado InicializarSalidas if aux Leyenda Inicializar Leyenda else Escribir amp m_EditRecibido m_Socket2 Dato void CClienteDlg OnDataArrivalWinsockl long bytesTotal TODO Add your control notification handler code here m Socket2 ABROnDataArrivalWinsock1 bytesTotal CString aux aux m_Socket2 Dato aux aux Mid 0 7 if aux Estado InicializarSalidas if aux Leyenda InicializarLeyenda else Escribir amp m EditRecibido m Socket2 Dato A adir funciones OnChkl OnChkS OnChkl Classwizard gt MessageMap CClienteDlg gt IDC_CHK1 gt BN_CLICKED Add Function gt gt EditCode OnChk2 Classwizard MessageMap CClienteDlg gt IDC CHK2 gt BN CLICKED Add Function gt gt EditCode OnChk3 Classwizard gt MessageMap CClienteDlg gt IDC CHK3 gt BN_CLICKED Add Function
61. CString CMSWinsockControl ABRConvertirEstado int Estado Fin de las declaraciones long GetProtocol void SetProtocol long nNewValue Page 1 of 2 mswinsockcontrol h 09 01 2002 19 30 65 66 67 68 69 70 ral rx 73 74 75 76 71 78 79 80 81 82 83 84 85 86 87 88 99 90 91 CString GetRemoteHostIP CString GetLocalHostName 1 CString GetLocalIP long GetSocketHandle long GotbBemoLePOort Z void SetRemotePort long nNewValue Long CerlocalPorL void SetLocalPort long nNewValue Short CetSstate long GetBytesReceived void Connect const VARIANT amp RemoteHost const VARIANT amp RemotePort void Listen void Accept long requestID void SendData const VARIANT amp data void GetData VARIANT data const VARIANT amp type const VARIANT amp maxLen void PeekData VARIANT data const VARIANT amp type const VARIANT amp maxLen void Close void Bind const VARIANT amp LocalPort const VARIANT amp LocalIP CString GetRemoteHost void SetRemoteHost LPCTSTR lpszNewValue ji AFX_INSERT_LOCATION Microsoft Visual C will insert additional declarations immediately before the previous line endif defined AFX_MSWINSOCKCONTROL_H__5F886C4F_A2C9_11D5_97E1_CFB3C086B260__INCLUDED_ Page 2 of 2 PropiedadeslDlg cpp Oo l 0 OB WN R LA KA A A LA LA A e L H O O O 1 A UI S WV MN HO LO 22 23 24 23 26 27 28 29 30 31 32 33 34 33 36 3 38
62. DIALOG Type 1 Class CPropiedadeslDlg ControlCount 36 Control1 IDOK button 1342242817 Control2 IDCANCEL button 1342242816 Control3 IDC STATIC static 1342308352 Control4 IDC EDIT1 edit 1350631552 ControL5 IDC STATIC static 1342308352 Control6 IDC EDIT2 edit 1350631552 Control IDC STATIC static 1342308352 Controlos rDC EDITS edit 1350631552 Control9 TDC STATIC static 1342308352 ControllO0sIDC EDITA edit 1350631552 Controll1 IDC STATIC static 1342308352 Controll2 IDC EDIT5 edit 1350631552 Controll13 IDC SIATIC static 1342308352 Controll4 SIDC EDIT6 edit 1350631552 Control15 IDC STATIC static 1342308352 Controll6 IDC EDIT7 edit 1350631552 Controll7slDC STATIC static 1342308352 Controll8 IDC EDIT8 edit 1350631552 Controll9 IDC STATIC static 1342308352 Control20 IDC EDIT9 edit 1350631552 Control21 IDC STATIC static 1342308352 Control22 IDC EDIT10 edit 1350631552 Control23 IDC STATIC static 1342308352 Control24 IDC EDIT11 edit 1350631552 Control25 IDC STATIC static 1342308352 Page 10 of 16 09 0171 Z2002 19231 ProveoctoBb opt OY OY OY OV OY OY OY OY ON A A A A A A A A A to O 1 OO RAUN Control26 IDC_EDIT12 edit 1350631552 Control27 IDC_STATIC static 1342308352 Control28 IDC_EDIT13 edit 1350631552 Control29 IDC_STATIC static 1342308352 Control30 IDC_EDIT14 edit 1350631552 Control31 IDC_STATIC button 1342177287 Control32 IDC_STATIC button 1342177287 Control33 IDC_STATIC button 1
63. IDC EDIT8 16 118 87 12 ES AUTOHSCROLL 1 IDC_STATIC 107 23 10 10 IDC_EDIT9 116 21 87 12 ES_AUTOHSCROLL 2 IDC_STATIC 107 37 10 10 IDC_EDIT10 116 34 87 12 ES_AUTOHSCROLL 3 IDC_STATIC 107 50 10 10 IDC_EDIT11 116 49 87 12 ES_AUTOHSCROLL 4 IDO SIATIC 107 095 010 IDC_EDIT12 116 63 87 12 ES_AUTOHSCROLL IP IDC STATIC L0G 97 LO L0 IDC_EDIT13 130 95 73 12 ES_AUTOHSCROLL Port IDC_STATIC 108 111 18 10 IDC EDIT14 130 109 73 12 ES AUTOHSCROLL Leyenda Salidas IDC_STATIC 5 5 100 130 Leyenda Entradas IDC STATIC 105 5 100 75 Conexi n IDC STATIC 106 807 1007055 IDC_EDIT15 28 146 175 12 ES_AUTOHSCROLL Path IDC STATIC 9 1407 16 10 Base de Datos IDC STATIC 7 136 197 28 IDD_CLIENTEDLG DIALOG DIALOG DISCARDABLE 0 160 389 154 STYLE DS MODALFRAME CAPTION Dialog FONT 8 MS Sans Serif BEGIN LIEXT GROUPBOX CONTROL GROUPBOX LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT WS_POPUP WS_CAPTION WS_SYSMENU A HACER Colocar aqu controles de cuadro de di logo IDC_STATIC1 7 8 375 8 Salidas IDO STATIC 15 97 150 25 IDC WINSOCKI1 248DD896 BB45 11CF 9ABC 0080C7E7B78D WS TABSTOP 143 77 19 17 Entradas TDC STATIC 15 124 150 23 LE TDC STATIC 179 35 10 10 IDC_EDIT01 188 34 87 12 ES_AUTOHSCROLL ES READONLY MERO ITDC STATIC 1 9 2505200550 IDC_EDIT02 188 47 87 12 ES_AUTOHSCROLL ES READONLY Sa IDO STATIC
64. IIC o inal mbrica de microcontroladores esclavos con un microcontrolador master conectado al PC e Una opci n muy interesante ser a la de poder controlar el ordenador servidor telef nicamente para poder arrancarlo conectarse a la red o arrancar la aplicaci n cliente servidor que se desee e Por ltimo ya que la lista de mejoras podr a continuar indefinidamente a adir a la posibilidad de crear aplicaciones cliente servidor mediante microcontroladores y as no utilizar un PC que es mucho m s caro Las aplicaciones servidor se implementan en un chip micro servidor que dispone de una pila TCP IP y de un modem o una adaptador de red para conectarse a la red El circuito integrado estar conectado a la red y podr utilizar socket s emails p ginas web etc y a partir de aqu conectarse con PC o con otros microservidores que realizan las funciones necesarias en cada caso Con esto podr amos a adir a cualquier electrodom stico a cualquier electrov lvula a cualquier sensor funcionalidad cliente servidor y ser controlado desde cualquier punto de la red en los que se conecten 41 gro cs cao Escola FECNICA NEM SUPERIOR A ENGINYERIA UNIVERSITAT ROVIRA 1 VIRGILE 2 MEMORIA DISENO e Ingeniero Superior Agust n Baub Rovira en Autom tica y Electr nica Industrial e Profesor Ponente Ernest Gil Dolcet Febrero 2002 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust
65. Ln iS V IN IS O LO ProyectoBD h main header file for the PROYECTOBD application Zi fif defined AFX PROYECTOBD H 9210F9F4 A9F7 11D5 97E1 FCCD2DB3034F INCLUDED define AFX PROYECTOBD H 9210F9F4 A9F7 11D5 97E1 FCCD2DB3034F INCLUDED if MSC VER gt 1000 pragma once endif MSC VER gt 1000 ifndef AFXWIN H error include stdafx h before including this file for PCH endif include resource h main symbols ET Z TLA T EE L a LE DA VA VALA AIDA CProyectoBDApp See ProyectoBD cpp for the implementation of this class dd class CProyectoBDApp public CWinApp public CProyectoBDApp Overrides ClassWizard generated virtual function overrides AFX VIRTUAL CProyectoBDApp public virtual BOOL InitInstance AFX_VIRTUAL Implementation AFX MSG CProyectoBDApp NOTE the ClassWizard will add and remove member functions here DO NOT EDIT what you see in these blocks of generated code AFX_MSG DECLARE MESSAGE MAP by HV F FULH TI AA TT LA PEN ANTE ATIS O RR III LL 44 1 4 4 AFX_INSERT_LOCATION Microsoft Visual C will insert additional declarations immediately before the previous line endif defined AFX_PROYECTOBD_H__9210F9F4_A9F7_11D5_97E1_FCCD2DB3034F__INCLUDED_ Page 1 of 1 EroveoctoBb opt CO 1 Oo OF WN E PP gt 00 QQ C0 QU CO CO CO CO CO CO N NN N N DN N PD PO NN FS o LR FF RFR FR FR FEF C oO OITO OFWNF COW OO 10 O1
66. Nombre CString Estado CString Hora void CBaseDatosSet ABRBuscarRegistro CString Nombre CString Estado CString Hora void CBaseDatosSet ABRBuscarTodosLosRegistros CString CBaseDatosSet ABRContarRegistros fin de las declaraciones AFX_VIRTUAL A adir a BaseDatosSet cpp include ABRdb h BaseDatosSet cpp implementation file include stdafx h include ProyectoBD h include BaseDatosSet h include ABRdb h ifdef _DEBUG Debe estar copiado el fichero ABRdb h en la carpeta del proyecto fichero que incluye las funciones de gestion de la base de datos Project gt Add to Project gt Files gt ABRdb h Insert Files into Project h SBR Winsock A h ProvectoBD h lei BaseD atosDilg cpp Es ProyectoBD tc m SBRLE aseD atosDlgU tils h h BaseDatosDlg h ci ProyectoBi CD h ABRCClenteD lgUtils h Gi BaseDatosSet cpp Ih FrovectaBD Dl In nores a h h Basellatos5eth In resource h ABBdb ci PropectoBD cpp ci 5td f cpp Hombre de archiva Cancelar 2 _ Cancelar Tipo de archivos C Files c cpp Gg HL h th ini r Insert into ProyectoBD 7 L 12 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas a Preparar CBaseDatosDlg para utilizar la clase RecordSet Afiadir en BaseDatosDlg h include BaseDatosSet h class CBaseDatosSet Tif Idefined AFX BASEDATOSDLG H 9210F9FE A9F7 I1D5 97El FCCD2
67. ProyectoBD Win32 Debug Begin Group Source Files TF PROP Default Filter Tepot es F dere rode idl hp ae Bat Begin Source File SOURCE BaseDatosDlg cpp End Source File Begin Source File SOURCE BaseDatosSet cpp End Source File Begin Source File SOURCE NClienteD1g cpp End Source File Begin Source File SOURCE Nmswinsockcontrol cpp End Source File Begin Source File SOURCE Propiedades1Dlg cpp End Source File Begin Source File SOURCE ProyectoBD cpp End Source File Begin Source File SOURCE ProyectoBD rc End Source File Begin Source File SOURCE ProyectoBDD1g cpp End Source File Begin Source File SOURCE PuertoParalelo cpp End Source File Begin Source File Page 2 of 4 ProyectoBD dsp 0270142002 pom 129 SOURCE StdAfx cpp 130 ADD CPP Yc stdafx h 131 End Source File 132 End Group 133 Begin Group Header Files 134 133 4 PROP Detault Fitter B hpp hxxnhm srmni 136 Begin Source File pen 138 SOURCE NABRCBaseDatosDilgUtils h 139 End Source File 140 Begin Source File SOURCE ABRCClienteDlgUtils h End Source File Begin Source File SOURCE lABRCProyectoBDD1gUtils h End Source File Begin Source File HAHAHA bop DB BB PB PB DB as O1 O O 10 oP O N PO O 0 SI Ow OB WN H SOURCE NABRdb h End Source File Begin Source File O1 al O1 SOURCE NABRWinsock h End Source File Begin Sourc
68. STATIC Static 1542508352 Control268 IDC EDITO12 edit 1350633600 Controlz9srpo STATIC static 1342308352 Control 30 TIDC EDITO Ledit 1350631552 Control31 IDC_STATIC Static 1342308352 Control32 IDC_EDIT014 edit 10ax Control35 1DC STATIC static 1342308352 Control36 IDC_EDIT16 edit 1352730756 Control37 IDC_STATIC button 1342177287 Control38 IDC_BUTTON_CONECTAR button 1342242816 Control39 IDC_STATIC static 1342308352 Control40 IDC EDIT17 edit 1352730756 Control41 IDC BUTTON CERRAR button 1342242816 Page 2 of 16 G9IFO1 2002 19231 ProvectoBb opt lug 130 132 134 133 134 135 136 1247 138 199 140 H nn n np n nn n Bp DB BB PB ab ab ob Or CT KT Gr Gi Gr O1 Ol O O JO O1 4S QQ DN PL O O OATS O1 WN S H H HH np n nn O1 m O1 Control42 IDC_STATIC button 1342177287 Control43 IDC_CHK1 button 1342242883 Control44 IDC_CHK2 button 1342242883 Control45 IDC_CHK3 button 1342242883 Cont rol46 IDC_CHK4 button 1342242883 Control4 IDC_CHK5 button 1342242883 Control48 IDC_CHK6 button 1342242333 Cont rol49 IDC_CHK7 button 1342242883 Contro150 IDC_CHK8 button 1342242883 Contro151 IDC_CHK9 button 1476460611 Control52 IDC_CHK10 button 1476460611 Control53 IDC_CHK11 button 1476460611 Cont rol54 IDC_CHK12 button 1476460611 CLS CClienteDlg Type 0 HeaderFile ClienteDlg h ImplementationFile ClienteD1g cpp BaseClass CDialog Filter D VirtualFilter dWC LastObject IDC
69. Salida5 int Salida6 int Salida int Salida8 int Entradal int Entrada2 int Entrada3 int Entrada4 46 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Preparar la clase CClienteDlg para utilizar funciones propias A adir a CClienteDlg h las declaraciones de las funciones ABRCClienteDlgUtils h funciones tiles para el di logo cliente IILAAIIIIIIIIIIIIII II III IIIIIIIII IIS IIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIITI CClienteDlg dialog class CClienteDlg public CDialog Construction public CClienteDlg CWnd pParent NULL standard constructor Inicio de las declaraciones void InicializarLeyenda void ActualizarPuerto void InicializarSalidas void Escribir CEdit Edit CString String CString Leer CEdit Edit Fin de las declaraciones int Salidal A adir a ClienteDlg cpp include ABRCCLienteDlg Utils h ClienteDlg cpp implementation file include stdafx h include ProyectoBD h include ClienteDlg h include ABRCClienteDlgUtils n ifdef _DEBUG Debe estar copiado el fichero ABRCCLienteDlgUtils h en la carpeta del proyecto fichero donde se encuentran las funciones tiles para el di logo cliente Project gt Add to Project gt Files gt ABRCClienteDlgUtils h En ClienteDlg cpp A adir funci n OnlnitDialog Classwizard gt MessageMap CClienteDlg gt WM_INITDIALOG gt Add Function
70. a 4 WE la t Yi T Ni E C A4 a i Y i Y A 1 W yo y 4 We y fA N y L5 Ewer W AT TA Win mt 7 wry 59 Ww P AJ o D Pa CDD PO p UU Hi D Ww d PH e Registrar en un hist rico los diferentes eventos que se producen en las instalaciones para mejorar las tareas de mantenimiento tanto correctivo como preventivo necesario en las instalaciones de Navegaci n A rea e Base de datos versus fichero de texto Posibilidad de utilizar toda la potencia que disponen las aplicaciones de gestion de bases de datos para sacar todo el partido a los datos almacenados y de utilizar el est ndar ODBC y SQL que permiten utilizar diferentes tipos de bases de datos e Tabla hist rico formada por tres campos de texto donde se registra el nombre del evento que se ha producido e El puerto paralelo de un PC 8 output 4 input digitales Out Pin 2 7 In Pin 10 12 13 15 out STROBE lata lata 1 lata Z sub lata 3 lata 4 lata 5 lata 6 lata 7 in ACK in BUSY in PE in SLCT Podr amos disponer de aplicaci n e Di logo Principal Fe Proyecto D E xi Acci n Salidas Listening Nombre Se abre Dialogo de Salidas Estado 000000001111 Hora 37 4122001 11 38 45 r Salidas 85555555 Leyenda Salidas yr Leyenda Entradas Equipo P ON en antena 1 Equipo ON OFF E IM o
71. gt lt h3 gt Command Lines lt h3 gt Creating command line rc exe 1 OxcOa fo Debug ProyectoBD res d _DEBUG C Mis documentos Creating temporary file C NWINDOWSNTEMPNRSPCO80 TMP with contents nologo MTd W3 Gm GX ZI Od D WIN32 D _DEBUG D _WINDOWS D _MBCS Fp Debug Proye C Mis documentos ProyectoBD ProyectoBD BaseDatosDlg cpp C Mis documentos ProyectoBD ProyectoBD BaseDatosSet cpp C Mis documentos ProyectoBD ProyectoBD ClienteDlg cpp C Mis documentos ProyectoBD ProyectoBD mswinsockcontrol cpp C Mis documentos ProyectoBD ProyectoBD Propiedades1D1g cpp C Mis documentos ProyectoBD ProyectoBD ProyectoBD cpp C Mis documentos ProyectoBD ProyectoBD ProyectoBDD1g cpp C Mis documentos ProyectoBD ProyectoBD PuertoParalelo cpp Creating command line cl exe AC WINDOWS TEMP RSPCO80 TMP Creating temporary file C NWINDOWSNTEMPNRSPCO81 TMP with contents nologo MId W3 Gm GX ZI Od D WIN32 D _DEBUG D _WINDOWS D _MBCS Fp Debug Proye C Mis documentos ProyectoBD ProyectoBD StdAfx cpp Creating command line cl exe QC WINDOWS TEMP RSPCO081 TMP Creating temporary file C NWINDOWSNTEMPNRSPCO82 TMP with contents nologo subsystem windows incremental yes pdb Debug ProyectoBD pdb debug machine 1386 ou Debug BaseDatosDlg obj Debug BaseDatosSet obj ADeb ugXclienteDlg obJj NDebugNnswinsockcontrol obj NDebugNPropiedadesiDlg obj oND
72. gt gt EditCode OnChk Classwizard gt MessageMap CClienteDlg gt IDC CHK4 gt BN_CLICKED Add Function gt gt EditCode 50 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira OnChk3 Classwizard gt MessageMap CClienteDlg gt IDC_CHKS5 gt BN_CLICKED Add Function gt EditCode OnChk6 Classwizard gt MessageMap CClienteDlg gt IDC CHK6 gt BN_CLICKED Add Function gt EditCode OnChk7 Classwizard MessageMap CClienteDlg gt IDC_CHK 7 gt BN_CLICKED Add Function gt gt EditCode OnChks Classwizard gt MessageMap CClienteDlg gt IDC CHK gt BN_CLICKED Add Function gt gt EditCode Copiar el c digo de las funciones anteriores ClienteDlg cpp void CClienteDlg OnChkl1 i TODO Add your control notification handler code here if m Socket2 GetState 7 Salidal Salidal m SocketZ ABREnviarSck Salidal Escribir amp m EditEnviado Leer amp m EditSalidal else m ChkSall SetCheck 0 void CClienteDlg OnChk2 TODO Add your control notification handler code here if m_Socket2 GetState 7 Salida2 Salida2 m Socket2 ABREnviarSck Salida2 Escribir amp m EditEnviado Leer m EditSalida2 else m_ChkSal2 SetCheck 0 void CClienteDlg OnChk3 i TODO Add your control notification handler code here if m Socket2 GetState 7 Salida3 S
73. if Estado Mid 16 1 1 else Entradal 0 if Estado Mid 18 1 1 else Entrada2 0 if Estado Mid 20 1 1 else Entrada3 0 1f Estado Mid 22 1 1 else Entrada4 0 m_EditNombre SetWindowText m_EditEstado SetWindowText Salidal 1 Salida2 1 Salida3 1 Salida4 1 Salida5 1 Salida6 1 Salida7 1 Salida8 1 Entradal 1 Entrada2 1 Entrada3 1 Entrada4 1 Se abre Dialogo de Salidas Estado m EditHora SetWindowText InsertarHora 09 01 2002 19129 InsertarRegistro Leer amp m EditNombre Leer amp m EditEstado Leer amp m EditHora ActualizarPuerto void CProyectoBDDlg GuardarSalidas CString Estado if Salidal 1 Estado Insert 1 1 else Estado Insert 1 0 if Salida2 1 Estado Ins rt 3 1 else Estado Insert 3 0 if Salida3 1 Estado Insert 5 1 else Estado Insert 5 0 if Salida4 1 Estado Insert 7 1 else Estado Insert 7 0 if Salidab5 1 Estado Insert 9 1 else Estado Insert 9 0 if Salida6 1 Estado Insert 11 1 else Estado Insert 11 0 if Salida7 1 Estado Insert 13 1 else Estado Insert 13 0 if Salida8 1 Estado Insert 15 1 else Estado Insert 15 0 if Entradal 1 Estado Insert 17 1 else Estado Insert 17 0 if Entrada2 1 Estado Insert 19 else Estado Insert 19 0 if Entrada3 1 Estado Insert 21 1 else E
74. include mswinsockcontrol h include ABRWinsock h Copiar ABRWinsock h en la carpeta del proyecto cliente fichero donde se encuentran las funciones ABR para la utilizaci n del Control Winsock Project gt Add to Project gt Files gt ABRWinsock h Insertar funci n OnConnectionRequestWinsockl long request ID Classwizard gt MessageMap IDC WINSOCKI gt ConnectionRequest gt Add Function gt EditCode 37 MFC ClassWizard Message Maps Member Variables Automation Actives Events Class Into Project Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Class name FrovectoBD CPropectoB D Dlg a c 4ProvectoBODlg h c hProyectoBDDIg cpp Object ID IDC_CHECKE IDC_CHECKS IDE EDIT ESTADO IDC EDIT HORA IDE EDIT NOMBRE IDE STATICT IDE WINSOCK Member functions Yo DoDataE xchange We In ccinBasededatas Messages Error Datakrrival Connect ConnectionHequest Close SendProgress SendComplete ON_ID_ACTIN_BASEDEDATOS COMMAND OnlConnectonRequestyirOh IDC WINSOCK1 ConnechonAegquest M Onbestroy w OnlntDialoo Description ON wi DESTRUY ON Wh INITBIALUG Occurs when a remote client is attempting to connect Agust Baub Rovira Add Class da Furnctior Delete Function m_Socketl ABROnConnectionRequestWinsockl request ID m Staticl m Socketl ABRConvertirEstado m Socket1 GetS
75. la base de datos a r Control remoto mediante comunicaci n TCP IP de Radioayudas A eron uticas _ Di logo Base de Datos Base de Datos 10 Registros en la Base de Datos LIMPIAR BUSCAR Membre Se abre Dialogo de Salida Estado 000000001111 A ADIR Hora 31 21222001 11 38 45 BORRAR ACTUALIZAR ANTERIOR SIGUIENTE PRIMERO ULTIMO e Al arrancar el di logo se abre la base de datos y se buscan todos los registros que contiene e Luego se escribe el ultimo registro en el di logo Ahora la aplicaci n queda a la espera de que el usuario realice alguna acci n sobre el dialogo del Propiedades e Si se act a sobre alg n Bot n del di logo se realiza la funci n que indica e Si se modifica el contenido de alg n registro se puede actualizar utilizando el bot n que corresponde despu s de la modificaci n En cualquier momento se puede regresar al di logo principal dejando es di logo abierto o cerrarse como cualquier ventana de Windows Agust Baub Rovira Di logo Propiedades Propiedades Leyenda Entradas 1 Equipo ON OFF 4 Alarma de Mantenimiento Conexion IP 127001 Port 888 r Leyenda Salidas 1 Equipo P ON en antena 2 Equipo P ON en carga _ 3 Equipo B OFF 4 Equipo 5 ON en antena 5 Equipo 5 ON en carga 7 Monitores Bypass gt U 8 Reset Alarma Mito gt U Base de Datos Path bd mdb Cancel
76. m pSet gt ABRContarRegistros UpdateData FALSE OnButtonBuscartodos j void CBaseDatosDlg OnButtonBorrar TODO Add your control notification handler code here m_pSet gt ABRBorrarRegistro Leer amp m_EditNombre Leer amp m_EditEstado Leer amp m_EditHora OnButtonBuscartodos if m_pSet gt GetRecordCount 0 m pSet gt ABRInsertarRegistro Inicio de la Base de Datos InsertarHora j OnButtonBuscartodos SetFocus j void CBaseDatosDlg OnButtonActualizar TODO Add your control notification handler code here if Leer amp m_EditNombre amp amp Leer amp m_EditEstado amp amp Leer amp m_EditHora m_pSet gt ABRActualizarRegistro Leer amp m_EditNombre Leer amp m_EditE stado Leer amp m_EditHora j void CBaseDatosDlg OnButtonBuscartodos TODO Add your control notification handler code here m Staticl m pSet gt ABRContarRegistros UpdateData FALSE m pSet gt m Nombre nn m pSet gt m Estado mi m pSet gt m Hora n gt m_pSet gt ABRBuscarTodosLosRegistros OnButtonUltimo EscribirRegistro j void CBaseDatosDlg OnButtonLimpiar 20 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas a i TODO Add your control notification handler code here m EditNombre SetWindowText m EditEstado SetWindowText m EditHora SetWindowText m_pSet gt m_Nombre
77. pSet gt m Estado Estado 7 m pSet m Hora Hora 8 EscribirRegistrio 9 10 11 m pSet amp m BaseDatosDilgSet 12 m_pSet gt ABRAbrirBD 13 14 m pSet gt ABRInsertarRegistro Nombre Estado Hora 15 16 m pSet gt ABRCerrarBD L7 18 19 20 CString CClienteDlg InsertarHora 21 A 22 CString Hora 23 COleDateTime date COleDateTime GetCurrentTime 24 25 Hora Format 2d 2d d 2d 2d 2d date GetDay date GetMonth date GetYear da 26 27 return Hora 28 29 30 void CClienteDlg EscribirRegistro 31 4 32 m EditNombre SetWindowText m pSet m Nombre 33 m EditEstado SetWindowText m pSet m Estado 34 m EditHora SetWindowText m pSet gt m Hora 35 36 37 void CClienteDlg Escribir CEdit Edit CString String 38 39 40 CString aux 41 42 Edit gt GetWindowText aux 43 aux Insert aux GetLength xr n 44 aux Insert aux GetLength String 45 Edit gt SetWindowText aux 46 Edit gt SetSel Edit gt GetWindowTextLength Edit gt GetWindowTextLength TRUE 47 Edit LineScroll Edit gt GetScrollLimit SB_VERT 48 49 UpdateData FALSE 50 3 52 oz CString CCljenteDig LeertCEdit Edit 53 4 54 CString aux 55 Fdit gt GetWindowText aux 56 return aux 57 58 59 void CClienteDlg InicializarSalidas 60 4 61 CString Estado 62 63 Entradal PuertoParalelo Entradal 64 Entrada2 PuertoParalelo Entrada2 Page 1 of 7 ABRCClienteDlgUtils h 65 66
78. parecida a la anterior pero en este caso el ordenador servidor esta conectado a la red mundial Internet El PC servidor dispone de una direcci n IP p blica y est tica siempre es la misma y no hay otra igual en toda Internet Nuestro PC cliente dispone de una IP est tica la de la Intranet Local que no es p blica para salir a Internet utiliza un servidor proxy que se encarga de dar acceso a Internet a los PC de la Intranet El proxy es la nica m quina de la Intranet que dispone de IP p blica Sabiendo que direcci n IP es la que tiene el PC servidor y fijando arbitrariamente el puerto que vamos a utilizar podr establecerse la comunicaci n entre los dos PC uM i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira ae Configuracion 3 Conexion a Internet a trav s de ISP Windows 95 JO Windows 95 ProyectoBD exe cm ProyectoBD exe io X Modem Puerto Paralelo Radioayuda O O O O En este caso los ordenadores cliente y servidor se conectan a Internet a traves de un proveedor de servicios de Internet ISP como Tinet o Terra Para ello utilizan un modem que se conecta por la red telefonica conel ISP que proporcina las direcciones IP p blicas y din micas Soluci n al problema de la IP din mica pag 36 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira e Fundamentos de TCP IP y comunicaci n co
79. the recordset and the corresponding record on the data source Implements record field exchange RFX GetDefaultConnect Called to get the default connect string GetDefaultSQL Called to get the default SQL string to execute OnSetOptions Called to set options for the specified ODBC statement SetRowsetSize Specifies the number of records you wish to retrieve during a fetch Para facilitar la programaci n hemos creado unas funciones propias incluidas en el fichero ABRdb h que a adimos a la clase CBaseDatosSet que facilitan la programaci n de la base de datos en cualquier aplicaci n Principales funciones creadas ABRAbrirBD Funci n que abre la base de datos para poder acceder a los datos ABRCerrarBD Funcion que abre la base de datos para poder acceder a los datos 23 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira e ABRUltimoRegistro Funci n que hace que el puntero de la base de datos m_pSet apunte al ltimo registro de la base de datos ABRPrimerRegistro Funci n que hace que el puntero de la base de datos m pSet apunte al primer registro de la base de datos ABRSiguienteRegistro Funci n que hace que el puntero de la base de datos m_pSet apunte al siguiente registro de la base de datos ABRAnteriorRegistro Funci n que hace que el puntero de la base de datos m pSet apunte al anterior registro de la base de datos ABRInsertarR
80. your control notification handler code here void CMSWinsockControl ABREscucharSck TODO Add your command handler code here Close Listen void CMSWinsockControl ABROnConnectionRequestWinsock1 long requestID TODO Add your control notification handler code here Close Accept request ID void CMSWinsockControl ABROnDataArrivalWinsockl long bytesTotal TODO Add your control notification handler code here CString strport VARIANT vtData VARIANT vtType VARIANT vtMaxlen strport 4000 vtData vt VT BSIR vtiType vt VTI ERROR 69 vtMaxlen vt VT I2 vtMaxlen iVal short bytesTotal CString Datos vEDarta bstrValestrporrt AllocSyssString vtType bstrVal strport AllocSysString GetData amp vtData vtType vtMaxlen Datos vtData bstrVal Dato Datos void CMSWinsockControl ABREnviarSck CString datos TODO Add your control notification handler code here VARIANT vtCommand CString m command vtCommand vt VT BSTR m command datos vtCommand bstrVal m command AllocSysString SendData vtCommand void CMSWinsockControl ABROnCloseWinsockl TODO Add your control notification handler code here void CMSWinsockControl ABROnErrorWinsockl short Number BSTR FAR Description long Scode LPCTSTR Source LPCTSTR HelpFile long HelpContext BOOL FAR CancelDisplay TODO Add your control notification handler code here
81. 1 GetState O UpdateData FALSE return TRUE return TRUE unless you set the focus to a control Modificar la funci n OnPaint Classwizard gt MessageMap CProyectoBDDlg gt WM_PAINT gt EditCode void CProyectoBDDlg OnPaint if IsIconic CPaintDC dc this device context for painting SendMessage WM_ICONERASEBKGND WPARAM dc GetSafeHdc 0 Center icon in client rectangle int cxIcon GetSystemMetrics SM CXICON int cyIcon GetSystemMetrics SM CYICON CRect rect GetClientRect amp rect int x rect Width cxIcon 1 2 int y rect Height cyIcon 1 2 Draw the icon dc DrawIcon x y m hlcon j else CDialog OnPaint j m EditNombre SetSel m EditNombre GetWindowTextLength m EditNombre GetWindowTextLength TRUE j 29 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas AUS oo n 1 A adir la funci n OnDestroy Classwizard gt MessageMap CProyectoBDDlg gt WM DESTROY gt Add Function gt EditCode void CProyectoBDDlg OnDestroy CDialog OnDestroy TODO Add your message handler code here m pSet amp m BaseDatosDlgSet m_pSet gt ABRAbrirBD Guardarsalidas m_pSet gt ABRCerrarBD A adir las funciones OnSalidasSalidal OnSalidasSalidas OnSalidasSalidal Classwizard gt MessageMap CProyectoBDDlg gt ID SALIDAS SALIDA L gt COMMAND gt Add Function gt EditCo
82. 1000 BaseDatosDlg h header file Pa AE FOL EE V TL PAU VA FAA CA AA VA FL A E CBaseDatosDlg dialog class CBaseDatosSet class CBaseDatosDlg public CDialog ZZ Construction public CString InsertarHora void BorrarCampos void EscribirRegistro CString Leer CEdit Edit void ESCFIDIT CEdiE Edit CString String CBaseDatosSet m_BaseDatosDlgSet CBaseDatosSet m pSet CBaseDatosDlg CWnd pParent NULL 17 standard constructor Dialog Data AFX_DATA CBaseDatosDlg enum IDD IDD BASEDATOSDLG DIALOG CEdit m EditNombre CEdit m_EditHora CEdit m EditEstado CRtring m Staticl AFX DATA Overrides ClassWizard generated virtual function overrides AFX_VIRTUAL CBaseDatosDlg public protected virtual void DoDataExchange CDataExchange pDX DDX DDV support AFX VIRTUAL Implementation protected Generated message map functions AFX MSG CBaseDatosD1g afx msg void OnButtonPrimero virtual BOOL OnInitDialog afx msg void OnButtonAnterior afx msg void OnButtonSiguiente afx msg void OnButtonUltimo afx msg void OnButtonInsertar afx msg void OnButtonBorrar afx msg void OnButtonActualizar afx msg void OnButtonBuscartodos afx msg void OnButtonLimpiar afx msg void OnButtonBuscar afx msg void OnPaint Page 1 of 2 BaseDatosDlg h 09 01 2002 19 30 65 AFX_MSG 66 DECLARE MESSAGE MAP 07 3 68 69
83. 12 ES_AUTOHSCROLL ES READONLY Woe IDC STATIC 279 64 LOs LO IDC_EDIT011 288 62 87 12 ES_AUTOHSCROLL ES READONLY eee IDC_STATIC 279 78 10 10 IDC_EDIT012 288 76 87 12 ES_AUTOHSCROLL ES_READONLY IP IDC_STATIC 280 112 18 10 IDC_EDIT013 302 109 73 12 ES_AUTOHSCROLL Port IDC_STATIC 280 125 18 10 IDC_EDIT014 302 123 73 12 ES_AUTOHSCROLL Leyenda Salidas DC STATIC 177 18 100 130 Leyenda Entradas 1DC_STATIC 277 18 100 75 Recibido IDC_STATIC 18 29 31 10 IDC_EDIT16 18 39 145 12 ES_MULTILINE ES_AUTOHSCROLL ES_READONLY WS_VSCROLL Socket IDC_STATIC 15 20 150 76 Conectar IDC_BUTTON_CONECTAR 36 80 42 13 Envisdor IDC STATIC 16 54731 10 IDC EDIT17 18 64 145 12 ES MULTILINE ES AUTOHSCROLL ES READONLY WS VSCROLL Cerrar DC BUTTON CERRAR 100 80 42 13 Conexi n IDC SIATIC 278 97 100 51 Check1 IDC_CHK1 Button Bo AUTOCHECKBOX BS ICON We TABSTITOP 30 105 10 14 Check1 IDC CHK2 Button BS AUTOCHECKBOX BS ICON WS TABSTOP 45 105 10 14 Check 1 IDC CHK3 Buttan BS AUTOCHECKBOX BS ICON WS TABST P 60 105 10 14 Ch ck1 IDC CHKA Button BS AUTOCHECKBOX BS ICON WS TABSTOP 75 105 10 14 Check1 IDC CHK5 Button BS AUTOCHECKBOX BS ICON WS TABSTOP 90 105 10 14 Check DC CHK6 Button BS AUTOCHECKBOX BS ICON WS TABSTOP 105 105 10 14 Oheckl IDC CHK7 Button BS AUTOCHECKBOX BS ICON WS TABSTOP 120 105 10 14 Check1 IDC CHK8 Butt
84. 12 edit 1350631552 Control27 IDC_STATIC static 13423083592 Control28 IDC_EDIT13 edit 1350631552 Page 15 of 16 Control C 09 01242002 19231 ErovectoBb opt 961 962 963 964 969 366 967 968 969 270 2x c Fa 974 2 5 976 217 978 279 980 981 982 983 984 935 986 987 988 989 990 DIL 992 FIS 994 995 996 e 996 999 1000 il E 1 1 OO O 1 LO 001 002 03 04 05 06 1007 1008 1009 1010 10 10 10 10 11 LA be 14 Control29 IDC STATIC static 1342308352 Control30 IDC EDIT14 edit 1350631552 Control31 IDC STATIC button 1342177287 Control32 IDC_STATIC button 1342177287 Control33 IDC_STATIC button 1342177287 Control34 IDC_EDIT15 edit 1350631552 Control35 IDC_STATIC static 1542508552 Control36 IDC_STATIC button 1342177287 CLS CPropiedades1D1g Type 0 HeaderFile Propiedades1Dlg h ImplementationFile PropiedadesiDig cpp BaseClass CDialog Filter D LastObject CPropiedadeslDlg VirtualFilter dWC DLG IDD CLIENTEDLG DIALOG Type 1 Class CClienteDlg ControlCount 54 Control l LDC STATICI1 static 1342308352 Control2 IDC STATIC button 1342177287 Conerol3 1DC WINSOCK 11 240DDS96 BB45 11CF 9ABC O0C0C TE IB 76D 1342242816 Control4 IDC_STATIC button 1342177287 Control5 IDC_STATIC static 1342308352 Cont rol6 DC FD LTO edit 13506335600 Control _LDe STATIC static 1342308352 Cont rol8 IDC_EDITO2 edit 1350633600 Control9 IDC_STATIC st
85. 1342308354 Commandl ID ACCIN BASEDEDATOS Command2 ID ACCIN PROPIEDADES Command3 ID ACCIN CLIENTE Command4 ID SALIDAS SALIDAI Command5 ID SALIDAS SALIDA2 Command6 ID SALIDAS SALIDA3 Command7 ID SALIDAS SALIDA4 160 Command8 ID SALIDAS SALIDAS 161 Command9 ID SALIDAS SALIDA6 162 Commandl0 ID SALIDAS SALIDA 163 Commandll ID SALIDAS SALIDAS 164 CommandCount 11 O10101 OF lI La LA A LA LA LA KA LA O1 140 141 CLS CBaseDatosD1g 142 Type 0 143 HeaderFile BaseDatosDlg h 144 ImplementationFile BaseDatosDlg cpp 145 BaseClass CDialog 146 Filter D 147 VirtualFilter dwC 148 LastObject CBaseDatosDlg 149 150 MNU IDR MENUI 51 Type 1 52 Class 3 4 E 6 E 8 9 O1 165 166 CLS CBaseDatosSet 167 Type 0 168 HeaderFile BaseDatosSet h 169 ImplementationFile BaseDatosSet cpp 170 BaseClass CRecordset 171 Filter N 172 VirtualFilter r 173 174 DB CBaseDatosSet 175 DB 1 176 DBType ODBC 177 Eolumacount gt 178 Columni Nombre 1 64 179 Column2 Estado 1 64 180 Column3 Hora 1 64 To 182 DLG IDD PROPIEDADES DIALOG 183 Type 1 184 Class CPropiedades1Dlg 1 83 ControlCount 36 186 Contr lI IDOK button 1342242817 187 Control2 IDCANCEL button 1342242816 188 Control3 IDC STATIC static 1342308352 189 Control4 IDC_EDIT1 edit 1350631552 190 Control5 IDC_STATIC static 1342308352 191 Control6 IDC EDIT2 edit 1350631552 192 Control IDC STATIC static 1342308352 Page 3 of 5 Pro
86. 2 251 SAN 21 5 6 7 8 9 280 281 LOL AE 284 283 286 281 288 289 290 J 292 293 294 295 290 297 298 299 300 301 302 393 304 305 306 30 30 30 p 8 9 SU lik 312 3125 314 Lo 316 317 318 319 32 0 Control50 IDC CHK8 button 1342242883 Control51 IDC CHK9 button 1476460611 Control52 IDC_CHK10 button 1476460611 Control53 IDC_CHK11 button 1476460611 Cont rol54 IDC_CHK12 button 1476460611 CLS CClienteDlg Type 0 HeaderFile ClienteDlg h ImplementationFile ClienteDlg cpp BaseClass CDialog Filter D VirtualFilter dWC LastObject IDC WINSOCK1 m Tp 04 Column2 Estado 1 64 Column3 Hora 1 64 DLG IDD PROPIEDADES DIALOG Type 1 Class CPropiedadesiDlg ControlCount 36 Control1 IDOK button 1342242611 Control2 IDCANCEL button 1342242816 Control3 IDC STATIC static 1342308352 Control4sIDC EDITL edit 1350631552 Cont rols IDC STATIC static 1342308352 Control6 IDC_EDIT2 edit 1350631552 Control7 IDC STATIC static 1342308352 Control8 IDC EDIT3 edit 1350631552 Control9 IDC STATIC static 1342308352 Controll0 IDC EDIT4 edit 1350631552 Controlll1 IDC STATIC static 1342308352 Controlli21DC EDIT5 edit 1350631552 Controll13 IDC STATIC static 1342308352 Controll4 IDC EDIT6 edit 1350631552 Controll15 IDC STATIC static 1342308352 Controll6 IDC EDIT7 edit 1350631552 Controll7 IDC STATIC static 1342308352 Controll8 IDC EDIT8 edit 1350631552 Controll9 ID
87. 207 2083 209 210 214 212 21 3 214 215 216 217 ALE 219 220 221 222 223 224 222 226 2247 228 229 230 231 232 233 234 205 236 237 238 239 240 241 242 243 244 245 246 247 248 249 230 251 252 233 254 255 256 else Escribir amp m EditRecibido m Socket2 Dato if m Socketl if m_Socketl if m_Socketl if m_Socketl if m Socketl if m_Socketl if m_Socketl if m_Socketl void CClienteDlg Dato Salidal Dato Salida2 Dato Salida3 Dato Salida4 Dato Salida5 Dato Salida6 Dato Salida7 Dato Salida8 OnChk1 09 01 2002 OnSalidasSalidal OnSalidasSalida2 OnsSalidassalidas OnSalidasSalida4 Onsal1dassSalidas OnSalidasSalida6 OnSalidasSalida7 OnSalidasSalida8 U pay TODO Add your control notification handler code here if m socket2 GetState 7 Salidal Salidal m Socket2 ABREnviarSck Salidal Escribir amp m_EditEnviado Leer amp m EditSalidal else m ChkSall SetCheck void CClienteDlg 0 OnChk2 TODO Add your control notification handler code here Lf ML Soocketz GetState 7 Salida2 2 Salida2 m Socket2 ABREnviarSck Salida2 Escribir amp m EditEnviado Leer amp m EditSalida2 else m_ChkSal2 SetCheck void CClienteDlg CONS OnChk3 TODO Add your control notification handler code here if
88. 308352 Control28 IDC_ BDITOI2 e0dlt 13506335600 Control29 IDC STATIC static 1342308352 ControlS0 IDt EDITOI Edit 1350631552 Control31 IDC STATIC static 1342308352 Cont rol32 IDC_EDIT014 edit 1 ax HeaderFile ClienteDlg h ImplementationFile ClienteDlg cpp BaseClass CDialog Filter D VirtualFilter dwC LastObject IDC WINSOCK1 1 64 Column 2 Estado 1 64 Column3 Hora 1 64 DLG IDD PROPIEDADES DIALOG Type 1 Class CPropiedadeslDlg ControlCount 36 Control1 IDOK button 1342242817 Control2 IDCANCEL button 1342242816 ControlS IDC STATIC static 1342308352 Control4 IDC_EDIT1 edit 1350631552 Control5 IDC_STATIC static 1342308352 Control6 IDC EDIT2 edit 1350631552 Control7 IDC STATIC static 1342308352 Control8 IDC EDIT3 edit 1350631552 Control9 IDC STATIC static 1342308352 Controll0 IDC EDIT4 edit 1350631552 Controll1 IDC STATIC static 1342308352 Control12 ID EDIT5 edit 1350631552 Control13 IDC_STATIC static 1342308352 Control14 IDC_EDIT6 edit 1350631552 Control15 IDC_STATIC static 1342308352 Controll6 IDC_EDIT7 edit 1350631552 Control17 IDC_STATIC static 1342308352 Control18 IDC_EDIT8 edit 1350631552 Control19 IDC_STATIC static 1342308352 Control20 IDC_EDIT9 edit 1350631552 Control21 IDC_STATIC static 1342308352 Control22 IDC_EDIT10 edit 1350631552 Control23 IDC_STATIC static 1342308352 Control24 IDC_EDIT11 edit 1350631552 Control25 IDC_STATIC static 1342308352 Control26 IDC_EDIT
89. 33600 Control19 IDC_STATIC static 1342308352 Control20 IDC EDIT08 edit 1350633600 Control21 1DC STATIC static 1342308352 Page 9 of 16 G9IFO1 2002 19231 ProvectoBb opt o Soo 579 580 581 582 583 584 607 608 609 610 o1 Gs 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 626 6219 630 631 632 633 634 635 636 634 638 639 640 Control22 IDC EDITO9 edit 1350633600 Control23 IDC STATIC static 1342308352 Control24 IDC_EDIT010 edit 1350633600 Control25 IDC STATIC static 1342308352 Control26 IDC EDITO11 edit 1350633600 Control27 IDC STATIC static 1342308352 Control28 IDC EDITO12 edit 1350633600 Control29 IDC STATIC static 1342308352 Control30 IDC EDITO13 edit 1350631552 Control31 IDC STATIC static 1342308352 Control32 IDC_EDIT014 edit 1 ax Control45 IDC CHK3 button 1342242883 Cont rol46 IDC_CHK4 button 1342242883 Control47 IDC_CHK5 button 1342242883 Control48 IDC_CHK6 button 1342242883 Cont rol49 IDC_CHK7 button 1342242883 Control50 IDC_CHK8 button 1342242883 Control51 IDC_CHK9 button 1476460611 Control52 IDC_CHK10 button 1476460611 Control53 IDC_CHK11 button 1476460611 Cont rol54 IDC_CHK12 button 1476460611 CLS CClienteDlg Type 0 HeaderFile ClienteDlg h ImplementationFile ClienteDlg cpp BaseClass CDialog Filter D VirtualFilter dWC LastObject IDC WINSOCK1 l 64 Column2 Estado 1 64 Column3 Hora 1 64 DLG IDD PROPIEDADES
90. 34 IDC EDIT15 edit 1350631552 Control35 IDC STATIC static 1342308352 Control36 IDC STATIC button 1342177287 CLS CPropiedades1D1g Type 0 HeaderFile Propiedades1Dlg h ImplementationFile PropiedadesiDlg cpp BaseClass CDialog Filter D LastObject CPropiedadeslDlg VirtualFilter dwC DLG IDD_CLIENTEDLG DIALOG Type 1 Class CClienteDlg ControlCount 54 Controll IDC STATICI1 static 1342308352 Control2 IDC STATIC button 1342177287 Control3 IDC WINSOCKI 248DD896 BB45 11CF 9ABC 0080C7E7B78D 1342242816 Control4 IDC_STATIC button 1342177287 ControL5 IDC STATIC static 1342308352 Control 6 1DC EDI TOL dit 1350633600 Control IDC STATIC static 1342308352 Cont rol8 IDC_EDITO2 edit 1350633600 ControlS TDC STATIC static 1342308352 ControllO0 IDC EDETOS ed1t 1350633600 Control11 IDC_STATIC static 1342308352 Control12 IDC_EDIT04 edit 1350633600 Control13 IDC_STATIC static 1342308352 Control14 IDC_EDIT05 edit 1350633600 Control15 IDC_STATIC static 13423038352 Controll6 TDC EDITO6 edit 1350633600 Control17 IDC_STATIC static 1342308352 Controll18 IDC EDITOS edit 1350633600 Control L9 DE STATES static 1342308352 Control20 IDC EDIT08 edit 1350633600 Control21 IDC STATIC static 1342308352 Control22 IDC EDIT09 edit 1350633600 Control23 IDC STATIC static 1342308352 COntrol241DC EDITOTO edit 1350633600 Cont rol725 1DC STATIC Static 1342308352 Control26 IDC BDITOLTI e601t 155062506900 Control 1 DG
91. 342177287 Control34 IDC_EDIT15 edit 1350631552 Control35 IDC_STATIC static 1342308352 Control36 IDC_STATIC button 1342177287 CLS CPropiedades1D1g Type 0 HeaderFile PropiedadeslDlg h ImplementationFile PropiedadesiDlg cpp BaseClass CDialog Filter D LastObject CPropiedadeslDlg VirtualFilter dWC DLG IDD CLIENTEDLG DIALOG Type 1 Class CClienteDlg ControlCount 54 Controll IDC STATICI1 static 1342308352 Control2 IDC STATIC button 1342177287 Control3 IDC WINSOCKI 248DD896 BB45 11CF 9ABC 0080C7E7B78D 1342242816 Control4 IDC_STATIC button 1342177287 ControL5 IDC STATIC static 1342308352 Control 6 1DC EDI TOL edit 1350633600 Control IDC STATIC stat ie 1342308352 Cont rol8 IDC_EDITO2 edit 1350633600 ControlS TDC STATIC static 1342308352 ControllO0 IDC EDETOS edit 1350633600 Control11 IDC_STATIC static 1342308352 Control12 IDC_EDIT04 edit 1350633600 Control13 IDC_STATIC static 1342308352 Control14 IDC_EDIT05 edit 1350633600 Control15 IDC_STATIC static 1342308352 Control K 6 STDE EDTTO6 dit 1350635600 Controls 7 1 DC STATIC static 1342308352 Contro118 IDC_EDIT07 edit 1350633600 Controll9 IDC STATIC static 1342308352 Control20 IDC EDIT08 edit 1350633600 Control21 IDC STATIC static 1342308352 Cont rol22 IDC_EDITO9 edit 1350633600 Control23 IDC STATIC static 1342308352 Controlz4 1DC EDITOLO edit 1350633600 Control25 IDC STATIC Static 1342308352 Control26 IDC EDITOI1 edit 1350633600
92. 4 1 m CheckEnt4 SetCheck 1 343 else m CheckEnt4 SetCheck 0 344 Registro en la base de datos de los cambios 345 if EntlAux Entradal 346 34 7 InsertarRegistro Entradal MirarEstado 9 InsertarHora 348 349 350 if Ent2Aux Entrada2 351 352 InsertarRegistro Entrada2 MirarEstado 10 InsertarHora 353 354 355 1f Ent3Aux Entrada3 356 357 InsertarRegistro Entrada3 MirarEstado 11 InsertarHora 358 359 360 if Ent 4Aux Entrada4 361 362 InsertarRegistro Entrada4 MirarEstado 12 InsertarHora 363 364 365 Enviar Estado al socket si hay cambios 366 if EntlAux Entradal Ent2Aux Entrada2 Ent3Aux Entrada3 Ent 4Aux Entrada4 357 368 if m Socketl GetState 7 EnviarEstadoAlSck 369 370 371 372 void CClienteDlg EnviarEstadoAlSck 373 4 374 Cortring Estado 345 376 Estado Estado s 377 378 if Salidal 1 Estado Insert 9 1 2379 else Estado Insert 9 0 380 if Salida2 1 Estado Insert 11 1 381 else Esrtado lnsert 11 0 5 382 if Salida3 1 Estado Insert 13 1 383 else Estado Insert 13 0 384 it Salidald 1 Est do Insert 15 1 Page 6 of 7 ABRCClienteDlgUtils h 09 01 2002 19 29 385 else Estado Insert 15 0 386 if Salidab 1 Estado Insert 17 1 387 else Estado Insert 17 0 388 it Salidab5 1 Estado Insert 19 1 5 389 else Estado Insert 19 0
93. 42308352 Controll2 IDC EDITO4 edit 1350633600 Controll3 1DC STATIC Static 1342308352 Controll4 IDC EDITO5 edit 1350633600 Control 5 DC STATIC static 1342308352 Controll6 1D _EDITOG6 diIE 1350633600 Control1 7 IDC_STATIC static 1342308352 Control lIs IDCE EDITO7 edit 1350633600 Controll9 IDC STATIC static 1342308352 Control20 IDC EDIT08 edit 1350633600 Controlz2l 1DC STATIC static 1342308352 Control22 IDC EDITOS edit 1350635600 Control23 IDC STATIC Static 1342308352 ControlZz42s1D _EDITOTO edit 1350633600 Controlz5 1DC STATES static 1342308352 Control26 IDC EDITO11 edit 1350633600 Control27 IDC STATIC static 1342308352 Controlze I1D6 EDITOLZ edity 1350633600 Control 9 TDC STATIC static 1342308352 Control S0 1DC EDITO IS eds 1350691552 Control31 IDC SIATIC static 1342308352 Control32 IDC EDITO14 edit 1 ax Control42 IDC_STATIC button 1342177287 Cont rol43 1DC_CHK1 button 1342242883 Control44 IDC CHK2 button 1342242883 Control45 IDC_CHK3 button 1342242883 Control 46 IDC_CHK4 button 1342242883 Control47 IDC_CHK5 button 1342242883 Control48 IDC_CHK6 button 1342242883 Control 49 IDC_CHK7 button 1342242883 Control50 IDC_CHK8 button 1342242883 Control51 IDC CHK9 button 1476460611 Control52 IDC_CHK10 button 1476460611 Control53 IDC_CHK11 button 1476460611 Control54 IDC CHK12 button 1476460611 CLS CClienteDlg Type 0 HeaderFile ClienteDlg h ImplementationFile ClienteDlg cpp Base
94. 43 GON POCO 10 C1 4S Gon S OC XO A A A A A A A A On GIL oo a O1 Ul O1 O1 O O 10 OP QO N Ir O O 0 TIO OP WN S O1 OY ON Ro OY OY ON A W N DI Control35 IDC STATIC static 1342308352 Control36 IDC EDITI16 edit 1352730756 Control37 IDC_STATIC button 1342177287 Control38 IDC_BUTTON_CONECTAR button 1342242816 Control39 IDC_STATIC static 1342308352 Control40 IDC_EDIT17 edit 1352730756 Control41 IDC_BUTTON_CERRAR button 1342242816 Control42 IDC_STATIC button 1342177287 Control43 IDC_CHK1 button 1342242883 Control44 IDC CHK2 button 1342242883 Control45 IDC_CHK3 button 1342242883 Cont rol46 IDC_CHK4 button 1342242883 Control4 IDC CHK5 button 1342242883 Control48 IDC CHK6 button 1342242883 Cont rol49 IDC_CHK7 button 1342242883 Control50 IDC CHK8 button 1342242883 Control51 IDC_CHK9 button 1476460611 Control52 IDC_CHK10 button 1476460611 Control53 IDC_CHK11 button 1476460611 Cont rol54 IDC_CHK12 button 1476460611 CLS CClienteDlg Type 0 HeaderFile ClienteDlg h ImplementationFile ClienteDlg cpp BaseClass CDialog Filter D VirtualFilter dWC LastObject IDC WINSOCK1 l 64 Column2 Estado 1 64 Column3 Hora 1 64 DLG IDD PROPIEDADES DIALOG Type 1 Class CPropiedadeslDlg ControlCount 36 Control1i IDOK button 1342242817 Control2 IDCANCEL button 1342242816 Control3 IDC STATIC static 1342308352 Control4 IDC_EDIT1 edit 1350631552 Control5 IDC_
95. 5 if Salida7 1 Estado Insert 13 1 226 else Estado Insert 13 0 22 if Salida8 1 Estado Insert 15 228 else Estado Insert 153 Of 229 if Entradal 1 Estado Insert 17 1 230 else Estado Insert 17 0 231 if Entrada2 1 Estado Insert 19 1 LIZ else Estado Insert 19 0 233 if Entrada3 1 Estado Insert 21 1 234 else Estado Insert 21 0 2 35 if Entrada4 1 Estado Insert 23 1 236 else Estado Insert 23 0 237 238 m EditNombre SetWindowText Se Cierra Dialogo de Salidas 239 m EditEstado SetWindowText Estado 240 m EditHora SetWindowText InsertarHora 241 242 m pSet gt ABRInsertarRegistro Leer am EditNombre Leer amp m_EditEstado Leer amp m_EditHora 243 244 T 245 246 247 CString CClienteDlg MirarEstado int nSal 248 249 Corprimg Out 250 Zod switch nSal 252 253 case l 254 if Salidal out 0 255 else out 1 256 Salidal Salidal Page 4 of 7 ABRCClienteDlgUtils h 09 01 2002 19 29 257 break 258 case 2 259 if Salida2 out 0 260 else out 1 261 Salida2 Salida2 262 break 263 case 3 264 if Salida3 out 0 265 else out 1 266 Salida3 Salida3 267 break 268 case 4 269 if Salida4 out 0 270 else out 1 271 Salida4 Salida4 272 break 273 Case 5 274 if Salida5 out 0 275 else out 1 276 Salida5 Salida5 277 break 278 case 6 279 if Salida6 out 0
96. 552 Control5 IDC STATIC static 1342308352 Control6 IDC EDIT2 edit 1350631552 Control IDC STATIC static 1342308352 Control8 IDC EDIT3 edit 1350631552 Control9 IDC STATIC statue 1342308352 Control LOS DOG EDIT4 edit 1350631552 Control11 1DC STATIC static 1342308352 Contro1l12 IDC_EDIT5 edit 1350631552 Contro113 IDC_STATIC static 1342308352 Controll14 IDC EDIT6 edit 1350631552 Controll15 IDC STATIC static 1342308352 Controll6 IDC EDIT7 edit 1350631552 Controll7 IDC STATIC static 1342308352 Controll18 IDC EDITS edit 1350631552 Controll9 IDC STATIC static 1342308352 Control20 IDC EDIT9 edit 1350631552 Control21 IDC STATIC static 1342308352 Control22 IDC EDITIO dit 1350631552 Control23 IDC STATIC static 1342308352 Control24 IDC EDIT11 e6dit 1350631552 Control25 IDC_STATIC static 1342308352 ControlZ6 1DC EDITI2Z edit 1350631552 Control27 IDC_STATIC static 1342308352 Control28 IDC_EDIT13 edit 1350631552 Control29 IDC_STATIC static 1342308352 Contro130 IDC_EDIT14 edit 1350631552 Control31 IDC STATIC button 1342177287 Control32 IDC STATIC button 1342177287 Control33 IDC STATIC button 1342177287 Control34 IDC EDIT15 edit 1350631552 Control35 IDC STATIC static 1342308352 Control36 IDC STATIC button 1342177287 CLS CPropiedades1D1lg Type 0 HeaderFile Propiedadesi1Dlg h ImplementationFile PropiedadesiDlg cpp BaseClass CDialog Filter D LastObject CPropiedadeslDlg VirtualFilter dWC DLG IDD CLIEN
97. 57 m Staticl m Socketl ABRConvertirEstado m Socketl GetState 458 UpdateData FALSE 459 460 if BD AfxGetApp gt GetProfileString BD Path exit 1 461 462 463 464 465 void CProyectoBDDlg OnAccinCliente 466 467 TODO Add your command handler code here 468 ClienteDlg DoModal 469 3 470 471 472 473 Page 8 of 8 ProvectoBLDig h CString Hora 09 01 2002 19 31 1 ProyectoBDDlg h header file 2 F 3 AFX_INCLUDES 4 include mswinsockcontrol h 5 AFX_INCLUDES 6 7 if defined AFX PROYECTOBDDLG H 9210F9F6 A9F7 11D5 97E1 FCCD2DB3034F INCLUDED 8 define AFX PROYECTOBDDIG H 9210F9F6 A9F7 11D5 97E1 FCCD2DB3034F J INCLUDED 9 10 include PuertoParalelo h Added by ClassView 11 include BaseDatosDlg h Added by ClassView 12 include BaseDatosSet h 13 14 if _MSC_VER gt 1000 15 pragma once 16 endif _MSC_VER gt 1000 17 18 PEER Ed 19 CProyectoBDDlg dialog 20 class CBaseDatosSet 21 class CBaseDatosDlg 22 include PropiedadesiDilig h Added by ClassView 23 include ClienteDlg h Added by ClassView 24 class CProyectoBDDlg public CDialog 25 d 26 J7 Construction 27 Publi 28 void EnviarleyendaAlSck 29 CClienteDlg ClienteDlg 30 void Imprimirleyenda 31 CPropiedadesiDilg PropiedadeslDlg 32 int m nlIimerl 33 void LeerEntradasPuerto 34 void EnviarEstadoAlSck 35 void ActualizarPuerto 36 CPuertoParalelo PuertoPar
98. 7 02 Entrada1 0 15 12 2001 16 17 13 Entrada2 0 15 12 2001 16 17 18 Entrada4 1 15 12 2001 16 17 23 Entrada3 1 15 12 2001 16 17 25 Salida8 0 15 12 2001 16 17 44 Salida7 0 15 12 2001 16 17 45 Salida6 0 15 12 2001 16 17 46 Salida5 0 15 12 2001 16 17 47 Salida4 0 15 12 2001 16 17 49 Salida3 0 15 12 2001 16 17 52 Salida2 0 15 12 2001 16 17 54 Salida8 1 15 12 2001 16 17 56 Se Cierra Dialogo de Salidas 10000001 001 1 15 12 2001 16 18 10 1000000 1001 1 15 12 2001 16 27 45 1000000 10011 15 12 2001 16 28 08 Se abre Dialogo de Salidas Se Cierra Dialogo de Salidas E Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Realizaci n del programa de base de datos en Visual C Crear y preparar la aplicaci n principal del proyecto ProyectoBD En el asistente de creaci n de una aplicaci n MFC aplicaremos las siguientes opciones Aplicaci n badasa en dialogo Librer as estaticas Files Projecte Workspaces s ATL COM Appwizand sa Cluster Resource Type wizard ka Custom Appwizard ls Makefile Him MFC Active Controkwizard E MFC App wizard dll a MEC Appwizard exe GN New Database Wizard A win32 Application Twina Console Application t Win Dynamic Link Library Other Documents 3e Win32 Static Library Project name ProyectoBD Location E Mis documentos PropectoB D nj Create new workspace C Add to current workspace L Dependency of DD Ei Platform
99. 78 _inp 0x378 0x02 else _outp 0x378 _inp 0x378 8 0x02 void CPuertoParalelo Salida3 bool estado if estado _outp 0x378 _inp 0x378 0x04 else _outp 0x378 _inp 0x378 8 0x04 void CPuertoParalelo Salida4 bool estado if estado _outp 0x378 _inp 0x378 0x08 else _outp 0x378 _inp 0x378 amp gt 0x08 void CPuertoParalelo Salida5 bool estado if estado _outp 0x378 _inp 0x378 0x10 else outp 0x378 inp 0x378 amp 0x10 void CPuertoParalelo Salida6 bool estado 56 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas a if estado _outp 0x378 _inp 0x378 0x20 else _outp 0x378 _inp 0x378 8 0x20 void CPuertoParalelo Salida7 bool estado if estado _outp 0x378 _inp 0x378 Ox40 else _outp 0x378 _inp 0x378 8 0x40 void CPuertoParalelo Salida8 bool estado if estado _outp 0x378 _inp 0x378 0x80 else outp 0x378 inp 0x378 amp 0x80 int CPuertoParalelo Entradal return _inp 0x379 0x08 gt gt 3 m CPuertoParalelo Entrada2 i return _inp 0x379 amp 0x10 gt gt 4 CPuertoParalelo Entrada3 return 1np Ux379 60x20 gt B int CPuertoParalelo Entrada4 return _inp 0x379 0x40 gt gt 6 PuertoParalelo h PuertoParalelo h interface for the CPuertoParalelo class VL EFA LV F LL T SAIATI IF ACTA DIN IT AD TT TTI ER RR F T LET L Agust Bau
100. A EN CProyectoBDDlg dialog class CBaseDatosSet class CBaseDatosDlg Crear dos variables CBaseDatosSet m pSet CBaseDatosSet m_BaseDatosDlgSet public CProyectoBDDlg CWnd pParent NULL standard constructor CBaseDatosSet m pSet CBaseDatosSet m BaseDatosDlgSet CBaseDatosDlg m pBaseDatosDlg Dialog Data Realizar CTRL F5 para compilar hasta aqu el proyecto 22 Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Completar di logo principal del Proyecto IDD PROYECTOBD DIALOG Borrar botones aceptar y cancelar Insertar 3 Edit Box IStaticText 8 CheckBox 4CheckBox Disabled Crear variables classwizard member variables IDC STATICI m Staticl CString IDC EDIT NOMBRE m EditNombre CEdit IDC EDIT ESTADO m EditEstado CEdit IDC EDIT HORA m EditHora CEdit IDC CHECKI m CheckSall CButton IDC CHECKS m CheckSal8 CButton IDC_CHECK9 m_CheckEntl CButton IDC CHECKI2 m CheckEnt4 CButton RE dit B E 5 RIRI S puia a 23 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira MFC ClassWizard a ENS 7 xj Message Map Member Yanables Automation Actives Events Class Into Project Class name Add Class PropectoB D CProyectoBDD g m Add Variable CA AProyectoBDDlg h Ch S PravectoBB Dlg cpp Control ID s Type Member Delete Variable IDE CHECE4 CButton m Check
101. A RATE ELA HA FLA PAA ATL V LHA I PNA A APL L VAV A AU 396 47 357 DESIGNINFO 358 747 359 360 ifdef APSTUDIO INVOKED 361 GUIDELINES DESIGNINFO DISCARDABLE 362 BEGIN 363 IDD_ABOUTBOX DIALOG 364 BEGIN 365 LEFTMARGIN 7 366 RIGHTMARGIN 228 367 TOPMARGIN 7 368 BOTTOMMARGIN 48 369 END 370 371 IDD_PROYECTOBD_DIALOG DIALOG 372 BEGIN 373 LEFTMARGIN 7 374 RIGHTMARGIN 382 375 TOPMARGIN 7 376 BOTTOMMARGIN 150 377 END 378 379 IDD_BASEDATOSDLG_DIALOG DIALOG 380 BEGIN 391 LEFTMARGIN 7 382 RIGHTMARGIN 253 383 TOPMARGIN 7 384 BOTTOMMARGIN 79 Page 6 of 8 ProyectoBD rc 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 END IDD_PROPIEDADES_DIALOG DIALOG BEGIN LEFTMARGIN 7 RIGHTMARGIN 204 TOPMARGIN 7 BOTTOMMARGIN 181 END IDD_CLIENTEDLG_DIALOG DIALOG BEGIN LEFTMARGIN 7 RIGHTMARGIN 382 TOPMARGIN 7 BOTTOMMARGIN 147 END END endif APSTUDIO INVOKED eg eee A IA A VA LAA NAA FA LAVA te Fi Menu ry IDR_MENUL MENU DISCARDABLE BEGIN POPUP Acci n BEGIN MENUITEM Base de Datos MENUITEM Propiedades MENUITEM Cliente END POPUP Salidas BEGIN MENUITEM Salidal MENUITEM Salida2 MENUITEM Salida3 MENUITEM Salida
102. AFX_DATA 38 39 40 Overrides Al ClassWizard generated virtual function overrides 42 AFX_VIRTUAL CPropiedades1D1lg 43 protected 44 virtual void DoDataExchange CDataExchange pDX DDX DDV support 45 J AFX VIRTUAL 46 47 Implementation 48 protected 49 50 Generated message map functions 51 AFX MSG CPropiedades1D1g 52 virtual void OnOK 53 virtual BOOL OnInitDialog 54 AFX MSG 55 DECLARE MESSAGE MAP 50 L 57 58 AFX_INSERT_LOCATION 59 Microsoft Visual C will insert additional declarations immediately before the previous line 60 61 endif defined AFX_PROPIEDADES1DLG_H_ 6159E6C1 AF94 11D5 97E1 EE6A57BBO840 INCLUDED 62 Page 1 of 1 ProyectoBD clw D D A OU NOT a OQ Oo CH As ds BA AB A d OO al O ULA ND r0 KO 00 TOS OB WN S O1 Ov OY Ul e O LO OY OY ON me N CLW file contains information for the MFC ClassWizard General Info Version 1 LastClass CProyectoBDD1g LastTemplate CDialog NewFileIncludel include stdafx h NewFileInclude2 include ProyectoBD h ClassCount Classl CProyectoBDApp Class2 CProyectoBDDlg Class3 CAboutDlg ResourceCount Resourcel IDD BASEDATOSDLG DIALOG Resource2 IDR MAINFRAME Resource3 IDD PROPIEDADES DIALOG Resource4 IDD ABOUTBOX Class4 CBaseDatosDlg Class5 CBaseDatosSet Resourceb IDD CLIENTEDLG DIALOG Class6 CPropiedades1Dlg Resource6 IDD PROYECTOBD DIALOG Class7 CClienteDlg Re
103. Baub Rovira 5 INDICE Realizacion de la base de datos del proyecto essere l Ejemplo de Base de datos ccoo e a ea te ate no liada 2 Realizaci n del programa de base de datos en Visual C 3 Crear y preparar la aplicaci n principal del proyecto ProyectoBD 3 Preparar el proyecto para utilizar funciones de Visual C sobre bases de datos 4 Crear di logo para ver la Base de Datos 5 Crear Menu para el dialogo principal sisie ti iii aka day ok iv aa a aa kai a 6 En la clase CProyectoBDDlg crear funci n OnAccinBasededatos 7 CASO NOMODA Pitit ate spares osito dret loop ia sa 7 CASO MODAL apesar on AA CAN 9 Realizar CTRL F5 para compilar hasta aqu el proyecto sees 9 Crear la clase RecorSet para acceder a la Base de Datos sess 10 Preparar la clase CBaseDatosSet para a adir funciones propias KE Preparar CBaseDatosDlg para utilizar la clase RecordSet 13 Completar di logo de la base de datos sess ener 14 Preparar la clase CBaseDatosDlg para utilizar funciones propias 16 Preparar CProyectoBDDlg para utilizar el RecordSet oooccccccncnonnncccnnnnnoninnnnos 22 Realizar CTRL F5 para compilar hasta aqu el proyecto
104. C STATIC Static 1342308352 Control20 IDC EDIT9 edit 1350631552 Control21 IDC STATIC static 1342308352 Control22 IDC EDIT10 edit 1350631552 Control23 IDC STATIC static 1342308352 Control24 IDC_EDIT11 edit 1350631552 Controlz5erpce STATIG Stato 1342308352 ControlZ6 IDC EDITE edit 1350631552 Control27 IDC STATIC statie 1342308352 Controlzs 1D EDITLS edity 1350631552 Control29 IDC STATIC static 1342308352 Control30 IDC EDITIA edit 1350631552 Control31 IDC STATIC button 1342177287 Control52erpc STATIC button 1342177287 Control33 IDC_STATIC button 1342177287 Control34 IDC_EDIT15 edit 1350631552 Control35 IDC_STATIC static 1342308352 Control36 IDC_STATIC button 1342177287 CLS CPropiedades1D1lg Type 0 HeaderFile Propiedades1Dlg h ImplementationFile PropiedadesiDig cpp Page 5 of 16 09 0171 Z2002 19231 EroveoctoBb opt 321 FAZ DAS 324 AD 326 327 3286 329 350 JO RE 334 334 505 JOU 337 330 339 340 WO CO CO L LW L L CO CO A A A A A A A 404 A OT oo oo O1 OI LU WWW CO CO CO WW O1 OO O1 O O 10 oP O N H O O O SI O OP WN S OO O1 BaseClass CDialog Filter D LastObject CPropiedadeslDlg VirtualFilter dWC DLG IDD CLIENTEDLG DIALOG Type 1 Class CClienteDlg ControlCount 54 Controll IDC STATICI static 1342308352 Control2 lDC STATIC button 1342177287 Control3 IDC WINSOCKI 248DD8 96 BB45 11CF 9ABC 0080C7E7 B78D 1342242816 Control4 IDC SIATIC button
105. C _ CHECKS button 1342242665 Control11 IDC_CHECK4 button 1342242883 Control1l2 TIDC CHECKS button 1342242883 Control13 IDC_CHECK6 button 1342242883 Control14 IDC_CHECK7 button 1342242883 Control15 IDC_CHECK8 button 1342242883 Controll6 IDC SIATIC button 1342177287 Controll7 IDC WINSOCKI 1249DDO96 BBA5 l11CR 9ABC OO0SO0CTEJBTSDE 15422429 6 Control18 IDC CHECK9 button 1476460611 Contro119 IDC_CHECK10 button 1476460611 Control20 IDC_CHECK11 button 1476460611 Control21 IDC CHECKI2 button 1476460611 Control22 IDC_STATIC button 1342177287 Control23 IDC_STATIC static 1342308352 Control24 IDC_EDITO1 edit 1350633600 Cont T 25 IDE STATIC static 1342308352 COnNtrolz26 TDC EDITOZ2 dit 1 350633600 Control27 IDC_STATIC Static 1342308352 Control Z26 TDCE EDETOS edit 1350633600 Control29 IDC ETATIC static 1342308352 Cont rol30 IDC_EDIT04 edit 1350633600 Contro131 IDC_STATIC static 1342308352 Contro132 IDC_EDIT05 edit 1350633600 Contro133 IDC_STATIC static 1342308352 Control34 IDC EDITO6 edit 1350633600 Control35 IDC STATIC static 1342308352 Control36 IDCE _EDITOY edit 1350633600 Contro137 IDC_STATIC static 1342308352 Cont rol1s8 I1D EDLTOS edit 13590633600 Control39 IDC_STATIC static 1342308352 Cont rol40 IDC_EDITO9 edit 1350633600 Control41 IDC STATIC static 13423083592 Control42 IDC_EDITO10 edit 1350633600 Control43 IDC_STATIC static 1342308352 Cont rol44 IDC_EDIT0O11 edit 1350633600 Cont
106. CBaseDatosDlg ON_BN_CLICKED IDC_BUTTON_PRIMERO OnButtonPrimero ON BN CLICKED IDC BUTTON ANTERIOR OnButtonAnterior ON BN CLICKED IDC BUTTON SIGUIENTE OnButtonSiguiente ON BN CLICKED IDC BUTTON ULTIMO OnButtonUltimo ON BN CLICKED IDC BUTTON INSERTAR OnButtonInsertar ON BN CLICKED IDC BUTTON BORRAR OnButtonBorrar ON BN CLICKED IDC BUTTON ACTUALIZAR OnButtonActualizar ON BN CLICKED IDC BUTTON BUSCARTODOS OnButtonBuscartodos ON BN CLICKED IDC BUTTON LIMPIAR OnButtonLimpiar ON BN CLICKED ON WM PAINT SJAFX MSG MAP IDC BUTTON BUSCAR OnButtonBuscar END MESSAGE MAP CR EE E E CBaseDatosDlg message handlers BOOL CBaseDatosDlg OnInitDialog CD1alogq OnTnitDialog t Page 1 of 4 09 01 2002 19 29 BaseDatosDlg cpp 09 01 2002 19429 65 TODO Add extra initialization here 66 67 m pSet amp m BaseDatosDilgSet 68 m_pSet gt ABRCerrarBD 69 m pSet gt ABRAbrirBD 70 m Staticl m pSet gt ABRContarRegistros 71 UpdateData FALSE 72 m pSet gt ABRUltimoRegistro 73 OnButtonBuscartodos 74 return TRUE return TRUE unless you set the focus to a control 75 EXCEPTION OCX Property Pages should return FALSE 76 3 FI 78 79 80 void CBaseDatosDlg OnPaint 81 82 CPaintDC dc this device context for painting 83 84 TODO Add your message handler code here 85 86 m pSet amp m BaseDatosDlgSet 87 m pSet gt ABRCerrarBD
107. CButton m CheckSal8 CButton m _CheckSal7 CButton m CheckSal6 CButton m CheckSal5 CButton m_CheckSal4 CButton m CheckSal3 CButton m CheckSal2 CButton m CheckSall CEdit m_EditNombre CEdit m EditHora CEdit m EditEstado CEtring m Staticl CMSWinsockControl m_Socketl AFX DATA ClassWizard generated virtual function overrides AFX VIRTUAL CProyectoBDDlg public protected virtual void DoDataExchange CDataExchange pDX AFX VIRTUAL protected Implementation HICON m hIcon Generated message map functions LANN MSG CProyectoBDDlg virtual afx msg afx msg afx msg afx msg afx msg afx msg afx msg afx msg afx msg afx msg afx msg afx msg BOOL OnInitDialog void OnSysCommand UINT nID LPARAM lParam void OnPaint HCURSOR OnQueryDragIcon void OnAccinBasededatos void OnSalidasSalidal void OnSalidasSalida2 void OnSalidasSalida3 void OnSalidasSalida4 void OnSalidasSalida5 void OnSalidasSalidao void OnSalidasSalida 7 void OnSalidasSalida8 Page 2 of 3 7 7 DDX DDV support 09 01 2002 19 31 ProyectoBDD1g h 09 01 2002 19 31 129 afx msg void OnDestroy 130 afx msg void OnCheckl 131 afx msg void OnCheck2 122 afx msg void OnCheck3 133 afx msg void OnCheck4 134 afx msg void OnCheck5 135 afx msg void OnCheck6 136 afx msg void OnCheck 7 137 afx msg void OnCheck8
108. CERLO IDE CHKII IDO CORTA ID_ACCIN_BASEDEDATOS ID_SALIDAS_SALIDA1 ID SALIDAS SALIDA2 ID SALIDAS SALIDAS ID SALIDAS SALIDA4 ID SALIDAS SALIDA5 ID SALIDAS SALIDAG ID SALIDAS SALIDA ID SALIDAS SALIDAS ID ACCIN PROPIEDADES ID ACCIN CLIENTE default values for new objects ifdef APSTUDIO INVOKED ifndef define define define define fendif rendir APSTUDIO READONLY SYMBOLS APS NEXT RESOURCE VALUE APS NEXT COMMAND VALUE APS NEXT CONTROL VALUE APS NEXT SYMED VALUE 1048 1049 1050 1051 1052 1053 1054 1055 1056 LUS 1058 1059 1060 1061 1062 1063 1064 LOGS 1066 1067 1068 32771 32 TT2Z 32773 32774 22715 32776 CLAN 32778 E TN NES 32780 32781 1 35 327582 1069 106 Page 2 of 2 09 01 2002 19 32 SEGATX CDO 09 01 2002 19 32 stdafx cpp source file that includes just the standard includes ProyectoBD pch will be the pre compiled header stdafx obj will contain the pre compiled type information Finelude stadafx h wO l OX 01 FP w N H Page 1 of 1 StdAfx h 09 01 2002 19 32 CO S O OP WN H LO N NON ON ON ON ON ON ON ON BR O O OP AP np nn n O V O 10 OP UV N HOO NYAU E QW N H O XO stdafx h include file for standard system include files or project specific include files that are used frequently but di are changed infrequently 4 tif defined AFX STDAFX H 9210F9F8 A9F7 11D5 97E1 FCCD2DB3034F INCLUDED define AFX STDAFX H 9210F9F8 A9F7 11D5 97E1 FCC
109. Class CDialog Filter D VirtualFilter dWC LastObject IDC WINSOCK1 ji ij G Colum z Estado 1 64 Column3 Hora 1 64 DLG IDD PROPIEDADES DIALOG Type 1 Class CPropiedadeslDlg ControlCount 36 Control1 IDOK button 1342242817 Control2 IDCANCEL button 1342242816 Control3 IDC STATIC Static 1342308352 Control4 IDC_EDIT1 edit 1350631552 Control5 IDC_STATIC static 1342308352 Control6 IDC EDIT2 edit 1350631552 Control IDC STATIC static 1342308352 Page 8 of 16 G9IFO1 2002 19231 EroveoctoBb opt Sls 514 Salbe ooo oo oo O1 Ol Aa Aa WW EO lt J Oy ON als GOB C9 XO OO ST Oy OH DN RO SO O1 A OO Ui Y IU 01010101 S BBP BSP BP A TO Ol OF Or aa O1 O1 QU O1 Ol O O O WO O1 O I Control IDE EDITS edit 1350631552 Control9 IDC STATIC static 1342308352 Contro110 IDC_EDIT4 edit 1350631552 Contro1l11 IDC_STATIC static 1342308352 Contro1l12 IDC_EDIT5 edit 1350631552 Contro113 IDC_STATIC static 1342308352 Contro1l14 IDC_EDIT6 edit 1350631552 Control15 IDC_STATIC static 1342308352 Control l6 1 DC EDIT A edit 13506351552 Controll7sSIDC STATIC static 1342308352 Controll18 IDC EDIT8 edit 1350631552 Controll9 IDE STATIC static 1342308352 Control20 IDC EDIT edit 1350631552 Control21 IDC STATIC static 1342308352 Control22 IDC EDITI10 edit 1350631552 Control23 IDC STATIC static 1342308352 Control24 IDC EDIT11 edit 1350631552 Control25 IDC S
110. Con la ayuda del software realizado en este proyecto se podr a utilizar la red inform tica interna que dispone la empresa y desde un ordenador central en la Sala de Equipos controlar las diferentes radioayudas instaladas en el Aeropuerto y es m s se puede tener una comunicaci n con la instalaci n desde cualquier punto de la empresa con cualquier ordenador conectado a la misma red y con este software instalado Tambi n a adir amos la funci n de almacenamiento de un hist rico sobre una base de datos con todos los eventos que se producen en cada instalaci n Indispensable para poder realizar una buena acci n de mantenimiento sobre los equipos De esta manera instalando en todas las instalaciones de radioayudas un enlace a la red inform tica de la empresa se podr a centralizar en un lugar la monitorizaci n de todas las radioayudas que dispone la empresa Otro posible destinatario de este proyecto es la propia Universidad URV en concreto el Departamento de Enginyeria El ctrica Electr nica 1 Autom tica donde futuros alumnos e investigadores en este tema puedan continuar con la mejora de este proyecto o utilizar el c digo generado para incorporarlo en otros proyectos para ofrecer servicios de comunicaci n entre aplicaciones en redes inform ticas basadas en el protocolo TCP IP a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira L Fundamentos sobre las Radioayudas Aeron uticas
111. D 09 01 2002 19 31 BS_ICON WS DISABLED WS_TABSTOP 110 93 10 10 GROUPBOX Entradas IDC_STATIC 15 85 150 23 LTEXT 1 IDC_STATIC 179 35 10 10 EDITTEXT IDC_EDIT01 188 34 87 12 ES_AUTOHSCROLL ES_READONLY LTEXT 2 IDC_STATIC 179 50 10 10 EDITTEXT IDC_EDIT02 188 47 87 12 ES_AUTOHSCROLL ES_READONLY LTEXT 3 IDC_STATIC 179 63 10 10 EDITTEXT IDC_EDIT03 188 61 87 12 ES AUTOHSCROLL ES READONLY LIEXT 4 IDC_STATIC 179 77 10 10 EDITTEXT IDC EDIT04 188 75 87 12 ES AUTOHSCROLL ES READONLY LIBEXI 5 IDC_STATIC 179 91 10 10 EDITTEXT IDC_EDITO5 188 90 87 12 ES_AUTOHSCROLL ES READONLY LTEXT 6 IDC_STATIC 179 106 10 10 EDITTEXT IDC EDIT06 188 103 87 12 ES AUTOHSCROLL ES READONLY LTEXT 7 IDC_STATIC 179 119 10 10 EDITTEXT IDC EDIT07 188 117 87 12 ES AUTOHSCROLL ES READONLY LTEXT 8 IDC_STATIC 179 133 10 10 EDITTEXT IDC EDITO8 188 131 87 12 ES AUTOHSCROLL ES READONLY LTEXT 14 IDC STATIC 4710 36 10 10 EDITTEXT IDC_EDITO9 288 34 87 12 ES_AUTOHSCROLL ES_READONLY LTEXT EIUS IDC_STATIC 279 50 10 10 EDITTEXT IDC_EDITO10 288 48 87 12 ES_AUTOHSCROLL ES_READONLY LIEXT 3 IDC_STATIC 279 64 10 10 EDITTEXT IDC_EDITO11 288 62 87 12 ES AUTOHSCROLL ES READONLY LTEXT 4 IDC_STATIC 279 78 10 10 EDITTEXT IDC_EDIT012 288 76 87 12 ES_AUTOHSCROLL ES_READONLY LTEXT IP IDC STATIC 2007 l lap be LO EDITTEXT IDC_EDIT0O13 302 109 73 12 ES AUTOHSCROLL ES READONLY LTEXT Port IDC_STATIC 280 125 18 10
112. D BASE LINK32 nologo subsystem windows machine 1386 ADD LINK32 nologo subsystem windows machine 1386 ELSEIF S CFG ProyectoBD Win32 Debug PROP BASE Use_MFC 6 PROP BASE Use Debug Libraries 1 PROP BASE Output Dir Debug PROP BASE Intermediate Dir Debug PROP BASE Target Dir PROP Use MFC 5 Page 1 of 4 ProyectoBD dsp 0970142002 xpo 65 66 67 68 69 70 EST 14 73 74 Ta 76 E 78 T9 80 81 82 83 84 85 86 87 88 89 90 JI 92 93 94 35 96 97 98 99 100 101 TO 103 104 LOS 108 107 108 109 TIO ORO DIZ PES 114 EES 116 LLZ LES dg 120 kn 122 ZAS 124 AS t26 127 128 PROP Use Debug Libraries 1 PROP Output Dir Debug PROP Intermediate Dir Debug PROP Target Dir ADD BASE CPP nologo MDd W3 Gm GX ZI Od D WIN32 D DEBUG D WINDOWS D AFXDL ADD CPP nologo MId W3 Gm GX ZI Od D WIN32 D DEBUG D WINDOWS D MBCS Yu ADD BASE MTL nologo D DEBUG mktyplib203 win32 ADD MTL nologo D DEBUG mktyplib203 win32 ADD BASE RSC 1 OxcOa d DEBUG d AFXDLL ADD RSC 1 OxcOa d DEBUG BSC32 bscmake exe ADD BASE BSC32 nologo ADD BSC32 nologo LINK32 link exe ADD BASE LINK32 nologo subsystem windows debug machine 1386 pdbtype sept ADD LINK32 nologo subsystem windows debug machine 1386 pdbtype sept A L ENDIF Begin Target Name ProyectoBD Win32 Release Name
113. D cpp 09 01 2002 19 31 CO 1 O OB O Po FS S ds aS B C CO C CO C C CO Y Y YN PO PO IO NO NO PO NO N ND IR IB KA KA E po p p E S WU NHO O 10 UT i CO ND IP CoO WITHA C1 CQ lO IP O O O Jo oO 4S WV IND I2 Ow 44 45 46 47 48 49 50 od 32 53 54 SO 56 57 58 59 60 61 62 63 64 ProyectoBD cpp Defines the class behaviors for the application Ey include stdafx h include ProyectoBD h include ProyectoBDDlg h ifdef _DEBUG define new DEBUG NEW undef THIS FILE static char THIS FILE FILE fendif ELIANA ANA ITI IT AAA ELE IA AA PAI A A AA AMELIA E CProyectoBDApp BEGIN_MESSAGE_MAP CProyectoBDApp CWinApp AFX MSG MAP CProyectoBDApp NOTE the ClassWizard will add and remove mapping macros here if DO NOT EDIT what you see in these blocks of generated code AFX_MSG ON COMMAND ID HELP CWinApp OnHelp END MESSAGE MAP AVL TX A VAA FAA AAA NAATA XA A A UT LAA AAA TV AV AA LAT AU TAA VAV ALI EEE EA AAA AF TL HA A V4 T L L CProyectoBDApp construction CProyectoBDApp CProyectoBDApp TODO add construction code here Place all significant initialization in InitInstance E TI ETT L L TAT ASIA VAR AL T ULLA A T UAA AA AAA AA ELA A XY EA ULA UA TIT LA The one and only CProyectoBDApp object CProyectoBDApp theApp CATIA A A VAA ET IAI AT IAAI I CTT I TIT IAT TA ALTA VAV AVA AA FATAL H AAA VV AAA AAA VAT NAV TAT LA CProyectoBDAp
114. D2DB3034F INCLUDED fif MSC VER gt 1000 pragma once endif MSC VER gt 1000 define VC EXTRALEAN Exclude rarely used stuff from Windows headers include lt afxwin h gt MFC core and standard components include lt afxext h gt MFC extensions include lt afxdisp h gt MFC Automation classes include lt afxdtctl h gt MFC support for Internet Explorer 4 Common Controls ifndef AFX NO AFXCMN SUPPORT include lt afxcmn h gt MFC support for Windows Common Controls endif _AFX NO AFXCMN SUPPORT include lt afxdb h gt include lt afxdao h gt AFX_INSERT_LOCATION Microsoft Visual C will insert additional declarations immediately before the previous line endif defined AFX STDAFX O 9210F9F8_A9F7_11D5_97E1_FCCD2DB3034F__INCLUDED_ Page 1 of 1 SUPERIOR ENGINYERIA UNIVERSITAT ROVIRA 1 VIRGILE 5 PRESENTACION e Ingeniero Superior Agust n Baub Rovira en Autom tica y Electr nica Industrial e Profesor Ponente Ernest Gil Dolcet Febrero 2002 ESCOLA TECNICA SUPERIOR ENGINYERIA e Control y monitorizaci n remota de equipos electr nicos aeron uticos Controlar los equipos localmente mediante el puerto paralelo del PC Controlar los equipos remotamente mediante comunicaci n remota cliente servidor Ethernet Registro de eventos en una base de datos local e Equipos electr nicos de radiofrecuencia qu
115. DB3034F INCLUDED define AFX BASEDATOSDLG H 9210F9FE A9F7 11D5 97EI FCCD2DB3034F INCLUDED include BaseDatosSet h Added by Class View if MSC VER gt 1000 pragma once endif MSC VER gt 1000 BaseDatosDlg h header file LLL CBaseDatosDlg dialog class CBaseDatosSet class CBaseDatosDlg public CDialog Crear dos variables CBaseDatosSet m_BaseDatosDlgSet CBaseDatosSet m pSet CBaseDatosSet m BaseDatosDlgSet CBaseDatosSet m pSet CBaseDatosDlg CWnd pParent NULL standard constructor Agust Baub Rovira 13 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas a Completar di logo de la base de datos IDD BASEDATOSDLG DIALOG Borrar botones Ok y Cancel Insertar 3 Edit Box 1 Static text 10 botones IDC BUTTON PRIMERO Primero IDC BUTTON ANTERIOR Anterior IDC BUTTON SIGUIENTE Siguiente IDC BUTTON ULTIMO Ultimo IDC BUTTON ANADIR Insertar IDC BUTTON BORRAR Borrar IDC BUTTON ACTUALIZAR Actualizar IDC BUTTON BUSCARTODOS BuscarTodos IDC BUTTON LIMPIAR Limpiar IDC BUTTON BUSCAR Buscar Crar variables classwizard member variables IDC STATICI m Staticl IDC EDIT NOMBRE m_EditNombre IDC EDIT ESTADO m_EditEstado IDC EDIT HORA m EditHora Base de Datos Static Nombre Edt gt gt gt LIMPIAR Estado Edit TODOS Hora Edi BORRAR ANTERIOR SIGUIENTE PRIMERO A ADIR ACTUALIZAR ULTIMO Agusti Baubi Rovira CS
116. DC_CHECK9 IDC_WINSOCK1 IDC CHECK 10 IDC EDITI IDC CHECKII IDC EDITA IDC CHECKI2 IDC EDITS IDC EDITA LDO EDITO IDC EDIT6 IDC_EDIT7 IDC ED ITS IDC EDIT9 IDC EDITIO IDC_EDIT11 IDC EDIT12 IDE EDITLIS IDC_EDIT14 IDE EDITOS LDC EDITO IDC EDITOG IDC EDITO IDC_EDITO1 IDC EDITOZ IDC_EDITOS IDC_EDITOS DC EDITOS IDC EDITOIO 0x0010 100 101 102 103 105 128 129 132 1000 1001 LOUZ 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 LO LS 1016 TOLJ 1018 1019 1020 1021 1022 1023 1024 1025 1025 1026 1026 1027 1027 1028 T029 1030 1031 10524 1033 1034 1035 1036 1037 1038 1039 10 39 1040 1041 1042 1043 1044 1045 1046 1047 Page 1 of 2 09 01 2002 19 32 resource h 65 66 67 68 69 70 71 72 73 74 75 76 17 78 T9 80 81 82 83 84 85 86 87 88 89 90 21 92 93 94 35 26 9 98 99 100 LOL 102 103 104 105 106 107 108 define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define define If Next TOC EUITOLL IDC_EDITO12 IDC EDITULS IDC_EDITO14 IDC EDITO4 IDC EDITIG IDC BUTTON CONECTAR IDC EDITI IDC_BUTTON_CERRAR IDC HK EDC CHK2 IDC CHK3 IDC_CHK4 IDC_CHK5 IDC_CHK6 LDC CHK IDC_CHK8 IDC CHK9 IDE
117. DatosSet m pSet CBaseDatosDIg CWnd pParent NULL standard constructor Las variables creadas son una instancia de la clase CBaseDatosSet que es hija de la clase CRecordSet y por la tanto hereda todas las propiedades m todos y eventos de dicha clase Principales miembros de la clase CRecorSet Data Members m_hstmt Contains the ODBC statement handle for the recordset Type HSTMT m_nFields Contains the number of field data members in the recordset Type UINT m_nParams Contains the number of parameter data members in the recordset Type UINT m_pDatabase Contains a pointer to the CDatabase object through which the recordset is connected to a data source m_strFilter Contains a CString that specifies a Structured Query Language SQL WHERE clause Used as a filter to select only those records that meet certain criteria m_strSort Contains a CString that specifies an SQL ORDER BY clause Used to control how the records are sorted Construction CRecordset Constructs a CRecordset object Your derived class must provide a constructor that calls this one Open Opens the recordset by retrieving the table or performing the query that the recordset represents Close Closes the recordset and the ODBC HSTMT associated with it Recordset Attributes CanAppend Returns nonzero if new records can be added to the recordset via the AddNew member function CanBookmark Returns nonzero if the recordset supports bookmarks CanRestart Returns nonzer
118. Direcciones IP din micas El problema aparece si la direcci n IP p blica es din mica asignada por el proveedor de servicios de Internet entonces el usuario del ordenador cente ae no abs EM T Y 4 a y B X Y pau y V y A y 4 q S Ne i E IE aa a Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Problema de la IP din mica La soluci n al problema de la IP din mica que se ha adoptado es la utilizaci n de un software Pos_1t que publica en Internet una p gina web donde puedes saber si el PC servidor esta conectado a la red y cual es su direcci n IP publica Una vez ya existe conexi n a Internet y ha sido asignada una IP p blica din mica por el proveedor se debe arrancar este software y entonces se queda residente en el PC el programa se encarga de publicar cada cierto tiempo una p gina web con la informaci n requerida actualizada ET SE e Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira L neas de continuaci n del Provecto e A nivel de comunicaci n mediante socket s Un socket para comandos y otro socket para datos Varios sockets para conexiones entrantes de varias aplicaciones cliente al mismo servidor y otro para los datos En visual C existe la posibilidad de crear controles en tiempo de ejecuci n con lo que podr amos crear un socket nuev
119. DlgUtils h 09 01 2002 19 29 321 else m CheckEnt4 SetCheck 0 322 Registro en la base de datos de los cambios 323 if EntlAux Entradal 324 325 InsertarRegistro Leer amp m EditEntradal MirarEstado 9 InsertarHora 326 327 328 if Ent2Aux Entrada2 DAS 330 InsertarRegistro Leer amp m EditEntrada2 MirarEstado 10 InsertarHora 331 332 333 1f Ent3Aux Entrada3 334 335 InsertarRegistro Leer amp m EditEntrada3 MirarEstado 11 InsertarHora 330 337 338 if Ent4Aux Entrada4 339 340 InsertarRegistro Leer amp m EditEntrada4 MirarEstado 12 InsertarHora 341 342 343 Enviar Estado al socket si hay cambios 344 if EntlAux Entradal Ent2Aux Entrada2 Ent 3Aux Entrada3 Ent 4Aux Entrada4 345 346 if m Socketl GetState 7 EnviarEstadoAlSck 347 348 349 350 void CProyectoBDD1g EnviarEstadoAlSck C 351 4 352 CString Estado 353 354 Estado Estado 355 356 if Salidal 1 Estado Insert 9 1 357 else Estado Insert 9 0 358 if Salida2 1 Estado Insert 11 1 359 else Estado Insert 11 0 360 if Salida3 1 Estado Insert 13 1 361 else Estado Insert 13 0 362 if Salida4 1 Estado Insert 15 1 363 else Estado Insert 15 0 364 if Salida5 1 Estado Insert 17 1 365 else Estado Insert 17 0 366 if Salida6 1 Estado Insert 19 1 367 else Estado Inse
120. E dit m_E ditE ntrada3 IDE EDITO12 CE dit m EditEntradad Bind Al IDE EDITO13 CE dit m EditlP IDE EDITUS Ci IDE EDITO CE dit m EditSalida DC EDITUS CE dit m EditSalida DC EDITOS CE dit m EditS alidad IDC EDITOS CE dit m EditS alida5 vi Description map ta CE dit member Cancel En BaseDatosSet cpp Modificar funci n GetDefaultConnect CString aux if AfxGetApp GetProfileString BD Path AfxGetApp gt WriteProfileString BD Path bdl mib AfxGetApp WriteProfileString Socket Port 888 AfxGetApp WriteProfileString Leyenda Salidal Salidal AfxGetApp WriteProfileString Socket IP 127 0 0 1 aux ODBC DRIVER MICROSOFT ACCESS DRIVER mdb DSN DBQ aux Insert aux GetLength AfxGetApp gt GetProfileString BD Path return _T aux 23 3 CString CBaseDatosSet GetDefaultConnect return Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas _T ODBC DRIVER MICROSOFT ACCESS DRIVER Agust Baub Rovira mdb DSN DBO C windows escritorio stdreg32 mdb Ed CString aux if AfxGetApp gt GetProfileString AfxGetApp gt WriteProfileString AfxGet App gt WriteProfileString BD Path Socket Port 888 5 BD Path bal mdb AfxGetApp gt WriteProfileString Leyenda Salidal Salidal AfxGetApp gt W
121. EDITS edit 1350631552 Control21 IDC STATIC static 1342308352 Control22 IDC EDIT10 edit 1350631552 Control23 IDC STATIC static 1342308352 Control24 IDC EDIT11 edit 1350631552 Control25 IDC STATIC static 1342308352 Control26 IDC EDIT12 edit 1350631552 Control27 IDC STATIC static 1342308352 Control28 IDC EDIT13 edit 1350631552 Control29 IDC STATIC static 1342308352 Control30 IDC EDITIA edit 1350631552 Control31 IDC STATIC button 1342177287 Control32 IDC STATIC button 1342177287 Control33 IDC STATIC button 1342177287 Control34 IDC EDIT15 edit 1350631552 Control35 IDC STATIC static 1342308352 Control36 IDC STATIC button 1342177287 CLS CPropiedades1D1g Type 0 HeaderFile Propiedades1Dlg h ImplementationFile PropiedadesiDig cpp BaseClass CDialog Filter D LastObject CPropiedadeslDlg VirtualFilter dWC DLG IDD CLIENTEDLG DIALOG Type 1 Class CClienteDlg ControlCount 54 ControllsIDC STATIC Lo static 1342308352 Control2 IDC STATIC button 1342177287 Control3 IDC WINSOCKI 248DD896 BB45 11CF 9ABC 0080C7E7B78D 1342242816 Control4 IDC STATIC button 1342177287 Control5 IDC STATIC static 1342308352 Control6 IDC_EDITO1 edit 1350633600 Page 7 of 16 EIS 0172002 gt 19231 ProyectoBD opt sA ea l ITZ Control7 IDC_STATIC static 1342308352 Control8 IDC_EDITOZ edtt 1350633600 Control9 IDC STATIC Static 1342308352 Cont rol1l0 IDC_EDIT0O3 edit 1350633600 Controlll IDC STATIC static 13
122. ESCOLA TECNICA SUPERIOR ENGINYERIA Fay UNIVERSITAT uz ROVIRA VIRGILI Departament d Enginyeria Electr nica El ctrica Automatica Control Remoto Mediante Comunicaciones TCP IP de Radioayudas Aeronauticas AUTOR Agustin Baubi Rovira DIRECTOR Ernest Gil Dolcet DATA Febrer 2002 gro cs cao Escola FECNICA NEM SUPERIOR A ENGINYERIA UNIVERSITAT ROVIRA 1 VIRGILE 1 MEMORIA DESCRIPTIVA e Ingeniero Superior Agust n Baub Rovira en Autom tica y Electr nica Industrial e Profesor Ponente Ernest Gil Dolcet Febrero 2002 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira e INDICE ODJCUY OS del Pr VECIO T eas l ita des UN AN K ida 2 Fundamentos sobre las Radioayudas Aeron UticaSs cccccccicicicccccccecicececococeraas 3 Configu uraci n del HardWare a 4 Conlfizuracion Intranet Local oon ncio fe era oue ke e ea DOS be napa eli a anko bet 5 Configuraci n 2 Intranet con conexi n a Internet a traves de un proxy 6 Configuraci n 3 Conexi n a Internet a trav s de ISP 7 Fundamentos de TCP IP y comunicaci n con sockets sse eee ee eee 8 Protocolos de FEU Nel aso ist iento 9 El Protocolo Internet ID sese 10 Protocolo de datagramas de usuario UDP IP cccccnnccoonnnnnnnnncnnnnnononncnnnnnnnnnnnnnononannnnnnos 11 Formato de direcciones IP Or
123. EditEstado SetWindowText m pSet gt m Estado m EditHora SetWindowText m pSet m Hora void CBaseDatosDlg BorrarCampos m_EditNombre SetWindowText m_EditEstado SetWindowText m EditHora SetWindowText a Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira 61 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas L a ABRCProyectoBDDIgUtils h funciones tiles para el di logo principal Agust Baub Rovira void CProyectoBDDlg InsertarRegistro CString Nombre CString Estado CString Hora CString aux m pSet m Nombre Nombre m pSet m Estado Estado m pSet m Hora Hora EscribirRegistro m pSet amp m BaseDatosDlgSet m pSet gt ABRAbrirBD m pSet gt ABRInsertarRegistro Nombre Estado Hora m pSet gt ABRCerrarBD CString CProyectoBDDlg InsertarHora CString Hora COleDateTime date COleDateTime GetCurrentTime Hora Format 2d 2d d 2d 2d 2d date GetDay date GetMonth date GetYear date GetHour date GetMinute date GetSecond return Hora void CProyectoBDDlg EscribirRegistro m EditNombre SetWindowText m pSet m Nombre m EditEstado SetWindowText m pSet m Estado m EditHora SetWindowText m pSet m Hora CString CProyectoBDDlg Leer CEdit Edit CString aux Edit gt GetWindowText aux return aux
124. EditIP SetWindowText m Socketl GetLocalIP AfxGet App gt WriteProfileString Socket IP m Socketl GetLocalIP m_EditPort SetWindowText AfxGetApp gt GetProfileString Socket Port m_EditPath SetWindowText AfxGetApp gt GetProfileString BD Path UpdateData FALSE 68 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira m a ABRWinsock h funciones tiles gestionar el control Winsock Se deben incluir las declaraciones de las funciones de este fichero en el fichero MSWinsockControl h void CMSWinsockControl ABRConectarSck TODO Add your control notification handler code here CString m host CString m port VARIANT vtHost VARIANT vtPort if AfxGetApp GetProfileString Socket2 IP AfxGetApp gt WriteProfileString Socket2 IPp 127 0 0 1 L if AfxGetApp gt GetProfileString Socket2 Port AfxGetApp gt WriteProfileString Socket2 Port 888 m host AfxGetApp GetProfileString Socket2 IP m port T AfxGetApp gt GetProfileString Socket2 Port m host 127 0 0 1 m port T 888 vtHost vt VT BSTR vtPort vt VT BSTR SetRemoteHost m host SetRemotePort atoi m port vtHost bstrvalem hosrt AllocSysString t vtPort bstrValem porrt AllooSyssString 0 Connect vtHost vtPort void CMSWinsockControl ABROnConnectWinsockl TODO Add
125. IDC EDITOS IDC EDITO IDC_EDITO06 IDC EDITOS IDC_EDITO4 LDC EDITOS IDC_EDITO2 IDC_EDITO1 IDC_CHECK12 IDC CHECK LO IDC_CHECK11 IDC_CHECK9 IDC_CHECK8 IDC_CHECK7 IDC_CHECK6 IDC_CHECK5 IDC CHECK4 IDC CHECKS IDC CHECK2 IDC CHECK1 IDC EDIT NOMBRE IDC EDIT HORA m EditHora IDC EDIT ESTADO m EditEstado m Staticl IDC WINSOCK1 m Socket1 m EditPath m EditPort m EditIP m EditEntrada4 m EditEntrada3 m EditEntrada2 m EditEntradal m EditSalida8 m EditSalida7 m EditSalidao m EditSalida5 m EditSalida4 m EditSalida3 m EditSalida2 m EditSalidal m CheckEnt4 m CheckEnt2 m CheckEnt3 m CheckEnt1 m CheckSal8 m CheckSal 7 m CheckSal6 m CheckSal5 m CheckSal4 m CheckSal3 m CheckSal2 m CheckSall CDialog AFX MSG MAP CProyectoBDDlg ON WM SYSCOMMAND ON WM PAINT ON WM QUERYDRAGICON ON COMMAND ID ACCIN BASEDEDATOS ID SALIDAS SALIDA ID SALIDAS SALIDAZ ID SALIDAS SALIDA ID SALIDAS SALIDAA ID SALIDAS SALIDAS ID SALIDAS SALIDAO ID SALIDAS SALIDA ID SALIDAS SALIDAS ON COMMAND ON COMMAND ON COMMAND ON COMMAND ON COMMAND ON COMMAND ON COMMAND ON COMMAND Nn M M M UM OM Page 2 of 8 m EditNombre OnAccinBasededatos OnSalidasSalidal OnSalidasSalida2 OnSalidasSalida3 OnSalidasSalida4 OnSalidasSalida5 OnSalidasSalida6 OnSalidasSalida 7 OnSalidasSalida8 09 01 2002
126. K MAP CProyectoBDDlg 2902 ON EVENT CProyectoBDD1g IDC_WINSOCK1 2 ConnectionRequest OnConnectionRequestWinsoc 383 ON EVENT CProyectoBDDlg IDC_WINSOCK1 5 Close OnCloseWinsockl VTS NONE 384 ON EVENT CProyectoBDD1g IDC_WINSOCK1 O DataArrival OnDataArrivalWinsock1 VTS I4 Page 6 of 8 ProyectoBDDlg cpp 09 01 2002 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 AFX_EVENTSINK_MAP END_EVENTSINK_MAP void CProyectoBDD1lg OnConnectionRequestWinsockl long requestID TODO Add your control notification handler code here m_Socket1 ABROnConnectionRegquestWinsockl requestID m Staticl m Socket 1 ABRConvertirEstado m Socketl GetState UpdateData FALSE Enviar Estado Inicial EnviarleyendaAlSck EnviarEstadoAlSck void CProyectoBDDlg OnCloseWinsockl TODO Add your control notification handler code here m Socket 1 ABROnCloseWinsock1l m Staticl m Socket 1 ABRConvertirEstado m Socketl GetState UpdateData FALSE m Socket 1 ABRCerrarSck m Staticl m Socket 1 ABRConvertirEstado m Socketl GetState UpdateData FALSE m Socket 1 ABREscucharSck m Staticl m Socket 1 ABRConvertirE
127. KBOX BS ICON WS_TABSTOP 46 69 10 10 salidas IDC CHECK3 Button B5 AUTOCHECKBOX BS ICON WS TABSI0P 62 69 10 10 Salida4d IDC CHECK4 Button BS_AUTOCHECKBOX BS ICON WS TABSTOP 78 69 10 10 Soli gas IDC CHECKS Button BS AUTOCHECKBOX BS ICON WS TABSTOP 94 69 10 10 5Balsdab IDOC CHECK6 Button BS AUTOCHECKBOX BS ICON WS TABSTOP 110 69 10 10 5Salida7 IDC CHECK Buttan BS5 AUTOCHECKBOX BS ICON WS TABSTOP 126 69 10 10 Salidas IDC CHECKS Button BS AUTOCHECKBOX BS ICON Wo TABESTOF 142 69 10 10 Salidas IDC STATIC 15 60 190 23 nn IDC WINSOCK1 248DD896 BB45 11CF 9ABC 0080C7E7B78D WS TABSTOP 149 34 19 17 Entradal IDC_CHECK9 Button BS_AUTOCHECKBOX BS ICON WS DISABLED W5 TABSTOP 62 93 10 0 Entradaz lDC CHROKI0 Button B5 AUTOCHECKBOX BS ICON WS DISABLED WS TAESTOP 18 35 10 LO Entradas IDC CHECK11 Button BS AUTOCHECKBOX BS ICON WS DISABLED W TABSTOP 94 953 10 10 Entradad IDC CHECK12 Button BS AUTOCHECKBOX Page 2 of 8 ProyectoBD rc 129 130 151 LIZ 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 FF e e FF FPF ja O1 O1 1 01 gt OO 10 OP WN H O O 1 O1 O1 UI On H HH Ov O Ul e O 1002 163 164 165 166 157 168 169 170 171 172 173 174 1723 176 177 Jug 179 180 181 182 183 184 Les 186 187 188 189 190 EST 192 EN
128. Las Radioayudas Aeron uticas son diferentes instalaciones equipadas con equipos electr nicos de radiofrecuencia que proporcionan a las aeronaves diferentes servicios de ayuda a la navegaci n a rea como puede ser la generaci n de las diferentes aerov as para la navegaci n VOR distancias de la aeronave a un punto de destino DME orientaci n NDB ayuda al aterrizaje ILS localizaci n RADAR etc Todas estas instalaciones est n dotadas de equipos redundantes para asegurar un funcionamiento continuo en todo momento Las principales se ales generadas por los equipos electr nicos son auto comprobadas por unos equipos monitores internos que tienen todas estas instalaciones En caso de que este monitor detecte una se al fuera de sus l mites de tolerancia conmuta autom ticamente al equipo de reserva Este sistema interno de monitorizaci n puede ser deshabilitado bypass para realizar diferentes actuaciones de mantenimiento pero mientras los equipos est n ofreciendo servicio a las aeronaves los monitores deben estar siempre habilitados Los equipos pueden estar conectados a la antena emitiendo las se ales tiles para la navegaci n o conectados a una carga para mantener los sistemas electr nicos en un estado de funcionamiento pero sin producir ninguna radiaci n Las principales se ales del equipo que se deben incluir en un control remoto de control salidas del puerto y monitorizaci n entradas del puerto son
129. Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength m EditSalida8 SetWindowText aux aux Leyenda Mid 0 Leyenda FindOneOf Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength m_EditEntradal SetWindowText aux aux Leyenda Mid 0 Leyenda FindOneOf Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength m_EditEntrada2 SetWindowText aux aux Leyenda Mid 0 Leyenda FindOneOf Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength m_EditEntrada3 SetWindowText aux aux Leyenda Mid 0 Leyenda FindOneOf Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength m_EditEntrada4 SetWindowText aux void CClienteDlg ActualizarPuerto if salidal 1 m ChkSall SetCheck 11 else m ChkSall SetCheck 0 if Salida2 1 m ChkSalz S tCheck 1 else m ChkSal2 SetCheck 0 if Salida3 1 m ChkSal3 SetCheck 1 else m ChkSal3 SetCheck 0 if Salida4 1 m ChkSal4 SetCheck 1 else m ChkSal4 SetCheck 0 if Salida5 1 m ChkSal5 SetCheck l else m ChkSal5 SetCheck 0 if Salida6 1 m ChkSal6 SetCheck 1 else m ChkSal6 SetCheck 0 if Salida7 1 m ChkSal7 SetCheck 1 else m ChkSal7 SetCheck 0 if Salida8 1 m ChkSal8 SetCheck 1 else m ChkSal8 SetCheck 0 if Entradal 1 m ChkEntl SetCheck 1 else m ChkEntl SetCheck 0 if Entrada2 1 m ChkEnt2 SetCheck 1 else m ChkEnt2 SetCheck 0
130. Modern resources if defined AFX_RESOURCE_DLL defined AFX_TARG_ESN ifdef _WIN32 LANGUAGE LANG SPANISH SUBLANG SPANISH MODERN pragma code page 1252 endif WIN32 ifdef APSTUDIO INVOKED PITTI EPI TT ITA e LE III AD VAA L F A 17 TEXTINCLUDE TA 1 TEXTINCLUDE DISCARDABLE BEGIN resource hi0 END 2 TEXTINCLUDE DISCARDABLE BEGIN include afsres h p n i END 3 TEXTINCLUDE DISCARDABLE BEGIN define AFX NO SPLITTER RESOURCESNrMn define AFX NO OLE RESOURCES Nr An define AFX NO TRACKER RESOURCES Nr An define AFX NO PROPERTY RESOURCES NrMn X rn tif defined AFX RESOURCE DLL defined AFX TARG ESP r n ifdef WIN32NrMn LANGUAGE 10 3 r n pragma code page 1252 r n endif _WIN32 r n include resiNProyectoBD rc2 non Microsoft Visual C edited resources r n include l esniVvarlxres ro Standard components r n tendif r n Tga END endif APSTUDIO INVOKED VETA ESTAN AAS F FL PLV AV A NJ AI FV FLA AE L ESANS EE Icon Page 1 of 8 ProyectoBD rc 65 66 67 68 69 70 FL T2 73 74 75 76 y 78 T9 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 35 26 97 98 99 100 LOL 102 103 104 105 106 LO 108 109 LIO 111 ILZ 113 114 LILA 116 117 118 LLY 120 AL 122 123 124 125 126 127 128 09 01 2002 19 31 Icon with lowest ID value placed first to ensure application icon remain
131. RA EAE A BA CProyectoBDDlg dialog class CBaseDatosSet class CBaseDatosDlg include PropiedadesiDig h include ClienteDlg h Crear variable CPuertoParalelo PuertoParalelo void EscribirRegistro fin de las declaraciones CPuertoParalelo PuertoParalelo int Salidal int Salida2 34 A adir a CProyectoBDDlg funciones de servidor Insertar Control Winsock a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Project gt Add to Project gt Components and Controls gt Registered ActiveX Controls gt Microsoft Winsock Control Components and Controls Gallery Choose a component to insert into your project Microsoft Treeview Control version 5 0 SF2 Microsoft UpD own Control version 5 0 SPZ Microsoft UpDown Control version 6 0 Microsoft Winsock Control version 6 0 Microsoft Works Calendar AND aut vent Control Microsoft Works Calendar 4ppContral x Microsof ix Micrasof ix Micrasof ix Micrasof ix Microzot ix Microsot Agusti Baubi Rovira Microsoft Winsock Control TA Microsoft WW inS ock Control version EO Inl Path to control CAWINDOW SAS TS TEMSMSWINSEK OCX Insertar control CMS WinsockControl al di logo principal IDD PROYECTOBD DIALOG ProyectoBD ER A L m xi A HACER Colocar aqu controles de cuadro de di logo Edit E dit Edit As abl ES Edi Edi al Edi E En E dit s
132. S DIALOG DIALOG DISCARDABLE 0 O 217 188 STYLE DS_MODALFRAME WS_POPUP WS_CAPTION WS_SYSMENU Page 3 of 8 ProyectoBD rc 193 194 195 196 197 LJ 199 200 201 202 20 9 204 ZOS 206 207 203 209 210 ZIL 212 213 214 215 216 217 218 219 220 221 222 223 224 222 226 227 228 229 230 2341 232 233 234 233 236 237 2385 239 240 No ONN N ds A A H NO O1 O1 UI Oe A A A H OY A BF C0 N F O O 0 TO OB WN R O1 N NM NO NO ND NH HM NM NN PND O1 O1 CAPTION Propiedades FONT 8 BEGIN END DEFPUSHBUTTON PUSHBUTTON LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT GROUPBOX GROUPBOX GROUPBOX EDITTEXT LTEXT GROUPBOX MS Sans Serif OK LDOK 102 26 750 14 Cancel IDCANCEL 1 55 167 50 14 IDC_STATIC 7 22 10 10 IDC_EDIT1 16 20 87 12 ES_AUTOHSCROLL 2 IDC_STATIC 7 36 10 10 IDC_EDIT2 16 34 87 12 ES_AUTOHSCROLL 3 IDC_STATIC 7 50 10 10 IDC EDIT3 16 48 87 12 ES AUTOHSCROLL Ag IDO STATIC T7 64 10 10 IDC EDIT4 16 62 87 12 ES AUTOHSCROLL 5 IDC_STATIC 7 78 10 10 IDC_EDIT5 16 76 87 12 ES_AUTOHSCROLL 6 IDE STATIC ft 92 10 10 IDC EDIT6 16 90 87 12 ES AUTOHSCROLL 7 IDC STATIC 1 106 10 L IDC EDIT7 16 104 87 12 ES AUTOHSCROLL 029 IDE SIATIC 1 120 LO 10
133. S ald Wace IOC CHECKS CButton m CheckSal5 J paste Colin IDC CHECKE CButton m Lheck5 alb SUR IDC CHECK CButton m CheckSal Bird ed IDL CHECES Button m Check5 ale IDE CHELES CEutton m CheckEnt IDC EDIT ESTADO CE dit m EditEstada IDC EDIT HORA CE dit m EditHara IDC EDIT NOMBRE CE dit m Editkilombre IDC_STATICI CString m Static Description map to CEutton member En el di logo principal en CProyectoBDDlg IDD PROYECTOBD DIALOG Anadir 15 EditBox A HACER Colocar aqu controles de cuadro de di logo Edit Edit E dit JE dit Edit JE dit JE dit MET E dit E dit E dit Est Na Edit a E dit Edit seme En anal Crear variables Cla ssWizard gt Member variables IDC EDITOI CEdit m EditSalidal n n n IDC EDITOS CEdit m EditSalida 8 24 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira IDC EDITO9 CEdit m_EditEntradal IDC EDITOI2 CEdit m_EditEntrada4 IDC EDITOIS CEdit m EditIP IDC EDITUI4 CEdit m EditPort IDC EDITOI5 CEdit m EditPath HFC Classwizand E Message Map Member Variables Automation Activex Events Class Info Project Class name Add Class T ProyectoBD CProyectoBDDla f Add Variable cA ProyectoBODlg h a APrayectoBD Dlg cpp Control ID s Type Member Delete Variable IDE EDITO CE dit m_EditSalida IDC EDITOIO CE dit m_E ditE ntrada2 Jpuate Columns IDC EDITO C
134. STATIC static 1342308352 Control6 IDC_EDIT2 edit 1350631552 Control7 IDC_STATIC static 1342308352 Control8 IDC_EDIT3 edit 1350631552 Control9 IDC_STATIC static 1342308352 Control10 IDC_EDIT4 edit 1350631552 Control11 IDC_STATIC static 1342308352 Controll2 IDC EDIT5 edit 1350631552 Controll13 IDC STATIC Static 1342308352 Controll4 SIDC EDITO edit 1350631552 Control15 IDC STATIC static 1342308352 Controll6 IDC EDIT7 edit 1350631552 Controll7slDC STATIC static 1342308352 Controll8 IDC EDIT8 edit 1350631552 Controll9 IDC STATIC static 1342308352 Control20 IDC EDIT9 edit 1350631552 Control21 IDC STATIC static 1342308352 Control22 IDC EDIT10 edit 1350631552 Control23 IDC STATIC static 1342308352 Control24 IDC EDIT11 edit 1350631552 Control25 IDC STATIC static 1342308352 Page 1 of 16 G9IFO1 2002 19231 ProvectoBb opt 65 66 67 68 69 70 TT T 3 74 L 76 74 78 19 80 81 82 83 84 85 86 87 88 89 90 91 TA 23 94 25 96 97 98 29 100 101 LUZ 103 104 TUS 106 107 108 109 LEO LLT LEZ A 114 115 116 117 118 119 120 kal TAZ LS 124 WAS 126 L2 128 Control26 IDC EDIT12 edit 1350631552 Contr l2 IDC STATIC static 1342308352 Control28 IDC EDIT13 edit 1350631552 Control29 IDC STATIC static 1342308352 Control30 IDC EDIT14 edit 1350631552 Control31 IDC STATIC button 1342177287 Control32 IDC STATIC button 1342177287 Control33 IDC STATIC button 1342177287 Control
135. String SetWindowText AfxGetApp GetProfileString SetWindowText AfxGetApp GetProfileString AfxGetApp GetProfileString AfxGetApp GetProfileString AfxGetApp GetProfileString AfxGet App gt GetProfileString m Socketl GetLocalIP 8 of 8 Leyenda Leyenda Leyenda Leyenda Leyenda Leyenda Leyenda Leyenda Socket TP m Socketl GetLocalIP Leyenda Entradal Leyenda Entrada2 Leyenda Entrada3 Leyenda Entrada4 09 01 2002 19 29 salida Salida Salidas Salida4 Salida5 E Salida6 Salida Salidas 7 E k GGOCKET Port BD Path ABRdb h 09 01 2002 19 29 1 void CBaseDatosSet ABRAbrirBD 2 4 3 m pSet amp m BaseDatosDlgSet 4 if IsOpen 5 Close 6 4 Open 8 3 10 11 void CBaseDatosSet ABRCerrarBD 12 4 13 if IsOpen 14 Close 1 15 16 3 17 18 void CBaseDatosSet ABRUltimoRegistro 19 20 if IsOpen amp amp ISEOF 21 Movelast 22 23 24 25 26 void CBaseDatosSet ABRPrimerRegistro 27 A 28 if IsOpen amp amp ISBOF 29 MoveFirst 30 31 32 33 34 void CBaseDatosSet ABRSiguienteRegistro 35 4 36 37 if IsOpen amp amp ISEOF amp amp ISBOF 38 MoveNext 39 40 i
136. String CClienteDlg MirarEstado int nSal CString out switch nSal case l if Salidal our g else out 1 Salidal Salidal break case 2 if Salida2 out 0 else out 1 Salida2 Salida2 break Case 3 if Salidas out 0 else out 1 Salida3 Salida3 break case 4 if Salida4 out 0 else out 1 Salida4 Salida4 break case 5 if Salida5 out 0 else out 1 Salida5 Salida5 break case 6 if Salida6 out 0 else out 1 Salida6 Salida6 break Case 7 1f Salida7 out 0 else out 1 Salida7 Salida7 break case 8 if Salida8 out 0 else out 1 Salida8 Salida8 break case 9 if Entradal out 0 else out 1 break case 10 if Entrada2 out 0 else out 1 break 75 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira E i i case 11 if Entrada3 out 0 else out 1 break case 12 if Entrada4 out 0 else out 1 break default return NULL return out void CClienteDlg LeerEntradasPuerto int Ent lAux int Ent2Aux int Ent3Aux int Ent4Aux Guardar Entradas anteriores EntlAux Entradal Ent2Aux Entrada2 Ent3Aux Entrada3 Ent4Aux Entrada4 Actualizar las entradas Entradal PuertoParalelo Entradal Entrada2 PuertoParalelo Entrada2 Entrada3 PuertoParalelo Entrada3 Ent rada4 PuertoParalelo Entrada4 Actualizar Entradas en el di
137. TATIC static 1342308352 Control26 IDC EDIT12 edit 1350631552 Control27 IDC STATIC static 1342308352 Control28 IDC EDIT13 edit 1350631552 Control29 IDC STATIC static 1342308352 Control30 IDC EDITIA edit 1350631552 Control31 IDC STATIC button 1342177287 Control32 IDC_STATIC button 1342177287 Control33 IDC_STATIC button 1342177287 Control34 IDC_EDIT15 edit 1350631552 Control35 IDC_STATIC static 1342508352 Control36 IDC_STATIC button 1342177287 CLS CPropiedades1D1lg Type 0 HeaderFile Propiedades1Dlg h ImplementationFile PropiedadesiDig cpp BaseClass CDialog Filter D LastObject CPropiedadeslDlg VirtualFilter dWC DLG IDD_CLIENTEDLG DIALOG Type 1 Class CClienteDlg ControlCount 54 Controll IDC STATICI1 static 1342308352 ControlZsIDC STATIC button 1342177287 Control3 IDC WINSOCKI 248DD896 BB45 11CF 9ABC 0080C7E7B78D 1342242816 Control4 IDC STATIC button 1342177287 Control5slIDO STATIC static 1342308352 Contr6 6 IDC EDITOI edit 1350633600 Control IDC STATIC Static 13423083592 Control8 IDC_EDITO2 edit 1350633600 Control9 IDC STATIC Static 1342308352 Control10 IDC EDITO3 edit 1350633600 Controll1 IDC STATIC static 1342308352 Controll2 IDC EDITO4 edit 1350633600 Controll13 IDC STATIC Statio l342308352 Controll14 IDC EDITO5 edit 1350633600 Control15 IDC STATIC static 1342308352 Controll6 IDC EDITO6 edit 1350633600 Control IDC STATIC stat Ce 1342308352 Control18 IDC_EDIT07 edit 13506
138. TEDLG DIALOG Type 1 Class CClienteDlg ControlCount 54 Controll IDC STATICI1 static 1342308352 Control2 IDC_STATIC button 1342177287 Control3 IDC WINSOCKTI 2490DD896 BB45 11CPF 9ABC 00900C7BE7BJ7S9D 13422429106 Control4 IDC_STATIC button 1342177287 Control5 IDC_STATIC static 1342308352 Control 6 1ID EDITOUL egd1it 1350633600 Control IDC STATIC static 1342308352 Control8 1DC_EDITOZ edit 1350633600 Control9 IDC_STATIC static 1342308352 Controll10 ID _EDITOS edit 1350633600 Controlll IDC STATIC static 1342308352 Page 14 of 16 09 0171 Z2002 19231 ErovectoBb opt 897 898 899 900 01 902 LO WU wW XO XO XO lO WO WO WO A A A A A A A A A BA to O TO OF WN E LO DN O JT OT OT C w N H O O1 O1 O O 0 O WO O WO WO WO O O1 O V O IO Ow OY Ol Controll2erpDc EDITO4 edit 1350633600 Control13 IDC_STATIC static 1342308352 Controll4 IDC EDITO5 edit 1350633600 Control L5 1DeC STATIC static 1342308352 Cont rol16 IDC_EDIT0O6 edit 1350633600 Control IDC STATIC Static 1342308352 ControllS rDC EDITO7 edit 1350633600 Controll9 IDC STATIC static 1342308352 ControlZ0 IDC EDITOUS edit 1350635600 Control l IDC STATIC Static 1342308352 Control22 IDC EDIT09 edit 1350633600 Control23 IDC STATIC static 1342308352 Control24 IDC EDITO10 edit 1350633600 Control25 IDC STATIC static 1342308352 Control26 IDC EDITO11 edit 1350633600 Cont rol27 I DC STATIC static 1342
139. TIC static 1342308352 Control4 IDC EDIT1 edit 1350631552 Control5 IDC STATIC static 1342308352 Control6 IDC EDIT2 edit 1350631552 Control IDC STATIC static 1342308352 Control8 IDC EDIT3 edit 1350631552 Control9 IDC_STATIC static 1342308352 ConbrollO0sSIDC EDIT4 edit 1350631552 Controll1 IDC STATIC static 1342308352 Controll2 IDC EDIT5 edit 1350631552 Control13 IDC_STATIC static 1342308352 Controli4 LDC EDIT6 edit 1350631552 Controll15 IDC STATIC static 1342308352 Controll6 IDC EDIT7 edit 1350631552 Controll7 IDC STATIC static 1342308352 Controll8 IDC EDIT8 edit 1350631552 Controll9 IDC STATIC static 1342308352 Control20 IDC EDIT9 edit 1350631552 Control21 IDC STATIC static 1342308352 Control22 IDC EDIT10 edit 1350631552 Control23 IDC STATIC static 1342308352 Control24 IDC EDIT11 edit 1350631552 Control25 IDC STATIC static 1342308352 Control26 IDC EDIT12 edit 1350631552 Control2 IDC STATIC static 1342308352 Control28 IDC EDIT13 edit 1350631552 Control29 IDC STATIC static 1342308352 Control30 IDC EDITIA edit 1350631552 Control31 IDC STATIC button 1342177287 Control32 IDC STATIC button 1342177287 Control33 IDC STATIC button 1342177287 Control34 IDC EDIT15 edit 1350631552 Control35 IDC STATIC static 1342308352 Control36 IDC STATIC button 1342177287 CLS CPropiedades1D1lg Type 0 HeaderFile Propiedades1Dlg h ImplementationFile PropiedadesiDig cpp BaseClass CDialog Filter D Page 12 of 16
140. TO6 edit 1350633600 Controll7 IDC STATIC static 1342308352 Control18 IDC_EDITO7 edit 1350633600 Controll9 IDC STATIC static 1342308352 Control20 IDC EDIT08 edit 1350633600 ControlzlslDC STATIC static 1542508352 Control22 IDC_ BD1T705 8d10 1350633600 Control23 IDC STATIC static 1342308352 COntrolz24 TDE _EDIT010 edi tt 1350633600 Control25 IDC STATIC static 1342308352 Controlz6 IDC EDTTOLL edit 1350633600 Control27 IDC_STATIC Static 1342308352 ControlzZ8 1DC _EDITOLZ ed1t 1350633600 Control29 IDC STATIC static 1342308352 Control 30 TDE EDTTOT3 dit 1350651552 Control 3 l IDE STATICE static 1342308352 Control32 IDC EDITOI4 edit 1 ax Control35 IDC STATIC static 1342308352 Control36 IDC EDIT16 edit 1352730756 Control37 IDC STATIC button 1342177287 Control38 IDC BUTTON CONECTAR button 1 Control39 IDC_STATIC static 1342308352 Control40eSTDC EDIT edit 1352730756 Control41 IDC BUTTON CERRAR button 134 Control42 DC STATIC button 1342177287 Control43 IDC_CHK1 button 1342242883 Control44 IDC CHK2 button 1342242883 Control45 IDC_CHK3 button 1342242883 Cont rol46 IDC_CHK4 button 1342242883 Control4 IDC CHK5 button 1342242883 Control48 1DC_CHAK6 button 1342242883 Control 49 IDC_CHK7 button 1342242883 342242816 2242816 Page 4 of 16 G9IFO1 2002 19231 EroveoctoBb opt 237 ADO 299 260 261 262 265 264 465 266 2 64 268 269 2 0 ed 27 2 2 43 274 24
141. WINSOCK1 l 64 Column2 Estado 1 64 Column3 Hora 1 64 DLG IDD PROPIEDADES DIALOG Type 1 Class CPropiedadeslDlg ControlCount 36 Control1 IDOK button 1342242817 Control2 IDCANCEL button 1342242816 Control 3 TNHE STATIC static 1342308352 Control4 IDC EDIT1 edit 1350631552 Control5 IDC STATIC static 1342308352 Control6 IDC EDIT2 edit 1350631552 Control IDC STATIC static 1342308352 Control8 IDC EDIT3 edit 1350631552 Control9 IDC_STATIC static 1342308352 Controll0 IDE EDITA edit 1350631552 Control11 IDC_STATIC Static 1342508352 Controll2 IDC EDIT5 edit 1350631552 Controll13 IDC STATIC static 1342308352 Control1l4 IDC_EDIT6 edit 1350631552 Control l5 DC STATIC static 1342308352 Control 6 1 DC EDIT7 edit 1350631552 Contro117 IDC_STATIC static 1342308352 Controll8 IDC EDIT8 edit 1350631552 Controll9 IDC STATIC static 1342308352 Control20 IDC EDI TS edit 1350631552 Control21 IDC STATIC Stat10 1342308352 Control 22 DC EDIT10 edit 1350631552 Control23 IDC STATIC static 1342308352 Control24 IDC EDITI1T dit 1350631552 Control25 IDC STATIC static 1342308352 Control26 IDC EDIT12 edit 1350631552 Control LDC STATIC static 1342308352 Contro128 IDC_EDIT13 edit 1350631552 Control29 IDC STATIC static 1342308352 Control30 IDC EDIT14 edit 1350631552 Control31 IDC STATIC button 1342177287 Control32 IDC STATIC button 1342177287 Control33 IDC STATIC button 1342177287 Page 3 of 16
142. a Formato de direcciones IP Orden de los bytes en red Ya sabemos que las direcciones IP son de 32 bits Esto significa que pueden coexistir en Internet 2 m s de cuatro billones m quinas con direcci n un voca aunque esto no es del todo cierto Parte de la direcci n identifica la LAN en la que reside la computadora anfitri n y parte de ella identifica a la computadora anfitri n host dentro de la red La mayor a de direcciones IP son direcciones clase C cuyo formato es el que se muestra a continuaci n 110 Identificador Identificador de de red computadora anfitri n 1 bits B bits Esquema de una direcci n IP clase C As pues pueden existir poco m s de dos millones de redes y que cada una de dichas redes puede tener 25 256 computadoras direccionables Las direcciones IP de la clase A y clase B que admiten m s computadoras en una red est n agotadas Los responsables de Internet han admitido que existe carencia de direcciones IP por lo que han propuesto un nuevo est ndar el protocolo IP siguiente generaci n IPng que define un nuevo formato de datagrama IP que utiliza direcciones de 128 bits en lugar de 32 bits Con IPng se puede por ejemplo asignar una direcci n Internet nica a cada interruptor el ctrico de nuestra casa para que podamos apagar la luz de nuestro dormitorio desde nuestro ordenador port til y desde cualquier lugar del mundo A n no hay una fecha concreta para la entrada en funcionamiento
143. a OnInitDialog de la clase CPropiedades1Dlg Se abre la base de datos y se buscan todos los registros que contiene e Luego se ejecuta la funci n OnPaint que escribe el ltimo registro en los EditBox Ahora la aplicaci n queda a la espera de que el usuario realice alguna acci n sobre el dialogo del Propiedades e Sin se act a sobre alg n Bot n del di logo ejecuta la funci n OnButtonX y se realiza la funci n que indica e Si se modifica el contenido de alg n EditBox se puede actualizar el registro correspondiente utilizando el bot n que corresponde despu s de la modificaci n En cualquier momento se puede regresar al di logo principal dejando es di logo abierto o cerrarse como cualquier ventana de Windows 32 E i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Di logo Propiedades Propiedades Leyenda Entradas 1 Equipo ON OFF 4 Alarma de Mantenimiento Conexi n IF 127001 Port 1888 rc Leyenda Salidas 1 Equipo P ON en antena 2 Equipo P ON en carga 3 Equipo P OFF 4 Equipo 5 ON en antena _ 5 Equipo S ON en carga __ 7 Monitores Bypass gt U g Reset Alarma Mito O Baze de Datos Pat bd mdb E Cancel Agust Baub Rovira e Al arrancar el di logo la primera funci n que se ejecuta es la OnInitDialog de la clase CPropiedades1Dlg Se captura del registro de Windows la informaci n d
144. a aplicaci n ya esta lista para se ejecutada en el ordenador instalado Menu Inicio gt Programas gt ABRProyectoBD gt ProyectoBD La instalaci n se realiza de la misma manera para el PC servidor y para el PC cliente Si una vez instalado el programa este no funcionase correctamente es que falta alguno de los requisitos mencionados anteriormente En el disco de instalaci n se han a adido todos los ficheros necesarios para que el programa pueda ejecutarse en el sistema donde falten alguno de los componentes necesarios e Para registrar el control copiar el fichero mswinsockcontrol ocx en c windows system32 y ejecutar regsvr32 exe c windows system32 mswinsockcontrol ocx e Para instalar el controlador ODBC de Microsoft Data Access ejecutar el fichero Mdac_es exe Esto instalar el fichero Mdac_typ exe en espa ol en cNpdk SpanishWMidac typ exe ejecutarlo y seguir los pasos de la instalaci n este fichero a ade las librerias necesarias para ODBC e Para instalar el Mdac_es exe puede ser necesario tener instalado el fichero DCOM9S exe que carga controladores para dar soporte de comunicaci n entre los controles ActiveX 78 SUPERIOR ENGINYERIA UNIVERSITAT ROVIRA 1 VIRGILE 3 MANUAL DE USUARIO e Ingeniero Superior Agust n Baub Rovira en Autom tica y Electr nica Industrial e Profesor Ponente Ernest Gil Dolcet Febrero 2002 y Control remoto mediante comunicaci n TCP IP de Radioayudas A eron uticas
145. a el di logo cliente 72 Instalaci n de la aplicaci n ProyectoBD exe sss 78 a Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Li Realizacion de la base de datos del proyecto Utilizaremos una base de datos creada en Microsoft Access para realizar un hist6rico de los diferentes sucesos que se producen durante la ejecuci n de la aplicaci n La base de datos esta formado por una tabla llamada Historico con tres campos Nombre campo donde se registran el tipo de suceso que se ha producido Estado campo donde se registra el estado final de la o las entradas y salidas al producirse el suceso Hora campo donde se registra la hora en la cual se registra el suceso Microsoft Access Archive Bree s Insertar Borate Registros Herramientas Ventana Y AA Mu ye aaa 9 n B pan bb IEEE pepe de Formula Informes P ginas Macros M dulos Registro 14 lt Los diferentes sucesos que pueden aparecer son Inicio de la Base de datos Cuando se realiza el primer registro de la base de datos Se abre di logo de Salidas Cuando se ejecuta la aplicaci n del proyecto En el campo estado se registra el estado en el que se activan todas las salidas y entradas Se cierra di logo de Salidas Cuando se cierra la aplicaci n del proyecto En el campo estado se registra el estado en el que se quedan todas las salidas y entradas Ag
146. a3 IDC EDITA CString m EditS alida4 IDC EDITS UString m Edits alida Description CString with length validation Maximum Characters En Propiedades1Dig cpp Insertar en funci n OnOk Classwizard gt MessageMap IDOK gt BN_CLICKED gt Add Function gt EditCode UpdateData TRUE AfxGetApp WriteProfileString Leyenda Salidal m EditSalidal AfxGetApp WriteProfileString Leyenda Salida8 m EditSalidas AfxGetApp WriteProfileString Leyenda Entradal m EditEntradal AfxGetApp WriteProfileString Leyenda Entrada4 m EditEntrada4 AfxGetApp WriteProfileString Socket IP m EditIP AfxGetApp WriteProfileString Socket Port m EditPort AfxGetApp WriteProfileString BD Path m EditPath void CPropiedades1D1g OnOK TODO Add extra validation here UpdateData TRUE AfxGetApp gt WriteProfileString Leyenda Salidal m EditSalidal AfxGetApp gt WriteProfileString Leyenda Salida2 m EditSalida2 AfxGetApp gt WriteProfileString Leyenda Salida3 m_EditSalida3 AfxGetApp gt WriteProfileString Leyenda Salida4 m EditSalida4 AfxGetApp L gt WriteProfileString Leyenda Salida5 m EditSalida5 AfxGetApp gt WriteProfileString Leyenda Salida6 m_EditSalida6 41 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira AfxGetApp gt WriteProfi
147. aArrivalWinsock bytes Total m Staticl Recibido m Staticl Insert m Staticl getLength m Socketl Dato UpdateData FALSE if m_Socketl Dato Salidal OnSalidasSalidal if m_Socketl Dato Salida amp OnSalidasSalida void CProyectoBDDlg OnDataArrivalWinsockl long bytesTotal TODO Add your control notification handler code here m Socket1 ABROnDataArrivalWinsock1 bytesTotal m Staticl Recibido m Staticl Insert m Staticl GetLength m Socketl Dato UpdateData FALSE if m Socketl Dato Salidal OnSalidasSalidal if m Socketl Dato Salida2 OnSalidasSalida2 if m Socketl Dato Salida3 OnSalidasSalida3 if m Socketl Dato Salida4 OnSalidasSalida4 if m Socketi Dato Salida5 OnSalidasSalida5 if m Socketi Dato Salida6 OnSalidasSalida6 if m Socketl Dato Salida7 OnSalidasSalida7 if m Socketl Dato Salida8 OnSalidasSalida8 Insertar funci n OnTimer UINT nIDEvent Classwizard gt MessageMap CProyectoBDDlg gt WM_TIMER gt Add Function gt EditCode LeerEntradasPuerto void CProyectoBDDlg OnTimer UINT nIDEvent TODO Add your message handler code here and or call default LeerEntradasPuerto CDialog OnTimer nIDEvent Realizar CTRL F5 para compilar hasta aqu el proyecto 39 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a A adir a CProyectoBDDlg un dialogo
148. ada4 CBaseDatosSet m pSet CBaseDatosSet m BaseDatosDlgSet CBaseDatosDlg m_pBaseDatosDlg 27 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a Preparar la clase CProyectoBDDlg para utilizar funciones propias A adir a ProyectoBDDig h las declaraciones de las funciones de ABRCProyectoBDDlg Utils h tiles para el di logo principal del proyecto class CProyectoBDDlg public CDialog Construction public CProyectoBDDlg CWnd pParent NULL standard constructor incicio de las declaraciones void EnviarLeyendaAlSck void ImprimirLeyenda int m nTimerl void LeerEntradasPuerto void EnviarEstadoAlSck void GuardarSalidas CString Leer CEdit Edit CString MirarEstado int nSal void InicializarSalidas void InsertarRegistro CString Nombre CString Estado CString Hora CString InsertarHora void EscribirRegistro void ActualizarPuerto fin de las declaraciones int Salidal int Salida2 A adir a ProyectoBDDlg cpp include ABRCProyectoBDDIgUhtils h ProyectoBDDlg cpp implementation file include stdafx h include ProyectoBD h include ProyectoBDDlg h include BaseDatosDlg h include ABRCProyectoBDDIgUtils h ifdef DEBUG define new DEBUG_NEW undef THIS FILE static char THIS FILE FILE endif Debe estar copiado el fichero ABRCProyectoBDDIgUtils h en la carpeta del proyecto fich
149. al3 SetCheck 1 PuertoParalelo Salida3 0 m_CheckSal3 SetCheck 0 if Salida4 1 PuertoParalelo Salida4 1 m_CheckSal4 SetCheck 1 PuertoParalelo Salida4 0 m_CheckSal4 SetCheck 0 if Salida5 1 PuertoParalelo Salida5 1 m CheckSal5 SetCheck 1 PuertoParalelo Salida5 0 m CheckSal5 SetCheck 0 if Salidab 1 PuertoParalelo Salida6 1 m CheckSal6 SetCheck 1 PuertoParalelo Salida6 0 m CheckSal6 SetCheck 0 if Salida7 1 PuertoParalelo Salida7 1 m CheckSal7 SetCheck 1 PuertoParalelo Salida7 0 m CheckSal7 SetCheck 0 if Salidat i PuertoParalelo Salida8 1 m CheckSal8 SetCheck 1 PuertoParalelo Salida8 0 m CheckSal8 SetCheck 0 Enviar Nuevo Estado al Socket if m Socketl GetState 7 EnviarEstadoAlsSck void CProyectoBDDlg LeerEntradasPuerto 65 da4 Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas int EntlAux int Ent2Aux int Ent3Aux int Ent4Aux Guardar Entradas anteriores EntlAux Entradal Ent 2Aux Entrada2 Ent 3Aux Entrada3 Ent 4Aux Entrada4 Actualizar las entradas Entradal PuertoParalelo Entradal Entrada2 PuertoParalelo Entrada2 Entrada3 PuertoParalelo Entrada3 Entrada4 PuertoParalelo Entrada4 Actualizar Entradas en el dialogo if Entradal 1 m CheckEnt1 SetCheck else m CheckEnt1 9 if Entrada2 1 m else m CheckEnt2 SetCheck 0 if Entrada3 1
150. alelo 33 void GuardarSalidas 38 CString Leer CEdit Edit 39 CString MirarEstado int sal 40 void InicializarSalidas 41 void InsertarRegistro CString Nombre CString Estado 42 CString InsertarHora 43 void EscribirRegistro 44 45 int Salidal 46 int Salida2 47 int Salida3 48 int Salida4 49 int Salida5 50 int Salida 5i int Salida 52 int Salida8 53 int Entradal 54 int Entrada 55 int Entrada3 56 int Entrada4 57 58 CBaseDatosSet m_BaseDatosDlgSet 59 CBaseDatosSet m pSet 60 61 CBaseDatosDlg m_pBaseDatosDlg 62 CBaseDatosDlg BaseDatosDlg 63 64 CProyectoBDD1g CWnd pParent NULL standard constructor Page 1 of 3 ProvectoBLDig h 65 66 67 68 69 70 71 T2 13 74 Ja 76 77 78 19 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 35 26 2 98 99 100 LOL 102 103 104 105 106 107 108 109 LLU 111 LIZ 113 114 LILA 116 117 118 LLY 120 AL 122 123 124 125 126 127 128 Dialog Data AFX_DATA CProyectoBDD1g enum IDD IDD PROYECTOBD DIALOG 1 CEdit m EditPath CEdit m EditPort CEdit m EditIP CEdit m EditEntrada4 CEdit m EditEntrada3 CEdit m EditEntrada2 CEdit m EditEntradal CEdit m EditSalida8 CEdit m EditSalida7 CEdit m_EditSalida6 CEdit m EditSalida5 CEdit m EditSalida4 CEdit m EditSalida3 CEdit m EditSalida2 CEdit m EditSalidal CButton m_CheckEnt4 CButton m CheckEnt2 CButton m CheckEnt3 CButton m CheckEntl
151. alida3 m_Socket2 ABREnviarSck Salida3 Escribir amp m_EditEnviado Leer 8m_EditSalida3 else m ChkSal3 SetCheck 0 void CClienteDlg OnChk4 TODO Add your control notification handler code here if m Socket2 GetState 7 51 a a Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Salida4 Salida4 m Socket2 ABREnviarSck Salida4 Escribir amp m EditEnviado Leer amp m EditSalida4 else m_ChkSal4 SetCheck 0 void CClienteDlg OnChk5 TODO Add your control notification handler code here if m_Socket2 GetState 7 Salida5 Salida5 m Socket2 ABREnviarSck Salida5 Escribir amp m EditEnviado Leer amp m EditSalida5 else m ChkSal5 SetCheck 0 void CClienteDlg OnChke6 TODO Add your control notification handler code here if m_Socket2 GetState 7 Salida6 Salida6 m_Socket2 ABREnviarSck Salida6 Escribir amp m_EditEnviado Leer 8m_EditSalida6 else m_ChkSal6 SetCheck 0 void CClienteDlg OnChk7 TODO Add your control notification handler code here if m Socket2 GetState 7 Salida7 Salida7 m_Socket2 ABREnviarSck Salida7 Escribir amp m EditEnviado Leer amp m EditSalida 7 else m ChkSal7 SetCheck 0 void CClienteDlg OnChk8 TODO Add your control notification handler code here if m Soc
152. alizar p ginas web que se ejecutan sobre la maquina servidor Con esto se puede conseguir que todo el potencial que presentan los socket s se pueda utilizar desde cualquier m quina con cualquier sistema operativo con posibilidad de navegar por Internet o intranet indiferentemente del navegador que utilice e Posibilidad de utilizaci n de password s de acceso a la aplicaci n para que solo usuarios registrados puedan conectarse y tener acceso a la aplicaci n e Posibilidad de encriptar la informaci n que enviamos a la red para evitar posibles usos de informaci n capturada desde la red 40 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a A nivel de funcionalidad de la aplicaci n servidor en nuestro proyecto se ha optado por el control del puerto paralelo con lo que ya se obtienen una amplia gama de funciones en muchos campos e Se podr a a adir el control de alguna c mara de video que publique las im genes en Internet A trav s de nuestra aplicaci n podr amos controlar la direcci n selecci n zoom etc e Otra posibilidad con lo que se aumentar a mucho la capacidad de nuestras aplicaciones ser a la comunicaci n mediante RS232 de nuestra aplicaci n con un microcontrolador externo o un PLC Con esto podr amos aprovechar todas las posibilidades del microcontrolador elegido y controlarlas desde una aplicaci n en un PC remoto A partir de aqu se puede realizar una red
153. alogo if Entradal 1 m_CheckEnt1 SetCheck 1 else m CheckEnt1 SetCheck 0 if Entrada2 1 m CheckEnt2 SetCheck 1 else m CheckEnt2 SetCheck 0 if Entrada3 1 m CheckEnt3 SetCheck 1 else m CheckEnt3 SetCheck 0 if Entrada4 1 m CheckEnt4 SetCheck 1 else m CheckEnt4 SetCheck 0 Registro en la base de datos de los cambios if EntlAux Entradal InsertarRegistro Entradal MirarEstado 9 InsertarHora 1f Ent2Aux Entrada2 i InsertarRegistro Entrada2 MirarEstado 10 InsertarHora if Ent3Aux Entrada3 InsertarRegistro Entrada3 MirarEstado 11 InsertarHora if Ent4Aux Entrada4 InsertarRegistro Entrada4 MirarEstado 12 InsertarHora Enviar Estado al socket si hay cambios if EntlAux Entradal Ent2Aux Entrada2 Ent3Aux Entrada3 Ent4Aux Entra da4 if m Socketl GetState 7 EnviarEstadoAlSck void CClienteDlg EnviarEstadoAlSck CString Estado Estado Estado 76 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas if Salidal 1 Estado else Estado Insert 9 0 if Salida2 1 Estado Insert 9 Insert 11 else Estado lnsert 11 0 js if Salida3 1 Estado Insert 13 else Estado lusert 13 0 js if Salida4 1 Estado Insert 15 else Estado Insert 15 0 if Salida5 1 Estado Insert 17 else Estado insert 17 0 if Salida6 1 Esta
154. ara la computadora origen como para la destino Estas direcciones IP identifican univocamente a las computadoras en Internet y son utilizadas por los encaminadores Routers computadoras especializadas que funcionan como conmutadores telef nicos para dirigir los datagramas individuales a sus destinos Los encaminadores no se preocupan por los que hay dentro del datagrama solo est n interesados en la direcci n de destino del datagrama y en su longitud total Su funci n es reenviar el datagrama lo m s r pidamente posible El nivel IP no le dice al programa emisor si el datagrama llego con xito a su destino sa es la funci n del nivel superior de la torre El programa receptor s lo puede comprobar la redundancia para determinar si la cabecera del datagrama IP se ha corrompido 10 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a Protocolo de datagramas de usuario UDP IP El protocolo TCP IP deber a llamarse en realidad TCP UDP IP ya que incluye el protocolo de datagramas de usuario UDP que es alternativa a TCP Todos los protocolos de transporte basados en IP almacenan sus propias cabeceras y datos dentro del bloque de datos IP N mero de puerto emisor 16 bits N mero de puerto destino 16 bits Longitud de la cabecera Redundancia de la cabecera UDP datos 16 bits y los datos 16 bits Datos si existen Estructura simplificada de UDP La figura anterior mues
155. aseDatosDlg include PropiedadesiDig h Crear variable en ProyectoBDDIg h CPropiedadesIDlg Propiedades1Dlg j Construction public CProyectoBDDlg CWnd pParent NULL Standard constructor incicio de las declaraciones void EnviarLeyendaAlSck void ImprimirLeyenda int m_nTimerl void LeerEntradasPuerto void EnviarEstadoAlSck void GuardarSalidas CString Leer CEdit Edit CString MirarEstado int nSal void InicializarSalidas void InsertarRegistro CString Nombre CString Estado CString Hora CString InsertarHora void EscribirRegistro void ActualizarPuerto fin de las declaraciones CPropiedades1D1g PropiedadeslDlg CPuertoParalelo PuertoParalelo Insertar funci n OnAccinPropiedades Classwizard MessageMap CProyectoBDDlg gt ID_ACCIN_PROPIEDADES gt COMMAND gt Add Function gt EditCode CString BD BD AfxGetApp GetProfileString BD Path Propiedades1 Dlg DoModal ImprimirLeyenda if atoi Leer m EditPort int m Socketl GetLocalPort m_Socketl ABRConectarSck m Socketl SetLocalPort atoi leer amp m EditPort m_Socketl ABREscucharSck m Staticl m Socketl ABRConvertirEstado m Socketl GetState UpdateData FALSE if BD AfxGetApp gt GetProfileString BD Path exit 1 void CProyectoBDDlg OnAccinPropiedades TODO Add your command handler code here CString BD 43 y Control remoto mediante comunicaci
156. atic 1342308352 Controill IDC EDITO2 60d1 t 1350633600 Controll1 IDC STATIC static 1342308352 Controll12 IDC EDITO4 edit 1350633600 Controll13 IDC STATIC Static 1342308352 Controll14 IDC EDITOS d 1350633600 Control15 IDC STATIC static 1342308352 Controll6 IDC EDITO6 edit 1350633600 Controll SLDC STATIC static 1342308352 Corntroll9SsSrDC EDITO7 edit 1350633600 Controll9 IDC STATIC static 1342308352 Control20 1DC_EDITOS edit 1350635600 Control21 IDC STATIC statuc 1342308352 COntrolZ2 1DE EDITO9 edit 1350635600 Control23 IDC STATIC static 1342308352 Cont rol24 IDC_EDIT0O10 edit 1350633600 Control25 IDC STATIC Static 1342308352 Controlz6 IDC EDITUILI edit 1350633600 Control27 IDC STATIC static 1342308352 Control28 IDC_ EDITO edit 1350633000 Controlz9 1DC STATIC static 1342308352 Control30 IDC EDITOLS edit 1350631552 Controla l DC STATIC static 1342308352 Page 16 of 16 09 0171 Z2002 19231 ProyectoBD plg 0970172002 TIESI Oe WN rr PP WWW WWW CO CO CO GU N NN N N DN NN NN NN NN FFF FR FR FP RFR ES RS C WoO ONAN TON 01 4 CO P0 HKHo OO T 1OUO ON EA E KE DO 10 O1 45 ON PP O WO 00 ON UI A A A A A A A A E30 XO OA A OF WN rS O1 au UI NO O1 O1 O1 O1 OO Jt oO OT ABS GO O1 Orv O UI HO XO OY OY ON me N lt html gt lt body gt lt pre gt lt h1 gt Build Log lt h1 gt lt h3 gt ARS RS CONTIQUEIJETGRE ErXoyecroBDb Win32 Debug POD lt h3
157. b Rovira fif defined AFX PUERTOPARALELO H 4E5D8741 AlE6 11D5 97E1 A19932F01649 INCLUDED define AFX PUERTOPARALELO H 4E5D8741 AIEG6 11D5 97E1 A19932F01649 INCLUDED if MSC VER gt 1000 pragma once endif MSC VER gt 1000 include lt conio h gt Libreria donde se encuentran las funciones _inp y _outp class CPuertoParalelo public CPuertoParalelo virtual CPuertoParalelo int Entradal gt int Entrada2 int Entrada3 int Entrada void Salidal bool estado void Salida2 bool estado void Salida3 bool estado void Salida4 bool estado void Salida5 bool estado void void void void Salida6 bool Salida bool Salida8 bool Escribir int int Leer ki endif estado estado estado dato defined AFX PUERTOPARALELO H 4E5D8741 AlE6 11D5 97EI A19932F01649 J INCLUDED 57 a Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas mo ABRdb h funciones para gestionar la base de datos void CBaseDatosSet ABRAbrirBD m pSet amp m_BaseDatosDlgset if IsOpen Close 15 Open void CBaseDatosSet ABRCerrarBD if IsOpen Close void CBaseDatosSet ABRUltimoRegistro if IsOpen amp amp ISEOF MoveLast void CBaseDatosSet ABRPrimerRegistro if IsOpen amp amp ISBOF MoveFirst void CBaseDatosSet
158. blica est tica Internet o privada intranet no existe problema para realizar la conexi n ya que sabemos en todo momento cual es la direcci n IP del PC servidor 36 E i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a L El problema aparece si la direcci6n IP publica es dinamica asignada por el proveedor de servicios de Internet entonces el usuario del ordenador cliente puede no saber cual es la direcci n IP del PC que act a como servidor La soluci n al problema de la IP din mica que se ha adoptado es la utilizaci n de un software Pos_it que publica en Internet una pagina web donde puedes saber si el PC servidor esta conectado a la red y cual es su direcci n IP p blica Este software se debe arrancar y entonces se queda residente en el PC una vez ya existe conexi n a Internet y ha sido asignada una IP p blica din mica por el proveedor El programa se encarga de publicar cada cierto tiempo una p gina web con la informaci n requerida actualizada The following is my current IP 194 224 211 92 Post it started on 25 12 2001 at 10 42 25 This page is being updated every minutes Last upload was on 25 12 2001 at 10 57 27 The number of uploads for this session is 16 Post it Dynamic IP Poster Copyright 1999 Jason Carter En el momento que desaparece la conexi n a Internet la pagina web avisa que el PC no esta conectado I am currently offline Post it Dyna
159. command handler code here InsertarRegistro Leer amp m EditSalida2 MirarEstado 2 InsertarHora ActualizarPuerto CProyectoBDDlg OnSalidasSalida3 TODO Add your command handler code here InsertarRegistro Leer amp m EditSalida3 MirarEstado 3 InsertarHora ActualizarPuerto CProyectoBDDlg OnSalidasSalida4 TODO Add your command handler code here InsertarRegistro Leer amp m EditSalida4 MirarEstado 4 InsertarHora ActualizarPuerto CProyectoBDD1g OnSalidasSalidas5 TODO Add your command handler code here InsertarRegistro Leer amp m_EditSalida5 MirarEstado 5 InsertarHora ActualizarPuerto CProyectoBDD1g OnSalidasSalida6 TODO Add your command handler code here InsertarRegistro Leer amp m EditSalida6 MirarEstado 6 InsertarHora ActualizarPuerto CProyectoBDDlg OnSalidasSalida TODO Add your command handler code here InsertarRegistro Leer amp m EditSalida7 MirarEstado 7 InsertarHora ActualizarPuerto CProyectoBDD1g OnSalidassSalida8 TODO Add your command handler code here InsertarRegistro Leer amp m EditSalida8 MirarEstado 8 InsertarHora ActualizarPuerto A adir funciones OnCheckl OnCheck8 OnCheck1 Classwizard MessageMap 31 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira CProyectoBDDlg gt IDC CHECKI gt BN CLICKED gt Add Function g
160. d initialization If you are not using these features and wish to reduce the size of your final executable you should remove from the following the specific initialization routines you do not need ifdef _AFXDLL else endif Enable3dControls Call this when using MFC in a shared DLL Enable3dControlsStatic Call this when linking to MFC statically SetRegistryKey ABRProyectos Entradas al Registro ABR CProyectoBDD1lg dlg m_pMainWnd amp dlg int nResponse dlg DoModal 1f nResponse IDOK TODO Place code here to handle when the dialog is dismissed with OK else if nResponse IDCANCEL TODO Place code here to handle when the dialog is dismissed with Cancel 26 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Since the dialog has been closed return FALSE so that we exit the application rather than start the application s message pump return FALSE Crear variables en Proyecto BDDIg h int Salidal int Salida2 int Salida3 int Salida4 int Salida5 int Salida6 int Salida7 int Salida8 int Entradal int Entrada2 int Entrada3 int Entrada4 Construction public CProyectoBDDIg CWnd pParent NULL standard constructor int Salidal int Salida2 int Salida3 int Salida4 int Salida5 int Salida6 int Salida7 int Salidas int Entradal int Entrada2 int Entrada3 int Entr
161. da2 Salida2 477 AfxGetApp gt WriteProfileString Leyenda Salida3 Salida3 48 AfxGetApp gt WriteProfileString Leyenda Salida4 Salida4 49 AfxGetApp gt WriteProfileString Leyenda Salida5 Salida5 50 AfxGetApp gt WriteProfileString Leyenda Salida6 Salida6 51 AfxGetApp WriteProfileString Leyenda Salida7 Salida7 52 AfxGetApp gt WriteProfileString Leyenda Salida8 Salida8 53 54 AfxGetApp gt WriteProfileString Leyenda Entradal Entradal 55 AfxGetApp gt WriteProfileString Leyenda Entrada2 Entrada2 56 AfxGetApp L gt WriteProfileString Leyenda Entrada3 Entrada3 57 AfxGetApp L gt WriteProfileString Leyenda Entrada4 Entrada4 58 59 AftxCGet pp gt WNriteProfileString BOGESE IP 127 0 0 1 5 60 61 aux ODBC DRIVER MICROSOFT ACCESS DRIVER mdb DSN DBO 62 aux Insert aux GetLength AfxGetApp GetProfileString BD Path 63 return _T aux 64 Page 1 of 2 BaseDatosSet cpp 09 01 2002 19 30 65 66 67 68 69 70 T ae 13 74 75 76 71 78 79 80 81 82 83 84 85 86 877 88 89 90 91 JA 93 94 9D 96 97 98 99 return _T ODBC DRIVER MICROSOFT ACCESS DRIVER mdb DSN DBO C windows escritorio En el path de la base de datos de arriba es necesario poner dos barras debido a estar entre CString CBaseDatosSet GetDefaultSQL return T IHistor
162. da3 0 1f Estado Mid 14 else Salida4 0 1f Estado Mid 16 else Salida5 0 1f Estado Mid 18 else Salida6 0 1f Estado Mid 20 else Salida7 0 if Estado Mid 22 else Salida8 0 i j 1 EH 1 M13 1 1 jeni y ljsc qgpe Salidal 1 Salida2 1 Salida3 1 Salida4 1 Salida5 1 Salida6 1 Salida 1 Salida8 1 Page 2 of 7 09 01 2002 19 29 ABRCClienteDlgUtils h 09 01 2002 19 29 129 if Estado Mid 24 1 1 Entradal 1 130 else Entradal 0 131 if Estado Mid 26 1 1 Entrada2 1 132 else Entrada2 0 133 if Estado Mid 28 1 1 Entrada3 1 134 else Entrada3 0 135 if Estado Mid 30 1 1 Entrada4 1 136 else Entrada4 0 137 138 ActualizarPuerto 195 140 Leyenda Leyenda Mid 32 Leyenda GetLength 141 142 aux Leyenda Mid 0 Leyenda FindOneOf 143 Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength 144 m EditSalidal SetWindowText aux 145 aux Leyenda Mid 0 Leyenda FindOneOf 146 Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength 147 m EditSalida2 SetWindowText aux 148 aux Leyenda Mid 0 Leyenda FindOneOf 149 Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength 150 m EditSalida3 SetWindowText aux 151 aux Leyenda Mid 0 Leyenda FindOneOf 152 Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength 153 m EditSalida4 SetWindowText aux 154 aux Ley
163. de OnSalidasSalida2 Classwizard MessageMap CProyectoBDDlg gt ID SALIDAS SALIDA2 gt COMMAND gt Add Function gt EditCode OnSalidasSalida3 Classwizard gt MessageMap CProyectoBDDlg gt ID SALIDAS SALIDA3 gt COMMAND gt Add Function gt EditCode OnSalidasSalida4 Classwizard gt MessageMap CProyectoBDDlg gt ID_SALIDAS_SALIDA4 gt COMMAND gt Add Function gt EditCode OnSalidasSalida5 Classwizard MessageMap CProyectoBDDlg gt ID SALIDAS SALIDAS gt COMMAND gt Add Function gt EditCode OnSalidasSalida6 Classwizard gt MessageMap CProyectoBDDlg gt ID SALIDAS SALIDA6 gt COMMAND gt Add Function gt EditCode OnSalidasSalida7 Classwizard gt MessageMap CProyectoBDDlg gt ID_SALIDAS_SALIDA7 gt COMMAND gt Add Function gt EditCode 30 Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira OnSalidasSalidas Classwizard gt MessageMap CProyectoBDDlg gt ID SALIDAS SALIDA8 COMMAND gt Add Function gt EditCode Copiar el c digo de las funciones anteriores ProyectoBDDlg cpp void void void void void void void void CProyectoBDD1g OnSalidasSalidal TODO Add your command handler code here InsertarRegistro Leer amp m EditSalidal MirarEstado 1 InsertarHora ActualizarPuerto CProyectoBDD1g OnSalidassalidaz TODO Add your
164. de IPng Por convenci n las direcciones IP se escriben en formato punto decimal A cada una de las cuatro partes de la direcci n le corresponde un valor byte individual Por ejemplo una direcci n IP de clase C ser a 194 128 198 201 Cuando navegamos por la Web no utilizamos direcciones IP En su lugar utilizamos nombres m s humanizados del tipo www etse urv es Una parte significativa de los recursos de Internet se consumen en la traducci n de nombres de maquina www urv es a direcciones IP que TCP IP pueda utilizar Esta traducci n la lleva a cabo un conjunto de servidores de nombres DNS servidores de dominio La totalidad del espacio de nombres de Internet se organiza en dominios cuyo comienzo se sit a en el dominio ra z que carece de nombre Por debajo de la ra z hay una serie de dominios de alto nivel del tipo com edu gov y Org 12 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a Protocolo de control de transmisi n TCP IP Vistas las limitaciones de UDP lo que realmente necesitamos es un protocolo que permita transmitir grandes bloques de datos sin errores El programa receptor tiene que ser capaz de reensamblar los bytes en el mismo orden y secuencia en que fueron transmitidos incluso aunque los datagramas anteriores hayan llegado en orden incorrecto Ese protocolo es TCP y es el protocolo favorito de todas las aplicaciones de Internet N mero de pu
165. de bibliotecas de enlace din mico DLL que proporcionan un interfaz de programaci n de bases de datos normalizada del lenguaje estructurado de consultas SQL Structured Query Language mediante ODBC y SQL es posible escribir c digo de acceso a bases de datos independiente del producto de bases de datos SQL es un lenguaje est ndar de acceso a base de datos con gram tica propia En el mundo SQL una base de datos es un conjunto de tablas compuestas por filas y columnas La mayor parte de productos de gesti n de base de datos soportan SQL lenguaje conocido por muchos programadores Un nico programa en Visual C compilado puede acceder a cualquier producto de gesti n de base de datos que disponga de un controlador ODBC Visual C incorpora controladores de 32 bits para archivos DBF bases de datos Microsoft Access MDB archivos XLS de Microsoft Excel archivos de Microsoft FoxPro archivos de texto ASCII y bases de datos de Microsoft SQL Server Otras empresas incluyendo Oracle Informix etc proporcionan controladores ODBC Asi pues si una aplicaci n MFC de Visual C se desarrolla con un controlador dBASE Xbase el mismo programa se puede ejecutar con un controlador de base de datos Access no es necesario recompilarlo el programa simplemente carga una DLL distinta 19 3 A Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Cu L i Hb Para acceder a la base de datos local prev
166. de propiedades Crear un di logo para modificar las propiedades del proyecto IDD PROPIEDADESIDLG DIALOG Insert gt New Class gt Form Class gt CPropiedades1Dlg Insertar 15 EditBox Propiedades E x Levenda Salidas Leyenda Entradas 1 Edi 2 Edi 3 Edit 4 Edi 5 Edit gt Edit 7 Edi amp Edi Edit 2 Edil 3 Edi Conexi n 1117 Port E di Base de Datos Path Edi Cancel Crear variables Classwizard gt Member variables IDC EDITI CString m EditSalidal IDC EDITE CString m EditSalidas IDC EDIT9 CString m EditEntradal IDC EDITI2 CString m_EditEntrada4 IDC EDITIZ CString m_EditIP IDC EDITI4 CString m_EditPort IDC EDITIS CString m EditPath 40 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira MFC ClassWizard RR jx Message Maps Member Variables Automation Actives Events Class Into Project Class name Add Clase lt FrovectoBD Y CPropiedadez1 Dlg bl Add Variable ct Propiedades1 Dlg h c Propiedades Dg cpp Control IDs Type Member Delete Variable IDE EDIT1U CString m EdtE ntradag OC EDITA CString m EditEntrada3 T IIDC EDITT2 CString m EditEntrada4 Bind A Update Columns IDC EDITT3 CString m E ditl F IDC EDITIA CString m_EditPort IDC_EDIT15 CString m_EditPath IDC EDITA CString m EditS alidaz IDC EDIT3 CString m EditS alid
167. den de los bytes en red 12 Protocolo de control de transmisi n TCP IDP eese 13 Fundamentos sobre el control MSWinsockControl oocccccccccnnnonocccnnnnnnnononnnonnnnnnnnnnnnnnnnos 15 Fundamentos Sobre Bases de Datos sss 19 Fundamentos del Puerto Paralelo a section EE eT cedo TTA dina s e 25 Breve descripci n del puerto paralelo sss sse eee 26 Implementaci n de la clase CPuertoParalelo sss sss 28 Funcionamiento de la aplicaci n sese eee iron n al l ra l e A it Dl A a GE Y 29 Dialogo principal Aplicaci n ServVIdOT coooooooonccnnnnnnnnnnnnnonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnncnnnnns 30 Dialogo Base de Datos A MA 32 PO TOU KOPI A AU S ICQ OTT 33 Tt N YO CO A e o o n pd e l AAE sy il n e j kl scene 34 Soluci n al problema de la IP din mica sss sese eee eee 36 A o E EE 39 Posibles l neas de continuaci n del Proyecto sss 40 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Objetivos del proyecto El presente proyecto pretende realizar una aplicaci n inform tica para ejecutar el control y monitorizaci n remota de unos equipos electr nicos aeron uticos desde un PC conectado en una red Ethernet Para ello el software realizado en Microsoft Visual C debe ser capaz de controlar el puerto paralelo del PC que se encuentra en la instalaci n de la radioayuda y de comunicarse con otra aplicaci n situada en el lugar donde se centraliza el cont
168. do Insert 19 else Estad6 Ins rt 19 0 if Salida7 1 Estado Insert 21 else Estado Insert 21 0 if Salida8 1 Estado Insert 23 else Estado Insert 23 0 if Entradal 1 Estado Inse rt 25 L1 else Estado Insert 25 0 if Entrada2 1 Estado Inse Ft Lal Ll else Estado Insert 27 Q0 if Entrada3 1 Estado Inse FE 29 DL 4 else Estado Insert 29 0 if Entrada4 1 Estado Insert 31 1 else Estado Insert 31 0 m Socketl ABREnviarSck Estado void CClienteDlg ImprimirLeyenda CString aux m EditSalidal SetWindowText Leyenda Salidal m EditSalida2 SetWindowText m EditSalida3 SetWindowText Ley nda Salidas m EditSalida4 SetWindowText Leyenda Salida4 m EditSalida5 SetWindowText m EditSalida6 SetWindowText m EditSalida7 SetWindowText Leyenda Salida7 m EditSalida8 SetWindowText m EditEntradal SetWindowText AfxGetApp gt GetProfileString Leyenda Entradal m EditEntrada2 SetWindowText AfxGetApp gt GetProfileString Leyenda Entrada2 m EditEntrada3 SetWindowText AfxGetApp gt GetProfileString Leyenda Entrada3 m_EditEntrada4 SetWindowText AfxGetApp gt GetProfileString Leyenda Entrada4 m EditIP SetWindowText m Socketl GetLocalIP AfxGetApp WriteProfileString m EditPort SetWindowText AfxG
169. do e Hora donde se registra la hora en que se ha producido el evento La aplicaci n realizada dispone de las funciones servidor y cliente integrado todo en un mismo programa El programa servidor se ejecuta desde la computadora que se quiere controlar el puerto paralelo pero tambi n se instala en la computadora que se utiliza como cliente aunque en este caso no se utilizan sus funciones de control del puerto y s lo se lanza el di logo cliente para que la aplicaci n funcione como cliente del servidor remoto De esta manera una nica aplicaci n se puede instalar en todos los ordenadores que se quiera y se pueden utilizar todos tanto como servidores como clientes 29 E i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas a Agust Baub Rovira Dialogo principal Aplicaci n servidor Fe ProyectoBD Acci n Salidas i Listening i Nombre Se abre Dialogo de Salida Estado 0000000071111 Hora 3 1 z 2001 11 38 45 TTT Entradas l m m m Base de Datos Path bd mdb Leyenda Entradas EDNA Conexi n IF 127001 Port 888 Leyenda Salidas 1 Equipo P ON en antena 2 Equipo P ON en carga 3 Equipo P OFF 4 Equipo 5 ON en antena 5 Equipo 5 ON en carga 6 Equipo 5 DFF gt gt 7 Monitores Bypass gt a Reset Alarma Mito gt Al arrancar la aplicaci n la primera funci n que s
170. do de todas las entradas y salidas e Si se act a con la opci n Base de Datos del men Acci n Se ejecuta la funci n OnAccinBasededatos donde se abre el di logo de gesti n de la Base de Datos de modo no modal Se puede acceder a di logo padre sin cerrar el propio di logo e Si se act a con la opci n Propiedades del men Acci n Se ejecuta la funci n OnAccinPropiedades donde se abre el di logo de modificaci n de propiedades del proyecto de modo modal No se puede acceder a di logo padre sin cerrar el propio di logo En el caso de realizar alguna modificaci n se actualizan los datos del di logo principal e Si se act a con la opci n Cliente del men Acci n Se ejecuta la funci n OnAccinCliente donde se abre el di logo cliente que funciona de modo modal que funciona como cliente de cualquier otra aplicaci n servidor conectada a la red e Al cerrar la aplicaci n se ejecuta la funci n On Destroy que registra el estado de las entradas y salidas y cierra la base de datos 31 E i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a Di logo Base de Datos Base de Datos 10 Registros en la Base de Datos LIMPIAR BUSCAR Mombre Se abre Dialogo de 5 alidas Estado 000000001111 A ADIR Hora 3171272001 11 38 45 BORRAR ACTUALIZAR ANTERIOR SIGUIENTE PRIMERO ULTIMO e Al arrancar el di logo la primera funci n que se ejecuta es l
171. ds A QU O WO ds A A A A A A A O O oo oo Ol O1 O1 O O JO O1 ds ON H O O 0 SI O OB WN S O1 OY ON Ro OY OY O A N PropiedadesiDlg cpp implementation file include stdafx h include ProyectoBD h include PropiedadesiDlg h ifdef _DEBUG define new DEBUG NEW undef THIS FILE static char THIS FILE FILE endif EK ETA AAA EESAC T T CPropiedadesiDlg dialog CPropiedades1D1g CPropiedades1D1g CWnd pParent NULL CDialog CPropiedades1Dlg IDD pParent AFX DATA INIT m EditSalidal m EditSalida2 m EditSalida3 m EditSalida4 m EditSalida5 m EditSalidao m EditSalida7 m EditSalida8 m EditEntradal m EditEntrada2 m EditEntrada3 m EditEntrada4 m EditIP T m EditPort _T m EditPath T 5 AFX DATA INIT PropiedadeslDlg ME La a 14 la ada dada C um T T _T _T void CPropiedadeslDlg DoDataExchange CDataExchange pDX CDialog DoDataExchange pDX AFX_DATA_MAP CPropiedadesi1Dlg DDX_Text pDX IDC EDITI m_EditSalidal DDX_Text pDX IDC_EDIT2 m_EditSalida2 DDX Text PDX IDC EDIT3 m EditSalida3 DDX Text pDX IDC EDITA m EditSalida4 DDX Text pDX IDC EDIT5 m EditSalida5 DDX Text pDX IDC EDIT6 m EditSalidao DDX Text PDX IDC FDIT m_Editsalida DDX Text pDX IDC EDIT8 m EditSalida8 DDX Text pDX IDC EDIT9 m EditEntradal DDX Tex
172. e CString m Estado CString m Hora AFX_FIELD 77 Overrides CRecordset ClassWizard generated virtual function overrides AFX_VIRTUAL CBaseDatosSet public virtual CString GetDefaultConnect virtual CString GetDefaultSQL virtual void DoFieldExchange CFieldExchange pFX Default connection string Default SOL for Recordset J BEX support funciones Creadas por ABR void vaza void void void void void void void vold void CBaseDatossSet CBasebatosset CBasebDatosSet CBasebDatosoett CBaseDatosoet CBaseDatosset CBaseDatosSet CBaseDatosSet CBaseDatosSet CBaseDatosSet CBaseDatosSet ABRAbrirBD ABRCerrarBD ABRUItimoRegistro ABRPrimerRegistro ABRSiguienteRegistro ABRAnteriorRegistro ABRInsertarRegistro CString Nombre CString Estado CString Hora ABRBorrarRegistro CString Nombre CString Estado CString Hora ABRACtualizarR gistro CString Nombre CString Estado CString Hora ABRBuscarRegistro CString Nombre CString Estado CString Hora ABRBuscarTodosLosRegistros CString CBaseDatosSet ABRContarRegistros fin de las declaraciones Jf IAPK VIRTUAL Implementation ifdef _DEBUG virtual void AssertValid virtual void Dump CDumpContext amp dc endif ki Const const AFX_INSERT_LOCATION Microsoft Visual C will insert additional declarations immediately before the previous line Tendo E 7 7
173. e File Gi O1 O1 al La LA A LA LA LA KA LA O1 SOURCE BaseDatosDlg h End Source File 160 4 Begin Source File O1 162 SOURCE NBaseDatosSet h 163 End Source File 164 Begin Source File 166 SOURCE NClienteDig h 167 End Source File 168 Begin Source File 170 SOURCE Nmswinsockcontrol h 171 End Source File 172 Begin Source File 174 SOURCE Propiedades1Dlg h 175 End Source File 176 Begin Source File 178 SOURCE ProyectoBD h 79 s Bud Source File 180 Begin Source File 182 SOURCE 1ProyectoBDD1g h 183 End Source File 184 Begin Source File 186 SOURCE NPuertoParalelo h 187 End Source File 188 Begin Source File 190 SOURCE NResource h 191 End Source File 192 Begin Source File Page 3 of 4 ProyectoBD dsp 0270142002 pom 193 194 SOURCE NStdAfx h 195 End Source File 196 End Group 197 Begin Group Resource Files 198 199 PROP Default Filter ico cur bmp dlg rc2 rct bin rgs gif jpg jpeg jpe 200 Begin Source File ZOT 202 SOURCE Nres ProyectoBD ico 203 End Source File 204 Begin Source File 205 206 SOURCE res ProyectoBD rc2 207 d End Source File 208 End Group 209 Begin Source File 210 211 SOURCE ReadMe txt 212 End Source File 213 End Target 214 X End Project 215 FF Section ProyectoBD 3 1249DD996 BBA5 ITCR 9ABC OQOSB0CJETBIOSD 216 f 2 21 DefaultSinkHeaderFile mswinsockcontrol h 217 2 16 DefaultSinkClass CMSW
174. e Salida2 0 if Estado Mid 12 1 1 Salida3 1 else Salida3 0 if Estado Mid 14 1 1 Salida4 1 else Salida4 0 if Estado Mid 16 1 1 Salida5 1 else Salida5 0 if Estado Mid 18 1 1 Salida6 1 else Salida6 0 if Estado Mid 20 1 1 Salida7 21 else Salida7 0 if Estado Mid 22 1 1 Salida8 1 else Salida8 20 if Estado Mid 24 1 1 Entradal 1 else Entradal 0 if Estado Mid igo decim else Entrada2 0 if Estado Mid 28 1 1 else Entrada3 0 if Estado Mid 30 1 1 else Entrada4 0 ActualizarPuerto Entrada2 1 Entrada3 1 Entrada4 1 void CClienteDlg InicializarLeyenda CString Leyenda CString Estado CString aux Leyenda m_Socket2 Dato Estado Estado Estado Insert n Estado GetLength Escribir amp m EditRecibido Estado if Estado Mid 8 1 1 Salidal 1 else Salidal 0 if Estado Mid 10 1 1 Salida2 1 else Salida2 0 if Estado Mid 12 1 1 Salida3 1 else Salida3 0 if Estado Mid 14 1 1 Salida4 1 else Salida4 20 if Estado Mid 16 1 1 Salida5 1 else Salida5 0 if Estado Mid 18 1 1 Salida6 1 else Salida6 0 if Estado Mid 20 1 1 Salida7 21 else Salida7 20 if Estado Mid 22 1 1 Salida8 1 else Salida8 20 if Estado Mid 24 1 1 Entradal 1 else Entradal 0 1f Estado Mid 26 1 else Entrada2 0 if Estado Mid 28 1
175. e ejecuta es la OnInitDialog de la clase CProyectoBDDIg Se establece un Timer que se encargara de ejecutar la funci n On Timer cada 500 ms que se encarga de comprobar si se ha producido alg n cambio en las entradas digitales del puerto Se abre la base de datos Se inicializan las salidas con los ltimos estados registrados en la base de datos Se actualiza el dialogo y las salidas del puerto Se inserta un registro en la base de datos con la informaci n de apertura de la aplicaci n Se cierra la base de datos Se captura del registro de Windows la informaci n de la leyenda que aparece en el di logo Se pone el socket en modo de escuchar en la direcci n de puerto que se indica en el di logo 30 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira e Ahora la aplicaci n queda a la espera de que el usuario realice alguna acci n sobre el dialogo del proyecto sobre alguna opci n del men o se produzca alg n cambio en las entradas del puerto que se detecta autom ticamente con la acci n OnTimer e Si se act a sobre algun CheckBox de las Salidas o alguna opci n del men de salidas Se ejecutan las funciones OnCheckn o OnSalidasSalidan donde se inserta un registro en la base de datos con la informaci n de la salida activada y se actualiza el puerto paralelo con la nueva informaci n Si el servidor estuviera conectado a alg n cliente le enviar a el nuevo esta
176. e env a la transmisi n no espera a que cada paquete sea asentido sino que env a un n mero de paquetes consecutivamente despu s espera hasta el primer asentamiento Si el programa receptor tiene datos para enviar al otro programa puede montar el asentamiento sobre el paquete de datos y transmitirlo todo junto La secuencia de n meros del programa transmisor no es de ndice de paquete sino m s bien de ndices de flujo de bytes El programa receptor devuelve los n meros de secuencia en el campo num rico del asentamiento al programa emisor asegurando con ello que todos los bytes se reciben y ensamblan de manera adecuada El programa emisor re env a los paquetes que no hayan sido asentidos Cada programa cierra la conexi n TCP en su extremo mediante el env o de un paquete con la bandera FIN activada y que debe ser asentida por el programa del extremo opuesto Un programa no puede recibir bytes provenientes de una conexi n que ya haya sido cerrada por el programa del otro extremo En Control Winsock oculta la mayor parte de los detalles del protocolo TCP IP por los que no tenemos que preocuparnos de las banderas ACK ni de los n meros de secuencia Nuestro programa llama a una funci n para que transmita un conjunto de datos y Winsock es quien se preocupa de dividir el bloque en segmentos que a continuaci n incrusta en datagramas IP Winsock tambi n se ocupa de distribuir los bytes en el extremos receptor 14 a i Control rem
177. e la leyenda que aparece en el di logo Ahora la aplicaci n queda a la espera de que el usuario realice alguna acci n sobre el di logo de Propiedades e Se puede modificar el contenido de los EditBox y al pulsar el Bot n OK se ejecuta la funci n OnOk que se encarga de escribir en el registro de Windows la informaci n modificada y se regresa al di logo principal e Si se cerrara el di logo sin pulsar Ok no se registrar an las modificaciones realizadas en el registro de Windows 33 A a Control remoto mediante comunicacion TCP IP de Radioayudas Aeronauticas Agusti Baubi Rovira Di logo Cliente Connected Socket Leyenda Salidas Leyenda Entradas Recibido Estado 0000000 01111 3 11 IPIE quipa P ON en anten i Equipo ONOFF 2 Equipo P ON encarga 2 Equipo en antena P S O E adas _ sj NM B 8 H a g Equipo 5 OFF ED Entradas j LE Monitores Bypass Ww wii amp Reset Alarma Mito Enviada 3 Equipo P OFF 3 Monitores Bypass 4 E ipa 5 OH t a quipa a en antena 4 Alarma de Mantenimiento D Equipo 5 ON en carga Conexion IP 127001 oog Al arrancar el di logo la primera funci n que se ejecuta es la OnInitDialog de la clase CClienteDlg Se captura del registro de Windows la informaci n de la conexi n IP Port que aparece en el di logo Ahora la aplicaci n queda a la
178. e proporcionan ayuda a la navegaci n a rea a las aeronaves e Las principales se ales generadas son auto comprobadas por unos equipos monitores internos e Se ales de los equipos que se deben incluir en un control remoto Windows 95 Windows 95 O O O O ProyectoBD exe ProyectoBD exe Radioayud O O O CO Tarjeta jet Red TCP IP e Intranet con conexi n a Internet a trav s de un proxy Windows 95 Radioayud D O O ProyectoBD ex Windows 95 ProyectoBD ex e o a O e mmm Servidor proxy Tarjeta Tu Red TCP IP neo Conexi n a ISP Windows 95 Windows 95 ProyectoBD ProyectoBD Modem Puer H Protocolo A A l Nivel de aplicaci n e E IS Protocolo IP Nivel de red Protocolo Ethernet aer Dia ridad a Nivel de enlace a nu ii pye 1 TA N lapat a ap Hi eto MS o A jr rd Ee AE al KRAN MO pan ajan b ml ss gf uev dap de Mi 1 A Yi ld S Shes AAA Aw LL RAE Puad HIS CE el Xy a Con iind E GA Bie M a 3 Aa T ad gui l epee as ve cow erode 2t ket yen SY wid 1 MITA Sri SESSRIHASEIAREFISHIBABEFERENTREEISRELISI iir D sele ts s agus Redes TCP IP Internet Intranet Extranet Protocolos de red Niveles Comunicaci n cliente servidor El Protocolo Internet IP a Eier reese Med 1407 AN tiina E RS E A HR RI ee Rn nu
179. eEdit014 Classwizard gt MessageMap CClienteDlg gt IDC EDITO14SEN CHANGE Add Function gt gt EditCode AfxGetApp gt WriteProfileString Socket2 Port Leer amp m_EditPort void CClienteDlg OnChangeEdit014 Jf TODOS T this is a RICHEDIT control the control will not send this notification unless you override the CDialog OnInitDialog function and call CRichEditCtrl SetEventMask with the ENM_CHANGE flag ORed into the mask TODO Add your control notification handler code here AfxGetApp gt WriteProfileString Socket2 Port Leer amp m_EditPort A adir funcion OnConnectWinsockl Classwizard gt MessageMap CClienteDlg gt IDC_WINSOCK1 gt Connect Add Function gt gt EditCode m_Staticl m_Socket2 ABRConvertirEstado UpdateData FALSE void CClienteDlg OnConnectWinsockli TODO Add your control notification handler code here m Staticl m Socket2 ABRConvertirEstado m Socket2 GetState UpdateData FALSE A adir funci n OnButtonCerrar Classwizard gt MessageMap CClienteDlg gt IDC_BUTTON_CERRAR gt BN_CLICKED Add Function gt EditCode mSocket2 ABRCerrarSck m Staticl m Socket2 ABRConvertirEstado m Socket2 GetState UpdateData FALSE m ButtonCerrar EnableWindow FALSE m_ButtonConectar EnableWindow TRUE void CClienteDlg OnButtonCerrar 49 y Control remoto mediante comunicaci n TCP IP de Radioayudas
180. ebugNProyectoBD obj NDebugNProyectoBBDDlg ob NDebugNPuertoParalelo obj NDebugNStdA x obj ADebugiProyectoBD res Creating command line link exe C WINDOWS TEMP RSPC082 TMP lt h3 gt 0utput Window lt h3 gt Compiling resources COMPLE StdAfx cpp Comp i Tings BaseDatosDlg cpp BaseDatosSet cpp ClienteDlg cpp mswinsockcontrol cpp PropiedadeslDlg cpp ProyectoBD cpp ProyectoBDDlg cpp PuertoParalelo cpp Generating Code ATA Aa lt h3 gt Results lt h3 gt ProyectoBD exe 0 error s O warning s lt pre gt Page 1 of 2 ProyectoBD plg OO OT ono TIES 65 lt body gt 66 lt html gt Page 2 of 2 ProyectoBD rc 09 01 2002 19 31 CO l aA OP WN FS O O O O UI UIT UI UT UI UIT UI UT O1 LH 4S aS aS uS RB S BP OB dS OB C WWW Y Y YU Y YN PO NO KA DDN PO N N N rS PS ES A np a np np A n YN R O 00 10 U1 4 QNI OW WTR LH 4S CO NN A O O WTR UB C IO I9 OO O 10 LH e CO OP OO O O 1 0 LH iS CO INN HO LO Microsoft Developer Studio generated resource script f include resonrce h define APSTUDIO READONLY SYMBOLS PETTITT EAT E EE a VAT AVA PIDAL AA AV F VE LUT AVA T II IDA III ei Generated from the TEXTINCLUDE 2 resource Fa finclude afxres Hh ETAAAMARAR A CLA VL F VA VIL ADA AA LAA PA PLATA A AA LXV T AAA EEE CALA PA ATT 4 Pg 44d undef APSTUDIO_READONLY_SYMBOLS L T VAT TAA AV CARRIER L LA LT VT XA VAA A VA UAA LA a A VAA DALA AAA A Z Spanish
181. ecer una comunicaci n con otra aplicaci n igual instalada en un ordenador conectado en la misma red El programa esta formado por cuatro di logos e El di logo principal Aplicaci n servidor Que se encarga de controlar el puerto paralelo y de realizar las funciones de servidor e El dialogo de Base de datos Que gestiona la base de datos donde se registran todos los eventos e El dialogo Propiedades Donde se configura la conexi n y la leyenda de las entradas y salidas e El di logo Cliente Que realiza la funci n de cliente para conectarse con el di logo servidor en la direcci n IP y Puerto que le asignemos Con el programa incluimos una base de datos realizada con Microsoft Access para registrar los eventos que se producen bd1 mdb La base de datos dispone de una tabla llamada historico formada por tres campos de texto e Nombre donde se registra el nombre del evento que se ha producido e Estado donde se registra el estado final del evento que se ha producido e Hora donde se registra la hora en que se ha producido el evento La aplicaci n realizada dispone de las funciones servidor y cliente integrado todo en un mismo programa Agust Baub Rovira El programa servidor se ejecuta desde la computadora que se quiere controlar el puerto paralelo pero tambi n se instala en la computadora que se utiliza como cliente aunque en este caso no se utilizan sus funciones de control del puerto y s lo se lanza el di l
182. edades Cliente El Menu Base de Datos visualizar el di logo que gestiona la base de datos El Menu Propiedades visualizar el di logo que gestiona las propiedades del proyecto El Menu Cliente visualizar el di logo que realiza la funci n de cliente para conectarse con el di logo principal de la misma aplicaci n servidor o de otra aplicaci n igual que se ejecuta en otro ordenador conectado a la misma red Asignar Menu al di logo principal IDD PROYECTOBD DIALOG En el dialogo principal Propiedades gt Menu gt JDR_MENU 1 Dialog Properties e Z General Styles More Styles Extended Styles j ED A RTT F Caption ProyectoBD Font name MS Sans Serif Menu IDR MENU1 9 Font size Font 4 Pos 20 Y Pos 654 Class mame F _3 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a En la clase CProyectoBDDlg crear funci n OnAccinBasede datos Esta funci n se encargar de visualizar el di logo hijo IDD BASEDATOSDLG DIALOG que gestiona la base de datos Existen dos formas de visualizar el dialogo hijo Caso Modal El di logo se visualiza y no se puede regresar al otro di logo hasta que cerramos el actual Caso No Modal El di logo se visualiza y si se puede regresar al otro di logo el di logo hijo permanece en segundon plano En este caso el di logo de gestion de la base de datos lo visualizaremos de forma no modal
183. egistro CString Nombre CString Estado CString Hora Funci n que inserta un registro al final de la base de datos ABRBorrarRegistro CString Nombre CString Estado CString Hora Funci n que borra el registro que apunta el puntero de la base de datos m_pSet ABRActualizarRegistro CString Nombre CString Estado CString Hora Funci n que actualiza el registro que apunta el puntero de la base de datos m_pSet ABRBuscarRegistro CString Nombre CString Estado CString Hora Funci n que selecciona los registros con los campos introducidos el puntero apunta a los registros seleccionados ABRBuscarTodosLosRegistros Funci n que selecciona todos los registros el puntero apunta a todos los registros ABRContarRegistros Funci n que devuelve el numero total de registros de la base de datos 24 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira e Fundamentos del Puerto Paralelo El puerto paralelo de una PC es ideal para ser usado como herramienta de control de motores rel s LED s etc El mismo posee un bus de datos de 8 bits Pin 2 a 9 y muchas sefiales de control algunas de salida y otras de entrada que tambi n pueden ser usadas f cilmente Las PC s generalmente poseen solo uno de estos puertos LPT1 pero con muy poco dinero se le puede adicionar una tarjeta con un segundo puerto paralelo LPT2 En reglas generales la direcci n hexadecimal del puerto LPT1 es ig
184. enda Salida6 m EditSalida7 AfxGetApp gt GetProfileString Leyenda Salida7 m EditSalida8 AfxGetApp gt GetProfileString Leyenda Salida8 m EditEntradal AfxGetApp GetProfileString Leyenda Entradal m EditEntrada2 AfxGetApp GetProfileString Leyenda Entrada2 m EditEntrada3 AfxGetApp GetProfileString Leyenda Entrada3 m EditEntrada4 AfxGetApp GetProfileString Leyenda Entrada4 m EditIP AfxGetApp GetProfileString Socket IP m EditPort AfxGetApp GetProfileString Socket Port m EditPath AfxGetApp gt GetProfileString BD Path UpdateData FALSE return TRUE return TRUE unless you set the focus to a control EXCEPTION OCX Property Pages should return FAISE En ProyectoBDDIg h Insertar en la cabecera del fichero include Propiedades1Dig h fif ldefined AFX_PROYECTOBDDLG_H__14710EF7_3ED3_43D7_BACE_258C8EA5D161__INCLUDED_ define AFX_PROYECTOBDDLG_H__14710EF7_3ED3_43D7_BACE_258C8EA5D161__INCLUDED_ include BaseDatosSet h include PuertoParalelo h Added by ClassView include BaseDatosDlg h Added by ClassView 42 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira mo Hif MSC VER gt 1000 pragma once endif MSC VER gt 1000 CASA PANDA LT AA LE TAA ELF LAS EP LLA LAL L Z VA A U LLA AAA ATA NAAA LLP CProyectoBDDig dialog class CBaseDatosSet class CB
185. enda Mid 0 Leyenda FindOneOf 155 Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength 156 m EditSalida5 SetWindowText aux 157 aux Leyenda Mid 0 Leyenda FindOneOf 158 Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength 159 m EditSalida6 SetWindowText aux 160 aux Leyenda Mid 0 Leyenda FindOneOf 161 Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength 162 m EditSalida7 SetWindowText aux 163 aux Leyenda Mid 0 Leyenda FindOneOf 164 Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength 165 m EditSalida8 SetWindowText aux 166 aux Leyenda Mid 0 Leyenda FindOneOf 167 Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength 168 m EditEntradal SetWindowText aux 169 aux Leyenda Mid 0 Leyenda FindOneOf 170 Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength 171 m EditEntrada2 SetWindowText aux 172 aux Leyenda Mid 0 Leyenda FindOneOf 173 Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength 174 m EditEntrada3 SetWindowText aux 175 aux Leyenda Mid 0 Leyenda FindOneOf 176 Leyenda Leyenda Mid Leyenda FindOneOf 1 Leyenda GetLength 177 m EditEntrada4 SetWindowText aux 173 179 180 void CClienteDlg ActualizarPuerto 181 182 if Salidal 1 m ChkSall SetCheck 1 183 else m ChkSall SetCheck 0 184 if Salida2 1 m ChkSal2 SetChec
186. ero que incluye las funciones tiles para el di logo principal de la aplicaci n Project gt Add to project gt Files gt ABRCProyectoBDDIgUtils h En ProyectoBDDlg cpp Modificar la funci n OnlnitDialog Classwizard gt MessageMap CProyectoBDDlg gt WM INITDIALOG gt EditCode BOOL CProyectoBDDIlg OnInitDialog CDialog OnInitDialog 28 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira m Add About menu item to system menu IDM ABOUTBOX must be in the system command range ASSERT IDM ABOUTBOX amp OxFFF0 IDM ABOUTBOX ASSERTADM ABOUTBOX lt OxF000 CMenu pSysMenu GetSystemMenu FALS E if psysMenu NULL CString strAboutMenu strAboutMenu LoadString IDS ABOUTBOX if str AboutMenu IsEmpty pSysMenu gt AppendMenu MF_SEPARATOR pSysMenu gt AppendMenu MF_STRING IDM_ABOUTBOX strAboutMenu Set the icon for this dialog The framework does this automatically when the application s main window is not a dialog SetIcon m hlcon TRUE Set big icon Setlcon m hlcon FALSE Set small icon TODO Add extra initialization here m nTimerl SetTimer 1 500 NULL m_pSet amp m_BaseDatosDlgSet m_pSet gt ABRAbrirBD InicializarSalidas m_pSet gt ABRCerrarBD ImprimirLeyenda m_Socketl SetLocalPort atoi Leer amp m_EditPort m_Socketl ABREscucharSck m Staticl m Socketl ABRConvertirEstado m_Socket
187. erto emisor 16 bits N mero de puerto destino 16 bits N mero de secuencia 32 bits Numero de secuencia de asentamiento 32 bits E Tes Longitud de la Banderas cabecera 4 bits SYN ACK FIN TCP y datos 16 bits i Opciones si existen Datos si existen Estructura b sica de un paquete TCP IP El paquete TCP cabe dentro de un datagrama IP Datagrama IP Paquete TCP Cabecera IP Cabecera TCP Datos TCP Generalmente 20 bytes Generalmente 20 bytes Relaci n entre un datagrama IP y un segmento TCP El protocolo TCP establece una conexi n fullduplex punto a punto entre dos computadoras utilizando cada programa en cada extremo de la conexi n su propio puerto La combinaci n de una direcci n IP con un n mero de puerto recibe el nombre de conector socket La conexi n se establece al inicio mediante un protocolo de tres fases El programa que inicia la conexi n env a un paquete con la bandera SYN activada El programa que responde devuelve un paquete con las banderas SYN y ACK activadas y por ltimo el programa que inicia la transmisi n env a un paquete con la bandera ACK activada 13 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a Tras el establecimiento de la conexi n cada programa puede enviar un flujo de bytes al otro programa TCP utiliza los campos de numero de secuencia junto con las banderas ACK para gestionar ese flujo de bytes El programa qu
188. erto paralelo del PC y la necesidad de su utilizaci n en este proyecto A adimos un apartado donde se explica como funciona la aplicaci n desde el punto de vista de programaci n que ayudar a entender el c digo de la aplicaci n Se plantea una posible soluci n al problema de la IP din mica sin olvidar el gran n mero de soluciones que se podr an plantear En la memoria de dise o se pretende dar una gu a de c mo realizar una base de datos que se adapte a nuestra aplicaci n y otra gu a de c mo realizar la aplicaci n paso a paso Tambi n se incluye el c digo de la funciones en C realizadas y una gu a de instalaci n del software Por ltimo se ha realizado un breve manual de usuario para facilitar su utilizaci n a un usuario sin conocimientos de programaci n En el anexo a adimos el c digo de todos los archivos que se incluyen en el proyecto de Microsoft Visual C 39 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a Posibles l neas de continuaci n del Proyecto Este proyecto realiza una introducci n a la comunicaci n entre aplicaciones con socket s A partir de aqu se abre un amplio campo de posibilidades para utilizar esta funcionalidad en m ltiples aplicaciones A nivel de comunicaci n mediante socket s en nuestra aplicaci n hemos utilizado solo una conexi n punto a punto entre aplicaciones pero existen otras posibilidades que podr an ser de ut
189. espera de que el usuario realice alguna acci n sobre el di logo Cliente Se puede modificar el contenido de los EditBox de IP y Port para indicar en que direcci n y en que puerto se debe realizar la conexi n con el servidor Al realizar cualquier cambio en los EditBox se ejecuta las funciones OnChangeEditl3 o OnChangeEdit14 que registran en el registro de Windows los nuevos datos actualizados Al pulsar el Bot n Conectar se ejecuta la funci n OnButtonConectar que se encarga de realizar la conexi n con el di logo servidor Al producirse la conexi n la aplicaci n cliente empieza a recibir datos autom ticamente por el Socket se ejecuta la funci n OnDataArrivalWinsock1 y se recibe el estado de las salidas y entradas en el di logo cliente y se inicializa la leyenda con la misma leyenda que tiene el di logo servidor 34 B ca Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Cada vez que se produce un cambio del estado de las entradas o salidas en el di logo servidor y este est conectado a un di logo cliente se ejecuta la funci n DataArrivalWinsock1 y se recibe el nuevo estado actualizado Si en el di logo cliente se cambia el estado de alg n CheckBox de las salidas se env a al servidor a trav s del socket una orden de cambio de la salida correspondiente en el servidor y queda registrada en la base de datos del servidor como si se hubiera ejecutado desde l mismo
190. etApp GetProfileString m EditPath SetWindowText AfxGetApp gt GetProfileString UpdateData FALSE ag AfxGetApp AfxGetApp AfxGetApp AfxGetApp AfxGetApp AfxGetApp AfxGetApp AfxGetApp L a a NT PE DET tr 3 wJ ir gt GetProfileString gt GetProfileString gt GetProfileString gt GetProfileString gt GetProfileString gt GetProfileString gt GetProfileString gt GetProfileString Agust Baub Rovira Leyenda Salida2 Leyenda Salida5 Leyenda Salida6 Leyenda Salida8 So6ock t IP m Socket GetLocallP 7 Socker Port BD Para T1 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Instalaci n de la aplicaci n ProyectoBD exe Para la utilizaci n de la aplicaci n de este proyecto en un ordenador PC compatible son necesarios los siguientes requisitos e Sistema Operativo Windows 95 o superior e Tarjeta de Puerto Paralelo en el PC e Tarjeta de red o modem para conexi n a red TCP IP e Control mswinsockcontrol ocx registrado en el PC e Controlador ODBC de Microsoft Data Access instalado Con el disco de instalaci n se incluye el fichero de instalaci n de la aplicaci n ProyectobDsetup exe Este fichero instalar el fichero de la aplicaci n ProyectoBD exe y la base de datos necesaria para su utilizaci n bd1 mdb Ahora l
191. etched Returns the actual number of rows retrieved during a fetch GetRowStatus Returns the status of the row after a fetch IsFieldDirty Returns nonzero if the specified field in the current record has been changed IsFieldNull Returns nonzero if the specified field in the current record is Null has no value IsFieldNullable Returns nonzero if the specified field in the current record can be set to Null having no value RefreshRowset Refreshes the data and status of the specified row s Requery Runs the recordset s query again to refresh the selected records SetFieldDirty Marks the specified field in the current record as changed SetFieldNull Sets the value of the specified field in the current record to Null having no value SetLockingMode Sets the locking mode to optimistic locking the default or pessimistic locking Determines how records are locked for updates SetParamNull Sets the specified parameter to Null having no value SetRowsetCursorPosition Positions the cursor on the specified row within the rowset Recordset Overridables Check Called to examine the return code from an ODBC API function CheckRowsetError Called to handle errors generated during record fetching DoBulkFieldExchange Called to exchange bulk rows of data from the data source to the recordset Implements bulk record field exchange Bulk RFX DoFieldExchange Called to exchange data in both directions between the field data members of
192. f IsOpen amp amp ISEOF 41 MoveNext 42 43 44 L 45 46 void CBaseDatosSet ABRAnteriorRegistro 47 48 if IsOpen amp amp ISBOF amp amp ISEOF 49 MovePrev 50 51 if IsOpen amp amp ISBOF 52 MovePrev 53 54 55 56 void CBaseDatosSet ABRInsertarRegistro CString Nombre CString Estado CString Hora 57 d 58 CString sqlema 59 60 UpdateData TRUE 61 62 if IsOpen 1 63 sqlcmd Format INSERT INTO Historico Nombre Estado Hora VALUES s s s Nomb 64 m_pDatabase gt ExecuteSQL sqlcmd Page 1 of 3 ABRdb h 09 01 2002 19 29 65 66 67 68 69 70 71 72 73 74 Ja 76 77 78 19 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 35 26 2 98 99 100 LOL 102 103 104 105 106 107 108 109 LIO 111 ILZ 113 114 LILA 116 117 118 LLY 120 AL 122 123 124 125 126 127 128 ABRBuscarTodosLosRegistros void CBaseDatosSet ABRBorrarRegistro CString Nombre CString Estado CString Hora CString sqlema UpdateData TRUE CString n CString e CString h if Nombre n lt gt if Estado e lt gt if Hora h lt gt if IsOpen 1 sqlcmd Format DELETE FROM Historico WHERE Nombre s s AND Estado s s AND Hora if n e amp amp e h amp amp h lt gt if AfxMessageBox Seguro que desea Borrar Todos Los Registros MB YESNO IDYES L
193. ft Viste CFF AI TATU DS SDF LS S DELL LS SSA SP SD SI A TETAS ST SL PLPL LA ESTA TITAN SL LS LAS Other standard files Page 1 of 2 ReadMe t xt OO T2002 19232 65 66 67 68 o9 70 del 72 T3 74 Fa 76 T 78 9 80 81 82 83 84 85 86 87 88 89 StdAfx h StdAfx cpp These files are used to build a precompiled header PCH file named ProyectoBD pch and a precompiled types file named StdAfx obj Resource h This is the standard header file which defines new resource IDs Microsoft Visual C reads and updates this file ESSA LISS CS FL P L LL FAS LLA VILSE RIRI TAALI LL LPL L OTA AT PAX AL TALIA PILI LI LAS PUR Other notes AppWizard uses TODO to indicate parts of the source code you should add to or customize If your application uses MFC in a shared DLL and your application is in a language other than the operating system s current language you will need to copy the corresponding localized resources MFC42XXX DLL from the Microsoft Visual C CD ROM onto the system or system32 directory and rename it to be MFCLOC DLL XXX stands for the language abbreviation For example MFC42DEU DLL contains resources translated to German If you don t do this some of the UI elements of your application will remain in the language of the operating system VF LLA IPLA ae LLAI TS E LUE RI ORT ea EE EP EO TLA LLA L LDLLLLLA AL LEILA RSS VAS ST TIL ILA Page 2 of 2 resource h CO 1 0 OP WN FS A A
194. gt Libreria donde se encuentran las funciones 13 ff Ainpi y _Suepl 14 15 class CPuertoParalelo 16 4 17 pi lie 18 CPuertoParalelo 19 virtual CPuertoParalelo 20 21 int Entradal 22 int Entrada2 23 int Entrada3 24 int Entrada4 25 void Salidal bool estado 26 void Salida2 bool estado 21 void Salida3 bool estado 28 void Salida4 bool estado 29 void Salida5 bool estado 30 void Salida6 bool estado 31 void Salida7 bool estado 32 void Salida8 bool estado 33 void Escribir int dato 34 int Leer 35 dy 36 37 endif defined AFX_PUERTOPARALELO_H__4E5D8741_A1E6_11D5_97E1_A19932F01649_ INCLUDED 38 Page 1 of 1 ReadMe t xt OO T2002 19232 UI A A A A A A A A H 0 00 1001 4 WN rS O1 O1 UI N O1 O1 O1 O1 OO Jt Oy Od ABS GO O1 Orv O UI HO XO OY OY ON me N AppWizard has created this ProyectoBD application for you This application not only demonstrates the basics of using the Microsoft Foundation classes but ds also starting point for writing your application This file contains a summary of what you will find in each of the files that make up your ProyectoBD application ProyectoBD dsp This file the project file contains information at the project level and is used to build a single project or subproject Other users can share the project dsp file but they should export the makefiles locally ProyectoBD h This is the
195. gt Programas gt ABRProyectoBD gt ProyectoBD La instalaci n se realiza de la misma manera para el PC servidor y para el PC cliente Si una vez instalado el programa este no funcionase correctamente es que falta alguno de los requisitos mencionados anteriormente En el disco de instalaci n se han a adido todos los ficheros necesarios para que el programa pueda ejecutarse en el sistema donde falten alguno de los componentes necesarios e Para registrar el control copiar el fichero mswinsockcontrol ocx en ciwindowsisystem32 y ejecutar regsvr32 exe c windows system32 mswinsockcontrol ocx Agusti Baubi Rovira Para instalar el controlador ODBC de Microsoft Data Access ejecutar el fichero Mdac_es exe Estoinstalara el fichero Mdac_typ exe en espa ol en cMpdkNSp anish M dac_typ exe ejecutarlo y seguir los pasos de la instalaci n este fichero a ade las librerias necesarias para ODBC Para instalar el Mdac_es exe puede ser necesario tener instalado el fichero DCOM98 exe que carga controladores para dar soporte de comunicaci n entre los controles ActiveX y Control remoto mediante comunicaci n TCP IP de Radioayudas A eron uticas iz Funcionamiento de la aplicaci n La aplicaci n creada ProyectoBD exe se encarga de controlar ocho salidas y cuatro entradas digitales del puerto paralelo realizar una base de datos con la informaci n de los eventos que se han producido y funcionar como una aplicaci n servidor para establ
196. gt EditCode m_Staticl m_Socket2 ABRConvertirEstado m_Socket2 GetState UpdateDate FALSE if AfxGetApp gt GetProfileString Socket2 IP AfxGetApp L Write ProfileString Socket2 IP 127 0 0 1 if AfxGetApp gt GetProfileString Socket2 Port AfxGetApp Write ProfileString Socket2 Port 888 m ButtonCerrar EnableWindow FALSE m ButtonConectar EnableWindow TRUE Salidal 0 47 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a 1 Salida8 0 return TRUE BOOL CClienteDlg 0nInitDialog CDialog OnInitDialog TODO Add extra initialization here m_Staticl m_Socket2 ABRConvertirEstado m Socket2 GetState UpdateData FALSE if AfxGetApp gt GetProfileString Socket2 IP AfxGetApp gt WriteProfilestring Socket2 1B 127 0 0 1 if AfxGetApp gt GetProfileString Socket2 Port AfxGetApp gt WriteProfileString Socket2 Port 888 3 EditIP SetWindowText AfxGetApp GetProfileString Socket2 IP m EditPort SetWindowText AfxGetApp gt GetProfileString Socket2 Port ButtonCerrar EnableWindow FALSE m ButtonConectar EnableWindow TRUE 3 Salidal 0 Salida2 0 Salida3 0 Salida4 0 Salida5 0 Salida6 0 Salida7 0 Salida8 0 return TRUE return TRUE unless you set the focus to a control EXCEPTION OCX Property Pages s
197. h Leyenda Insert Leyenda GetLength Leer amp m EditSalida5 Leyenda Insert Leyenda GetLength Leyenda Insert Leyenda GetLength Leer amp m EditSalida6 Leyenda Insert Leyenda GetLength Leyenda Insert Leyenda GetLength Leer amp m EditSalida 7 Leyenda Insert Leyenda GetLength Leyenda Insert Leyenda GetLength Leer amp m EditSalida8 Leyenda Insert Leyenda GetLength Leyenda Insert Leyenda GetLength Leer amp m EditEntradal Leyenda Insert Leyenda GetLength Leyenda Insert Leyenda GetLength Leer amp m EditEntrada2 Leyenda Insert Leyenda GetLength Leyenda Insert Leyenda GetLength Leer amp m EditEntrada3 Leyenda Insert Leyenda GetLength Leyenda Insert Leyenda GetLength Leer amp m EditEntrada4 Leyenda Insert Leyenda GetLength if Salidal 1 Estado Insert 9 1 else Estado Insert 9 0 if Salida2 1 Estado lnsert 11 1 else Estado Insert 11 0 if Salida3 1 Estado Insert 13 1 else Estado Insert 13 W A if Salida4 1 Estado Insert 15 1 else Estado Insert 15 0 if Salida5 1 Estado Insert 17 L else Estado Insert 17 0 if Salida6 1 Estado Insert 19 1 else Estado Insert 19 0 if Salida 1 Estado lnsert 21 1 else Estado lInsert 21 Q0 5 if Salida8 1 Estado Insert 23 1 else Estado Insert 23 Q0
198. hould return FALSE A adir funci n OnButtonConectar Classwizard gt MessageMap CClienteDlg gt IDC BUTTON CONECTAR gt BN CLICKED Add Function gt gt EditCode m Socket2 ABRCerrarSck m Socket2 ABR ConectarSck m Staticl m Socket2 ABRConvertirEstado UpdateData FALSE m ButtonCerrar EnableWindow TRUE m ButtonConectar EnableWindow FALSE void CClienteDlg OnButtonCone ctar i TODO Add your control notification handler code here Socket2 ABRCerrarSck Socket2 ABRConectarSck Staticl m Socket2 ABRConvertirEstado m Socket2 GetState pdateData FALSE _ ButtonCerrar EnableWindow TRUE _ ButtonConectar EnableWindow FALSE 330333 A adir funcion OnChangeEdit013 Classwizard gt MessageMap CClienteDlg gt IDC EDITO13 SEN CHANGE Add Function gt gt EditCode 48 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a AfxGetApp WriteProfileString Socket2 IP Leer m EditIP void CClienteDlg OnChangeEdit013 TODO Lf this is a RICHEDIT control the control will not send this notification unless you override the CDialog OnInitDialog function and call CRichEditCtri SetEv entMask with the ENM CHANGE flag ORed into the mask TODO Add your control notification handler code here AfxGetApp WriteProfileString Socket2 IP Leer am EditIP A adir funcion OnChang
199. iamente creada con Microsoft Access mdb utilizaremos la clase CRecordSet Para introducir la clase CRecordSet en una aplicaci n Visual C realizaremos los siguientes pasos Menu Insert gt NewClass gt MFC Class gt CBaseDatosSet gt BaseClass CRecordSet gt ODBC gt MS Access Database gt Dynaset gt BD1 mdb gt Historico Nota La base de datos debe estar copiada en la carpeta del proyecto New Class CB ase atosS et CRecordset Dialog lo a se NONE Automation L Ereateable by Ine RE 20 Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas L Detect dirty columns w ji d all Seleccionar base de datos ED1 MDE eh desa l EDT1 HDE F gt ak Escritorio S PropectoBD E elect Database Tables Historico Agust Baub Rovira En la funci n GetDefaultConnect de la clase CBaseDatosSet cambiaremos return _T ODBC DSN MS Access Database por return _T ODBC DRIVER MICROSOFT ACCESS DRIVER mdb DSN DBQ CNwindows escritorio ProyectoBDWbd1 mdb a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Ahora se especifica el controlador ODBC que utilizaremos y donde esta la base de datos que utilizamos bd1 mdb Crearemos unas variables que enlazaran con la base de datos Crear dos variables CBaseDatosSet m_BaseDatosDlgSet CBaseDatosSet m_pSet CBaseDatosSet m BaseDatosDlgSet CBase
200. ico 5 void CBaseDatosSet DoFieldExchange CFieldExchange pFX AFX FIELD MAP CBaseDatosSet pFX 5SetFieldType CFieldExchange outputColumn RFX Text pFX _T Nombre m Nombre REX Text pFX T Estado m Estado RFX Text pFX T Hora m Hora AFX FIELD MAP FF FA TAT O UE E EE CBaseDatosSet diagnostics ifdef DEBUG void CBaseDatosSet AssertValid const CRecordset AssertValid void CBaseDatosSet Dump CDumpContext amp dc const CRecordset Dump dc endif _DEBUG Page 2 of 2 BaseDatosSet h CO S O OI sn H N MN MN NN NF FF FP FEF ER EP Po Oe ON H O O O 1 O UI BR QO N Ko ou 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 od 32 53 54 da 56 57 58 99 60 61 62 fif 09 01 2002 19 30 defined AFX_BASEDATOSSET_H__9210F9FEF_A9F7_11D5_97E1_FCCD2DB3034F__ INCLUDED define AFX_BASEDATOSSET_H__9210F9FF_A9F7_11D5_97E1_FCCD2DB3034F__ INCLUDED_ L _MSC_VER gt 1000 pragma once endif MSC VER gt 1000 BaseDatosset h header file VISIT TAT T TTT A TAA C RANIA T TT L ELL D NT Z TA UA VELA FA TT A VU ARA ADA DA AA TUR LA AAA CBaseDatosSet recordset class CBaseDatosSet public CBaseDatosSet CDatabase pDatabase public CRecordset NULL DECLARE DYNAMIC CBaseDatosSet Field Param Data AFX_FIELD CBaseDatosSet CString m_Nombr
201. ida8 323 d 224 TODO Add your command handler code here 325 InsertarRegistro Leer amp m EditSalida8 MirarEstado 8 InsertarHora 326 ActualizarPuerto 327 328 329 330 331 332 void CProyectoBDDlg OnCheckl i 333 4 334 TODO Add your control notification handler code here 335 OnSalidasSalidal 336 4 337 338 void CProyectoBDD1g OnCheck2 339 4 340 TODO Add your control notification handler code here 341 OnSalidasSalida2 342 343 344 void CProyectoBDDlg OnCheck3 345 346 TODO Add your control notification handler code here 347 OnSalidasSalida3 348 3 349 350 void CProyectoBDD1g OnCheck4 351 352 TODO Add your control notification handler code here 353 OnSalidasSalida4 354 355 356 void CProyvectoBeDDlg OnCh ck5 357 4 358 TODO Add your control notification handler code here 359 OnSalidasSalida5 360 3 361 362 void CProyectoBDD1lg OnCheck6 363 4 364 TODO Add your control notification handler code here 365 OnSalidasSalida6 366 3 367 368 void CProyectoBDDlg OnCheck7 2359 4 370 TODO Add your control notification handler code here 371 OnSalidasSalida 7 372 q 373 374 void CProyectoBDDlg OnCheck8 l W kn 376 TODO Add your control notification handler code here 3117 OnSalidasSalida8 378 j 379 380 BEGIN EVENTSINK MAP CProyectoBDDlg CDialog 351 AFX EVENTSIN
202. if Entrada3 1 m ChkEnt3 SetCheck 1 else m ChkEnt3 SetCheck 0 if Entrada4 1 m ChkEnt4 SetCheck 1 else m OhkEntd SetcCheck 0 void CClienteDlg GuardarSalidas CString Estado 1f Salidal 1 Estado Insert 1 1 Le else Estado Insert 1 0 1f Salida2 1 Estado insert 3 1 Ms else Estado Insert 3 0 1f Salida3 1 Estado Ins rt 5 l else Estado Insert 5 0 if Salida4 1 Estado Insert 7 1 else Estado luserr 1 0 js if Salida5 1 Estado Insert 9 l 5 else Estado Insert 9 0 if Salida6 1 Estado Insert 11 1 else Estado Insert 11 0 74 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira iz if Salida7 1 EStado lnserr la L ys else EsLtado lnsert 13 Q0 if Salida8 2 1 Estado Insert 15 1 else Estado Insert 15 0 if Entradal 1 Estado Insert 17 1 else Estado Insert 17 0 Fis if Entrada2 1 Estado Insert 19 1 else Estado Inserte 19 0 js if Entrada3 1 Estado Insert 21 1 else Estado Insert 21 0 Js if Entrada4 1 Estado Insert 23 1 else Estado Iinsert 23 0 5 m_EditNombre SetWindowText Se Cierra Dialogo de Salidas m EditEstado SetWindowText Estado m EditHora SetWindowText InsertarHora m pSet gt ABRInsertarRegistro Leer amp m_EditNombre Leer amp m_EditEstado Leer amp m_EditHora C
203. ile To build this project using NMAKE use the Export Makefile command and run NMAKE f ProyectoBD mak You can specify a configuration when running NMAKE by defining the macro CFG on the command line For example NMAKE f ProyectoBD mak CFG ProyectoBD Win32 Debug Possible choices for configuration are Win32 x96 x86 based on Win32 ProyectoBD Win32 Release ProyectoBD Win32 Debug Application based on Application Begin Project AllowPerConfigDependencies 0 Scc_ProjName Sec LoGal Path 4 CPP cl exe MTL midl exe RSC rc exe LIF PROP PROP PROP PROP PROP PROP PROP PROP PROP PROP ADD ADD ADD ADD ADD ADD H s CFG BASE BASE BASE BASE BASE Use _ MFC 6 Use_Debug_Libraries 0 Intermediate_Dir ProyectoBD Win32 Release Use MFC 6 Use_Debug_Libraries 0 Output_Dir Release Intermediate Dir Release Target Dir T Output Dir Release Release Target Dir BASE CPP nologo MD W3 GX O2 D WIN32 D NDEBUG D WINDOWS D AFXDLL Yu st CPP nologo MD W3 GX O2 D WIN32 D NDEBUG D WINDOWS D AFXDLL D MBCS BASE MTL nologo D NDEBUG mktyplib203 win32 MTL nologo D NDEBUG mktyplib203 win32 BASE RSC 1 OxcOa d NDEBUG RSC 1 OxcOa d NDEBUG d _AFXDLL d _AFXDLL BSC32 bscmake exe ADD BASE BSC32 nologo ADD BSC32 nologo LINK32 link exe AD
204. ilidad para mejorar la comunicaci n e Un socket para comandos y otro socket para datos e Varios sockets para conexiones entrantes de varias aplicaciones cliente al mismo servidor y otro para los datos e En visual C existe la posibilidad de crear controles en tiempo de ejecuci n con lo que podr amos crear un socket nuevo con cada conexi n entrante e Otra posibilidad muy interesante ser a crear una aplicaci n servidor con la nica funcionalidad de gestionar los mensajes provenientes de las diferentes aplicaciones cliente que se le conectan Esta posibilidad presenta la ventaja de que se puede instalar la aplicaci n servidor en una computadora que su direcci n IP sea fija y entonces todas las aplicaciones cliente saben donde dirigirse para establecer la comunicaci n y es la aplicaci n servidor quien se encargar a de reenviar la informaci n a la aplicaci n cliente de destino en el caso de estar conectada e Utilizando socket s se pueden crear aplicaciones cliente que en lacen con servidores de POP3 y SMTP email http p ginas web FTP Transferencia de ficheros etc con lo que se puede a adir funciones como alertas por correo electr nico a tu buz n de correo m vil etc Presentaci n de informaci n de la aplicaci n en una p gina web transferencia de las bases de datos en otro ordenador etc e Los socket s pueden ser utilizados con otros lenguajes de programaci n como ASP que es un lenguaje de programaci n para re
205. ine AFX STDAFX H 9210F9F8 A9F7 11D5 97E1 FCCD2DB3034F INCLUDED tif MSC VER gt 1000 pragma once endif MSC VER gt 1000 define VC EXTRALEAN Exclude rarely used stuff from Windows headers tinclude lt afxwin h gt MFC core and standard components tinclude lt afxext h gt MFC extensions include lt afxdisp h gt MFC Automation classes include lt afxdtctl h gt MFC support for Internet Explorer 4 Common Controls ifndef _AFX_NO_AFXCMN_SUPPORT tinclude lt afxcmn h gt MFC support for Windows Common Controls endif _AFX NO AFXCMN SUPPORT tinclude lt afxdb h gt include lt afxdao h gt AFX INSERT LOCATION Microsoft Visual C will insert additional declarations immediately before the previous line tendif defined AFX STDAFX H 9210F9F8 A9F7 11D5 97E1 FCCD2DB3034F INCLUDED Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Crear di logo para ver la Base de Datos IDD_BASEDATOSDLG_DIALOG Insert gt New Class gt Form Class gt CBaseDatosDlg Hew Class Form Class m CBaseD atosDlg D n IDO BASEDATOUSDLG DIALOG lt a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Crear Menu para el di logo principal IDR MENUI Insert gt Resource gt Menu Acci6n Base de Datos Propiedades Cliente Salidas gt Salidal Salida2 Salidas Base de Datos Propi
206. insockControl 218 End Section 219 Section ProyectoBD 248DD892 BB45 11CF 9ABC 0080C7E7B78D 220 215 Class sCMSWinsockControl 221 2 10 HeaderFile mswinsockcontrol h 222 d 2 8 ImplFile mswinsockcontrol cpp 223 d End Sect von 224 Page 4 of 4 ProyectoBD dsw 0970142002 xpo 1 2 3 4 5 6 7 8 9 10 Lu g ie 14 15 16 d 18 19 20 21 ZE 2 3 24 25 26 2 28 29 30 3 Microsoft Developer Studio Workspace File Format Version 6 00 WARNING DO NOT EDIT OR DELETE THIS WORKSPACE FILE Ak H AP AP AP AP AP AP AP AP AP A A AP AP AP AP AP AP AP AP AP AP AP AP AP AP AP AP AP AP H TTT AP H H H H AP PP H H H H AP AP AP Project ProyectoBD ProyectoBD dsp Package Owner lt 4 gt Package lt 5 gt tt 13 Package lt 4 gt CE jag tt AP AP HH HH HH H H H H H H H H 4 H H H H Global Package lt 5 gt iX 2 Package lt 3 gt Lia 1249DD996 BB45 l1CE O9ABC OO0GO0CTETB TSDj i Ak HF H H H H AP AP H H H H AP 4 4 4 H H H H A 4 nr H H H H H 4 4 H H 4 nr H H 4 r 4 4 H H H H TT 4 AE Page 1 of 1 ProyectoBD h 09 01 2002 19 31 CO S O OP WN H Cn 4B ds fs ds BR RHR ds KF e WW DO GO LO Lo Lo GO uy 0 DN INO N NO NN NO NO NO NO 3 ap PRP PP PP ee O V J OQ 014 WN IP OO o OO 10 LH AW MN IO io OO 10 Ln SON IP O O O Jo
207. iteProfileString Leyenda Entrada3 m EditEntrada3 90 AfxGetApp gt WriteProfileString Leyenda Entrada4 m EditEntrada4 91 92 AfxGetApp gt WriteProfileString Socket IP m EditIP 93 AfxGetApp gt WriteProfileString Socket Port m EditPort 94 95 AfxGetApp gt WriteProfileString BD Path m EditPath 96 97 CD1alog 0n0K 98 99 100 BOOL CPropiedadeslDlg OnInitDialog 101 102 CDialog OnInitDialog 103 104 TODO Add extra initialization here 105 106 m EditSalidal AfxGetApp gt GetProfileString Leyenda Salidal Ly m EditSalida2 AfxGetApp GetProfileString Leyenda Salida2 108 m EditSalida3 AfxGetApp GetProfileString Leyenda Salida3 109 m EditSalida4 AfxGetApp GetProfileString Leyenda Salida4 110 m EditSalida5 AfxGetApp GetProfileString Leyenda Salida5 111 m EditSalida6 AfxGetApp GetProfileString Leyenda Salida6 112 m EditSalida7 AfxGetApp gt GetProfileString Leyenda Salida7 113 m EditSalida8 AfxGetApp gt GetProfileString Leyenda Salida8 114 115 m EditEntradal AfxGetApp gt GetProfileString Leyenda Entradal 116 m EditEntrada2 AfxGetApp gt GetProfileString Leyenda Entrada2 117 m EditEntrada3 AfxGetApp GetProfileString Leyenda Entrada3 118 m EditEntrada4 AfxGetApp GetProfileString Leyenda Entrada4 119 120 m EditIP AfxGetApp GetProfileString Socket IP 12 7
208. izar la conexi n con el servidor Al realizar cualquier cambio se registran en el registro de Windows los nuevos datos actualizados Si se pulsa el Bot n Conectar se realiza la conexi n con el di logo servidor Al producirse la conexi n la aplicaci n cliente empieza a recibir datos autom ticamente se recibe el estado de las salidas y entradas en el di logo cliente y se inicializa la leyenda con la misma leyenda que tiene el d logo servidor Agust Baub Rovira Cada vez que se produce un cambio del estado de las entradas o salidas en el dialogo servidor y este esta conectado a un di logo cliente se recibe el nuevo estado actualizado Si en el dialogo cliente se cambia el estado de alguna de las salidas se env a al servidor una orden de cambio de la salida correspondiente en el servidor y queda registrada en la base de datos del servidor como si se hubiera ejecutado desde l mismo Si durante la conexi n se pulsa el Bot n Cerrar se cierra la co nexi n del cliente con el servidor y se puede volver a conectar otra vez con el mismo servidor o con otro diferente en otra IP y puerto distinto Si se cierra el di logo tambi n se cierra la conexi n y se regresa al di logo principal SUPERIOR ENGINYERIA UNIVERSITAT ROVIRA 1 VIRGILE 4 ANEXOS e Ingeniero Superior Agust n Baub Rovira en Autom tica y Electr nica Industrial e Profesor Ponente Ernest Gil Dolcet Febrero 2002 ABRCBaseDatosDlgUtils h
209. k 1 185 else m ChkSal2 SetCheck 0 186 if Salida3 1 m ChkSal3 SetCheck 1 187 else m ChkSal3 SetCheck 0 188 if Salida4 1 m ChkSal4 SetCheck 1 189 else m ChkSal4 SetCheck 0 190 if Salida5 1 m ChkSal5 SetCheck 1 191 else m ChkSal5 SetCheck 0 192 if Salida6 1 m ChkSal6 SetCheck 1 Page 3 of 7 ABRCClienteDlgUtils h 09 01 2002 19 29 195 else m ChkSal6 SetCheck 0 194 if Salida7 1 m ChkSal7 SetCheck 1 195 else m ChkSal7 SetCheck 0 196 1f Salida8 1 m_ChkSal8 SetCheck 1 197 else m ChkSal8 SetCheck 0 198 199 if Entradal 1 m ChkEnti SetCheck 1 200 else m ChkEntl SetCheck 0 201 if Entrada2 1 m ChkEnt2 SetCheck 1 202 else m ChkEnt2 SetCheck 0 203 if Entrada3 1 m ChkEnt3 SetCheck 1 204 else m ChkEnt3 SetCheck 0 205 if Entrada4 1 m ChkEnt4 SetCheck l 206 else m ChkEnt4 SetCheck 0 207 208 qg 209 void CClienteDlg GuardarSalidas 210 211 Cstring Estado 212 213 if Salidal 1 Estado Insert 1 1 214 else Estado Insert 1 0 215 if Salida2 1 Estado Insert 3 1 216 else Estado Insert 3 0 217 if Salida3 1 Estado lnsert 5 1 218 else Estado Insert 5 0 219 if Salida4 1 Estado Insert 7 1 220 else Estado Insert 7 0 221 if Salida5 1 Estado Insert 9 1 222 else Estado Insert 9 0 223 if Salida6 1 Estado Insert 11 1 224 else Estado Insert 11 0 22
210. ket2 GetState 7 Salida8 Salida8 m_Socket2 ABREnviarSck Salida8 Escribir amp m EditEnviado Leer amp m EditSalida8 else m_ChkSal8 SetCheck 0 A adir funci n OnCloseWinsock1 Classwizard gt MessageMap CClienteDlg gt IDC WINSOCKI Close gt Add Function gt EditCode m Socket2 ABRCerrarSck m Staticl ABRConvertirEstado UpdateData FALSE m ButtonCerrar Enable Window FALSE m_ButtonConectar EnableWindow TRUE void CClienteDlg OnCloseWinsockl TODO Add your control notification handler code here m_Socket2 ABRCerrarSck m_Staticl m_Socket2 ABRConvertirEstado UpdateData FALSE m Socket2 GetState 22 A Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a m ButtonCerrar EnableWindow FALSE m ButtonConectar EnableWindow TRUE En ProyectoBDDIg h Insertar en la cabecera del fichero include ClienteDlg h fif ldefined AFX_PROYECTOBDDLG_H__14710EF7_3ED3_43D7_BACE_258C8EA5D161__INCLUDED_ define AFX_PROYECTOBDDLG_H__14710EF7_3ED3_43D7_BACE_258C8EA5D161__INCLUDED_ include BaseDatosSet h include PuertoParalelo h Added by ClassView include BaseDatosDlg h Added by ClassView if _MSC_VER gt 1000 pragma once endif _MSC_VER gt 1000 LA F TEASE AL IIIT Ba T ERU CE I EE ARE EE a a EE CProyectoBDDlg dialog class CBaseDatosSet class CBaseDatosDlg include Propiedade
211. l fichero ABRCBaseDatosDlgUtils h en la carpeta del proyecto fichero que incluye las funciones tiles para el di logo de la base de datos Project gt Add to porject gt Files gt ABRCBaseDatosDlgUtils h En BaseDatosDlg cpp A adir funci n OnlnitDialog Classwizard gt MessageMap CBaseDatosDlg gt WM_INITDIALOG gt Add Function gt EditCode 16 Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira MFC ClassWizard 3 RR six Message Maps Member Variables Automation Actes Events Class Into Project Class name Add Class ProyectoBD CBaseDatosDlg vi Add Fire U t EA ABaseDatozDlg h CA ABazeDatozDlo cpp bea Object D Messages Delete Function L BaseD atosD la ID ACCIN BASEDEDATOS Ww _K E Y DOAN ND ACCIM CLIENTE WM KEYTLIP ID amp CCIN PROPRIEDADES Ww KILLFUCLIS ID SALIDAS SALIDA Ww LELITTONDELCLE ID SALIDAS SALIDAZ Ww LELITTONDOWN ID SALIDAS SALIDAJ Ww LELITTONUP Member functions Y DoDatakxchange DnlnitD alag ON MM INITDIALOG Description Sent to a dialog bos before the dialog box is displayed BOOL CBaseDatosDlg OnlInitDialog CDialog OnInitDialog TODO Add extra initialization here m pSet amp m BaseDatosDlgSet m_pSet gt ABRCerrarBD m_pSet gt ABRAbrirBD m Staticl m pSet gt ABRContarRegistros UpdateData FALSB m pSet gt ABRUltimoRegistro OnButtonBusca
212. l24 IDC_EDITO10 edit 1350633600 Control25 IDC STATIC Static 1342308352 Control26 IDC EDITOLL edit 1350633600 Control27 IDC_STATIC static 1342308352 Controlze 1DC BDITOTZ e6dr5 155063535600 Control29erpc STATIC Stato 1342308352 ControlS0 IDO EDITOLS qdre 1350631552 Control31 IDC STATIC static 1342308352 Control32 IDC EDITOIA edit 1350631552 Control33 IDC STATIC button 1342177287 Control34 IDC STATIC button 1342177287 Control35 IDC STATIC static 1342308352 Control36 IDC EDIT1G6 edit 1352730756 Control37 IDC STATIC button 1342177287 Control38 IDC BUTTON CONECTAR button 1342242816 Control39 IDC STATIC static 1342308352 Control140 1IDC_EDIT17 ed1t 1352730756 Control41 IDC_BUTTON_CERRAR button 1342242816 Control42 IDC_STATIC button 1342177287 Control43 IDC_CHK1 button 1342242883 Control44 IDC CHK2 button 1342242883 Control45 IDC_CHK3 button 1342242883 Control46 IDC_CHK4 button 1342242883 Control47 IDC CHK5 button 1342242883 Control48 IDC_CHK6 button 1342242883 Control49 IDC_CHK7 button 1342242883 Control50 IDC_CHK8 button 1342242883 Cont rol51 IDC_CHK9 button 1476460611 Control52 IDC_CHK10 button 1476460611 Contro153 IDC_CHK11 button 1476460611 Control54 IDC_CHK12 button 1476460611 CLS CClienteDlg Type 0 HeaderFile ClienteDlg h ImplementationFile ClienteDlg cpp BaseClass CDialog Filter D VirtualFilter dWC LastObject IDC_WINSOCK1 Page 5 of 5 09 01 2002 19 30 ProyectoB
213. l50 IDC CHKS button 1342242883 Control51 IDC CHK9 button 1476460611 Control52 IDC_CHK10 button 1476460611 Control53 IDC_CHK11 button 1476460611 Control54 IDC_CHK12 button 1476460611 CLS CClienteDlg Type 0 HeaderFile ClienteDlg h ImplementationFile ClienteDlg cpp BaseClass CDialog Filter D VirtualFilter dWC LastObject IDC WINSOCK1 Page 6 of 16 09 0171 Z2002 19231 ErovectoBb opt 385 386 307 388 309 2390 391 392 393 394 395 396 397 398 399 400 401 ds A A A A A A A conan owt WN ER D ds A A A aaa D 1 64 Column2 Estado 1 64 Column3 Hora 1 64 DLG IDD PROPIEDADES DIALOG Type 1 Class CPropiedadesiDlg ControlCount 36 Control I IDOKR button 1342242817 Control2 IDCANCEL button 1342242816 Control3 IDC_STATIC static 1342308352 Control4 IDC_EDIT1 edit 1350631552 Control5 IDC_STATIC static 1342308352 Control6 IDC EDIT2 edit 1350631552 Control IDC STATIC Static 1342308352 Control8 IDC EDIT3 edit 1350631552 Control9 IDC STATIC Static 1342308352 Controll0 IDC EDIT4 edit 1350631552 Controll1 IDC STATIC static 1342508352 Controll12 IDC EDIT5 edit 1350631552 Controll13 IDC STATIC static 1342308352 Controll14 IDC EDIT6 edit 1350631552 Gontroll5sTDC STAT EC static 1342308352 Controll6 IDC EDIT edit 1350651552 Controll7 IDC STATIC static 1342308352 Control S8 IDE EDIT8 edit 1350631552 Control VO DC STATIC static 1342308352 ControlZ0 L DC
214. leString Leyenda Salida7 m EditSalida 7 AfxGetApp gt WriteProfileString Leyenda Salida8 m EditSalida8 AfxGetApp gt WriteProfileString Leyenda Entradal m EditEntradal AfxGetApp gt WriteProfileString Leyenda Entrada2 m EditEntrada2 AfxGetApp gt WriteProfileString Leyenda Entrada3 m_EditEntrada3 AfxGetApp gt WriteProfileString Leyenda Entrada4 m EditEntrada4 AfxGetApp gt WriteProfileString Socket IP m EditIP AfxGetApp gt WriteProfileString Socket Port m EditPort AfxGet App gt WriteProfileString BD Path m EditPath CDialog OnOK Insertar funci n OnlnitDialog Classwizard gt MessageMap CPropiedades1Dlg gt WM INITDIALOG gt Add Function gt EditCode m EditSalidal AfxGetApp gt GetProfileString Leyenda Salidal m EditPath AfxGetApp GetProfileString BD Path UpdateData FALSE BOOL CPropiedadesiDlig OnInitDialog CDialog OnInitDialog TODO Add extra initialization here m EditSalidal AfxGetApp gt GetProfileString Leyenda Salidal m EditSalida2 AfxGetApp gt GetProfileString Leyenda Salida2 m EditSalida3 AfxGetApp gt GetProfileString Leyenda Salida3 m EditSalida4 AfxGetApp gt GetProfileString Leyenda Salida4 m EditSalida5 AfxGetApp gt GetProfileString Leyenda Salida5 m EditSalida6 AfxGetApp gt GetProfileString Ley
215. lida2 21 int Salida3 28 int Salida4 29 int Salida5 30 int Salida 31 int Salida7 32 int Salida8 33 int Entradal 34 int Entrada2 35 int Entrada3 36 int Entrada4 EE 38 CClienteDlg CWnd pParent NULL Standard constructor 39 40 Dialog Data 41 AFX DATA CClienteDlg 42 enum IDD IDD CLIENTEDLG DIALOG 43 CButton m ChkEnt4 44 CButton m ChkEnt3 45 CButton m ChkEnt2 46 CButton m ChkEntl 47 CButton m_ChkSal8 48 CButton m ChkSal6 49 CButton m ChkSal7 50 CButton m ChkSal5 od CButton m ChkSal4 52 GButton m ChkSal3 53 CButton m ChkSal2 54 CButton m ChkSall 55 CButton m ButtonConectar 56 CButton m ButtonCerrar 57 CEdit m_EditEnviado 58 CEdit m EditRecibido 59 CEdit m EditPort 60 CEdit m EditIP 61 CEdit m EditEntrada4 62 CEadit m EditEntrada3 63 CEdit m_EditEntrada2 64 CEdit m EditEntradal Page 1 of 2 09 01 2002 19 30 ClienteDlg h 09 01 2002 19 30 65 CEdit m EditSalida8 66 CEdit m EditSalida7 67 CEdit m_EditSalida6 68 CHOSE m EditSalida5 69 CEdit m EditSalida4 70 CEdit m EditSalida3 71 CEdit m EditSalida2 72 CEdit m EditSalidal 73 CMSWinsockControl m_Socket2 74 CString m Staticl 75 AFX_DATA 76 Pa 78 Overrides 79 ClassWizard generated virtual function overrides 80 AFX_VIRTUAL CClienteD1g 81 protected 82 virtual void DoDataExchange CDataExchange pDX DDX DDV support 83 AFX_VIRTUAL 84 85 Implementation 86 protected
216. lida6 0 Salida720 Salida8 0 return TRUE return TRUE unless you set the focus to a control EXCEPTION OCX Property Pages should return FALSE void CClienteDlg OnButtonConectar TODO Add your control notification handler code here m_Socket2 ABRCerrarSck m_Socket2 ABRConectarSck m Staticl m Socket2 ABRConvertirEstado m Socket2 GetState UpdateData FALSE m_ButtonCerrar EnableWindow TRUE m ButtonConectar EnableWindow FALSE Page 2 of 5 ClienteDlg cpp 09 01 2002 19 30 129 130 151 132 133 134 135 136 1357 138 139 140 141 142 143 144 145 146 147 148 149 150 Lol 132 l 154 153 156 157 158 159 160 161 167 163 164 165 166 16 168 169 170 171 K 173 174 1723 176 177 Jug 179 180 181 182 183 184 Les 186 187 188 189 190 EST 192 void CClienteDlg OnChangeEdit013 TODO If this is a RICHEDIT control the control will not send this notification unless you override the CDialog OnInitDialog function and call CRichEditCiri SetEv ntMaski with the ENM CHANGE flag ORed into the mask TODO Add your control notification handler code here AfxGetApp gt WriteProfileString Socket2 IP Leer amp m EditIP void CClienteDlg OnChangeEdit 014 ZZ TODO If thie is RICHEDIT control the control will not send this notification unless you override the CDialog OnInitDialog function and call CRichEditC
217. lidal out 0 63 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas case case case case case case case case case case case else out 1 Salidal Salidal break if Salida2 out 0 else out 1 Salida2 Salida2 break 1f Salida3 out 0 else out 1 Salida3 Salida3 break if Salida4 out 0 else out 1 Salida4 Salida4 break if Salida5 out 0 else out 1 Salida5 Salida5 break 1f Salida6 out 0 else out 1 Salida6 Salida6 break 1f Salida7 out 0 else out 1 Salida7 Salida7 break L Salidas t 0 else out 1 Salida8 Salida8 break if lEntradal out 0 else out 1 break 10 if Entradaz out 0 else out 1 break 11 if lEntrada3 out 0 else out 1 break 123 if Entrada4 out 0 else out 1 break default return out return NULL void CProyectoBDDlg ActualizarPuerto if Salidal PuertoParalelo Salidal 1 m_CheckSall SetCheck 1 PuertoParalelo Salidal 0 m_CheckSall SetCheck 0 if Salida2 1 Agusti Baubi Rovira 64 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira PuertoParalelo Salida2 1 m_CheckSal2 SetCheck 1 else PuertoParalelo Salida2 0 m_CheckSal2 SetCheck 0 if Salides 1 PuertoParalelo Salida3 1 m CheckS
218. logo en modo de escuchar en la direcci n de puerto que se indica en el di logo Ahora la aplicaci n queda a la espera de que el usuario realice alguna acci n sobre el dialogo del proyecto sobre alguna opci n del men o se produzca alg n cambio en las entradas del puerto que se detecta autom ticamente con la acci n OnTimer e Si se act a sobre alguna de las salidas o alguna opci n del men de salidas Se inserta un registro en la base de datos con la informaci n de la salida activada y se actualiza el puerto paralelo con la nueva informaci n Si el servidor estuviera conectado a alg n cliente le enviar a el nuevo estado de todas las entradas y salidas e Si se act a con la opci n Base de Datos del men Acci n Se abre el di logo de gesti n de la Base de Datos de modo no modal Se puede acceder a di logo padre sin cerrar el propio di logo e Si se act a con la opci n Propiedades del men Acci n Se abre el di logo de modificaci n de propiedades del proyecto de modo modal No se puede acceder a di logo padre sin cerrar el propio di logo En el caso de realizar alguna modificaci n se actualizan los datos del di logo principal e Si se act a con la opci n Cliente del men Acci n Se abre el di logo cliente que funciona de modo modal que funciona como cliente de cualquier otra aplicaci n servidor conectada a la red e Al cerrar la aplicaci n se registra el estado de las entradas y salidas y cierra
219. m EditPort AfxGetApp gt GetProfileString Socket Port 122 123 m EditPath AfxGetApp GetProfileString BD Path 124 125 UpdateData FALSE 126 127 return TRUE return TRUE unless you set the focus to a control 126 EXCEPTION OCX Property Pages should return FALSE Page 2 of 3 Propiedades1D1g cpp 0970242002 794230 NO WH RP LO N S Page 3 of 3 PropiedadeslDlg h 09 01 2002 19 30 1 dif defined AFX PROPIEDADESIDIG H 6159E6C1 AF94 11D5 97E1 EE6A57BB0O840 INCLUDED 2 define AFX PROPIEDADESIDIG H 4 6159E6C1 AF94 11D5 97EI EE6A57BBO840 INCLUDED _ 3 4 37 MSC_ VER gt 1000 5 pragma once 6 endif MSC VER gt 1000 7 PropiedadesiDilg h header file 8 Z 9 ME a a L T EET E IIA AAA DA EA IEA 11 CPropiedadesiDlg dialog 12 13 class CPropiedades1Dlg public CDialog 14 15 ZZ Construction 16 public ily CPropiedadeslDlg CWnd pParent NULL 7 standard constructor 18 19 Dialog Data 20 AFX DATA CPropiedades1D1g 21 enum IDD IDD PROPIEDADES DIALOG 22 CString m_EditSalidal 23 CString m Edrt5allda2 24 CS8tring m EGO salida 25 CString m_EditSalida4 26 CString m EditSalida5 27 CString m EditSalida6 28 CString m Edrt5alidal 29 CString m Editsalidas 30 CString m EditEntradal 31 CString m EditEntrada2 32 CString m EditE ntradas 33 CString m EditEntrada4 34 C8tring m ECUETES 35 Cocring m EditPort 36 CString m EditPath 37
220. main header file for the application It includes other project specific headers including Resource h and declares the CProyectoBDApp application class ProyectoBD cpp This is the main application source file that contains the application class CProyectoBDApp ProyectoBD rc This is a listing of all of the Microsoft Windows resources that the program uses It includes the icons bitmaps and cursors that are stored in the RES subdirectory This file can be directly edited in Microsoft Visual CE ProyectoBD clw This file contains information used by ClassWizard to edit existing classes or add new classes ClassWizard also uses this file to store information needed to create and edit message maps and dialog data maps and to create prototype member functions res ProyectoBD ico This is an icon file which is used as the application s icon This icon is included by the main resource file ProyectoBD rc res ProyectoBD reZ This file contains resources that are not edited by Microsoft Visual C You should place all resources not editable by the resource editor in this file VISITA PALAS ETAT A LL LA FLV A LLA ASA A ALLA LS TATA LAT LF ALA LAA T LA VL LF FL L LA L AppWizard creates one dialog class ProyectoBDDlg h ProyectoBDDlg cpp the dialog These files contain your CProyectoBDDlg class This class defines the behavior of your application s main dialog The dialog s template is in ProyectoBD rc which can be edited in Microso
221. mbio de estado de la salida n Entradan Realiza la lectura de la entrada n 28 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira e Funcionamiento de la aplicaci n La aplicaci n creada se encarga de controlar ocho salidas y cuatro entradas digitales del puerto paralelo realizar una base de datos con la informaci n de los eventos que se han producido y funcionar como una aplicaci n servidor para establecer una comunicaci n con otra aplicaci n igual instalada en un ordenador conectado en la misma red El programa esta formado por cuatro di logos e El di logo principal Aplicaci n servidor Que se encarga de controlar el puerto paralelo y de realizar las funciones de servidor e El di logo de base de datos Que gestiona la base de datos donde se registran todos los eventos e El di logo Propiedades Donde se configura la conexi n y la Leyenda de las entradas y salidas e El di logo cliente Que realiza la funci n de cliente para conectarse con el di logo servidor en la direcci n IP y Puerto que le asignemos Con el programa incluimos una base de datos realizada con Microsoft Access para registrar los eventos que se producen bd 1 mdb La base de datos dispone de una tabla llamada hist rico formada por tres campos de texto e Nombre donde se registra el nombre del evento que se ha producido e Estado donde se registra el estado final del evento que se ha produci
222. md Format SELECT FROM Historico ABRCerrarBD Open 0 sqlcmd NULL ABRUItimoRegistro CString CBaseDatosSet ABRContarRegistros CString Salema CString aux if IsOpen sqlemd Format SELECT COUNT Hora FROM Historico ABRCerrarBD Open 0 sqlcmd NULL aux Format s Registros en la Base de Datos m Nombre salemd Format SELECT FROM Historico ABRCerrarBD Open 0 sqlcmd NULL return aux Agust Baub Rovira AND Estado 60 ii a ABRCBaseDatosDlgUtils h funciones tiles para el di logo base de datos CString CBaseDatosDlg InsertarHora CString Hora COleDateTime date COleDateTime GetCurrentTime Hora Format 2d 2d d 2d 2d 2d date GetDay date GetMonth date GetYear date GetHour date GetMinute date GetSecond return Hora void CBaseDatosDlg Escribir CEdit Edit CString String CString aux Edit gt GetWindowText aux aux Insert aux GetLength String aux Insert aux GetLength r n Edit gt SetWindowText aux Edit gt SetSel Edit gt GetWindowTextLength Edit gt GetWindowTextLength TRUE Edit gt LineScroll Edit gt GetScrollLimit SB_VERT UpdateData FALSE CString CBaseDatosDlg Leer CEdit Edit CString aux Edit gt GetWindowText aux return aux void CBaseDatosDlg EscribirRegistro m EditNombre SetWindowText m pSet gt m Nombre m
223. mente mediante un m dem a un Proveedor de Servicios de Internet ISP que enlazar nuestro PC a la red Internet i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a Configuraci n 1 Intranet Local Windows 95 Windows 95 ET P ProyectoBD exe pon ProyectoBD exe Tarjeta Puerto Red TCP IP Paralelo Tarjeta Red TCP IP EE O Oo a EE Radioayude O O oO O En este tipo de configuraci n el ordenador cliente y servidor est n conectados a una Intranet local a trav s de una tarjeta adaptadora de red El administrador de la red se encarga de proporcionar una direcci n IP est tica y privada a cada PC conectado a la Intranet En puntos posteriores de esta memoria se explica el significado de la direcci n IP y de los diferentes tipos que existen P g 8 P g 36 Sabiendo que direcci n IP es la que tiene el PC servidor y fijando arbitrariamente el puerto que vamos a utilizar podr establecerse la comunicaci n entre los dos PC um i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira B ca Configuraci n 2 Intranet con conexi n a Internet a trav s de un prox O O O O Windows 95 Radioayuda ProyectoBD exe ct O OF O HO Tarjeta Red TCP IP Windows 95 Servidor ProyectoBD exe proxy Tarjeta Puerto Red TCP IP Paralelo Esta configuraci n es
224. mic IP Poster Copyright O 1999 Jason Carter 37 E i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas a Agusti Baubi Rovira La configuraci n de este software es muy simple y admite la opci n de introducir la direcci n IP p blica en una p gina web ya creada La pantalla de configuraci n es la siguiente gt Post it 127001 File Edit View Help Configuration Pane FTP Configuratio Current F IP Insertion Configuratio Insert IP into web page IP place halder Input html file must be in Post its Dir LI zer Name castaismpdag Password MIEDMEXEX Directory ta change to if none leave blank e Post it Configuratio Time started 15 43 09 Output html file nn Off line tral Ale must be in Post its Dir Date started Minutes between post lw Create Post it Stats Page Last upload Posts tat html 127 007 Uploads for this session Saves to configuration 29 12 2001 Post it Dynamic IP Poster Click save after Copyright 1999 Stats page name changing configuration Jazon Carter FTP Host indica el servidor FTP donde va publicarse la p gina web con la informaci n requerida User Name indica el nombre de usuario de la sesi n FTP Password indica la clave de acceso al servidor FTP Minutes between post indica los minutos entre publicaci n de p ginas web ac
225. mp GetClsid static CLSID const clsid 0x248dd896 0xbb45 Oxllcr 1 Ux9a Oxbc 0x0 0x80 0xc7 0xe7 0xb7 Oxea lj return elsid j virtual BOOL Create LPCTSTR lpszClassName LPCTSTR lpszWindowName DWORD dwstyle const RECT amp rect CWnd pParentWnd UINT nID CCreateContext pContext NULL return CreateControl GetClsid lpszWindowName dwStyle rect pParentWnd nID BOOL Create LPCTSTR lpszWindowName DWORD dwStyle const RECT amp rect CWnd pParentWnd UINT nID CFile pPersist NULL BOOL bStorage FALSE BSTR bstrLicKey NULL return CreateControl GetClsid lpszWindowName dwStyle rect pParentWnd nID pPersist bStorage bstrLicKey Attributes publi Operations public Variable para recoger los datos recibidos con el DataArrival CString Dato Declaraciones de las funciones del fichero ABRWinsock h void CMSWinsockControl ABRConectarSck void CMSWinsockControl ABROnConnectWinsock1 void CMSWinsockControl ABREScucharSck void CMSWinsockControl ABROnConnectionRequestWinsockl long requestID void CMSWinsockControl ABROnDataArrivalWinsockl long bytesTotal void CMSWinsockControl ABREnviIarSeck CString Datos void CMSWinsockControl ABROnCloseWinsockl void CMSWinsockControl ABROnErrorWinsock1 short Number BSTR FAR Description long Scode void CMSWinsockControl ABRCerrarSck void CMSWinsockControl ABROnSendCompleteWinsockl
226. n break case 6 return break case 7 Ie Lorn break case 8 recur break case 9 Fecurn break default return break Closed W Open W Listening Connection pendingOpen Resolving host Host resolved Connecting Connected Peer is closing the connection urrOr NULL Page 3 of 3 09 01 2002 19129 BaseDatosDlg cpp CO 1 0 OP WN R LU CO CO CO CO CO CO CO P2 N IS D N Po PO N N DN rS LR FF FF FF FF JOS Ln E QW N H O O WON O 01 45 QU N HAO VO O J O UI R GON H O LO BaseDatosDlg cpp implementation file F include stdafx h include ProyectoBD h include BaseDatosDlg h include ABRCBaseDatosDlgUtils h ifdef _DEBUG define new DEBUG NEW undef THIS FILE static char THIS FILE _ FILE tendit PO ET AAA LA A TER a AAA AAA REA e CBaseDatosDlg dialog CBaseDatosDlg CBaseDatosDlg CWnd pParent NULL CDialog CBaseDatosDlg IDD pParent AFX_DATA_INIT CBaseDatosD1g m Staticl TF JAFX DATA INIT Create IDD void CBaseDatosDlg DoDataExchange CDataExchange pDX CDialog DoDataExchange pDX AFX DATA MAP CBaseDatosDlg DDX Control pDX IDC EDIT NOMBRE m EditNombre DDX Control pDX IDC EDIT HORA m EditHora DDS Control pDX IDC BDIT ESTADO m EditEstado DDS Text pDX TDC_STATICL m Staticl JAFX DATA MAP BEGIN_MESSAGE_MAP CBaseDatosDlg CDialog AFX_MSG_MAP
227. n sockets Hoy en d a todo el mundo conoce Internet la red mundial basada en el protocolo TCP IP desde donde se tiene acceso a un ilimitada fuente de informaci n Con el boom de Internet parece que todas las aplicaciones basadas en cliente servidor solo se utilizan en Internet pero no hay que pasar por alto que es posible ejecutar exactamente el mismo software en una intranet local e intranet Red privada que utiliza los protocolos TCP IP Puede tener salida a Internet o no En el caso de tener salida a Internet el direccionamiento IP permite que los hosts con direcciones IP privadas puedan salir a Internet pero impide el acceso a los hosts internos desde Internet Dentro de una intranet se pueden configurar todos los servicios t picos de Internet web correo mensajer a instant nea etc mediante la instalaci n de los correspondientes servidores La idea es que las intranets son como Internets en miniatura o lo que es lo mismo Internet es una intranet p blica gigantesca e Extranet Uni n de dos o mas intranets Esta uni n puede realizarse mediante l neas dedicadas RDSI X 25 frame relay punto a punto etc o a trav s de Internet e nternet La mayor red p blica de redes TCP IP Las intranet suelen implementarse como redes LAN internas de una empresa sobre las que se montan aplicaciones distribuidas Los usuarios disponen de PC con aplicaciones cliente mientras que los PC servidores suministran o ejecutan proce
228. nciones propias tiles para las diferentes partes del proyecto PuertoParalelo cpp PuertoParalelo h Clase que controla el puerto paralelo ABRdb h Funciones para gestionar la base de datos ABRCBaseDatosDlg Utils h Funciones tiles para el di logo base de datos ABRCProyectoBDDlg Utils h Funciones tiles para el di logo principal ABRWinsock h Funciones tiles gestionar el control Winsock ABRCClienteDlg Utils h Funciones tiles para el di logo cliente 55 A Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a PuertoParalelo cpp y PuertoParalelo h clase que controla el puerto paralelo PuertoParalelo cpp PuertoParalelo cpp implementation of the CPuertoParalelo class CADA ISIS RA LAVA LAA LAL VL I ELIT IAT IAT AA include stdafx h include PuertoParalelo h ifdef _DEBUG fundef THIS FILE static char THIS FILE FILE define new DEBUG NEW endif eee Construction Destruction H H V LEY LH E AD TET TT FET TIT ITT ET LET LIT VEL EY IT TT CPuertoParalelo CPuertoParalelo CPuertoParalelo CPuertoParalelo int CPuertoParalelo Leer return _inp 0x379 void CPuertoParalelo Escribir int dato _outp 0x378 dato void CPuertoParalelo Salidal bool estado If estado _outp 0x378 _inp 0x378 0x01 else _outp 0x378 _inp 0x378 amp 0x01 void CPuertoParalelo Salida2 bool estado if estado _outp 0x3
229. nda GetLength Leyenda GetLength Leyenda GetLength if Salidal 1 Rstado Insert 9 1L else Estado Insert 9 0 if Salica2 1 Estado Inserte LI 1 else Esrtado Insert 11 0 ys if Salida3 1 Estado Inserir 13 1 ys else Esrado Inserk 13 0 if Salida4 1 Estado Insert 15 1 else Estado Insert 15 0 if Salida5 1 Estado inserte l7 L ys else Estado insert 17 0 if Salida6 1 EStad Insert 19 l else Estado Insert 19 0 if Salida7 1 EStado Insert 21 1 5 else Estado Insert 21 0 if Salida8 2 1 Estado Insert 23 1e else Estado Insert 23 OFF if Entradal 1 Estado Insert 25 1 else Estado n ft 25 0 js if Entrada2 1 Estado Insert 27 1 else Estado Insert 27 0 if Entrada3 1 Estado Insert 29 1 else Estado Insert 29 0 if Entrada4 1 Estado Insert 31 1 else Estado Insert 31 0 Estado Insert Estado Getlength Estado Insert Estado Getlength Leyenda m Socketl ABREnviarSck Estado void CProyectoBDDlg ImprimirLeyenda CString aux Leyenda GetLength Leer 8m_EditSalidal Leer 8m_EditSalida2 Leer m EditSalida3 Leer amp m EditSalida4 Leer m EditSalida5 Leer amp m EditSalida6 Leer amp m EditSalida7
230. niendo en cuenta que cada socket trabaja sobre un nico puerto En nuestras aplicaciones utilizaremos un puerto elegido al azar pero para evitar confusiones intentaremos evitar en lo posible puerto utilizados por otras aplicaciones Para introducir el control MSWinsockControl en una aplicaci n Visual C realizaremos los siguientes pasos Insertar Control Winsock Menu Project gt Add to Project gt Components and Controls gt Registered ActiveX Controls gt Microsoft Winsock Control 15 E i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a Components and Controls Gallery Choose a component to insert into pour project Buscar en E Registered Activex Control mi Er 3 Microsoft Treeview Control version 5 0 SF2 3 Microsof x Microsoft UpDown Control version 5 0 SP2 ix Microsof Microsoft UpDown Control version 6 0 x Microsof EMicrosoft WinSock Control version 6 0 ix Microsot Microsoft Works Calendar AND apE vent Control Lx Microsof Microsoft Works Calendar 4ppControl x Mizrasof H d Hombre de Microsoft WinSock Control version 6 0 Ink net archivo Microsoft Winsock Control More Info Path to control EM INDO WS ASS TEMSMSWINSCK UCX ProyectoBD A HACER Colocar aqu controles de cuadro de di logo Nombre E di Estado Edt gt gt gt gt EN Leyenda Entradas
231. nitores Bypass Equipo 5 ON en antena 4 Alarma de Mantenimiento Equipo 5 ON en carga Equipo 5 OFF Monitores Bypass Reset Alarma Mito e Di logo Base de datos Base de Datos 10 Registros en la Base de Datos Nombre Se abre Dialogo de Salidas Estado 000000001111 Hors 3171272001 11 38 45 RAR PRIMERO ANTERIOR SIGUIENTE e Di logo Propiedades Propiedades 5 2 Equipo P ON en carga 2 Equipo P OFF 4 Equipo 5 ON en antena 5 Equipo 5 ON en carga Base de Datos Path bd mdb Leyenda Entradas i Equipo ON OFF 1 Equipo P ON en antena 2 Equipo en antena F75 Monitores Bypass Yo Alarma de Mantenimiento Fort jose amp Equipo 5 OFF ontores Bypass 8 Reset Alarma Mito aplicaci n e Di logo Cliente Diaa Al Connected Socket Recibido Leyenda Salidas r Leyenda Entradas E Equi ia P ON en anten 1 Equipo N i UFF 2 Equipo P ON en carga 2 Equipo en antena P S 3 Monitores E ypass antena 4 Alarma de Mantenimiento Salidas Eg 3 B mj m mj m mj aj Ej Entradas Conesi n ip 27001 Port 898 R RR V E salma To Direcciones IP p blicas Direcciones IP privadas reservadas Direcciones IP est ticas fijas
232. ntrol p IDC_CHK2 m ChkSal2 DDX_Control p IDC_CHK1 m ChkSall DDX Control p DDX Controli p DDX_Control p DDX_Control p DDX_Control p DDX_Control p DDX_Control p DDX_Control p DDX_Control p DDX_Control p DDX_Control p DDX_Control p DDX_Control p DDX_Control p DDX_Control p DDX_Control p DDX_Control p DDX_Control p DDX_Control p DDX_Text pDX DX DX DX DX DX DX DX DX DX DX DX DX DX DX DX px DX DX DX DX DX DX DX DX DX DX DX DX DX TDC BUTTON CONECTAR m ButtonCon ctar IDC BUTTON CERRAR m ButtoncCerrar IDC EDIT17 m EditEnviado IDC EDIT16 m EditRecibido IDC EDITO14 m EditPort IDO LIO L3 m EditIP IDC EDITO12 m EditEntrada4 LDC EDTITOlL m EditEntrada5 IDC EDITOIO m EdItEntrada2 IDC EDITO9 m EditEntradal IDC EDITO8 m EditSalida8 IDC_EDITO m EditSalida 7 IDC EDITO6 m EditSalida6 IDC EDITOS m EditSalida5 IDC EDITO4 m EditSalida4 IDC EDITOS m EditSalida5 IDC EDITO2 m EditSalida2 IDC EDITOl m_EditSalidal IDC WINSOCK1 m Socket2 IDC STATIC m Staticl Page 1 of 5 09 01 2002 19 30 ClienteDlg cpp 09 01 2002 19 30 65 66 67 68 69 70 71 T2 13 74 Ja 76 77 78 19 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 35 26 2 98 99 100 LOL 102 103 104 105 106 107 108 109 LIO 111 ILZ 113 114
233. o con cada conexi n entrante Crear una aplicaci n servidor con la nica funcionalidad de gestionar los mensajes provenientes de las diferentes aplicaciones cliente que se le conectan Esta posibilidad presenta la ventaja de que se puede instalar la aplicaci n servidor en una computadora que su direcci n IP sea fija y entonces todas las aplicaciones cliente saben donde dirigirse para establecer la comunicaci n y es la aplicaci n servidor quien se encargar a de reenviar la informaci n a la aplicaci n cliente de destino en el caso de estar conectada a Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira L neas de continuaci n del Proyecto Crear aplicaciones cliente que enlacen con servidores de POP3 y SMTP email http p ginas web FTP Transferencia de ficheros etc con lo que se puede a adir funciones como alertas por correo electr nico a tu buz n de correo m vil etc presentaci n de informaci n de la aplicaci n en una p gina web transferencia de las bases de datos en otro ordenador etc Los socket s pueden ser utilizados con otros lenguajes de programaci n como ASP que es un lenguaje de programaci n para realizar p ginas web que se ejecutan sobre la maquina servidor Con esto se puede conseguir que todo el potencial que presentan los socket s se pueda utilizar desde cualquier m quina con cualquier sistema operativo con posibilidad de navegar por Internet
234. o if Requery can be called to run the recordset s query again CanScroll Returns nonzero if you can scroll through the records CanTransact Returns nonzero if the data source supports transactions CanUpdate Returns nonzero if the recordset can be updated you can add update or delete records GetODBCFieldCount Returns the number of fields in the recordset GetRecordCount Returns the number of records in the recordset GetStatus Gets the status of the recordset the index of the current record and whether a final count of the records has been obtained GetTableName Gets the name of the table on which the recordset is based GetSQL Gets the SQL string used to select records for the recordset IsOpen Returns nonzero if Open has been called previously IsBOF Returns nonzero if the recordset has been positioned before the first record There is no current record ISEOF Returns nonzero if the recordset has been positioned after the last record There is no current record IsDeleted Returns nonzero if the recordset is positioned on a deleted record Recordset Update Operations AddNew Prepares for adding a new record Call Update to complete the addition CancelUpdate Cancels any pending updates due to an AddNew or Edit operation Delete Deletes the current record from the recordset You must explicitly scroll to another record after the deletion Edit Prepares for changes to the current record Call Update to complete the edit Update Com
235. o intranet indiferentemente del navegador que utilice Posibilidad de utilizaci n de password s de acceso a la aplicaci n para que solo usuarios registrados puedan conectarse y tener acceso a la aplicaci n Posibilidad de encriptar la informaci n que enviamos a la red para evitar posibles usos de informaci n capturada desde la red En Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira e L neas de continuaci n del Provecto e A nivel de funcionalidad de la aplicaci n servidor en nuestra aplicaci n se ha optado por el control del puerto paralelo con lo que ya se obtienen una amplia gama de funciones en muchos campos Se podr a a adir el control de alguna c mara de video que publique las im genes en Internet trav s de nuestra aplicaci n podr amos controlar la direcci n selecci n zoom etc A adir comunicaci n mediante RS232 de nuestra aplicaci n con un microcontrolador externo o un PLC Con esto podr amos aprovechar todas las posibilidades del microcontrolador elegido y controlarlas desde una aplicaci n en un PC remoto A partir de aqui se puede realizar una red por cable o inal mbrica de microcontroladores esclavos con un microcontrolador master conectado al PC Una opci n muy interesante ser a la de poder controlar el ordenador servidor telef nicamente para poder arrancarlo conectarse a la red o arrancar la aplicaci n cliente servidor que
236. o not call CDialog OnPaint for painting messages Anadir las funciones OnButtonActualizar Classwizard gt MessageMap CBaseDatosDlg gt IDC_BUTTON_ACTUALIZAR gt BN_CLICKED gt Add Function gt EditCode OnButtonAnterior Classwizard gt MessageMap CBaseDatosDlg gt IDC BUTTON ANTERIOR gt BN_CLICKED gt Add Function gt EditCode OnButtonBorrar Classwizard MessageMap CBaseDatosDlg gt IDC BUTTON BORRAR gt BN CLICKED gt Add Function gt EditCode 18 Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira OnButtonBuscar Classwizard gt MessageMap CBaseDatosDlg gt IDC_BUTTON_BUSCAR gt BN_CLICKED gt Add Function gt EditCode OnButtonBuscarTodos Classwizard gt MessageMap CBaseDatosDlg gt IDC_BUTTON_BUSCARTODOS gt BN_CLICKED gt Add Function gt EditCode OnButtonlnsertar Classwizard gt MessageMap CBaseDatosDlg gt IDC BUTTON ANADIR gt BN CLICKED gt Add Function gt EditCode OnButtonLimpiar Classwizard gt MessageMap CBaseDatosDlg gt IDC BUTTON LIMPIAR gt BN CLICKED gt Add Function gt EditCode OnButtonPrimero Classwizard gt MessageMap CBaseDatosDlg gt IDC_BUTTON_PRIMERO BN CLICKED gt Add Function gt EditCode OnButtonSiguiente Classwizard gt MessageMap CBaseDatosDlg gt IDC_BUTTON_SIGUIENTE gt BN_CLICKED gt Add
237. ockControl para utilizar funciones propias A adir a MSWinsockControl h las declaraciones de las funciones del fichero ABRWinsock h para utilizar el control Winsock 1 la variable CString Dato Operations public Nariable para recoger los datos recibidos con el DataArrival Csrring Dato Declaraciones de las funciones del fichero ABRWinsock h void CMSWinsockControl ABRConectarSck void CMSWinsockControl ABROnConnectWinsockl void CMSWinsockControl ABREscucharSck void CMSWinsockControl ABROnConnectionRequestWinsockl long requestID void CMSWinsockControl ABROnDataArrivalWinsockl long bytesTotal void CMSWinsockControl ABREnviarSck CString Datos void CMSWinsockControl ABROnCloseWinsockl void CMSWinsockControl ABROnErrorWinsockl short Number BSTR FAR Description long Scode LPCTSTR Source LPCTSTR HelpFile long HelpContext BOOL FAR CancelDisplay void CMSWinsockControl ABRCerrarSck void CMSWinsockControl ABROnSendCompleteWinsockl CString CMSWinsockControl ABRConvertirEstado int Estado Fin de las declaraciones long GetProtocol A adir a MSWinsockControl cpp Despu s de include mswinsockcontrol h include ABRWinsock h Machine generated IDispatch wrapper class es created by Microsoft Visual C NOTE Do not modify the contents of this file If this class is regenerated by Microsoft Visual C your modifications will be overwritten include stdafx h
238. ogo cliente para que la aplicaci n funcione como cliente del servidor remoto De esta manera una nica aplicaci n se puede instalar en todos los ordenadores que se quiera y se pueden utilizar todos tanto como servidores como clientes 3 ca Control remoto mediante comunicaci n TCP IP de Radioayudas A eronauticas Dialogo principal Aplicaci n servidor A E Proyectos D E z xj Arain jada Lislaning ETA DR ee i L Sabda rda Entrados Nombre 5e shis Distogo de 59959 Lewsnda Leyenda En Esad 000000000 111 1 Equipo P OM en antena 1 Equipo ON OFF 2 Equipo en anana PAS Hora 31 12 2001 11 38 2 Equipo P OH an caga 4 Eaa B OFF 3 Honores Bina 4 Ecco ON en entans ja filers de H eiaeia m mmm usmwm Eid ad ri A 2 i Li oo S 0H E E EU LU son SH Cores n Baca da Datos E E e 127005 Path E Voas Bypass Por ER bai FEO E F trai Alama kita Al arrancar la aplicaci6n la primera funciones que se ejecutan son la siguientes Se abre la base de datos Se inicializan las salidas con los ltimos estados registrados en la base de datos Se inserta un registro en la base de datos con la informaci n de apertura de la aplicaci n Se cierra la base de datos Se captura del registro de Windows la informaci n de la leyenda que aparece en el di logo Cada 500 ms se comprueba si se ha producido alg n cambio en las entradas digitales del puerto Agust Baub Rovira e Se pone el di
239. on Bs AUTOCHECKBOX BS ICON Wo_TABSTOP 135 105 L0 14 Check IDC CHK9 Button BS AUTOCHECKBOX BS ICON WS_DISABLED WS_TABSTOP 57 130 10 14 Lheckl IDC CARLO Button BS AUTOCHECKBOX BS ICON WS DISABLED WS TABSTOP 3 130 10 14 Lheckl IlDC CHK11 Button BS AUTOCHECKECX BS ICON WS DISABLED WS TABSTOP 89 130 10 14 Check1 IDC CHK12 Button BS AUTOCHECKBOX BS ICON WS DISABLED WS TABSTOP 105 130 10 14 VS VERSION INFO VERSIONINFO FILEVERSI N 1 0 0 1 PRODUCIVERSION 1 0 0 1 Page 5 of 8 09 01 2002 19 31 ProyectoBD re 09 01 2002 19 31 321 FILEFLAGSMASK Ox3fL 322 ifdef DEBUG 323 FILEFLAGS 0x1L 324 else 325 FILEFLAGS 0x0L 326 endif S2 FILEOS 0x4L 328 FILETYPE 0Ox1L 329 FILESUBTYPE Ox0L 330 BEGIN 3941 BLOCK SrtringFilelnfo 332 BEGIN 333 BLOCK OCOAO4BO 334 BEGIN 335 VALUE CompanyName NO 336 VALUE FileDescription Aplicaci n MFC ProyectoBD 0 337 VALUE FileVersion 1 D O 110 338 VALUE InternalName ProyectoBD 0 339 VALUE LegalCopyright Copyright C 200110 340 VALUE LegalTrademarks NO 341 VALUE OriginalFilename ProyectoBD EXE 0 342 VALUE ProductName Aplicaci n ProyectoBD O 343 VALUE Product Version 1 O 0 110 344 END 345 END 346 BLOCK VarFilelnfo 347 BEGIN 348 VALUE Translation 0xc0a 1200 349 END 350 END 351 352 endif _MAC 353 354 395 FAA TT TA VE CHA ALT T L V
240. oto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira e Fundamentos sobre el control MSWinsockControl El MSWinsockControl incluido con Visual C es una herramienta muy poderosa para la creaci n de aplicaciones basadas en sockets Con MSWinsockControl se pueden implementar los diferentes protocolos utilizados en Internet e inclusive protocolos propios Los principales protocolos de Internet basados en TCP IP son HTTP Hypertext Transfer Protocol p ginas Web puerto 80 FTP File Transfer Protocol transferencia de ficheros puerto 21 SMTP Simple Mail Transfer Protocol env o de email puerto 25 POP3 Post Office Protocol recepci n email puerto 110 NNTP Network News Transfer Protocol noticias puerto 119 Para establecer la comunicaci n se procede normalmente de la siguiente manera Lo primero es que el programa servidor est escuchando en el puerto correspondiente servidor de paginas web etc despu s alg n programa cliente navegador web etc se conecta al servidor tras recibir la direcci n IP del mismo desde un servidor de nombres y utilizando el n mero de puerto el cliente establece la conexi n Otros protocolos como el FTP establecen dos conexiones distintas entre el cliente y el servidor una para datos y otra para comandos Las aplicaciones que desarrollemos pueden utilizar tantos sockets como sean necesarios para realizar la tarea encomendada de la manera m s eficiente pero siempre te
241. p initialization BOOL CProyectoBDApp InitInstance C AfxEnableControlContainer Standard initialization If you are not using these features and wish to reduce the size of your final executable you should remove from the following the specific initialization routines you do not need ifdef _AFXDLL Enable3dControls Call this when using MFC in a shared DLL else Enable3dControlsStatic Call this when linking to MFC statically tendit SetRegistryKey ABRProyectos Entradas al Registro ABR CProvectoBDDig alg m pMainWnd amp dlg int nResponse dlg DoModal if nResponse IDOK TODO Place code here to handle when the dialog is dismissed with OK Page 1 of 2 ProyectoBD cpp 09 01 2002 19 31 65 66 else if nResponse IDCANCEL 67 68 TODO Place code here to handle when the dialog is 69 dismissed with Cancel 70 ra T2 Since the dialog has been closed return FALSE so that we exit the 73 application rather than start the application s message pump 74 return FALSE To x 76 Page 2 of 2 ProvectoBDDidg epp CO JOS OB WN RPR OY OY OY C Oy LH UIT Oi OT Ui UIT 01 01 01 UO ds amp de de ds we ab UY CO CO LO CO LO GO QJ GO CO N NO NO BO NO NO NO NO NN e a jS PPP PP qe p D CO NO FM OW OAR OR CO MN IS CO XO OID Ok CO N IF OW OO 004 0 NO FS OW O I C d CO Now O Jo Ol fF UV NO AO O ProyectoBDDlg cpp implementation file i
242. para los puestos de trabajo Los ordenadores con direcciones IP privadas pueden salir a Internet por medio de un router o proxy que tenga una IP p blica Sin embargo desde Internet no se puede acceder a ordenadores con direcciones IP privadas A su vez las direcciones IP pueden ser Direcciones IP est ticas fijas Un host que se conecte a la red con direcci n IP est tica siempre lo har con una misma IP Las direcciones IP p blicas est ticas son las que utilizan los servidores de Internet con objeto de que est n siempre localizables por los usuarios de Internet Estas direcciones hay que contratarlas Direcciones IP din micas Un host que se conecte a la red mediante direcci n IP din mica cada vez lo har con una direcci n IP distinta Las direcciones IP p blicas din micas son las que se utilizan en las conexiones a Internet mediante un m dem Los proveedores de Internet utilizan direcciones IP din micas debido a que tienen m s clientes que direcciones IP es muy improbable que todos se conecten a la vez Habitualmente los ISP Internet Service Provider asignan en cada conexi n una direcci n IP din mica Esta direcci n est activa para nosotros exclusivamente durante la sesi n establecida con el ISP desde el momento de la conexi n hasta la desconexi n Esta direcci n IP nos permite por supuesto poder acceder a toda la red Si el PC donde ejecutamos nuestra aplicaci n servidor dispone de una direcci n IP p
243. pletes an AddNew or Edit operation by saving the new or edited data on the data source 27 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a Recordset Navigation Operations GetBookmark Assigns the bookmark value of a record to the parameter object Move Positions the recordset to a specified number of records from the current record in either direction MoveFirst Positions the current record on the first record in the recordset Test for IsBOF first MoveLast Positions the current record on the last record or on the last rowset Test for ISEOF first MoveNext Positions the current record on the next record or on the next rowset Test for ISEOF first MovePrev Positions the current record on the previous record or on the previous rowset Test for IsBOF first SetAbsolute Position Positions the recordset on the record corresponding to the specified record number SetBookmark Positions the recordset on the record specified by the bookmark Other Recordset Operations Cancel Cancels an asynchronous operation or a process from a second thread FlushResultSet Returns nonzero if there is another result set to be retrieved when using a predefined query GetField Value Returns the value of a field in a recordset GetODBCFieldInfo Returns specific kinds of information about the fields in a recordset GetRowsetSize Returns the number of records you wish to retrieve during a single fetch GetRowsF
244. r OSLO O IDC EDITUS 188 61 87 12 5 AUTOHSCROLL ES READONLY PtP IDE STATIC 179 77 10 10 IDC EDIT04 188 75 87 12 ES AUTOHSCROLL ES READONLY Ste IDC COTATI 1797911010 IDC_EDIT05 188 90 87 12 ES_AUTOHSCROLL ES_READONLY BE IDC STATIC L79100 10 10 IDC_EDIT06 188 103 87 12 ES_AUTOHSCROLL ES_READONLY Page 4 of 38 09 01 2002 19 31 ProyectoBD rc 2901 2 30 209 260 261 262 263 264 265 266 267 268 269 270 211 AT 279 214 2795 276 217 278 279 280 281 232 233 284 285 286 281 288 209 290 291 292 293 294 295 296 231 298 299 300 301 202 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 END LTEXT EDIITREXI LTEXT EDITTEXT LIBEXI EDITTEXT LTEXT EDIITREXI LTEXT EDITTEXT LTEXT EDITTEXT LTEXT EDITTEXT LIEXI EDITTEXT GROUPBOX GROUPBOX LIEXI EDITTEXT GROUPBOX PUSHBUTTON LTEXT EDITTEXT PUSHBUTTON GROUPBOX CONTROL CONTROL CONTROL CONTROL CONTROL CONTROL CONTROL CONTROL CONTROL CONTROL CONTROL CONTROL ifndef MAC ESTATUA FL ES VA LEAL eI LAIA SAA LLV V LL USA ES 4 Version EP 7 IDC_STATIC 179 119 10 10 IDC EDITO7 188 117 87 12 ES AUTOHSCROLL ES READONLY 8 IDC_STATIC 179 133 10 10 IDC EDITO8 188 131 87 12 ES AUTOHSCROLL ES READONLY 1 IDC_STATIC 279 36 10 10 IDC_EDIT09 288 34 87 12 ES_AUTOHSCROLL ES_READONLY 2 IDC_STATIC 279 50 10 10 IDC_EDIT010 288 48 87
245. r las tareas de mantenimiento tanto correctivo como preventivo necesario en las instalaciones de Navegaci n A rea Se podr a haber realizado el hist rico de los eventos mediante un acceso a ficheros en disco serializaci n pero se ha escogido utilizar una base de datos debido a la posibilidad de utilizar toda la potencia que disponen las aplicaciones de gesti n de bases de datos para sacar todo el partido a los datos almacenados y la posibilidad de utilizar el est ndar ODBC que facilita utilizar diferentes bases de datos Hoy en d a los programadores de aplicaciones para Windows pueden escoger entre un amplio repertorio de sistemas de gesti n de bases de datos entre los que podr amos destacar Inprise Paradox Microsoft Access Microsoft FoxPro y PowerSoft PowerBuilder La mayor parte de estos productos son capaces de acceder tanto a datos locales como a datos remotos que residan en una computadora central en este ltimo caso se precisa adem s el software servidor de bases de datos como por ejemplo ORACLE o Microsoft SQL Server Visual C incluye herramientas y clases MFC de todos los componentes precisos para escribir aplicaciones de base de datos Esto incluye dos sistemas distintos de acceso a bases de datos ODBC Open Database Connectivity Objeto de acceso a datos DAO Data Access Objects y OLE DB basada en el modelo de objetos de componentes COM El est ndar ODBC que ser el utilizado consiste en un conjunto extensible
246. ring Hora COleDateTime date COleDateTime GetCurrentTime Hora Format 2d 2d d 2d 2d 2d date GetDay date GetMonth date GetYear date GetHour date GetMinute date GetSecond return Hora void CClienteDlg EscribirRegistro m_EditNombre SetWindowText m pSet gt m Nombre m_EditEstado SetWindowText m pSet gt m Estado m EditHora SetWindowText m pSet gt m Hora void CClienteDlg Escribir CEdit Edit CString String CString aux Edit gt GetWindowText aux aux Insert aux GetLength r n aux Insert aux GetLength String Edit gt SetWindowText aux Edit gt SetSel Edit gt GetWindowTextLength Edit gt GetWindowTextLength Edit gt LineScroll Edit gt GetScrollLimit SB_VERT UpdateData FALSE CString CClienteDlg Leer CEdit Edit CString aux Edit gt GetWindowText aux return aux void CClienteDlg InicializarSalidas CString Estado Entradal PuertoParalelo Entradal Entrada2 PuertoParalelo Entrada2 Entrade3 PuertoParalelo Entrada3 Entrada4 PuertoParalelo Entrada4 3 s a Estado m Socket2 Dato if Estado Mid 8 1 1 Salidal 1 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira 72 Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas else Salidal 0 if Estado Mid 10 1 1 Salida2 1 els
247. riteProfileString Leyenda Salida2 Salida2 AfxGetApp gt WriteProfileString Leyenda Salida3 Salida3 AfxGetApp gt WriteProfileString Leyenda Salida4 Salida4 AfxGetApp gt WriteProfileString Leyenda Salica5 Salida5 AfxGetApp gt WriteProfileString Leyenda Salida6 Salida6 AfxGetApp gt WriteProfileString Leyenda Salida7 Salida7 AfxGetApp gt WriteProfileString Leyenda Salida8 Salida8 AfxGetApp gt WriteProfileString Leyenda Entradal Entradal AfxGetApp gt WriteProfileString Leyenda Entrada2 Entrada2 AfxGetApp gt WriteProfileString Leyenda Entrada3 Entrada3 AfxGetApp gt WriteProfileString Leyenda Entrada4 Entrada4 AfxGetApp WriteProfileString Socket IP 127 0 0 1 aux ODBC DRIVER MICROSOFT ACCESS DRIVER aux Insert aux GetLength AfxGetApp GetProfileString return _T aux mdb DSN DBQ BD Path Z return _T ODBC DRIVER MICROSOFT ACCESS DRIVER mdb DSN DBO C windows escritorio bdl mdb 1 En el path de la base de datos de arriba es necesario poner dos barras debido a estar entre comillas En ProyectoBD cpp Insertar en la funci n Initlnstance Despu s de Enable3dControls_Static endif SetRegistryKey ABRProyectos BOOL CProyectoBDApp InitInstance AfxEnableControlContainer Standar
248. rms 165 amp LocalPort amp LocalIP 166 167 168 CString CMSWinsockControl GetRemoteHost 169 170 CSTtring result dog di InvokeHelper Oxa DISPATCH PROPERTYGET VT BSTR void amp result NULL 172 return result 173 174 175 void CMSWinsockControl SetRemoteHost LPCTSTR lpszNewValue 176 77 static BYTE parms 178 VIS_BS TR 179 InvokeHelper Oxa DISPATCH PROPERTYPUT VT EMPTY NULL parms 180 lpszNewValue 181 182 183 184 Page 3 of 3 mswinsockcontrol h 09 01 2002 19 30 CO xy O OB WN H H H nn nn np n PR OA IAT Q N P OW 20 21 22 23 24 25 26 21 28 29 30 31 32 33 D gt gt WW LW L CO O O ON AD Ln NS A A A A A A A conan OPW WN H OT 01 ua RO O OY OY O O O O1 oo ooo OI Ol A O N H O O 0 JO OB W N fif defined AFX_MSWINSOCKCONTROL_H_5F886C4F_A2C9_11D5_97E1_CFB3C086B260__INCLUDED_ define AFX_MSWINSOCKCONTROL_H__5F886C4F_A2C9_11D5_97E1_CFB3C086B260__INCLUDED_ fif _MSC_VER gt 1000 pragma once endif MSC VER gt 1000 Machine generated IDispatch wrapper class es created by Microsoft Visual C NOTE Do not modify the contents of this file If this class is regenerated by Microsoft Visual C your modifications will be overwritten EKSITE TARA INIA VA AREA E IEA A ETAT EA UA LAIA RE CMSWinsockControl wrapper class class CMSwinsockControl public Cwnd protected DECLARE DYNCREATE CMSWinsockControl publie CLSID const a
249. rol y monitorizaci n de todas las instalaciones Mediante el puerto paralelo del PC de la instalaci n dispondremos de ocho salidas y cuatro entradas digitales con las cuales podremos generar las ordenes de control pertinentes y monitorizar el estado de la instalaci n El programa realizado actuar como programa servidor a la escucha de que otro ordenador cliente conectado a la red intente establecer una conexi n El otro ordenador cliente tendr la misma aplicaci n instalada pero funcionando como programa cliente Una vez realizada la conexi n se podr modificar el estado de las salidas y recibir el estado de las entradas del puerto del ordenador servidor remoto as como adaptar el di logo cliente al tipo de instalaci n que se ha conectado indicando la funci n de cada entrada y salida mediante una leyenda actualizada Tambi n realiza un registro sobre una base de datos de todos los eventos que producen las entradas y salidas El tipo de red de ordenadores que se utiliza es cualquier tipo de red Ethernet basada en el protocolo TCP IP Asi pues el ordenador servidor y cliente pueden realizar una conexi n mediante una red WAN Wide Area NetWork como Internet o una red LAN Local Area NetWork tipo una intranet privada de una empresa La funcionalidad de esta aplicaci n como un Sistema Inform tico en Tiempo Real estar basada en la capacidad de asegurar un tiempo m nimo de comunicaci n entre los dos ordenadores Dif cilmente
250. rol45 IDC STATIC static 1342308352 Control46 IDC_EDIT012 edit 1350633600 Control47 rIDC STATIC static 1342308352 Cont rol48 IDC_EDIT013 edit 1350633600 Control 49 1LDC_ STATIC static 1342308352 Cont rol50 IDC_EDIT014 edit 1350633600 Control51 IDC STATIC button 1342177287 Control52 IDC STATIC button 1342177287 Control53 IDC STATIC button 1342177287 Control54 IDC STATIC static 1342308352 Control55 IDC EDIT16 edit 1350633600 Control56 lpc STATIC button 1342177287 DLG IDD BASEDATOSDLG DIALOG Type 1 Class CBaseDatosDlg ControlCount 1 cControllsrDo STATIC static 1342308352 Control2 IDC_EDIT_NOMBRE edit 1350631552 Control3 IDC EDIT FSTADO edit 1350631552 Control4 IDC EDIT HORA edit 1350631552 Control5 IDC BUTTON PRIMERO button 1342242816 Control6 IDC BUTTON ANTERIOR button 1342242816 Page 2 of 5 09 01 2002 19 30 ProyectoBD clw 0970142002 10250 129 Control IDC BUTTON SIGUIENTE button 1342242816 130 Controls IDC BUTTON ULTIMO button 1342242616 131 Control9 IDC_BUTTON_INSERTAR button 1342242816 132 Control10 1DC_BUTTON_BORRAR button 1342242816 133 Controlll IDC BUTTON ACTUALIZAR button 1342242816 134 Controll2 IDC BUTTON BUSCARTODOS button 1342242816 135 Controll3 IDC BUTTON LIMPIAR button 1342242816 136 Controll4 IDC BUTTON BUSCAR button 1342242816 137 Control15 IDC_STATIC static 1342308354 138 Controll6 IDC STATIC static 1342308354 139 Controll IDC STATIC static
251. rt 19 0 368 if Salida7 1 Estado Insert 21 1 369 else Estado Insert 21 0 370 if Salida8 1 Estado Insert 23 1 371 else Estado Insert 23 0 372 if Entradal 1 Estado Insert 25 1 373 else Estado Insert 25 0 374 if Entrada2 1 Estado Insert 27 1 3 175 else Estado Insert 27 0 376 if Entrada3 1 Estado Insert 29 1 377 else Estado Insert 29 0 378 if Entrada4 1 Estado Insert 31 1 379 else Estado Insert 31 0 380 381 m Socketl ABREnviarSck Estado 382 m Socketl ABREnviarSck Estado 363 384 Page 6 of 8 ABRCProyectoBDDlgUtils h 385 386 207 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 void CProyectoBDDlg EnviarLeyendaAlSck CString Leyenda CString Estado Estado Leyenda 09 01 2002 19 29 Leyenda Insert Leyenda GetLength Leer m_EditSalidal Leyenda Insert Leyenda GetLength Leyenda Insert Leyenda GetLength Leer amp m EditSalida2 Leyenda Insert Leyenda GetLength Leyenda Insert Leyenda GetLength Leer amp m EditSalida3 Leyenda Insert Leyenda GetLength Leyenda Insert Leyenda GetLength Leer amp m EditSalida4 Leyenda Insert Leyenda GetLengt
252. rtodos return TRUE return TRUE unless you set the focus to a control EXCEPTION OCX Property Pages should return FALSE Anadir funci n OnPaint Classwizard gt MessageMap CBaseDatosDlg gt WM_PAINT gt Add Function gt EditCode 17 Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira MFC ClassWizard BEEN 3x Message Maps Member Variables Automation Actives Events Class Info Project Llass name Add Class T ProyectoBD ce aseDlatosDlg E t Lt ABaseDatosD lg h L ABaseDlatosUlg cpp Sissi Object ID s Messages Delete Function CE azeD atosD la ID_ACCIN_BASEDEDATOS w RBUTTONDBLCLK ID_ACCIN_CLIENTE wM RBUTTONDDWN ID ACCIN PROPIEDADES wM REUTTONUF ID SALIDAS SALIDAT wM SETCURS R ID SALIDAS SALIDA WM SHO WwWwINDDW ID SALIDAS SALIDAS JM SIZE hd Member functions Yo DoDataE xchange w OnlnitDialag DM wi INITDIALOG OnPaint UM wi PAINT Description Indicates a window frame needs painting do not use for views void CBas eDatosDlg OnPaint CPaintDC de this device context for painting TODO Add your message handler code here m pSet amp m BaseDatosDlgSet m pSet gt ABRCerrarBD m pSet gt ABR AbrirBD O EscribirRegistro OnButtonBuscartodos m_EditNombre SetSel m_EditNombre GetWindowTextLength m_EditNombre GetWindowTextLength TRUE D
253. s Aeron uticas Agust Baub Rovira CASO MODAL En el fichero ProyectoBDDlg h Crear Variable Bot n derecho sobre CProyectoBDDlg gt Add Member variable public CProyectoBDDlg CWnd pParent NULL standard constructor CBaseDatosDlg BaseDatosDlg Dialog Data Insertar funci n OnAccinBasedeDatos Classwizard gt MessageMap ID_ACCIN_BASEDEDATOS gt COMMAND gt Add Function gt Ok gt EditCode void CProyectoBDDlg OnAccinBasededatos TODO Add your command handler code here BaseDatosDlg DoModal Realizar CTRL F5 para compilar hasta aqu el proyecto Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Crear la clase RecorSet para acceder a la Base de Datos Para crear la clase realizar Insert gt NewClass MFC Class gt CBaseDatosSet gt BaseClass CRecordSet gt ODBC gt MS Access Database gt Dynaset gt BD1 mdb gt Historico Nota La base de datos debe estar copiada en la carpeta del proyecto Mew Class CBaseDatosSet CRecordset Dialog ID zi te ane t Automation Createable by type JD 10 Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Table L Detect dirty columns Bind Seleccionar base de datos JELIT MDE ch BED1 MDB gt a E windows Escritorio S ProuectoBD E elect Database Tables En la funci n GetDefaul
254. s consistent on all systems IDR_MAINFRAME ICON DISCARDABLE res ProyectoBD ico DITO ERE ATARI TLA URI AA eae Dialog IDD ABOUTBOX DIALOG DISCARDABLE 0 0 235 55 STYLE DS MODALFRAME WS POPUP WS CAPTION WS SYSMENU CAPTION Acerca de ProyeccoBD FONT 8 BEGIN END ICON LTEXT LTEXT DEFPUSHBUTTON MS Sans Serif IDR_MAINFRAME IDC_STATIC 11 17 20 20 ProyectoBD Versi n 1 0 IDC_STATIC 40 10 119 8 SS NOPREFIX Copyright C ZUDI TIDC STATIC 40 25 119 9 Aceptar IDOK 178 7 50 14 WS GROUP IDD PROYECTOBD DIALOG DIALOGEX 80 05456 389 157 STYLE DS MODALFRAME WS_POPUP WS VISIBLE WS CAPTION WS SYSMENU EXSTYLE WS EX APPWINDOW CAPTION ProyectoBD MENU IDR MENUI FONT 8 BEGIN LIEXT EDITTEXT EDITTEXT EDITTEXT RTEXT RTEXT RTEXT CONTROL CONTROL CONTROL CONTROL CONTROL CONTROL CONTROL CONTROL GROUPBOX CONTROL CONTROL CONTROL CONTROL CONTROL MS Sans Serir A HACER Colocar aqu controles de cuadro de di logo IDC_STATIC1 7 8 375 8 IDC_EDIT_NOMBRE 39 22 102 12 ES_AUTOHSCROLL IDC_EDIT_ESTADO 39 34 102 12 ES_AUTOHSCROLL IDC_EDIT_HORA 39 47 102 12 ES_AUTOHSCROLL Nombre T IDC_STATIC 7 23 30 11 Estado IDC_STATIC 7 36 30 11 Horat IDC_STATIC 7 47 30 11 Salidal IDC_CHECK1 Button BS AUTOCHECKBOX BS ICON WS TABSTOP 30 69 10 10 Salidaz IDC CHECK2 Button BS AUTOCHEC
255. s ee ie Phire tE RA EE BS PEA AA EPI E KER KE Qe eed ere id aid nin id AAA IIA IA ERE O O BKH RRIT EDIE INT E fI T Protocolo de datagramas de usuario UDP IP Puertos de 16 bits No informa al emisor sobre cu ndo alcanza el datagrama su destino por Pana e Protocolo de control de transmisi n TCP IP A Protocolo que permite transmitir grandes bloques de datos sin errores En Control Winsock oculta la mayor parte de los detalles del protocolo TCP IP por los que no gp F r das i pun ra lP Generalmente 20 bytes DO Diez Et aa a Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira El control MS Winsock Control e Para la creaci n de aplicaciones basadas en sockets e El socket permite a una aplicaci n establecer una conexi n con cualquier punto de la red as como enviar y recibir datos principales funciones de cualquier aplicaci n de Internet s Con MS WinsockControl se pueden implementar los diferentes protocolos utilizados en Internet e inclusive protocolos propios HTTP FTP SMTP POP3 NNTP Hypertext Transfer Protocol p ginas Web File Transfer Protocol transferencia de ficheros Simple Mail Transfer Protocol env o de email Post Office Protocol recepci n email Network News Transfer Protocol noticias puerto 80 puerto 21 puerto 25 puerto 110 puerto 119 o a RAW
256. s will be overwritten include stdafx h rinclude mswinsockcontrol h include ABRWinsock h TETU LH AA AFA L A PIA L EE LFL LPA AL ee III L A A t CMSWinsockCont rol IMPLEMENT_DYNCREATE CMSWinsockControl CWnd LALAT TL LLA A CELA AA TL LLA VL VIL LA EE E LX AAA VL LF LAVA VALL LAL VELA LLA CMSWinsockControl properties DELETE HV T LLA LI VL FA VI V a TX PAD PLAT TALS EAT IIA 14 XA PIL EL AT DUE CMSWinsockControl operations long CMSWinsockControl GetProtocol long result InvokeHelper 0x3 DISPATCH_PROPERTYGET VT I4 void amp result NULL return result void CMSWinsockControl SetProtocol long nNewValue static BYTE parms VIS 145 InvokeHelper 0x3 DISPATCH_PROPERTYPUT VI_EMPTY NULL parms nNewValue CString CMSWinsockControl GetRemoteHost IP CString result InvokeHelper 0x4 DISPATCH PROPERTYGET VT BSTR void amp result NULL return result CString CMSWinsockControl GetLocalHostName CString result InvokeHelper 0x5 DISPATCH PROPERTYGET VT BSTR void amp result NULL return result CString CMSWinsockControl GetLocallIP CString result InvokeHelper 0x6 DISPATCH PROPERTYGET VT BSTR void amp result NULL return result long CMSWinsockControl GetSocketHandle long result InvokeHelper 0x7 DISPATCH_PROPERTYGET VI_14 void amp result NULL return result Page 1 of 3 mswinsockcontrol cpp 09 01 2002
257. se desee En Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira L neas de continuaci n del Provecto Crear aplicaciones cliente servidor mediante microcontroladores y as no utilizar un PC que es mucho m s caro Las aplicaciones servidor se implementan en un chip micro servidor que dispone de una pila TCP IP y de un modem o una adaptador de red para conectarse a la red El circuito integrado estar conectado a la red y podr utilizar socket s emails p ginas web etc y a partir de aqu conectarse con PC o con otros microservidores que realizan las funciones necesarias en cada caso Con esto podr amos a adir a cualquier electrodom stico a cualquier electrov lvula a cualquier sensor funcionalidad cliente servidor y ser controlado desde cualquier punto de la red en los que se conecten Demostraci n
258. se puede establecer tiempos l mites en aplicaciones conectadas en Internet pero en redes LAN basadas en red ATM Asyncrhonous Transfer Mode si que se puede limitar el tiempo de la comunicaci n y por tanto asegurarnos de que este tiempo es inferior al tiempo que necesita el sistema que queremos controlar La utilidad de este proyecto se centra en ejercer como una potencial aplicaci n industrial inmediata en el sector aeron utico pero tambi n en ofrecer una soluci n v lida para otros tipos de sectores y ofreciendo tambi n una base para estudios posteriores tanto para la utilizaci n en otras aplicaciones inform ticas como en la ampliaci n de este proyecto con opciones m s sofisticadas a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a Titular y destinatario El posible destinatario de este proyecto seria AENA Aeropuertos Espanoles y Navegacion A rea empresa en la cual estoy trabajando desde hace cuatro a os en el Aeropuerto de Reus Trabajando en las dependencias de Navegaci n A rea se observa la necesidad de monitorizar y controlar remotamente las diferentes instalaciones electr nicas que se utilizan para ofrecer servicio de navegaci n a las aeronaves Para ello se utilizan sistemas de comunicaci n punto a punto mediante l neas telef nicas o radio enlaces que conectan las radioayudas con monitores centralizados en la Sala de Equipos de las Torres o Centros de Control
259. siDig h include ClienteDlg h A adir variable en ProyectoBDDlg h CClienteDlg ClienteDlg Construction public CProyectoBDDlg CWnd pParent NULL AF standard constructor incicio de las declaraciones void EnviarLeyendaAlSck void ImprimirLeyenda int m nTimerl void LeerEntradasPuerto void EnviarEstadoAlSck void GuardarSalidas CString Leer CEdit Edit CString Mirarbstado int n5al void InicializarSalidas void InsertarRegistro CString Nombre CString Estado CString Hora CString InsertarHora void EscribirRegistro void ActualizarPuerto fin de las declaraciones CClienteDlg ClienteDlg CPropiedades1D1g PropiedadeslDlg CPuertoParalelo PuertoParalelo int Salidal A adir la funci n OnAccinCliente en CProyectoBDDIg Classwizard gt MessageMap CProyectoBDDlg gt ID ACCIN CLIENTE gt COMMAND Add Function gt gt EditCode ClienteDlg DoModal 53 a Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas a void CProyectoBDDlg OnAccinCliente TODO Add your command handler code here ClienteDlg DoModal Realizar CTRL F5 para compilar hasta aqu el proyecto Agust Baub Rovira 54 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Ficheros que incluimos en el proyecto A continuaci n vamos a mostrar los ficheros que deberemos incluir en el proyecto para utilizar fu
260. sos de datos en respuesta a las solicitudes de los clientes Para salvaguardar la informaci n y los datos de la empresa se pueden separar completamente la intranet de Internet conect ndolas a trav s de cortafuegos O proxy s Mediante el control winsock podemos crear aplicaciones distribuidas aprovechando todo el potencial de las redes TCP IP Internet e intranet Cualquiera que quiera dedicarse al desarrollo de software para Internet no puede pasar por alto el control winsock basado en el concepto de socket conector El socket permite a una aplicaci n establecer una conexi n con cualquier punto de la red as como enviar y recibir datos principales funciones de cualquier aplicaci n de Internet Para entender correctamente que es un socket hace falta ciertos conocimientos de los protocolos que se utilizan en Internet a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira i Protocolos de red Niveles Todas las redes descomponen los protocolos de transmisi n en niveles al conjunto de niveles se le llama frecuentemente torre La aplicaciones se comunican con el nivel superior de la torre mientras que los niveles inferiores se comunican por la red Cada nivel se conecta desde el punto de vista l gico con el mismo nivel en el otro extremo del canal de comunicaciones cliente servidor Una red de rea local LAN basada en TCP IP esta formada por una torre con los siguiente niveles
261. source7 1DR MENUI CLS CProyectoBDApp Type 0 HeaderFile ProyectoBD h ImplementationFile ProyectoBD cpp Filter N CLS CProyeoctoBDDlig Type 0 HeaderFile ProyectoBDD1g h ImplementationFile ProyectoBDDlg cpp Filter D BaseClass CDialog VirtualFilter dwc LastObject ID_ACCIN_BASEDEDATOS CLS CAboutDlg Type 0 HeaderFile ProyectoBDD1g h ImplementationFile ProyectoBDDlg cpp Filter D DLG IDD ABOUTBOX Type 1 Class CAboutDlg ControlCount 4 Contro1l1 IDC_STATIC static 1342177283 Control2 IDC_STATIC static 1342308480 Control 3 1DC STATIC Stati 13427308352 Control4 IDOK button 1342373889 DLG IDD PROYECTOBD DIALOG Type 1 Class CProyectoBDD1g ControlCount 56 Contro1l1 IDC_STATIC1 static 1342308352 Contro12 IDC EDIT NOMBRE edit 1350631552 Control3 IDC EDIT ESTADO edit 1350631552 Page 1 of 5 09 01 2002 19 30 ProyectoBD clw 65 66 67 68 69 70 pat TZ 73 74 Eis 76 FI 78 19 80 81 82 83 84 85 86 87 88 89 90 SL 92 93 94 35 96 97 98 WO WO H nn n np nn nn CO uc ED Or e No Oo O O 0 C O 0 TO UI hop O veh DIZ LES 114 KLS 116 LIJ LES dg 120 kn 122 ZAS 124 AS t26 127 128 Control4 IDC EDIT HORA edit 1350631552 Control5 IDC STATIC static 1342308354 Control6 IDC STATIC static 1342308354 Control 7 IDC_STATIC static 1342308354 Controle IDC CHECK button 1342242833 Cont rol9 IDC_CHECK2 button 1342242883 Controll0 ID
262. stado m Socketl GetState UpdateData FALSE void CProyectoBDD1lg OnDataArrivalWinsock1 long bytesTotal TODO Add your control notification handler code here m Socketl ABROnDataArrivalWinsockl bytesTotal m Staticl Recibido m Staticl Insert m Staticl GetLength m Socketl Dato UpdateData FALSE if m Socketl Dato Salidal OnSalidasSalidal if m Socketl Dato Salida2 OnSalidasSalida2 if m Socketl Dato Salida3 OnSalidasSalida3 if m Socketl Dato Salida4 OnSalidasSalida4 if m Socketi Dato Salida5 OnSalidasSalida5 if m Socketl Dato Salida6 OnSalidasSalida6 if m Socketl Dato Salida7 OnSalidasSalida7 if m Socketl Dato Salida8 OnSalidasSalida8 void CProyectoBDDlg OnTimer U TNT nIDEvent TODO Add your message handler code here and or call default LesrEntradasPuerto CDialog OnTimer nIDEvent void CProyectoBDD1g OnAccinPropiedades TODO Add your command handler code here Cotring BD BD AfxGetApp gt GetProfileString BD Path PropiedadesiDlg DoModal While PropiedadesiDlg IsWindowVisible Page 7 of 8 19 31 ProyectoBDD1g cpp 09 01 2002 19 31 449 450 ImprimirLeyenda 45 452 if atoi Leer amp m EditPort int m Socketl GetLocalPort 453 454 m Socketl ABRCerrarSck 455 m Socketl SetLocalPort atoi Leer amp m EditPort 456 m Socketl ABREscucharSck 4
263. stado Insert 21 0 if Entrada4 1 Estado Insert 23 1 else Estado Insert 23 0 Page 2 of 8 ABRCProyectoBDD1gUtils h 09 01 2002 19 29 129 m EditNombre SetWindowText Se Cierra Dialogo de Salidas 130 m EditEstado SetWindowText Estado 131 m EditHora SetWindowText InsertarHora 132 133 m pSet gt ABRInsertarRegistro Leer amp m_EditNombre Leer amp m_EditEstado Leer amp m_EditHora 134 135 A 136 137 138 CString CProyectoBDDlg MirarEstado lht ns l 139 4 140 COtring Out 141 142 switch nSal 143 144 case l 145 if Salidal out 0 146 else out 1 147 Salidal Salidal 148 break 149 case 2 150 if Salida2 out 0 151 else out 1 152 Salida2 Salida2 153 break 154 case 3 155 if Salida3 out 0 156 else out 1 157 Salida3 Salida3 158 break 159 case 4 160 if Salida4 out 0 161 else out 1 162 Salida4 Salida4 163 break 164 case 5 165 if Salida5 out 0 166 else out 1 167 Salida5 Salida5 168 break 169 case 6 170 if Salida6 out 0 171 else out 1 172 Salida6 Salida6 173 break 174 case 7 175 if Salida7 out 0 176 else out 1 177 Salida7 Salida7 178 break 179 case 8 180 if Salida8 out 0 181 else out 1 182 Salida8 Salida8 183 break 184 case 9 185 if lEntradal out 0 186 else out 1 187 break 188 case 10 189 if Entrada2 out 0
264. strVal strport AllocSysStringt vtType bstrVal strport AllocSysString GetData amp vtData vtType vtMaxlen Datos vtData bstrVal Dato Datos void CMSWinsockControl ABREnviarSck CString datos TODO Add your control notification handler code here VARIANT vtCommand CString m_command vtCommand vt VT BSTR m command datos vtCommand bstrVal m command AllocSysString SendData vtCommand void CMSWinsockControl ABROnCloseWinsockl TODO Add your control notification handler code here void CMSWinsockControl ABROnErrorWinsock1 short Number BSTR FAR Description TODO Add your control notification handler code here void CMSWinsockControl ABRCerrarSck TODO Add your command handler code here Close 1t void CMSWinsockControl ABROnSendCompleteWinsockl TODO Add your command handler code here Page 2 of 3 09 01 2002 19 29 long Scode LPC ABRWinsock h 129 130 151 132 133 134 135 136 1357 138 139 140 141 142 143 144 145 146 147 148 149 E OT 01 UI H O O1 O1 e e e pa LS n LS O1 O1 la O1 Ol O1 WO 0 J OY OB CO N hop DO Ho 162 163 164 165 166 167 168 169 170 171 A CString CMSWinsockControl ABRConvertirEstado int Estado Switch Estado case 0 return break case 1 reru i break case 2 return break case 3 reLurn break case 4 return break case 5 retur
265. t EditCode OnCheck2 Classwizard gt MessageMap CProyectoBDDlg gt IDC CHECK2 gt BN CLICKED gt Add Function gt EditCode OnCheck3 Classwizard gt MessageMap CProyectoBDDlg gt IDC_CHECK3 gt BN CLICKED gt Add Function gt EditCode OnCheck4 Classwizard gt MessageMap CProyectoBDDlg gt IDC_CHECK4 gt BN CLICKED gt Add Function gt EditCode OnCheck5 Classwizard MessageMap CProyectoBDDlg gt IDC CHECKS gt BN CLICKED gt Add Function gt EditCode OnCheck6 Classwizard MessageMap CProyectoBDDlg gt IDC CHECK6 gt BN CLICKED gt Add Function gt EditCode OnCheck7 Classwizard MessageMap CProyectoBDDlg gt IDC CHECK gt BN CLICKED gt Add Function gt EditCode OnCheck Classwizard gt MessageMap CProyectoBDDlg gt IDC CHECKS gt BN CLICKED gt Add Function gt EditCode Copiar el c digo de las funciones anteriores ProyectoBDDlg cpp void CProyectoBDDlg OnCheckl TODO Add your control notification handler code here OnSalidasSalidal void CProyectoBDDlg OnCheck2 TODO Add your control notification handler code here OnSalidasSalida2 void CProyectoBDDlg OnCheck3 TODO Add your control notification handler code here OnSalidasSalida3 32 void void void void Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas
266. t WriteProfileString m_host AfxGetApp gt GetProfileString Socket2 IP m port T AfxGetApp gt GetProfileString Socket2 Port Jm hoste l27T 0 0 1 m porte T 85898 5 vtHost vt VT BSTR vtPort vt VT BSTR SetRemoteHost m host SetRemotePort atoi m port vtHost bstrVal m host AllocSysString vtPort bstrvalem pott AlLlocsysstrinmgl Connect vtHost vtPort void CMSWinsockControl ABROnConnectWinsockl TODO Add your control notification handler code here void CMSWinsockControl ABREscucharSck TODO Add your command handler code here Close Listen void CMSWinsockControl ABROnConnectionRequestWinsock1 long requestID TODO Add your control notification handler code here Close Accept request ID void CMSWinsockControl ABROnDataArrivalWinsockl long bytesTotal TODO Add your control notification handler code here CString strport VARIANT vtData Page 1 of 3 ABRWinsock h 65 66 67 68 69 70 71 72 73 74 Ja 76 77 78 19 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 35 26 2 98 99 100 LOL 102 103 104 105 106 107 108 109 LLU 111 LIZ 113 114 LILA 116 117 118 LLY 120 AL 122 123 124 125 126 127 128 VARIANT vtType VARIANT vtMaxlen strport 4000 vtData vt VT_BSTR vLIVype vt vr ERROR vtMaxlen vt VT I2 vtMaxlen iVal short bytesTotal CString Datos vtData b
267. t pDX IDC EDITIO m EditEntrada2 DDX Text pDX IDC EDIT11 m EditEntrada3 DDX Text pDX IDC EDIT12 m EditEntrada4 DDX Text pDX IDC EDIT13 m EditIP DDX Text pDX IDC EDIT14 m EditPort DDX Text pDX IDC EDIT15 m EditPath JAFX DATA MAP Page 1 of 3 09 01 2002 19130 Propiedades1D1g cpp 09 01 2002 19 30 65 BEGIN MESSAGE MAP CPropiedadesiDilg CDialog 66 AFX_MSG_MAP CPropiedades1D1g 67 AFX_MSG_MAP 68 END MESSAGE MAP 69 TOO ASISTE EIT STII EL EEE ETI TIT IAT PEER TTI VA a e YI 71 CPropiedadesiDlg message handlers 72 73 void CPropiedadeslDlg OnOK 74 4 75 TODO Add extra validation here 76 UpdateData TRUE 77 78 AfxGetApp gt WriteProfileString Leyenda Salidal m EditSalidal 79 AfxGetApp WriteProfileString Leyenda Salida2 m EditSalida2 80 AfxGetApp WriteProfileString Leyenda Salida3 m EditSalida3 81 AfxGetApp WriteProfileString Leyenda Salida4 m EditSalida4 82 AfxGetApp L gt WriteProfileString Leyenda Salida5 m_EditSalida5 83 AfxGetApp WriteProfileString Leyenda Salida6 m_EditSalida6 84 AfxGetApp L gt WriteProfileString Leyenda Salida7 m EditSalida 7 85 AfxGetApp gt WriteProfileString Leyenda Salida8 m EditSalida8 86 87 AfxGetApp gt WriteProfileString Leyenda Entradal m EditEntradal 88 AfxGetApp gt WriteProfileString Leyenda Entrada2 m EditEntrada2 9 AfxGetApp Wr
268. t rectangle 225 int cxIcon GetSystemMetrics SM_CXICON 226 int cylcon GetSystemMetrics SM_CYICON 227 CRect rect 228 GetClientRect amp rect 229 int x rect Width cxIcon l 2 230 int y rect Hejrght ocyloon 1 7 2 231 232 Draw the icon 233 dc Drawlcon x y m hIcon 234 235 else 236 237 CDialog OnPaint 238 239 m EditNombre SetSel m EditNombre GetWindowTextLength m EditNombre GetWindowTextLength 240 24 1 242 243 244 The system calls this to obtain the cursor to display while the user drags 245 the minimized window 246 HCURSOR CProyectoBDDlg OnQueryDragIcon 247 248 return HCURSOR m hIcon 249 250 251 void CProyectoBDDlg OnDestroy 252 4 2D3 CDialog OnDestroy 254 255 TODO Add your message handler code here 256 m_pSet amp m_BaseDatosDlgSet Page 4 of 8 ProyectoBDDlg cpp 09 01 2002 19 31 257 m_pSet gt ABRAbrirBD 256 259 GuardarSalidas 260 261 m pSet gt ABRCerrarBD 262 263 264 265 void CProyectoBDD1g OnAccinBasededatos 266 4 267 TODO Add your command handler code here 268 BaseDatosDlg DoModal 269 m pBaseDatosDlg gt ShowWindow SW_SHOW 210 m pBaseDatosDlg gt SetFocus 271 T 272 273 void CProyectoBDD1g OnSalidasSalidal 274 A 215 TODO Add your command handler code here 216 InsertarRegistro Leer amp m EditSalidal MirarEstado 1 InsertarHora
269. t2 GetState 7 Salida7 2 Salida7 m Socket2 ABREnviarSck Salida7 Escribir amp m EditEnviado Leer amp m EditSalida 7 else m ChkSal7 SetCheck 0 void CClienteDlg OnChk8 TODO Add your control notification handler code here 1f m Socket2 GetState 7 Salida8 Salida8 m_Socket2 ABREnviarSck Salida8 Escribir amp m_EditEnviado Leer amp m EditSalida8 else m ChkSal8 SetCheck 0 void CClienteDlg OnCloseWinsockli TODO Add your control notification handler code here m_Socket2 ABRCerrarSck m Staticl m Socket2 ABRConvertirEstado m_Socket2 GetState UpdateData FALSE m ButtonCerrar EnableWindow FALSE m ButtonConectar EnableWindow TRUE Page 5 of 5 09 01 2002 19 0 30 ClienteDlg h 1 AFX_INCLUDES 2 include mswinsockcontrol h 3 AFX INCLUDES 4 dif defined AFX CLIENTEDIG H D341D442 BODF 11D5 97E1 B4AODF43684E INCLUDED 5 define AFX CLIENTEDIG H D341D442 BODF 11D5 97E1 B4AODF43684E INCLUDED _ 6 7 dif MSC VER gt 1000 8 pragma once 9 endif MSC VER gt 1000 10 ClienteDlg h header file it 7 7 12 13 EEC ELT PIII TIE RR aa Ed 14 CClienteDlg dialog 15 16 class CClienteDlg public CDialog LT d 18 77 Construction 19 Pza 20 void InicializarLeyenda 21 void ActualizarPuerto 22 void InicializarSalidas 23 void Escribir CEdIt Edit CString string 24 CString Leer CEdit Edit 25 inb Salidal 26 int Sa
270. tConnect de la clase CBaseDatosSet cambiar return _T ODBC DSN MS Access Database por return _T ODBC DRIVER MICROSOFT ACCESS DRIVER mdb DSN DBQ C windows escritorio ProyectoBD bdl mdb CString CBaseDatosSet GetDefaultConnect return _T ODBC DRIVER MICROSOFT ACCESS DRIVER mdb DSN DBO C windows escritorio ProyectoBD bd1 mdb 11 a r Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira Preparar la clase CBaseDatosSet para anadir funciones propias A adir a BaseDatosSet h las declaraciones de las funciones del fichero ABRdb h para gestionar la base de datos Overrides ClassWizard generated virtual function overrides AFX_VIRTUAL CBaseDatosSet public virtual CString GetDefaultConnect Default connection string virtual CString GetDefaultSQL Default SOL for Recordset virtual void DoFieldExchange CFieldExchange pFX RFX support funciones Creadas por ABR void CBaseDatosSet ABRAbrirBD void CBaseDatosSet ABRCerrarBD void CBaseDatosSet ABRUltimoRegistro void CBaseDatosSet ABRPrimerRegistro void CBaseDatosSet ABRSiguienteRegistro void CBaseDatosSet ABRAnteriorRegistro void CBaseDatosSet ABRInsertarRegistro CString Nombre CString Estado CString Hora void CBaseDatosSet ABRBorrarRegistro CString Nombre CString Estado CString Hora void CBaseDatosSet ABRActualizarRegistro CString
271. tObject CPropiedadesiDlg 230 VirtualFilter dwC zr 232 DLG IDD_CLIENTEDLG DIALOG 233 Type 1 234 Class CClienteDlg 235 ControlCount 54 236 Controll IDC STATICIStagtric 1342308352 237 Control2 IDC_STATIC button 1342177287 238 Control3 IDC WINSOCKI 248DD896 BB45 11CF 9ABC 0080C7E7B78D 1342242816 239 Control4 IDC_STATIC button 1342177287 240 Control5 IDC_STATIC static 1342308352 241 ControL6 IDC EDITO edit 1350633600 242 Control IDC STATIC Starve 1342308352 243 Controls IDG EDITOZ edit 1350633600 244 Control9 IDC STATIC static 1342308352 245 ControllosSlDC bDILT0S edrt l13550653525000 246 Controlll1 IDC STATIC static 1342308352 247 Controll2 IDC EDITO4 edit 1350633600 248 Controll3 IDC STATIC static 1342308352 249 Controll4 IDC EDITO5 edit 1350633600 250 Controll15 IDC STATIC static 1342308352 251 Conutroll 6 1D EDIT06 edit 1350635600 252 Controll IDC STATIC static 1342308352 253 Controlls 1DC EDITO edit 1350683600 254 Controll9 IDC STATIC strat re 1342308352 255 Control20 1D EDITOS E 13506393600 256 Control21 1DC STATIC static 1342308352 Page 4 of 5 ProyectoBD clw 257 2 20 2359 260 261 2 62 263 264 263 266 267 268 269 ZTO TI ANS Z 13 274 275 216 API 278 Z9 280 281 282 283 284 285 206 281 288 209 290 291 292 293 294 293 296 AJ 298 299 300 ControlZ2 IDE SEDITOS edit 350633600 Contro123 IDC_STATIC static 1342308352 Contro
272. tado InsertarHora InsertarRegistro Leer amp m_EditNombre Leer amp m_EditEstado Leer amp m_EditHora ActualizarPuerto void CProyectoBDD1g Guardarsalidas CString Estado if Salidal 1 Estado Inserte 1 1 ys else Estado Insert 1 0 if Salida2 1 Estado Insert 3 l Js else Estado Insert 3 0 if Salida3 1 Estado Insert 15 Ll ys else Estado Insert 5 0 if Salida4 1 Estado Insert 7 1 else Estado Insert 7 0 if Salida5 1 Estado Insert 9 l else Estado Insert 9 0 if Salida6 1 Estado Insert 11 1 ys else Estado Insert 11 0 Fi if Salida7 1 Estado Insert 13 1 else Estado Insert 13 0 if Salida8 1 Estado Insert 15 1 else Estado Insert 15 0 if Entradal 1 Estado Insert 17 1 else Estado Insert 17 0 if Entrada2 1 Estado Insert 19 1 else Estado Insert 19 0 if Entrada3 1 Estado Insert 21 1 else Estado Insert 21 0 if Entrada4 1 Estado Insert 23 1 else Estado Insert m pSet Zon m EditNombre SetWindowText m EditEstado SetWindowText m EditHora SetWindowText Se Cierra Dialogo de Salidas Estado InsertarHora gt ABRInsertarRegistro Leer amp m_EditNombre Leer amp m EditEstado Leer amp m EditHora CString CPrOyectoBDDlq MirafEstado int nsal CString out switch nSal Case l ld Sa
273. tate UpdateData FALSE EnviarEstadoalSck void CProyectoBDD1g OnConnectionRequestWinsock1 long request LD TODO Add your control notification handler code here m Socketl ABROnConnectionRequestWinsockl m Staticl m Socketl ABRConvertirEstado UpdateData FALSE Enviar Estado Inicial EnviarleyendaAlSck EnviarEstadoAlSck request ID m Socketl GetState Insertar funci n OnCloseWinsockl Classwizard gt MessageMap IDC WINSOCK1 gt Close gt Add Function gt EditCode m_Socketl ABROnCloseWinsock1 m_Staticl m_Socketl ABRConvertirEstado mSocket1 GetState UpdateData FALS E m Socketl ABRCerrarSck m_Staticl UpdateDAta FALSE void CProyectoBDDlg OnCloseWinsockl TODO Add your control notification handler code here O 38 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira m Socketl ABROnCloseWinsockl m Staticl m Socketl ABRConvertirEstado m Socketl GetState UpdateData FALSE m Socketl ABRCerrarSck Staticl m Socketl ABRConvertirEstado m Socketl GetState UpdateData FALSE m Socketl ABREscucharSck m Staticl m Socketl ABRConvertirEstado m Socketl GetState UpdateData FALSE 3 Insertar funci n OnDataArrivalWinsockl long bytes total Classwizard gt MessageMap IDC WINSOCK I gt DataArrival gt Add Function gt EditCode m_Socketl ABROnDat
274. teSQL sqlcmd ha LimpiarCampos ABRBuscarTodosLosRegistros void CBaseDatosSet ABRActualizarRegistro CString Nombre CString Estado CString Hora CString sqlema UpdateData TRUE if IsOpen sqlcmd Format UPDATE Historico SET Nombre s Estado s Hora s WHERE Nombre 2 s AND Estado s AND Hora s Nombre Estado Hora m Nombre m Estado m Hora m_pDatabase gt ExecuteSQL sqlcmd Ti ABRBuscarTodosLosRegistros void CBaseDatosSet ABRBuscarRegistro CString Nombre CString Estado CString Hora CString sqlcmd aux UpdateData TRUE CString quet CString e CString h if Nombre n lt gt if Estado e lt gt if Hora h lt gt if IsOpen sqlcmd Format SELECT COUNT Hora FROM Historico WHERE Nombre s s AND Estado s s AND Hora s s n Nombre e Estado h Hora ABRCerrarBD Open 0 sqlcmd NULL aux Format s Registros encontrados m pSet m Nombre m_Staticl aux 17 UpdateData FALSE 59 oe a void Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas sqlcmd Format SELECT FROM Historico WHERE Nombre s s s AND Hora s s n Nombre e Estado h Hora LimpiarCampos 1 ABRCerrarBD Open 0 sqlcmd NULL UltimoRegistro LeerRegistro CBaseDatosSet ABRBuscarTodosLosRegistros CString sqlcmd if IsOpen sqle
275. tra como la cabecera UDP incluye algo de informaci n adicional en concreto los n meros de puerto origen y destino Estos n meros de 16 bits se utilizan en los programas de aplicaci n en ambos extremos Por ejemplo un programa cliente podr a enviar un datagrama al puerto 1700 del servidor El programa servidor permanece a la escucha de cualquier datagrama que incluya 1700 como puerto de destino y cuando encuentra uno puede responder enviando otro datagrama al cliente que escuche aquellos datagramas que incluyan 1701 como n mero de puerto de destino Datagrama IP Datagrama UDP Eren Cabecera Datos UDP Cabecera IP UDP Datos U Mormalmente 20 bytes 8 bytes Datagrama UDP IP completo Relaci n entre el datagrama IP y el datagrama UDP El protocolo UDP es muy poco m s que IP pero las aplicaciones nunca utilizan IP directamente Al igual que IP UDP no informa al emisor sobre cu ndo alcanza el datagrama su destino Eso es parte del trabajo de la aplicaci n Por ejemplo el emisor podr a esperar a que el receptor emitiera una respuesta retransmitiendo el emisor el datagrama si la respuesta no llega antes de digamos 20 segundos UDP es ideal para mensajes cortos que se env an de golpe transmisi n de audio y video en tiempo real para los que la p rdida de un datagrama o el desorden entre ellos no constituye un excesivo problema 11 E i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovir
276. tri SetEventMask with the ENM_CHANGE flag ORed into the mask TODO Add your control notification handler code here AfxGetApp gt WriteProfileString Socket2 Port Leer amp m_EditPort BEGIN_EVENTSINK_MAP CClienteDlg CDialog AFX_EVENTSINK_MAP CClienteDlg ON EVENT CClienteDlg IDC_WINSOCK1 1 Connect OnConnectWinsock1 VTS NONE ON EVENT CClienteDlg IDC_WINSOCK1 O DataArrival OnDataArrivalWinsock1 VTS I4 ON EVENT CClienteDlg IDC_WINSOCK1 5 Close OnCloseWinsock1 VTS NONE AFX EVENTSINK MAP END EVENTSINK MAP void CClienteDlg OnConnectWinsockl TODO Add your control notification handler code here m_Static1 m_Socket2 ABRConvertirEstado m Socket2 GetState UpdateData FALSE void CClienteDlg OnButtonCerrar TODO Add your control notification handler code here m SocketZ ABRCerrarSck m Staticl m Socket2 ABRConvertirEstado m Socket2 GetState UpdateData FALSE m ButtonCerrar EnableWindow FALSE m ButtonConectar EnableWindow TRUE void CClienteDlg OnDataArrivalWinsockl long bytesTotal TODO Add your control notification handler code here m_Socket2 ABROnDataArrivalWinsockl bytesTotal CString aux aux m_Socket2 Dato aux aux Mid 0 7 if aux Estado InicializarSalidas if aux Leyenda InicializarLeyenda Page 3 of 5 ClienteDlg cpp 193 194 1195 196 LO LJ 199 200 201 202 208 204 203 206
277. tring CEdit Control CEdit Control CEdit Control 14 MFC Classwizard IDE BUTTON BUSCAR IDC BUTTON BUSCARTODOS IDC BUTTON LIMPIAR IDC BUTTON PRIMERO IDC BUTTON SIGUIENTE IDC BUTTON ULTIMO IDC EDIT ESTADO IDC EDIT HORA IDC EDIT NOMBRE a LEd IDE STATIC CString m Static Agust Baub Rovira Update Columns E i d AJI m Edit stado m Edith ora m EdtMombre 15 y Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a Preparar la clase CBaseDatosDlg para utilizar funciones propias A adir a BaseDatosDlg h las declaraciones de las funciones del fichero ABRCBaseDatosDlgUtilsh tiles para el di logo de base de datos class CBaseDatosDlg public CDialog Construction public Inicio de las declaraciones CString InsertarHora void BorrarCampos void EscribirRegistro CString Leer CEdit Edit void Escribir CEdit Edit CString String Fin de las declaraciones CBaseDatosSet m_BaseDatosDlgSet CBaseDatosSet m_pSet CBaseDatosDlg CWnd pParent NULL standard constructor A adir a BaseDatosDlg cpp include ABRCBaseDatosDlgUtils h BaseDatosDlg cpp implementation file include stdafx h include ProyectoBD h include BaseDatosDlg h include ABRCBaseDatosDlgUtils h ifdef DEBUG define new DEBUG_NEW undef THIS FILE static char THIS FILE FILE endif Debe estar copiado e
278. trol que facilitan la programaci n del socket en cualquier aplicaci n 17 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira e Principales funciones creadas CString Dato Variable donde almacenamos los datos que se env an y reciben a trav s del socket ABRConectarSck Funci n para conectar con el socket servidor en el interior de esta funci n es donde se establecen la direcci n IP del servidor y el n mero de puerto del socket ABREscucharSck Funci n para poner al servidor en estado de escucha de alg n cliente que se quiera conectar ABROnConnectionRequestWinsockl long requestID Funci n que detecta que alg n cliente esta intentando establecer la conexi n con el socket y acepta la comunicaci n ABROnDataArrivalWinsockl long bytesTotal Funci n que detecta la llegada de datos y las almacena en la variable dato ABREnviarSck CString Datos Funcion para enviar datos a trav s del socket ABRCerrarSck Funci n que cierra la conexi n realizada entre el cliente y el servidor ABRConvertirEstado int Estado Funci n que devuelve una cadena de texto con el estado en que se encuentra el socket 18 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira e Fundamentos Sobre Bases de Datos La necesidad de registrar en un hist rico los diferentes eventos que se producen en las instalaciones a controlar ayuda a mejora
279. tualizadas Create Post it Stats Page indica si se quiere crear una p gina web est ndar con la informaci n requerida Stats page name indica el nombre de la p gina web que se publicar 38 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a Conclusiones Con el presente proyecto hemos realizado una aplicaci n inform tica para ejecutar el control y monitorizaci n remota de unos equipos electr nicos aeron uticos desde un PC conectado en una red Ethernet capaz de controlar el puerto paralelo del PC que se encuentra en la instalaci n de la radioayuda y de comunicarse con otra aplicaci n situada en el lugar donde se centralizan la monitorizaci n de todas las instalaciones Mediante el puerto paralelo del PC de la instalaci n disponemos de ocho salidas y cuatro entradas digitales con las cuales podremos generar las ordenes de control pertinentes y monitorizar el estado de la instalaci n Tambi n realizamos un registro sobre una base de datos de todos los eventos que producen las entradas y salidas necesario para la buena ejecuci n de las tareas de mantenimiento de las instalaciones a controlar Se ofrece tres tipos de configuraciones hardware para realizar la conexi n aunque no hay que olvidar que existe la posibilidad de adapatarse a cualquier red basada en TCP IP Se realiza una breve explicaci n de fundamentos sobre TCP IP el control winsock bases de datos y el pu
280. ual a 0x378 888 en decimal y 0x278 632 en decimal para el LPT2 Esto se puede verificar f cilmente en el setup de la PC o bien en el cartel que generalmente la PC muestra en el momerto del arranque Puede darse el caso que el LPT 1 asuma la direcci n Ox3BC 956 en decimal y el LPT2 0x378 en ese caso habr que tratar de corregir el setup y o los jumper de las tarjetas en caso que sea posible De lo contrario se puede modificar el software para aceptar esas direcciones 25 a i Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas Agust Baub Rovira a Breve descripci n del puerto paralelo El puerto paralelo de un PC posee un conector de salida del tipo DB25 hembra cuyo diagrama y se ales utilizadas podemos ver en la siguiente figura t STROBE d AUTOFD out ERROR in INIT out SLETIN out aut OO cO OF CH E CM pa FE GHD Si deseamos escribir un dato en el bus de salida de datos pin 2 a 9 solo debemos escribir el byte correspondiente en la direcci n hexadecimal 0X378 888 en decimal cuando trabajamos con el LPT1 y 0x278 632 en decimal cuando trabajamos con el LPT2 Los distintos pins bits de salida correspondientes al bus de datos no pueden ser escritos en forma independiente por lo que siempre que se desee modificar uno se deber n escribir los ocho bits nuevamente Para leer el estado de los pins de entrada 10 12 13 y 15 se debe realizar una lectura a la direcci n hexadecimal Ox379
281. ust Baub Rovira Control remoto mediante comunicaci n TCP IP de Radioayudas Aeron uticas AH e Cuando cambia el estado actual de una entrada del puerto paralelo Entradan Siendo n el n mero de la entrada que ha cambiado En el campo estado se registra el estado 1 o O que se encuentra esta entrada Salidan Cuando cambia el estado actual de una salida del puerto paralelo Siendo n el n mero de la salida que ha cambiado En el campo estado se registra el estado 1 o 0 que se encuentra esta salida En todos los suceso se registra en el campo hora la hora y el dia en que se ha producido el nuevo estado Ejemplo de Base de dat os 24 09 2001 18 47 53 00000000 0000 24 09 2001 18 47 53 24 09 2001 18 47 57 24 09 2001 18 47 57 Nombre 24 09 2001 18 47 57 24 09 2001 18 47 57 24 09 2001 18 48 11 Inicio de la Base de Datos 1 15 12 2001 16 00 52 Se abre Dialogo de Salidas 1 1 Entrada Entrada2 Entrada3 Entrada4 1 Se Cierra Dialogo de Salidas 00000000 111 1 Se abre Dialogo de Salidas 00000000 111 1 Salida1 1 15 12 2001 16 01 04 Salida2 1 15 12 2001 16 01 06 Salida3 1 15 12 2001 16 01 07 Salida4 1 15 12 2001 16 01 08 Salida5 1 15 12 2001 16 01 09 Se Cierra Dialogo de Salidas 11111000 1 111 15 12 2001 16 01 15 Se abre Dialogo de Salidas i11111000 1 111 15 12 2001 16 16 46 Entrada3 0 15 12 2001 16 16 46 Entrada4 0 15 12 2001 16 16 46 Salida6 1 15 12 2001 16 16 58 Salida7 1 15 12 2001 16 17 00 Salida8 1 15 12 2001 16 1
282. window is not a dialog 171 SetIcon m hIcon TRUE Set big icon 172 SetIcon m hlcon FALSE Z Set small icon 173 174 TODO Add extra initialization here 175 176 177 m nTimeril SetTimer 1 500 NULL LTD 179 m pSet amp m BaseDatosDilgSet 180 l l m pSet gt ABRAbrirBD 182 183 InicializarSalidas 184 m_pSet gt ABRCerrarBD 1 85 186 187 Imprimirleyenda 188 189 190 191 m_Socketl SetLocalPort atoi Leer amp m EditPort 192 m Socketl ABREscucharSck Page 3 of 8 ProyectoBDDlg cpp 09 01 2002 19 31 193 m Staticl m Socketl ABRConvertirEstado m Socketl GetState 194 UpdateData FALSE 195 196 return TRUE return TRUE unless you set the focus to a control L97 3 198 199 void CProyectoBDDlg OnSysCommand UINT nID LPARAM lParam 200 4 201 if nID OxXFFFO IDM ABOUTBOX 202 203 CAboutDlg dlgAbout 204 digAbout DoModal 205 206 else 207 208 CDialog OnSysCommand nID lParam 209 210 1 211 212 If you add a minimize button to your dialog you will need the code below 213 to draw the icon For MFC applications using the document view model 214 this is automatically done for you by the framework 215 216 void CProyectoBDDlg OnPaint 217 4 218 if IsIconic 219 220 CPaintDC dc this device context for painting 221 222 SendMessage WM_ICONERASEBKGND WPARAM dc GetSafeHdc 0 223 224 Center icon in clien
283. x4321 0x1234 0x0008 0x0000 0x02e5 0x0000 0x02e5 459 0x0000 0xd892 0x248d 0x0000 0x0006 0x0000 0x0000 0x0000 0x0000 460 0x0000 0x0000 0x0000 0x0000 461 0 462 END 463 464 LOD ITAM ALA IL RANA DA E A V 1 LL a LA LV LLA ALA A 466 467 String Table 468 469 470 STRINGTABLE DISCARDABLE 4 1 BEGIN 472 IDS_ABOUTBOX sAcerca de ProyectoBD 473 END 474 475 endif Spanish Modern resources ATO _ JV HT VTT TLE EFM A ATT TPV AMAIA AAA A AAA V ENA LU PITT AA ADI VV THA EC ELA CA OV FT AAA AAA DAA 477 478 479 480 ifndef APSTUDIO_INVOKED J01l T 0 E Z E FT EL EIT ITT VL AT LEIA RR V TVA AA IRA XA LOTA AT TAA A 482 483 Generated from the TEXTINCLUDE 3 resource 484 485 define _AFX_NO_SPLITTER_RESOURCES 486 define AFX NO OLE RESOURCES 487 define _AFX_NO_TRACKER_RESOURCES 488 define AFX NO PROPERTY RESOURCES 489 490 dif defined AFX RESOURCE DLL defined AFX TARG ESP 491 ifdef WIN32 492 LANGUAGE 10 3 493 pragma code page 1252 494 endif WIN32 495 include res ProyectoBD rc2 non Microsoft Visual C edited resources 496 include l esplafxres rc Standard components 497 endif 498 BOD PILAR AAA AAA LF EP PL VAA O E ATA ADA LAI TAFF LUA UT ETE LEA E 500 endif not APSTUDIO_INVOKED 501 502 Page 8 of 8 PuertoParalelo cpp 09 01 2002 19 31 CO l aA OP WN R A S WWW WWW CO CO CO WN N N N DN NN N N NN Rh LR FF FR FR FR FEF
284. yectoBD clw 9740142002 10250 193 Control8 IDC EDIT3 edit 1350631552 194 Control9 IDC STATIC static 1342308352 195 Controll0 IDC EDIT4 edit 1350631552 196 Controlll1 IDC STATIC static 1342308352 197 Controll2 IDC EDIT5 edit 1350631552 198 Controll3 IDC STATIC static 1342308352 199 Controll4 IDC EDIT6 edit 1350631552 200 Controll15 IDC STATIC static 1342308352 201 Controll6 IDC EDIT7 edit 1350631552 202 Controll IDC STATIC static 1342308352 203 Controll8 IDC EDIT8 edit 1350631552 204 Controll9 IDC STATIC static 1342308352 205 Control20 IDC EDIT9 edit 1350631552 206 Control21l1 IDC STATIC static 1342308352 207 Control22 IDC EDITI10 edit 1350631552 208 Control23 IDC STATIC static 1342308352 209 Control24 IDC EDIT11 edit 1350631552 210 Control25 IDC STATIC static 1342308352 211 Control26 IDC EDIT12 edit 1350631552 212 Control2 IDC STATIC static 1342308352 213 Control28 IDC EDIT13 edit 1350631552 214 Control29 IDC STATIC static 1342308352 215 Control30 IDC EDIT14 edit 1350631552 216 COnNETOISI IDE STATIC button 1347177237 217 Control32 IDC STATIC button 1342177287 218 Control33 IDC STATIC button 1342177287 219 Control34 IDC EDIT15 edit 1350631552 220 Control35 IDC STATIC Stat re 1342308352 221 Control36 IDC STATIC button 1342177287 222 223 CLS CPropiedades1Dlg 224 Type 0 225 HeaderFile PropiedadeslDlg h 226 ImplementationFile PropiedadeslDlg cpp 227 BaseClass CDialog 228 Filter D 229 Las

Download Pdf Manuals

image

Related Search

Related Contents

Libdevice User's Guide  Contec SEH-9450-LAS Personal Computer User Manual  linea di ancoraggio flessibile orizzontale lv-05  Operating instructions Present Weather Sensor Parsivel  User`s Manual - Buck Research Instruments LLC  (under scheme 1) for  Severin KM 3890  HP 2000 2000-2d08EE  オリンパスユーザーのための総合情報サイト  

Copyright © All rights reserved.
Failed to retrieve file