Hallöchen,
Ich hab nen elektrischen Kompass via USB angeschlossen.
Das Gerät sendet seine Informationen sobald es nen Char0x11 ließt.
Sah im ersten Moment ganz einfach aus, aber das Ding bringt mich zum
verzweifeln.
Ich empfange einfach keine Antwort. Ich vermute irgend einen banalen
Fehler.
1 | ...
|
2 | private SerialPort kompass;
|
3 |
|
4 | public void connect()
|
5 | {
|
6 | string kompasscom = "COM8";
|
7 | kompass = new SerialPort(kompasscom, 38400, Parity.None, 8, StopBits.One);
|
8 | kompass.Encoding = Encoding.Default;
|
9 |
|
10 | if (!kompass.IsOpen)
|
11 | {
|
12 | try
|
13 | {
|
14 | kompass.Open();
|
15 |
|
16 | kompass.DataReceived += new SerialDataReceivedEventHandler(kompass_DataReceived);
|
17 | kompass.WriteLine(Convert.ToString((char)0x11));
|
18 | MessageBox.Show(Convert.ToString((char)0x11));
|
19 | }
|
20 | catch (System.Exception e)
|
21 | {
|
22 | MessageBox.Show(e.Message);
|
23 | }
|
24 | }
|
25 | }
|
26 |
|
27 | void kompass_DataReceived(object sender, SerialDataReceivedEventArgs e)
|
28 | {
|
29 | MessageBox.Show("asdf");
|
30 | string taxt = kompass.ReadLine();
|
31 | OnNewkompassPackageReceived(new kompassReceivedEventArgs(taxt));
|
32 | }
|
33 | ...
|
Ich habs mal mit Delphi versucht, da funktionierts komischerweise.
Folgende Codezeile liefert das gewünschte Ergebnis in Delphi:
1 | ComPortKompass.WriteStr(char(17));
|
-Was ich schon versucht habe:
Alle möglichen Encoder durchprobiert, keine Veränderung.
(Byte)0x11 / (Byte)17 / (Char)0x11 / (Char)17, macht keinen Unterschied.
Gruß
SpR3AD