Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
Con Midnight, Blizzard tenta il colpaccio: il player housing sbarca finalmente su Azeroth insieme a una Quel'Thalas ricostruita da zero. Tra il dramma della famiglia Ventolesto e il nuovo Prey System, ecco com'è la nuova espansione di World of Warcraft
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


ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Secondo Elon Musk FSD è più...
Anche Cloudflare fissa il 2029 per la si...
Hacker sfruttano da mesi un bug segreto ...
ASUSTOR Lockerstor 24R Pro Gen2: 24 bay ...
Rigetti supera la soglia dei 100 qubit: ...
eFootball raggiunge il miliardo di downl...
Come provare OpenClaw facilmente grazie ...
Microsoft conferma: questo glitch dell'o...
Toyota bZ7: una berlina da oltre 5 metri...
Artemis II, le prime foto del lato nasco...
Sempre più pubblicità su YouTube: arriva...
Polestar fa +80% in Italia e tocca quota...
Il tuo Mac smette di connettersi a Inter...
La nuova alleanza Intel-Google ridefinis...
Energia troppo cara, regole da rivedere:...
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: 04:53.


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