Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi

Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Sono molte le novità che ASUS ha scelto di presentare al CES 2026 di Las Vegas, partendo da una gamma di soluzioni NUC con varie opzioni di processore passando sino agli schermi gaming con tecnologia OLED. Il tutto senza dimenticare le periferiche di input della gamma ROG e le soluzioni legate alla connettività domestica
Le novità ASUS per il 2026 nel settore dei PC desktop
Le novità ASUS per il 2026 nel settore dei PC desktop
Molte le novità anticipate da ASUS per il 2026 al CES di Las Vegas: da schede madri per processori AMD Ryzen top di gamma a chassis e ventole, passando per i kit di raffreddamento all in one integrati sino a una nuova scheda video GeForce RTX 5090. In sottofondo il tema dell'intelligenza artificiale con una workstation molto potente per installazioni non in datacenter
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-04-2003, 10:38   #1
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
Prog. per testare la seriale:

Ciao,

come da oggetto sto cercando un programmino che serva per
testare la porta seriale. Su windows usavo wincomm che era mooolto
utile.

io ho un mio prog che comunica con un dispositivo collegato alla
seriale che gira con windows ora mi servirebbe un prog di test
che abbia la possibilita' di mandare "certi" byte a sta seriale.

grazie per l'aiuto.
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2003, 12:39   #2
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
cat quello_che_vuoi > /dev/ttySx
dove l'ultima x e' il nuemro della seriale (0, 1, ecc....)
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2003, 12:40   #3
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
minicom?
__________________
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 24-04-2003, 14:43   #4
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
ok ma,

cat 0xA0 0x00 0x00 > /dev....
funziona?
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2003, 14:51   #5
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
echo -e "\xxx\yyy\zzz...." > /dev/ttyS0

dove xxx, yyy, zzz sono numeri in ottale

Ah man




nb usa setserial per impostare la velocità della porta
__________________
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 24-04-2003, 14:59   #6
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
minicom mi crea un caos((()))
perche' cerca di comunicare con il modem
mentre a me servirebbe solo mandare certi byte e attenderne altri.

non esiste qualcosa di piu' semplice?

grazie comunque.
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2003, 15:30   #7
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
appunto, echo -e
__________________
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 24-04-2003, 16:07   #8
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
ho settato la seriale,
provo a fare l'echo e forse funziona,
ma non posso vedere se c'e' risposta da parte del dispositivo
con wincomm ricevevo i byte mandati dal dispositivo verso il pc...

cioe' mi servirebbe un prog sia che spedisce, sia che riceve dati.

grazie.
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2003, 16:15   #9
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Da un'altra console:
cat /dev/ttyS0 > file
il problema è che i dati letti dalla seriale non sono stringhe (presumo), ma numeri binari...quindi devi armarti di santa pazienza e esaminare il file ricevuto con un editor binario, come khexedit.

Scriverti un programmino in c di poche righe?
__________________
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 24-04-2003, 16:33   #10
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
sto propio scrivendo questo diavolo di programmino.

ora ho trovato un pdf che spiega apparentemente molto bene
tutte le strutture da inizializzare.

il problema e' che non riesco a leggere cio' che mi manda
la scheda mia scheda.
sicuramente riesco a comunicare perche' ho trovato un'istruzione
che mi fa accendere un led e quando la eseguo questo si accende.

