View Full Version : [C,C++] Leggere e scrivere dati da/per dispositivo wifi in ambiente linux
Scusate, avrei bisogno di un aiuto da parte vostra.
Mi trovo ad avere un pc embedded che ha collegato attraverso una porta miniPCI un dispositivo wi-fi e attravesro una porta seriale un dispositivo zigbee.
I dati devono essere presi dalla zigbee e mandati al wifi.
Attraverso la funzione open(), le read e select penso di essere in grado di leggere i dati dalla seriale ma non so come mandarli al wi-fi. qualcuno sa che funzioni usare? O un tutorial che lo spieghi?
Grazie
Scusate, avrei bisogno di un aiuto da parte vostra.
Mi trovo ad avere un pc embedded che ha collegato attraverso una porta miniPCI un dispositivo wi-fi e attravesro una porta seriale un dispositivo zigbee.
I dati devono essere presi dalla zigbee e mandati al wifi.
Attraverso la funzione open(), le read e select penso di essere in grado di leggere i dati dalla seriale ma non so come mandarli al wi-fi. qualcuno sa che funzioni usare? O un tutorial che lo spieghi? Facciamo una premessa: il wi-fi è sostanzialmente una LAN senza fili, non un dispositivo hardware specifico.
A questo punto dovresti spiegare quale è il dispositivo collegato in wi-fi con cui vuoi comunicare. Sulle reti, il modo più a "basso livello" per gestire una comunicazione sono i "socket" (per Linux vedi <qui> (http://www.gnu.org/software/libc/manual/html_node/Sockets.html#Sockets)).
Comunque se spieghi meglio cosa devi fare e quale dispositivo wi-fi devi usare, avrai sicuramente risposte più chiare.
ilsensine
30-03-2007, 15:51
Sì infatti, il wi-fi lo vedi come una interfaccia di rete.
Il dispositivo è un'antenna Wi-fi collegata alla porta mini-PCI del mio pc embedded. é utilizzato il protocollo udp per la trasmissione dei pachhetti tra il mio PC embedded e un altro pc via wi-fi.
L'interfaccia wi-fi è data da una scheda mini-PCI Winstron Newbe CM9 con chip athereos AR5213.
L'interfacia è gestita da driver madwifi-ng.
Spero di essere stato meno lacunoso rispetto a prima.
Grazie
Il dispositivo è un'antenna Wi-fi collegata alla porta mini-PCI del mio pc embedded. é utilizzato il protocollo udp per la trasmissione dei pachhetti tra il mio PC embedded e un altro pc via wi-fi.
L'interfaccia wi-fi è data da una scheda mini-PCI Winstron Newbe CM9 con chip athereos AR5213.
L'interfacia è gestita da driver madwifi-ng.
Spero di essere stato meno lacunoso rispetto a prima.Ripeto, visto che non ti è molto chiaro: non è che devi comunicare con l'antenna! (che è solo lo strato più "basso" che si occupa di "parlare" con altri dispositivi wi-fi). Così come non ha importanza se è attraverso un mini-PCI o un certo chip.
Devi comunicare con un dispositivo dotato di indirizzo IP.
Parli di un altro PC e del protocollo UDP. Bene. Su quest'altro PC deve girare un programma che gestisce la ricezione di pacchetti UDP su una certa porta. Devi innanzitutto conoscere l'indirizzo IP di tale macchina. Quindi dal tuo PC embedded dovrai aprire un socket UDP verso quel certo IP/porta e inviare i dati.
Il link che ti ho indicato sopra ti fornisce tutte le informazioni sui socket.
ilsensine
30-03-2007, 16:41
Il dispositivo è un'antenna Wi-fi collegata alla porta mini-PCI del mio pc embedded. é utilizzato il protocollo udp per la trasmissione dei pachhetti tra il mio PC embedded e un altro pc via wi-fi.
L'interfaccia wi-fi è data da una scheda mini-PCI Winstron Newbe CM9 con chip athereos AR5213.
L'interfacia è gestita da driver madwifi-ng.
Spero di essere stato meno lacunoso rispetto a prima.
Grazie
Ok quindi i due dispositivi possono comunicare normalmente tramite protocollo IP, come se fossero connessi tramite una scheda di rete...
Ripeto, visto che non ti è molto chiaro: non è che devi comunicare con l'antenna! (che è solo lo strato più "basso" che si occupa di "parlare" con altri dispositivi wi-fi). Così come non ha importanza se è attraverso un mini-PCI o un certo chip.
Devi comunicare con un dispositivo dotato di indirizzo IP.
Parli di un altro PC e del protocollo UDP. Bene. Su quest'altro PC deve girare un programma che gestisce la ricezione di pacchetti UDP su una certa porta. Devi innanzitutto conoscere l'indirizzo IP di tale macchina. Quindi dal tuo PC embedded dovrai aprire un socket UDP verso quel certo IP/porta e inviare i dati.
Il link che ti ho indicato sopra ti fornisce tutte le informazioni sui socket.
E anche nel caso di rete Zigbee? pensavo che essendo collegato il ricevitore alla seriale fosse sufficiente usare la open(dev/ttsy0) per ricevere i dati.
grazie
E anche nel caso di rete Zigbee? pensavo che essendo collegato il ricevitore alla seriale fosse sufficiente usare la open(dev/ttsy0) per ricevere i dati.Le porte seriali sono tutto un altro discorso (che non c'entra nulla con LAN, socket, ecc...).
Devi aprire il device della seriale, impostare il formato di comunicazione (velocità, parità, ecc...) e quindi usare delle read() per leggere dalla seriale usando il descrittore fornito dalla open.
Leggi <qui> (http://www.gnu.org/software/libc/manual/html_node/Low_002dLevel-Terminal-Interface.html#Low_002dLevel-Terminal-Interface) e inoltre ti possono essere utili:
-> Serial Programming HOWTO (http://www.tldp.org/HOWTO/Serial-Programming-HOWTO/)
-> Serial Programming Guide for POSIX Operating Systems (http://www.easysw.com/~mike/serial/serial.html)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.