Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-06-2007
phrodo phrodo is offline
Miembro
 
Registrado: sep 2004
Posts: 17
Poder: 0
phrodo Va por buen camino
Muchas gracias por tus consejos lag_0....

Bueno, tras mucho tiempo he retomado el tema, he leido el foro viendo las diferentes opciones, y , tras no convencerme delphi4php por la poca documentación que habia (de momento), he decidido tirar por el siguiente camino:

Me he bajado el intraweb y estoy diseñando las páginas que serán mostradas al cliente.

Por si no habia quedado claro en mi primer post, la aplicación que tengo en marcha se encarga de domotizar una vivienda. Tengo en el servidor un programa Win32 hecho en delphi 6 en el que el usuario enciende y apaga luces de su vivienda. Como el usuario deseaba hacerlo remotamente, le di la posibilidad de entrar con el Escritorio Remoto.

Eso es lo que habia hasta el momento, pero me parece una solución poco elegante. Entre otras cosas porque sólo permite un usuario simultáneamente.

La solución que he pensado idónea es mantener un programa en el servidor que se encargue de las comunicaciones (win32) y diseñar páginas web que se encarguen de la interfaz con el cliente, tal y como me comentaba el compañero lag_0.

El programa win32 y el web deben de estar permanentemente intercambiando datos en ambas direcciones.

- El win32 tiene que decirle en tiempo real al web en que estado se encuentra el interruptor de la luz (encendido o apagado) para segun el estado, mostrar una imagen u otra (jpg de interruptor encendido u apagado) y que el usuario vea el estado real.

- El web tiene que decirle al win32 cuando el usaurio hace una pulsación en un botón determinado, que el interruptor debe cambiar de estado, si está encendido se apaga, y viceversa.

El problema es que he leido como comunicar ambos "programas". El win32 y el html y no me aclaro mucho con los post y get, y os pido a quien me pueda echar una mano, una pequeña ayudita.

De momento, en la parte del programa win32 he escrito el siguiente código, ayudado leyendo varios hilos, entre otros el de automatización web de al gonzalez:

Código Delphi [-]
procedure TfrmPrincipal.Button1Click(Sender: TObject);
var
  params: TStrings;
  respuesta: string;
  estrim: TMemoryStream;
