Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Abbiamo provato Motorola razr fold, il pieghevole a libro con display interno LTPO da 8,09 pollici, Snapdragon 8 Gen 5 e batteria da 6000 mAh in 243 grammi. Pennino e custodia sopno già nella confezione, per un foldable che si caratterizza per il pannello luminoso, l'autonomia ottima per la categoria e le fotocamere coerenti e ben sfruttabili. Il listino è di 1999 euro, ma in vendita si trova già a molto meno
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Google Pixel Watch 5 ha affinato una formula già convincente con hardware più veloce, Gemini offline e nuovi strumenti per sport e benessere. Abbiamo provato la versione LTE da 41 mm, comoda anche di notte e ben proporzionata sui polsi piccoli. Il design resta un punto di forza, ma l'autonomia premia ancora il 45 mm e alcune funzioni AI non sono disponibili in Italia: ecco che cosa cambia rispetto a Watch 4 e quale formato conviene scegliere oggi
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Politica, accademia e industria a confronto su mercato unico, sicurezza e competitività. Nei laboratori di Vimercate, Nokia ha mostrato le nuove generazioni di chip ottici e i test che ogni prodotto deve superare prima di arrivare sul mercato
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 06-09-2008, 00:44   #1
syco
Member
 
Iscritto dal: Sep 2007
Messaggi: 87
rxtx bluetooth usb

salve,
lavoro su una ubuntu 8.04/8.10, non credo fa differenza,
sto cercando di sviluppare [per uso principalemnte personale] un programma in java che scambia stringhe tra pc e cellulare via bluetooth.
ho trovato degli ottimi esempi in rete che usano le librerie rxtx.
questo è il codice del server:
Codice:
package sbs;

import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.NoSuchPortException;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener;
import gnu.io.UnsupportedCommOperationException;
 
import java.awt.BorderLayout;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
 
import javax.bluetooth.DiscoveryAgent;
import javax.bluetooth.LocalDevice;
import javax.microedition.io.Connector;
import javax.microedition.io.StreamConnection;
import javax.microedition.io.StreamConnectionNotifier;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
 
public class Server implements SerialPortEventListener {
    public static final String UUID_STRING = "75AE3BD652FD4A96AEF98FEEE8DB2395";
    public static final String SERVICE_NAME = "SBTCommand";
    private StreamConnectionNotifier server;
 
    JFrame jframe;
    JTextArea textArea;
 
    public Server() {
 
    }
 
    SerialPort sp;
    static InputStream spIs;
    static OutputStream spOs;
 
    // Static for the moment - one server at a time
    static InputStream is;
    static OutputStream os;
 
