Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Con un semplice dialogo in linguaggio naturale e la potenza di una scheda video di fascia alta è possibile costruire software funzionante da zero, senza scrivere una riga di codice e senza inviare un solo byte dei propri dati a server esterni
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Samsung rinnova la serie pieghevole di punta con Galaxy Z Fold8 Ultra: pannello interno da 8 pollici quasi senza piega, cerniera Flex Titanium, Snapdragon 8 Elite Gen 5 for Galaxy e batteria finalmente da 5.000 mAh. Prezzo italiano da 2.299 a 2.899 euro. Tra colorimetro, benchmark reali e giorni di uso quotidiano, ecco dove questo pieghevole convince e dove il nome Ultra fatica ancora a trovare piena giustificazione
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
La nuova Insta360 X6 introduce sensori Sony da 1/1.1" e un SoC Triple AI a 4nm. Analizziamo le riprese 8K, il primo Dolby Vision nativo a 10-bit nel settore sferico e l'innovativo flusso di lavoro diretto sulla futura versione 22 di DaVinci Resolve.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-05-2007, 08:18   #21
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
Quote:
Originariamente inviato da lammeBN Guarda i messaggi
si setta cosi??
new_attributes.c_cflag |=CLOCAL;
qui non mi prende l'istruzione mi da un errore: parse error before numeric constant
new_attributes.c_iflag &= ~(IXON IXOFF);

Io cmq ho fatto un errore nel passaggio dei parametri alla read avevo dimenticato il & prima di risp
scrivi ~(IXON | IXOFF) se invece metti ~(IXON IXOFF) va in difficoltà perché vede due costanti numeriche separate da uno spazio e non sa che vuol dire
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2007, 08:28   #22
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da lammeBN Guarda i messaggi
ho usato il tuo codice in questa maniera:

Codice:
if (poll(&pfd, 1, 1000 /* timeout ms */)==0)
                fprintf(stderr, "Timeout!\n");
        else
                if ((pfd.revents&POLLIN)==0)
                {
                        fprintf(stderr, "I/O error (%04x)\n", pfd.revents);
                        //...
                }
                else
                {
                        if (read(tty_fd, &risp, 1)<0)
                        {
                                perror("read");
                                //...
                        }
                        else
                                fprintf(stderr, "Ricevuto: 0x%02x\n", risp);
                }

        read(tty_fd,&risp,1); //QUESTA READ E LE PRINT LE HO LASCIATE PER              //ERRORE
        perror("Read");

        printf("%d\n",risp);
mi succede che il tuo ciclo mi va in time out, ma quando passa dalla read che ho lasciato per errore dopo il ciclo questa va a buon fine e ricevo un byte
Puoi allegare il codice completo?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2007, 09:41   #23
lammeBN
Junior Member
 
Iscritto dal: May 2007
Messaggi: 17
Quote:
Originariamente inviato da recoil Guarda i messaggi
scrivi ~(IXON | IXOFF) se invece metti ~(IXON IXOFF) va in difficoltà perché vede due costanti numeriche separate da uno spazio e non sa che vuol dire
che stupido mica ci avevo pensato!!!

si ti allego il codice ma ho modificato un bel po di cose e ora mi pare funzioni adeguatamente:

Codice:
#include <stdio.h>     
#include <string.h>    
#include <unistd.h>    
#include <fcntl.h>     
#include <errno.h>     
#include <termios.h>   
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <stdarg.h>
#include <signal.h>
#include <sys/poll.h>

struct termios stdin_saved_attributes;
struct termios tty_saved_attributes;
int tty_fd;
unsigned char risp;

int tty_open(char* tty_dev)
{
	struct termios new_attributes;

	tty_fd = open(tty_dev,O_RDWR| O_NOCTTY | O_NONBLOCK);
	
	if (tty_fd<0) 
	{
  		return -1;
	} 
	else 
	{
		tcgetattr(tty_fd,&tty_saved_attributes);
		tcgetattr(tty_fd,&new_attributes);
		
		// Set the new attributes for the serial port
		// c_cflag
		new_attributes.c_cflag |= CREAD;		 	// Enable receiver
	  	new_attributes.c_cflag |= B9600;		 	// Set baud rate
		new_attributes.c_cflag &= ~PARENB;
    		new_attributes.c_cflag &= ~CSTOPB;
        	new_attributes.c_cflag &= ~CSIZE;
        	new_attributes.c_cflag |= CS8;
					 	// 8 data bit
  	
		new_attributes.c_cflag |=CLOCAL;
		new_attributes.c_cflag &= ~CRTSCTS;

		//new_attributes.c_iflag &= ~(IXON IXOFF);
		// c_iflag
	  	new_attributes.c_iflag |= IGNPAR;		 	// Ignore framing errors and parity errors. 
  	
		// c_lflag
  		new_attributes.c_lflag &= ~(ICANON); 	// DISABLE canonical mode. 
  																		// Disables the special characters EOF, EOL, EOL2, 
  																		// ERASE, KILL, LNEXT, REPRINT, STATUS, and WERASE, and buffers by lines.
	  	new_attributes.c_lflag &= ~(ECHO);// DISABLE this: Echo input characters.
	  	new_attributes.c_lflag &= ~(ECHOE);//DISABLE this: If ICANON is also set,the ERASE character erases the preceding input 
  																		// character, and WERASE erases the preceding word.
	  	new_attributes.c_lflag &= ~(ISIG);		// DISABLE this: When any of the characters INTR, QUIT, SUSP, 
  		// or DSUSP are received, generate the corresponding signal.
 	  
 		  new_attributes.c_cc[VMIN]=1;		// Minimum number of characters for non-canonical read.
		  new_attributes.c_cc[VTIME]=0;				// Timeout in deciseconds for non-canonical read.

		  tcsetattr(tty_fd, TCSANOW, &new_attributes);
	}
	return tty_fd;
}

