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 Temas de Hoy


 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-09-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
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
 



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 04:38:10
error de socket carloscampoy Internet 20 10-12-2007 02:08:00
Error (10060) conectando a MySql MaMu MySQL 2 26-08-2007 14:03:52
NMFTP :Error 10038 Socket operation on non socket judit Internet 2 25-05-2006 09:06:33
Error conectando una base de datos Access hunabku Conexión con bases de datos 0 23-05-2005 16:05:08


La franja horaria es GMT +2. Ahora son las 09:30:23.


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