Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Polestar 3 Performance, test drive: comodità e potenza possono convivere
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Abbiamo passato diversi giorni alla guida di Polestar 3, usata in tutti i contesti. Come auto di tutti i giorni è comodissima, ma se si libera tutta la potenza è stupefacente
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-06-2008, 19:10   #1
morrison81
Senior Member
 
L'Avatar di morrison81
 
Iscritto dal: Mar 2004
Città: milano
Messaggi: 397
[C] Leggere e scrivere su porta seriale

Ciao a tutti,

dopo alcuni giorni di imprecazioni provo a chiedere aiuto a voi
Dovrei fare un programmino per leggere e scrivere su una porta seriale, nella fattispecie leggere da una porta (mettiamo COM1), manipolare i dati e stampare su un'altra (mettiamo COM2).
Vorrei arrivare ad avere un file .exe da poter eseguire da qualunque pc, con le relative porte ovviamente.
Premetto che l'unico linguaggio nel quale riesco a muovermi un pò è il C, ho già fatto questo programma usando matlab solo che sostanzialmente non è "trasportabile".
Ho girato e rigirato il web, ma piuttosto che chiarirmi mi sono venuti solo dubbi, quindi comincio con un pò di domande :

- si può fare in C?
- riesco a fare il programma e farlo girare da una finestra del prompt di windows?
- avrei problemi se usassi un adattatore seriale su porta usb?

Ho trovato qualche esempio, ma mi sono ritrovato imbrigliato tra C e C++, e non conoscendo bene la differenza sono ancora più confuso
Volendo potrei usare anche C++, però non avendolo mai usato non vorrei complicarmi ancora di più la vita.
Spero possiate darmi qualche delucidazione, poi casomai se ho altri dubbi aggiungo in seguito.
Grazie a tutti!
Ciao
morrison81 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2008, 19:37   #2
morrison81
Senior Member
 
L'Avatar di morrison81
 
Iscritto dal: Mar 2004
Città: milano
Messaggi: 397
In attesa di qualche pio aiuto aggiungo che sono riuscito a rifare quasi tutto il programma con python,
mi è sembrato molto semplice e simile al matlab.
Però il dubbio è lo stesso: sono riuscito anche a creare una cartella con l'exe e le
librerie, ma quanto è effettivamente "trasportabile"?
Qualcuno ha qualche esperienza in merito?
Grazie ancora.
Ciao
morrison81 è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2008, 16:57   #3
teox13
Member
 
L'Avatar di teox13
 
Iscritto dal: Jun 2008
Città: Verona
Messaggi: 68
Si, si può anche con il C.
Se utilizzi linux il dispositivo collegato alla seriale lo vede come un file.
Per windows è diverso. Esistono varie librerie che ti aiutano, potresti richiamare qualche comando assembler oppure provare a vedere la libreria libusb(utilizando un adattatore..io una volta l'ho provato e funzionava!)

Ciao!
teox13 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2008, 00:00   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da teox13 Guarda i messaggi
potresti richiamare qualche comando assembler
bummm...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2008, 23:15   #5
morrison81
Senior Member
 
L'Avatar di morrison81
 
Iscritto dal: Mar 2004
Città: milano
Messaggi: 397
Grazie a tutti e scusate per il ritardo... troppo lavoro

In realtà ho passato un altro paio di giorni a smanettare ma poi mi sono rotto le scatole e sono passato a python: mai usato ma mi sono trovato
benissimo ed ha gli stessi principi del matlab. Tra l'altro ho fatto anche un po di prove di "portabilità" e pare che su tre pc differenti funzioni senza
problemi a differenza del matlab.
Anzi, chiederei ai moderatori se possibile, di cambiare il linguaggio nel titolo, grazie.
Vi posto il codice

Codice:
import serial
import msvcrt
ser = serial.Serial(4)  #open first serial port
ser.timeout=None
ser1 = serial.Serial(0)
ckk="v"
ckk1="v"


print ser.portstr       #check which port was realy used
print ser1.portstr       #check which port was realy used
print "Premi un tasto per iniziare la simulazione"
a=msvcrt.getch()

while ckk1!="q":
  
    while ckk!="t":
        ser.flushInput()
        print "LEGGI DA PORTA SERIALE"
        code=ser.read(13)
        .
        .
        .altre operazioni in mezzo
        .
        .
        ser1.write(code)
        print "Premi un tasto per continuare o T per uscire"
        ckk=msvcrt.getch()

    ckk="v"    
    print "ciao"
    print "premi un tasto per ricominciare la simulazione o Q per uscire"
    ckk1=msvcrt.getch()

ser.close()             #close port
ser1.close()             #close port

Adesso avrei un ultimo problema, vorrei fare il ciclo while in modo che si interrompa quando premo t o un tasto qualsiasi, il classico repeat until keypressed
senza dover ogni volta premere un tasto al termine del while.

Per ora sono riuscito solo a fare un while così

Codice:
while not (msvcrt.kbhit() and msvcrt.getch() == "t"):
e settando un timeout sulla lettura in modo da non far bloccare il ciclo nel caso non legga da porta seriale. Il problema è che quando supero
il timeout perdo dal monitor tutte le informazioni perchè il cursore comincia a scorrere.
Grazie a tutti.
Ciao!
morrison81 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Son quasi regalate: 135€ per le Squier b...
Windows 11: il copia-incolla via IA funz...
La scopa elettrica Mova K30 Mix crolla a...
Violazione in Almaviva, fornitore IT di ...
Amazon avvia un investimento da 3 miliar...
Ci fai tutto e ci giochi bene: a 999€ po...
Snapdragon o Exynos? Un sondaggio svela ...
TP-Link porta Netgear in tribunale: camp...
2 portatili tuttofare a 499€: uno ha 32G...
HONOR prepara il suo top di gamma compat...
Sony WH-1000XM6 a un prezzo senza preced...
Borderlands 4: 2K Games rende gratis il ...
I 7 robot aspirapolvere più venduti del ...
Samsung Galaxy S26: il salto generaziona...
Caso Lo Wen-jen: Intel nega qualsiasi ut...
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:03.


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