// Serial version of printf

void tty_printf(char *format, ...) 
{
  va_list argptr;
  char buffer[200];
  
  va_start(argptr,format);
  vsprintf(buffer,format,argptr);
  va_end(argptr);
  
  write(tty_fd,buffer,strlen(buffer));
}

void termination_handler (int signum) 
{
	tcsetattr(STDIN_FILENO,TCSANOW,&stdin_saved_attributes);
	if (tty_fd>0) tcsetattr (tty_fd,TCSANOW,&tty_saved_attributes);
	close(tty_fd);
	printf("Exit\n");
	exit(0);
}

//procedura di attesa per risposta da stampante
int att()
{
	int flag=0;
	struct pollfd pfd;
        pfd.fd = tty_fd;
        pfd.events = POLLIN;

	//******attesa risposta*****//
        if (poll(&pfd, 1, 1000 /* timeout ms */)==0)
        {
                fprintf(stderr, "Timeout!\n");
                flag=1;
        }
        else
                if ((pfd.revents&POLLIN)==0)
                {
                        fprintf(stderr, "I/O error (%04x)\n", pfd.revents);

                }
                else
                {
                        if (read(tty_fd, &risp, 1)<0)
                        {
                                perror("read");

                        }
                        else
                                fprintf(stderr, "Ricevuto: 0x%02x\n", risp);
                }
	printf("%d  %d",flag,risp);
	return (flag);
}


//procedura per il controllo degli stati della stampante
int main(void)
{
	unsigned char str[10];
	
	int flag=0;
	
	/*struct pollfd pfd;
	pfd.fd = tty_fd;
	pfd.events = POLLIN;
	*/
	
	if((tty_open("/dev/ttyS2"))==-1)
	{	perror("Porta non aperta!");
		exit (-1);
	}
	
	if (signal (SIGINT, termination_handler) == SIG_IGN) signal (SIGINT, SIG_IGN);
	if (signal (SIGHUP, termination_handler) == SIG_IGN) signal (SIGHUP, SIG_IGN);
	if (signal (SIGTERM, termination_handler) == SIG_IGN) signal (SIGTERM, SIG_IGN);
	
	//stato carata	
	str[0]=0x10;
	str[1]=0x04;
	str[2]=17;
	str[3]='\0';
	tty_printf(str);
	flag=att();
	//printf("%d\n", flag);
	//printf("%d\n",risp);
	if (flag==1)
		if(read(tty_fd,&risp,1)<0)
			perror("Read");
	//printf("%d\n",risp);
	if(risp&0x20)
		printf("Manca Carta!!\n");
	/*else
		printf("Carta presente\n");*/
	
	/*sensore rotolo*/
	str[0]=0x10;
        str[1]=0x04;
        str[2]=4;
        str[4]='\0';
        tty_printf(str);
	flag=att();
	//printf("%d\n",flag);
	//printf("%d",risp);
        if (flag==1)
		if(read(tty_fd,&risp,1)<0)
        	        perror("Read");
	printf("%d\n",risp);
        if((risp&0x0c)==0x0c)
		printf("Carta in esaurimento!!\n");
        /*if((risp&0x0c)==0)
                printf("Carta Ok\n");
	close(tty_fd);	
}
lammeBN è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2007, 10:29   #24
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Sembra sostanzialmente corretto, non dovrebbe andarti in timeout...
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 15-05-2007, 10:49   #25
lammeBN
Junior Member
 
Iscritto dal: May 2007
Messaggi: 17
non non ci va! grazie per l'aiuto a buon rendere!
lammeBN è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli Due settimane con Dacia Spring 2026: novit&agrav...
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre AORUS GeForce RTX 5080 INFINITY WOOD 16G: una sc...
Nothing Ear (3) a 119€: gli auricolari c...
Roborock Qrevo Curv 2 Flow a 499€ e Saro...
Apple avvisa dello spyware in quattro po...
Xiaomi svela gli interni (assurdi) di Sk...
Framework Laptop 12: la nuova generazion...
iPhone 18 Pro, si parla di 200-300 euro ...
La società cinese Landspace &egra...
Un mese di stretta di Instagram, i video...
Anche Geely sale sul treno dello stato s...
Spotify porta Running Mode su Android: l...
Il meglio di Amazon in 5 offerte super s...
Apple abbassa le barriere per gli store ...
Scatole cinesi per NIO: le stazioni di s...
L'algoritmo di X premia quello che ti fa...
32GB di RAM, 1TB di SSD, processore Core...
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: 10:22.


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