    private int connectLocalSerial() {
        int result = -1;
        try {
            String portStr = "/dev/rfcomm0";
            System.out.println("Info: trying to open " + portStr);
            CommPortIdentifier portIdentifier;
            portIdentifier = CommPortIdentifier.getPortIdentifier(portStr);
            if (portIdentifier.isCurrentlyOwned()) {
                logMessage("Error: Port is currently in use");
            } else {
                CommPort commPort = portIdentifier.open(getClass().getName(),
                        2000);
                if (commPort instanceof SerialPort) {
                    SerialPort serialPort = (SerialPort) commPort;
                    sp = serialPort;
                    serialPort.setSerialPortParams(115200, 8, 1, 0);
                    spIs = sp.getInputStream();
                    spOs = sp.getOutputStream();
                    logMessage("opened");
                    result = 0;
                } else {
                    sp = null;
                    spIs = null;
                    spOs = null;
                    System.out
                            .println("Error: Only serial ports are handled by this example.");
                }
            }
        } catch (NoSuchPortException e) {
            e.printStackTrace();
        } catch (PortInUseException e) {
            e.printStackTrace();
        } catch (UnsupportedCommOperationException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
 
        return result;
    }
 
    public void doWork() {
        this.jframe = new JFrame("BT Server");
        this.jframe.setLayout(new BorderLayout());
 
        this.textArea = new JTextArea(6, 20);
        this.textArea.setVisible(true);
        JScrollPane jsp = new JScrollPane(this.textArea);
        this.jframe.add(jsp, BorderLayout.CENTER);
 
        this.jframe.pack();
        this.jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.jframe.setVisible(true);
 
        startServer();
    }
 
    public void logMessage(String message) {
        this.textArea.setText(this.textArea.getText() + message + "\n");
        this.textArea.setCaretPosition(this.textArea.getText().length());
        textArea.repaint();
        System.out.println(message);
    }
 
    public void startServer() {
        LocalDevice local;
        try {
            local = LocalDevice.getLocalDevice();
            local.setDiscoverable(DiscoveryAgent.GIAC);
            this.logMessage("max of "
                    + LocalDevice
                            .getProperty("bluetooth.connected.devices.max")
                    + " connection(s) supported");
 
            String url = "btspp://localhost:" + UUID_STRING + ";name="
                    + SERVICE_NAME;
 
            server = (StreamConnectionNotifier) Connector.open(url);
            this.logMessage("waiting for connection...");
 
            StreamConnection conn = server.acceptAndOpen();
            this.logMessage("connection opened");
            connectLocalSerial();
            is = conn.openInputStream();
            os = conn.openOutputStream();
 
            sp.addEventListener(this);
            sp.notifyOnDataAvailable(true);
 
            java.awt.EventQueue.invokeLater(new Runnable() {
 
                public void run() {
                    byte buffer[] = new byte[1000];
                    boolean c = true;
                    while (c) {
                        try {
                            if (is.available() > 0) {
                                int numChars = is.read(buffer);
                                String s = new String(buffer);
                                logMessage("received from mobile phone: "
                                        + s.substring(0, numChars));
                                spOs.write(buffer, 0, numChars);
                            } else {
                                Thread.sleep(10);
                            }
                        } catch (Exception e) {
                            // TODO: handle exception
                            e.printStackTrace();
                            c = false;
                        }
                    }
                }
            });
 
        } catch (Exception e) {
            this.logMessage(e.getMessage());
        }
    }
 
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            private Server svr;
 
            public void run() {
                svr=new Server();
                svr.doWork();
            }
        });
    }
 
    public void serialEvent(SerialPortEvent arg0) {
        // arg
 
        if (arg0.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
            byte[] buffer = new byte[1000];
 
            try {
                while (spIs.available() > 0) {
                    int numChars = spIs.read(buffer);
                    if (numChars > 0) {
                        String s = new String(buffer);
                        // logMessage("sent to mobile phone: " + s.substring(0, numChars));
                        os.write(buffer, 0, numChars);
                    }
                }
            } catch (IOException e) {
            }
        }
 
    }
 
}
il client sul cell rileva il pc, ma non trova nessun servizio attivo.
è possibile che sia sbagliata la porta seriale su cui cerco di attivare il server?
Codice:
String portStr = "/dev/rfcomm0";
che cosa dovrei usare?
per ora uso una pennina bluetooth usb dikom.
grazie.
syco è offline  
Old 06-09-2008, 09:38   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
http://www.hwupgrade.it/forum/showthread.php?t=1649196
cionci è offline  
 Discussione Chiusa


Motorola razr fold, dalla conchiglia al formato a libro. La recensione Motorola razr fold, dalla conchiglia al formato ...
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi In sella alla Fiido Nomads Pro: e-bike con motor...
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto ASUS Zenbook 14 (UX3480AA): tanta autonomia con ...
Starship: SpaceX potrebbe tentare di rec...
Federico Veronesi vince i Wildlife Photo...
Samsung Galaxy bloccati dopo l'aggiornam...
L'UE prolunga il periodo di test del pro...
Offerte Amazon di oggi: e-bike da 616€, ...
La missione cino-europea ESA Smile ha in...
Cisco sulle tracce dell’IA nei malware: ...
Nuovo Codice della strada: stop alla PEC...
Blue Origin Constellation Park: un nuovo...
E-bike da 615€ su Amazon: Bodywel F20PRO...
Windows 11 24H2, stop al supporto per Ho...
Gemini 4 Argon disponibile per tutti: co...
Sony avrebbe chiuso Overdrive, lo store ...
Abbiamo scattato con OPPO Find X10 Pro M...
Fino a 21 miliardi per i chip americani:...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:47.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v