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

Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr sbarca ufficialmente in Italia con tre modelli elettrici premium, X, 7X e 001, distribuiti da Jameel Motors su una rete di 52 punti vendita già attivi. La Zeekr X parte da 39.900 euro, la 7X da 54.100: piattaforma a 800V, chip Snapdragon di ultima generazione, ricarica ultraveloce e un'autonomia dichiarata fino a 615 km WLTP. Le prime consegne sono previste a metà aprile
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-04-2003, 09: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, 11: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, 11: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, 13: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, 13: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, 13: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, 14: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, 15: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, 15: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, 15: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, 15: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, 16: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, 17: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, 15: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, 18: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, 19: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, 10: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, 10: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, 08: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, 13: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


Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
Le 10 migliori offerte Amazon di Pasqua:...
Nuove fotografie dagli astronauti di Art...
La toilette della capsula Orion Integrit...
GeForce NOW: ecco tutte le novità in arr...
Il Realme 16 5G debutta sul mercato glob...
HONOR svela tre nuovi tablet: il più int...
Tineco Floor One S9 Master: aspira e pul...
Vivo X300 Ultra, il lancio globale è ini...
Offerte robot aspirapolvere Amazon: ECOV...
L'AI genera codice in 8 minuti e i senio...
Ring Intercom Audio a 44,99€ su Amazon: ...
Apple iPhone 16 crolla a 689€: ecco perc...
Google Pixel 9 a 449,90€ con caricatore ...
Ecco la top 7 delle offerte Amazon, aggi...
Ex ingegnere ammette il sabotaggio: migl...
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: 22:44.


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