Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Destiny Rising: quando un gioco mobile supera il gioco originale
Destiny Rising: quando un gioco mobile supera il gioco originale
Tra il declino di Destiny 2 e la crisi di Bungie, il nuovo titolo mobile sviluppato da NetEase sorprende per profondità e varietà. Rising offre ciò che il live service di Bungie non riesce più a garantire, riportando i giocatori in un universo coerente. Un confronto che mette in luce i limiti tecnici e strategici dello studio di Bellevue
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro è un registratore digitale elegante e tascabile con app integrata che semplifica trascrizioni e riepiloghi, offre funzioni avanzate come template e note intelligenti, ma resta vincolato a un piano a pagamento per chi ne fa un uso intensivo
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è uno smartphone che unisce una fotocamera molto più versatile rispetto al passato grazie allo zoom ottico 5x, il supporto magnetico Pixelsnap e il nuovo chip Tensor G5. Il dispositivo porta Android 16 e funzionalità AI avanzate come Camera Coach, mantenendo il design caratteristico della serie Pixel con miglioramenti nelle prestazioni e nell'autonomia. In Italia, però, mancano diverse feature peculiari basate sull'AI.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-11-2009, 10:20   #1
sandro76
Junior Member
 
Iscritto dal: Jun 2006
Messaggi: 13
[c linux] inviare e ricevere dati esadecimali da seriale

sto scrivendo un programma che deve inviare e ricevere dati in esadecimale su seriale
definisco due buffer come variabili globali
Codice:
//fd della seriale
extern int fd;
	/*buffer della seriale*/
extern char buffer_ingresso[10]; /*ingresso*/
extern char buffer_uscita[10]; /*uscita*/
le variabili globali sono in un altro file quindi sono extern.

setto i parametri della seriale

Codice:
	
/*apro la seriale*/
	fd = open(MODEMDEVICE, O_RDWR | O_NOCTTY | O_NONBLOCK);	//non bloccante comunicazione asincrona
	if (fd==0)

		{
			fprintf(spy_knx_err, "problemi nell'apertura della seriale\n\r");
			exit(-1);
		}
	
	//installo il signal hander che scattera' quando ci sono dati sulla seriale
	saio.sa_handler = signal_handler_IO;	//nome della funzione che gestira' il segnale
	//saio.sa_mask = 0;			//maschera degli altri segnali 0 default
	sigemptyset(&saio.sa_mask);
	saio.sa_flags = 0;
	saio.sa_restorer = NULL;		
	sigaction(SIGIO,&saio,NULL);

	fcntl(fd, F_SETOWN, getpid());		//registro il pid del processo che si deve occupare del segnale (questo)
	fcntl(fd, F_SETFL, FASYNC);		//abilito il segnale

	//setto la seriale
	tcgetattr(fd,&newtio);			//salvo le vecchie impostazioni della seriale
						//setto le nuove impostazioni

	cfsetispeed(&newtio, BAUDRATE);	//NUOVA FUNZIONE PER SETTARE LA VELOCITA' POSSO SCEGLIERE INGRESSO E USCITA, NON PIU' IN C_CFLAG
	cfsetospeed(&newtio, BAUDRATE);

	
	newtio.c_cflag |= (CLOCAL | CREAD);
	newtio.c_cflag |= PARENB;			

	newtio.c_cflag &= ~PARODD;			
	newtio.c_cflag &= ~CSTOPB;
	newtio.c_cflag &= ~CSIZE;
	newtio.c_cflag |= CS8;
	//newtio.c_cflag &= ~CNEW_RTSCTS;
	newtio.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
	newtio.c_iflag |= (INPCK | ISTRIP);			
	newtio.c_iflag &= ~(IXON | IXOFF | IXANY);
	


	tcflush(fd, TCIFLUSH);
	tcsetattr(fd,TCSANOW,&newtio);				//applico le impostazioni subito
}
provo a inviare dati

Codice:
	buffer_uscita[0]=(char)8;
		buffer_uscita[1]=(char)sc;
		buffer_uscita[2]=(char)0xB1;
		buffer_uscita[3]=(char)address.int_stat_sist_sup;
		buffer_uscita[4]=(char)address.int_stat_sist_inf;
		buffer_uscita[5]=(char)0;
		buffer_uscita[6]=(char)stato_polling;
		buffer_uscita[7]=(char)(0xA5+buffer_uscita[0]+buffer_uscita[1]+buffer_uscita[2]+buffer_uscita[3]+buffer_uscita[4]+buffer_uscita[5]+buffer_uscita[6])%256;

			write(fd, buffer_uscita, 8);
			tcdrain(fd);
leggendo sulla seriale ottengo 9 byte

80 00 02 0A 06 00 04 0A F8

in lettura ho ho lo stesso problema, leggo valori diversi, tipo
invio FF e ottengo 127
dove sbaglio?
grazie

Ultima modifica di sandro76 : 09-11-2009 alle 10:24.
sandro76 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Interlune creerà un centro di ric...
Stop Killing Games: 97% delle firme conv...
La GTX 2080 Ti mai arrivata sul mercato,...
Hoolow Knight: Silksong, il gioco che a ...
Duolingo crolla in Borsa: la minaccia ar...
Battlefield 6: i giocatori console potra...
Citroen Racing, la marca ritorna alle co...
Windows 10 ESU: come partecipare al prog...
ASUS Vivobook 16X a meno di 470€ su Amaz...
Con Agent Payments Protocol di Google gl...
Windows 10 muore, gli attivisti insorgon...
NVIDIA sarà il primo cliente di T...
Stellantis cancella il pick-up elettrico...
Microsoft termina il supporto per Office...
VaultGemma di Google è il primo L...
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: 00:50.


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