Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di jeky84
    Registrato dal
    Sep 2009
    Messaggi
    43

    RXTX e apertura porta automatica

    Salve a tutti....avrei bisogno del vostro aiuto per risolvere un problema che mi stà facendo perdere un sacco di tempo
    Stò lavorando con java e le RXTX per dialogare con un dispositivo tramite seriale
    il programma che ho fatto funziona ma vorrei apportare una modifica
    per aprire la porta che desidero devo specificare nel programma qual'è la porta che voglio aprire(nel mio caso com5) ma vorrei che il mio programma aprisse in automatico la porta dove si trova il mio dispositivo anche se lo connetto su un'altra porta...come posso fare???
    grazie a tutti coloro che mi aiuteranno

  2. #2

    Re: RXTX e apertura porta automatica

    Originariamente inviato da jeky84
    Salve a tutti....avrei bisogno del vostro aiuto per risolvere un problema che mi stà facendo perdere un sacco di tempo
    Stò lavorando con java e le RXTX per dialogare con un dispositivo tramite seriale
    il programma che ho fatto funziona ma vorrei apportare una modifica
    per aprire la porta che desidero devo specificare nel programma qual'è la porta che voglio aprire(nel mio caso com5) ma vorrei che il mio programma aprisse in automatico la porta dove si trova il mio dispositivo anche se lo connetto su un'altra porta...come posso fare???
    grazie a tutti coloro che mi aiuteranno
    Purtroppo è un problema comune della comunicazione seriale..... ogni dispositivo che si collega alle seriali utilizza delle specifiche diverse come velocità stop bit ecc. quindi si deve conoscere in anticipo la porta e i dati di connessione al dispositivo.

    L'unica cosa che puoi fare è fare dei test di comunicazione, ovvero ti colleghi alle com da 1 a 10 (difficilmente le com sono di più) e ti metti in ascolto, prima sulla 1 poi sulla 2 ecc. fino a che il tuo dispositivo non ti risponde. Però:
    1-Il dispositivo dovrebbe rispondere subito, altrimenti per testare tutte le porte ci metti una vita
    2-Sarebbe meglio che il dispositivo risponda univocamente in modo da riconoscerlo subito (per esempio con una sequenza di inizializazione)

  3. #3
    Utente di HTML.it L'avatar di jeky84
    Registrato dal
    Sep 2009
    Messaggi
    43
    è una cosa che ho già provato a fare...cioè io ad ogni porta presente invio il comando GET/r proprio del dispositivo che stò utilizzando...e se non risponde passo alla porta successiva , mentre se risponde passo il comando a un nuovo metodo che dovrebe gestire la comunicazione, il problema è che già in fase di inizializzazione devo fare un addeventlistener alla porta per ascoltare se c'è una risposta dal dispositivo...e fin qui ok...ma quando il dispositivo viene trovato e rimando tutto a un nuovo metodo per gestire la comunicazione devo aggiungere un altro eventlistener per poter leggere i dati in arrivo dal dispositivo...ma questo non è possibile in quanto posso inserire solo un listener alla porta e non posso utilizzare il comando removeevntlistener in quanto come già saprai il comando non funziona e il programma si pianta...sono disperatoooo!!!:-(

  4. #4
    Non puoi utilizarne un altro, ma puoi utilizare lo stesso.....
    astrai il listener in una classe e utilizalo per entrambi.

  5. #5
    Utente di HTML.it L'avatar di jeky84
    Registrato dal
    Sep 2009
    Messaggi
    43
    ehi...ma mi leggi nel pensiero!!!))))
    ho provato ad utilizzare lo stesso listener...ma non mi funziona...nel senso ora sono arrivato al punto di scegliere in automatico il dispositivo situato in una porta com a caso,e riesco ad aprire la comunicazione
    quando comincio il dialogo i dati gli ariivano...ma a me non arriva la risposta che invece dovrebbe arrivare grazie al notifyOnDataAvailable(true);...che casinoooo!!!!

  6. #6
    Utente di HTML.it L'avatar di jeky84
    Registrato dal
    Sep 2009
    Messaggi
    43
    forse non posso usare 2 notifyOnDataAvailable riferiti allo stesso eventlistener???

  7. #7
    Utente di HTML.it L'avatar di jeky84
    Registrato dal
    Sep 2009
    Messaggi
    43
    ci sono...ho scoperto l'arcano credo...non è che non posso utilizzare quell'eventlistener...il programma si pianta perchè un buffer connesso ad un inputstream è ancora pieno...e quando faccio il secondo dataavailable non faccio in tempo a mandargli i comandi che voglio che lui si accorge di quelli che sono rimasti dentro al buffer e legge quelli...che ovviamente non sono comandi giusti e si pianta il programma...ora però mi stò ammattendo per cercare di svuotare quel buffer senza fare casini visto che è connesso all'inputstram dato dalla porta....suggerimenti????

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.