ti riporto un po' del codice.
(e' possibile che sto compiendo una semplice stupidaggine sulla
read xche' non conosco bene il c++)

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <iostream.h>
#include <stdlib.h>

#include <stdio.h>/* standard inp /out definitions*/
#include <string.h>/*string function*/
#include <unistd.h>/*UNIX standard functions definitions*/
#include <fcntl.h> /*File control efinitions*/
#include <errno.h> /*Error number definitions*/
#include <termios.h>/*POSIX terminal control def*/

int ioctl(int fd, int request, ...);

int cisei(int fd)
{
cout << "CISEI----" << endl;
char buffer[2];//input buffer
char *bufptr; //Current char in buffer
int nbytes; //n of byte to read
//int tries; //n of tries so far
bufptr=buffer;

//goto ablett;
buffer[0]=0xa0;
buffer[1]=0X00;
buffer[2]=0X00;
nbytes=write(fd, bufptr,3);
cout << "*A0 00 00 -" << nbytes << endl;

goto esci;

buffer[0]=0x71;
buffer[1]=0X00;
buffer[2]=0X01;
nbytes=write(fd, bufptr,3);
cout << "*71 00 01 -" << nbytes << endl;
ablett:
buffer[0]=0x60;
buffer[1]=0X00;
buffer[2]=0X00;
nbytes=write(fd, bufptr,3);
cout << "*lettore 60 00 00 -" << nbytes << endl;

goto esci;

buffer[0]=0x30;
buffer[1]=0X00;
buffer[2]=0X00;
nbytes=write(fd, bufptr,3);
cout << "*tastiera 30 00 00 -" << nbytes <<endl;

buffer[0]=0x10;
buffer[1]=0X00;
buffer[2]=0X00;
nbytes=write(fd, bufptr,3);
cout << "*tastiera 10 00 00 -" << nbytes << endl;

//*bufptr='\0';
esci:
cout << "buffer dopo" << endl;
cout << int(buffer[0]) << endl;
cout << int(buffer[1]) << endl;
cout << int(buffer[2]) << endl;
cout << "CISEI---USCITA" << endl;
}

/*
open port 1
return il descrittore del file in successo o -1 se errore
*/
int leggiporta(int fd)
{
cout << "LEGGIPORTA----" << endl;
char buffer[255];//input buffer
char *bufptr; //Current char in buffer
int nbytes; //n of byte to read
//int bytespresent;//n° di bytes presenti nel buffer di input
//int tries; //n of tries so far
cout << "buffer prima" << endl;
cout << int(buffer[0]) << endl;
cout << int(buffer[1]) << endl;
cout << int(buffer[2]) << endl;
cout << int(buffer[3]) << endl;

bufptr=buffer;
//ASPETTA FINO A CHE NEL BUFFER CI SIA ALMENO 3 CARATTERI
//nbytes=ioctl(fd , FIONREAD , &bytespresent);

nbytes=read(fd, bufptr,3);
cout << "nbytes read" << endl;
cout << nbytes << endl;
//*bufptr='\0';

cout << "buffer dopo" << endl;
cout << int(buffer[0]) << endl;
cout << int(buffer[1]) << endl;
cout << int(buffer[2]) << endl;
cout << int(buffer[3]) << endl;
cout << "LEGGIPORTA----USCITA" << endl;
}
int
settaporta(int fd)
{
cout << "SETTAPORTA----" << endl;
struct termios options;
tcgetattr(fd , &options);

options.c_cflag &= ~PARENB; //NO PARITY
options.c_cflag &= ~CSTOPB; //NO STOP
options.c_cflag &= ~CSIZE; //mask the character size bits
// options.c_cflag |= CRTSCTS; //abilita il controllo di flusso hardware
options.c_cflag |= CS8; //select 8 data bits
cfsetispeed(&options, B9600);
cfsetospeed(&options, B9600);
options.c_cflag |= (CLOCAL | CREAD);
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
options.c_iflag &= ~(IXON | IXOFF | IXANY); //non usare controllo software di flusso
options.c_oflag &= ~OPOST; //chosing raw output
options.c_cc[VMIN] = 0;
options.c_cc[VTIME] = 2;
tcsetattr(fd,TCSANOW,&options);
cout << "SETTAPORTA----USCITA" << endl;
}
int
open_port(void)
{

int fd;
fd=open ("/dev/ttyS0",O_RDWR|O_NOCTTY|O_NDELAY);
// fd=open ("/dev/ttyS1",O_RDWR|O_NOCTTY);
if (fd== -1)
{
perror("open port: Unable to open /dev/ttyS0 -");
}
else
fcntl(fd, F_SETFL, 0);
//fcntl(fd, F_SETFL, FNDELAY);
return (fd);
}

int main(int argc, char *argv[])
{
int z;
argc=argc;
argv=argv;
int fd;
int retx;
cout << "Hello, World!" << endl;
fd = open_port();
cout << "open_port() - " << fd << endl;
cout << "fd - " << fd << endl;
retx = settaporta(fd);
retx = cisei(fd);
scanf("%d",&z);
// if z==1

retx = leggiporta(fd);
close (fd);
return EXIT_SUCCESS;
}



praticamente la read mi restituisce -1 come se non leggesse niente.

help me........
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2003, 16:39   #11
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
praticamente la read mi restituisce -1 come se non leggesse niente.
Se non c'è input, la read è bloccante. Se restituisce -1 c'è un problema, forse un errore nei settaggi. Se dopo la read esegui perror("read"); dovrebbe darti ulteriori informazioni.
__________________
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 24-04-2003, 17:35   #12
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
caspita,
in pratica passo alla read un file descriptor sbagliato perche'
viene modificato in qualche modo.

ma io non faccio niente per modificarlo:
se noti fd viene passato alla funzione cisei che scrive sulla seriale a0 00 00
chiedendo alla mia scheda ci sei?
la scheda dovrebbe rispondere a0 00 11(ci sono)

ora dove sbaglio nella funzione cisei?
dal momento che fd viene usato solo per scrivere sulla seiale non dovrebbe
essere modificato giusto?

da notare che se nella read metto 3 al posto di fd(che sarebbe il n° di file)
la read mi funziona e mi restituisce propio a0 00 11.

grazie.
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2003, 18:16   #13
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
caspita
ho trovato che l'errore si verifica quando
ppasso il parametro alla int leggiporta(int fd);

cioe' quando chiamo
retx=leggiporta (fd);
fd vale 3

ma quando sono dentro la funzione fd vale -1073744072

potrebbe essere un errore del compilatore?

ho provato a cambiare fd in fdx all'interno della funzione quindi
main..
retx=leggiporta(fd);
...

int leggiporta(int fdx);
{
cout << fdx <<endl;
}

e fdx non e' 3 bensi -107...
come mai?


grazie.
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2003, 16:51   #14
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Mi puzza di "buffer overflow"...buon debugging
Comincia col compilare con -Wall, in modo da esaminare tutti i warning del compilatore...
(comincia anche a togliere le cose inutili...quella scanf("%d", &z) innanzitutto)
__________________
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 26-04-2003, 19:28   #15
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
ok il codice fa schifo.....
cosa vuol dire compilare con Wall?

io sto usando kdevelop 2.2.1.
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 26-04-2003, 20:18   #16
lovaz
Senior Member
 
L'Avatar di lovaz
 
Iscritto dal: Jul 2002
Messaggi: 4334
Vuol dire passare al gcc l'opzione -Wall, ossia stampa tutti i warning.
Per kdevelop non so, prova a cercare in qualche finestra dove sono le opzioni per il gcc.
lovaz è offline   Rispondi citando il messaggio o parte di esso
Old 27-04-2003, 11:16   #17
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Progetto->opzioni->opzioni del compilatore->flags and warnings->seleziona -Wall e -Werror dall'elenco a sinistra.
Così almeno puoi far sparire i warning del compilatore (te li segnala come errori se li trova).
__________________
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 27-04-2003, 11:54   #18
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
allora l'opzione -Wall C'era gia e invece non c'era -Werror
ora pero' non mi finisce nemmeno di compilare che si blocca
su un errore che prima non consideravaWerror fa mica diventare i warning error?)