begin
  params := TStringList.Create;
  estrim := TMemoryStream.Create;
  try
    params.Add('estado1=encendido');
    IdHttp.Post('http://localhost/pruebas/index.html', params, estrim);
    estrim.WriteBuffer(#0' ', 1);
    estrim.Position := 0;
    Memo1.Lines.LoadFromStream(estrim);
  finally
    params.Free;
    estrim.free;
  end;
end;

Se que ahora en el código html deberia leer esa variable "estado1" y segun la variable mostrar una imagen (pulsador encendido) u otra (pulsador apagado)

No obstante, no termino de encontrar ningún ejemplo donde se pueda hacer eso...

Ruego a alguien que me eche una manita. ¿me recomendais que la parte del interfaz la haga en php? Estoy leyendo el manual que tan amablemente me enlazaba el compañero, y espero encontrar solución, pero he preferido postearlo aqui por si alguien estaba en un caso similar.

Muchas gracias a todos.

un saludo,
Responder Con Cita
  #2  
Antiguo 04-06-2007
zafmanjp zafmanjp is offline
Registrado
 
Registrado: feb 2007
Posts: 5
Poder: 0
zafmanjp Va por buen camino
Intraweb

NO te compliques. Investiga y hazlo con Intraweb verás que es mas facil.
Responder Con Cita
  #3  
Antiguo 04-06-2007
Avatar de courtois
courtois courtois is offline
Miembro
 
Registrado: abr 2006
Ubicación: Mexico DF
Posts: 200
Poder: 19
courtois Va por buen camino
Si lo que quieres es hacer una interface via web, ciertamente intraweb podria ser una buena opción ya que no vas a cambiar mucho el codigo de control que ya te fuinciona, unicamente modificaras la interface, otra opcion seria hacerlo en asp.net pero tendras que cambiar no solo la interface sino el codigo que usas para controlar. Ahora si el problema unicamente es controlarlo desde internet, sin importar la inteface, pues no le muevas nada a tu programa, y simplemente configurate una maquina como un servidor de terminal, ya sea terminal server o vnc server y accedes desde internet y controlas todo como siempre.
Responder Con Cita
  #4  
Antiguo 05-06-2007
phrodo phrodo is offline
Miembro
 
Registrado: sep 2004
Posts: 17
Poder: 0
phrodo Va por buen camino
Gracias a todos por contestar.

En terminal server ya lo tengo, es mi solución actual... el problema es que solo permite un usuario simultáneo, ya que mi programa utiliza un puerto serie para comunicarse, y éste no permite que se abran varias instancias del programa con el puerto serie "ocupado" en ambas.

La solución que encontré fue crear una tabla de usuarios, en los que los clientes se conectaban, y si habia un usuario conectado, lo desconectaba, previo aviso, y conectaba al nuevo usuario.

No quedó mal, pero es "poco elegante".

Lo intentaré con intraweb de momento y ya os cuento como quedo. De todas formas si alguien tiene otras opciones válidas estaria encantado de leeros

un saludo,
Responder Con Cita
  #5  
Antiguo 05-06-2007
phrodo phrodo is offline
Miembro
 
Registrado: sep 2004
Posts: 17
Poder: 0
phrodo Va por buen camino
una duda que me asalta.

¿Con intraweb puedo controlar el puerto serie (comunicaciones) o bien deberia mantener mi instancia de la aplicación original y realizar otra aplicación intraweb y comunicar ambas?

Iré haciendo pruebas de todo ello.

un saludo,
Responder Con Cita
  #6  
Antiguo 05-06-2007
Avatar de courtois
courtois courtois is offline
Miembro
 
Registrado: abr 2006
Ubicación: Mexico DF
Posts: 200
Poder: 19
courtois Va por buen camino
tu conexion la haras de la misma forma en que lo hiciste, IntraWeb solo te provee la interface web, de cualquier manera, la conexion del puerto serie tendras que modificarla para que soporte la concurrencia, respecto a lo de terminal server, seguramente configuraste el escritorio remoto de XP, por eso es que no te permite usuarios simultaneos, el terminal server de windows 2003 si te soporta usuarios simultaneos y muchas mas opciones de configuración del entorno, pero de todas formas no te salvas de modificar la conexion al puerto serie para que te soporte concurrencia
Responder Con Cita
  #7  
Antiguo 06-06-2007
phrodo phrodo is offline
Miembro
 
Registrado: sep 2004
Posts: 17
Poder: 0
phrodo Va por buen camino
Cita:
Empezado por courtois
tu conexion la haras de la misma forma en que lo hiciste, IntraWeb solo te provee la interface web, de cualquier manera, la conexion del puerto serie tendras que modificarla para que soporte la concurrencia, respecto a lo de terminal server, seguramente configuraste el escritorio remoto de XP, por eso es que no te permite usuarios simultaneos, el terminal server de windows 2003 si te soporta usuarios simultaneos y muchas mas opciones de configuración del entorno, pero de todas formas no te salvas de modificar la conexion al puerto serie para que te soporte concurrencia
Perdon... no me expliqué bien... el escritorio remoto lo utilizo en los clientes... en el servidor tengo configurado el terminal server y si que me soporta varios usuarios simultáneos, pero como bien dices el puerto serie solo soporta uno, con lo que pierdo funcionalidad.

Tal como lo tengo ahora pasando el proyecto a Intraweb, he conseguido realizar las comunicaciones serie en el propio ejecutable que se encarga de hacer de servidor web. Ahora, poco a poco, iré pasando las variables de estado que esta comunicación realizará para mostrarla en tiempo real a los clientes.

Seguiré posteando mis (lentos) avances en este hilo por si le pueden servir en el futuro a alguien en un caso similar.

Gracias por vuestra ayuda. Sois geniales.

un saludo,
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Comunicaciones electronicas EDI Toni Conexión con bases de datos 0 18-04-2006 13:06:34
La Unión Europea puso en marcha un plan para grabar todas las comunicaciones ptt Noticias 3 24-11-2005 22:31:51
Parlamento europeo desestima intervención comunicaciones Casimiro Notevi Noticias 0 28-09-2005 10:01:33
Ayuda sobre comunicaciones Jobev Lee Internet 1 14-09-2005 01:12:40
Funciones y Procedimietos para comunicaciones con Lpt1 en ensamblador. gapat Varios 3 09-06-2004 20:04:16


La franja horaria es GMT +2. Ahora son las 21:29:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi