Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-09-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 545
Poder: 17
jhonalone Va por buen camino
Conectando Impresora por Bluetooth = Error Socket

Hola, amigos.

Intento imprimir recibos desde un smartfone a una impresora inalámbrica por BlueTooth.
Estuve indagando en el foro y en internet varios días y no encontré una solución satisfactoria.

Uso Delphi10 Seattle.

Encontré un ejemplo en la dirección C:\RadStudio10\17.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\Bluetooth\Classic Bluetooth Basic app.

Comencé a hacer pruebas con con este proyecto de ejemplo de Embarcadero y he llegado a la conclusión de que tiene un problema al crear el socket para la conexión.

El error que da la aplicación compilada y SIN MODIFICACIÓN DE CÓDIGO es el siguiente:

java.io.IOException: read failed, socket might closed or time out, read ret:-1

He intentado localizar el error con el siguiente código:

Código Delphi [-]
procedure TForm1.SendData;
var
  ToSend: TBytes;
  LDevice: TBluetoothDevice;
begin
  if (FSocket = nil) or (ItemIndex <> ComboboxPaired.ItemIndex) then
  begin
  ShowMessage('Socket = Nil o bien el índice ha cambiado'); // Linea añadida por mi
    if ComboboxPaired.ItemIndex > -1 then
    begin
      LDevice := FPairedDevices[ComboboxPaired.ItemIndex] as TBluetoothDevice;
      DisplayR.Lines.Add(GetServiceName(ServiceGUI));
      DisplayR.GoToTextEnd;
      FSocket := LDevice.CreateClientSocket(StringToGUID(ServiceGUI), False);
      if FSocket <> nil then
      begin
        ShowMessage('Socket no es Nil'); // Linea añadida por mi
        ItemIndex := ComboboxPaired.ItemIndex;
        FSocket.Connect;  // EL ERROR ESTA AQUÍ AL CONECTAR (¡?)
        if not (FSocket.Connected) then ShowMessage('Socket NO CONECTADO'); // Linea añadida por mi
        if (FSocket.Connected) then ShowMessage('Socket HE CONECTADO'); // Linea añadida por mi
        ToSend := TEncoding.UTF8.GetBytes(Edit1.Text);
        FSocket.SendData(ToSend);
        DisplayR.Lines.Add('Text Sent');
        DisplayR.GoToTextEnd;
      end
      else
        ShowMessage('Out of time -15s-');
    end
    else
      ShowMessage('No paired device selected');
  end
  else
  begin
    ShowMessage('Socket <> Nil o bien el índice NO ha cambiado'); // Linea añadida por mi
    ToSend := TEncoding.UTF8.GetBytes(Edit1.Text);
    FSocket.SendData(ToSend);
    DisplayR.Lines.Add('Text Sent');
    DisplayR.GoToTextEnd;
  end;
end;

El código es el original de Embarcadero, yo solamente he añadido los mensajes para descubrir el punto del error.

El resultado ha sido:
Dos mensajes.
El primero: "Socket = Nil o bien el índice ha cambiado".
El segundo: "Socket no es Nil".
El Tercer mensaje, sería si ha conectado o no.
PUES EL ERROR SALTA ANTES DE EMITIR EL tercer mensaje: éste no aparece.

Lo más "gracioso" es que detecta la impresora y al pulsar el "ComboBoDevices" aparece en la lista detectada y lo puedes seleccionar. Y LA SELECCIONA.

Pero cuando cambias al tab "SERVICE DEMO" y pulsas el boton "Send Texto-> Thermal Printer"
entonces aparecen los dos mensajes mencionados y a continuación el mensaje de error en el Memo1.

No se si el problema está en que no crea un GUID adecuado para la impresora, o si le asignas una impresora bluetooth el socket NO SE CREA.

NO LE ENVIO UN CÓDIGO DE ESCAPE A LA IMPRESORA, PORQUE LA APP, HE COMPROBADO QUE NO LLEGA HASTA AHÍ.

Espero una respuesta al problema, y si no la recibo, tendré que cancelar el proyecto. Pues todo él se basa en la posibilidad de imprimir BlueTooth.

Un gran saludo para todos y especialmente a los que han conseguido leer hasta aquí.

Mis disculpas por el ROLLAZO. Pero como dice Neftalí "Más tiempo dedicado a la pregunta=Mejores respuestas."

Gracias por anticipado a los que puedan ayudarme.

Saludos para todos. Gracias por mantener este foro de consulta durante tantos años.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Error en Aplicacion para Conexion Bluetooth kurono Desarrollo en Delphi para Android 1 12-05-2014 05:38:10
error de socket carloscampoy Internet 20 10-12-2007 03:08:00
Error (10060) conectando a MySql MaMu MySQL 2 26-08-2007 15:03:52
NMFTP :Error 10038 Socket operation on non socket judit Internet 2 25-05-2006 10:06:33
Error conectando una base de datos Access hunabku Conexión con bases de datos 0 23-05-2005 17:05:08


La franja horaria es GMT +2. Ahora son las 17:39:26.


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