cliccando sul warning, che e'
In file included from /usr/include/g++/backward/iostream.h:31,
from main.cpp:6:
/usr/include/g++/backward/backward_warning.h:32:2: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated.

mi apre un file backward-warning.h
da quel che si capisce e' quindi il file iostream.h che ho incluso
che mi crea problemi,piu' precisamente cio' che include quest'ultimo:

#ifndef _CPP_BACKWARD_IOSTREAM_H
#define _CPP_BACKWARD_IOSTREAM_H 1

#include "backward_warning.h"
#include <iostream>
using std::iostream;
using std::ostream;
using std::istream;
using std::ios;
using std::streambuf;
.........

ma il warning mi consiglia di utilizzare una delle 32 intestazioni
situate nella sez xxx del g++(ma cos'e' questa sezione? l'ho cercata
come se fosse una directory ma non l'ho trocvata)

in piu' il warning mi consiglia di usare un file senza .h perche' piu' recente,
ma iostream include gia' un file senza .h.

ragazzi grazie mille per l'aiuto, capirete che sono alle prime armi,
ma da qualche parte si deve iniziare..

ciao.
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 28-04-2003, 09:23   #19
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Sì -Werror tratta i warning come errori.
Nota che iostream.h è deprecata; dovresti usare:

#include <iostream>
using namespace std;

Risolta questa rogna, dovresti vedere i "tuoi" warning.
__________________
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 28-04-2003, 14:20   #20
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
ok ho cambiato iostream.h con iostream

non mi da piu' warning ma non funziona lo staesso.

che cosa sta a dire quel using namespaces std?
che cosa voul dire deprecato?--obsoleto?

grazie
x110 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Le novità MSI del 2026 per i videogiocatori Le novità MSI del 2026 per i videogiocato...
I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers I nuovi schermi QD-OLED di quinta generazione di...
Steam Machine partirà da circa 1....
Google limita i riassunti di AI Overview...
iPhone Air 2: più autonomia e un ...
MacBook Pro con chip M4, 24GB di RAM e 1...
Apple sceglie Google Gemini per potenzia...
NVIDIA ed Eli Lilly: un laboratorio AI c...
Un PC da gaming costa troppo? Con questa...
Non solo iPhone: è questa la vera...
Rigenerazione territoriale: Huawei trasf...
Batteria e-bike a rischio incendio? L'in...
Assetto Corsa Evo: i dintorni del Nordsc...
HP pronta a introdurre memorie cinesi in...
Apple supera Samsung e conquista la lead...
L'UE vuole il nostro feedback sull'open ...
Polestar chiude in crescita il 2025, nuo...
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: 08:07.


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