|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2006
Città: Milano
Messaggi: 832
|
[c#] comunicazione porta seriale come fare?
Dopo aver trovato il modo di far comunicare cellulare e pc via bluetooth (cioè per lo meno quando invio dei bytes dal pc al cell il cell si illumina quindi penso li riceva
![]() ora vorrei creare un applicazione per leggerle questi bytes come posso fare per leggereli? ho creato una piccola applicazione che fa un serialport1.Read(arraydibytes,0,10); ma quando la faccio girare va in errore... cosa devo fare? grazie!!! Ultima modifica di nikel : 25-02-2010 alle 18:29. |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Mar 2006
Città: Milano
Messaggi: 832
|
un pò di codice.. questa è l'applicazione lato pc
Codice:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO.Ports; namespace SERIALE { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //configuring the serial port serialPort1.PortName = "COM4"; serialPort1.BaudRate = 9600; serialPort1.DataBits = 8; serialPort1.Parity = Parity.None; serialPort1.StopBits = StopBits.One; //opening the serial port serialPort1.Open(); //write data to serial port serialPort1.Write("ABC"); //close the port serialPort1.Close(); } } } Quote:
Ultima modifica di nikel : 25-02-2010 alle 20:47. |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Mar 2006
Città: Milano
Messaggi: 832
|
e questo è l'applicazione lato cell...
Codice:
using System; using System.Linq; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO.Ports; namespace SERIALEWM { public partial class Form1 : Form { byte[] bytes = new byte[3]; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //configuring the serial port serialPort1.PortName = "COM6"; serialPort1.BaudRate = 9600; serialPort1.DataBits = 8; serialPort1.Parity = Parity.None; serialPort1.StopBits = StopBits.One; serialPort1.ReadTimeout = 1000; serialPort1.WriteTimeout = 1000; //opening the serial port serialPort1.Open(); //write data to serial port serialPort1.Read(bytes,0,3); //close the port serialPort1.Close(); label1.Text = bytes.ToString(); } } } Ultima modifica di nikel : 25-02-2010 alle 20:50. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Mar 2006
Città: Milano
Messaggi: 832
|
sbaglio qualcosa?
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Mar 2006
Città: Milano
Messaggi: 832
|
up...
|
![]() |
![]() |
![]() |
#6 |
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
La comunicazione seriale è, come dice il termine, seriale, quindi non è detto che tu possa leggere i dati dal cellulare in qualsiasi momento.
Il giusto modo di accedere al flusso dei dati seriali è quello di collegarti all'evento che viene chiamato quando sulla com passano dei dati, così puoi leggere i byte presenti sulla com solo quando è certo che ci siano dei dati da leggere. Ultima modifica di flx2000 : 26-02-2010 alle 11:01. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Mar 2006
Città: Milano
Messaggi: 832
|
ottimo!!! qual è questo evento?? sognavo esattamente una cosa del genere
![]() |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Mar 2006
Città: Milano
Messaggi: 832
|
up...
|
![]() |
![]() |
![]() |
#9 |
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
Inserisci
Codice:
serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived); Quando scrivi "+=" l'intellisense dovrebbe dirti che puoi premere TAB per completare l'evento, e ti crea il metodo adatto a riceverne i dati. Chiaramente la parte Read() ecc. dovrai toglierla da dove sta adesso e metterla lì dentro. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:39.