Virgo__83 Inserito: 20 febbraio 2013 Segnala Share Inserito: 20 febbraio 2013 (modificato) Salve a tutti ho un problema con la comunicazione via rs485 tramite adattatore USB. ho realizzato un programma C e inserito le seguenti righe di codice: int openPort(void) { dictionary * ini; ini = iniparser_load("fileIni/setting.ini"); char *porta = iniparser_getstring(ini, "Setting:porta", NULL); char path[1024]; int i; for (i = 0; i < 1024; i++) path[i] = 0; path[0] = '\0'; sprintf(path, "/dev/%s", porta); int fd = open("/dev/ttyUSB0", O_RDWR);//problema printf("fd: %d\n",fd); /*if(fd<0){ reboot(RB_AUTOBOOT); } */ return fd; } appena l'esecuzione arriva ad eseguire la open della porta ttyUSB0 rimane bloccato li' senza proseguire ne stampare errori. (in realta' nella versione originale, come si vede dal codice, leggo la porta da un file ini, ma per escludere ulteriori problemi l'ho forzata a mano). Ovviamente ho controllato la presenza del file /dev/ttyUSB0 che viene creato nel momento in cui inserisco l'adattatore nella USB. La velocita' di comunicazione e' a 19200. Se metto una porta qualsiasi non connessa a nessun dispositivo mi restituisce, ovviamente, fd=-1. Quello che mi chiedo e' se possa essere un problema hardware di installazione dell'adattatore o dei collegamenti sul PLC (e' un PowerOne). Dal momento che sto cercando di gestirlo da remoto, prima di dover andare sul posto, vorrei essere sicuro che non sia invece un problema software. La open non dovrebbe solo aprire un file? se fosse un problema hardware non dovrei riscontrarlo in seguito, in fase di lettura/scrittura? Qualcuno sa aiutarmi? grazie Modificato: 20 febbraio 2013 da Virgo__83 Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora