J'ai un programme de port série simple qui est censé lire le port série et renvoyer les caractères saisis. Je peux obtenir ce bon fonctionnement en interrogeant la série reçue avec une minuterie, mais je voudrais utiliser l'événement dataReceived à la place. Pour une raison quelconque, l'événement se produira une fois mais jamais plus.dataReceived event in .net compact 2.0 pour Windows CE 6.0 ne fonctionne qu'une seule fois pour la communication série
SerialPort bsp;
public Form1()
{
InitializeComponent();
bsp = new SerialPort("COM2", 2400, Parity.None, 8, StopBits.One);
bsp.DataReceived +=new SerialDataReceivedEventHandler(whasup);
System.Threading.Thread.Sleep(1000);
bsp.Open();
}
void whasup(object sender, SerialDataReceivedEventArgs e)
{
char[] text = new char[100];
int temp = bsp.BytesToRead;
string j = temp.ToString();
bsp.Read(text, 0, temp);
bsp.Write(text, 0, temp);
}
J'ai essayé le portage à un PC et il fonctionne très bien, mais sur ce périphérique Windows CE, il ne veut vraiment pas coopérer. Je sais que l'objet série est toujours ouvert parce que j'ai eu une minuterie qui exécute le texte de crachement sur le périphérique Win CE, même après qu'il cesse de renvoyer ses données de réception. J'ai également eu la sortie de la minuterie bsp.BytesToRead, et je pouvais voir cette valeur grimper comme j'ai tapé plus de clés sur mon PC qui a parlé en série à l'appareil Windows CE. Est-ce que je manque quelque chose?