Hallo,
ich versuche von einem EventHandler auf eine Variable zuzugreifen die in
der Klasse definiert ist. Ich bekomme aber immer die Fehlermeldung:
Für das nicht statische Feld, die Methode oder die Eigenschaft
"clSerialCom.ReceiveState" ist ein Objektverweis erforderlich.
Der Fehler ist in der Zeile:
switch (ReceiveState)
Kann mir jemand einen Tipp gehen was ich machen muss.
Hier mein Code:
1 | namespace Monitor
|
2 | {
|
3 | class clSerialCom
|
4 | {
|
5 | private SerialPort ArduinoPort = new SerialPort();
|
6 |
|
7 | public enum RcvStatus
|
8 | {
|
9 | Reset = 0,
|
10 | FirstFlag,
|
11 | SecondFlag,
|
12 | Length,
|
13 | MsgReceived
|
14 | };
|
15 |
|
16 | public RcvStatus ReceiveState = RcvStatus.Reset;
|
17 |
|
18 | public bool OpenPort( string ArduinoPortName)
|
19 | {
|
20 | if (ArduinoPortName == null) return false;
|
21 | ArduinoPort.PortName = ArduinoPortName;
|
22 | ArduinoPort.DataBits = 8;
|
23 | ArduinoPort.Parity = Parity.None;
|
24 | ArduinoPort.StopBits = StopBits.One;
|
25 | ArduinoPort.BaudRate = 9600;
|
26 |
|
27 | try
|
28 | {
|
29 | ArduinoPort.Open();
|
30 | ArduinoPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
|
31 | return true;
|
32 | }
|
33 | catch
|
34 | {
|
35 | return false;
|
36 | }
|
37 | }
|
38 |
|
39 | private static void DataReceivedHandler(
|
40 | object sender,
|
41 | SerialDataReceivedEventArgs e)
|
42 | {
|
43 | SerialPort sp = (SerialPort)sender;
|
44 |
|
45 |
|
46 | byte RcvByte;
|
47 |
|
48 | switch (ReceiveState)
|
49 | {
|
50 | case RcvStatus.Reset:
|
51 | break;
|
52 | }
|
53 | }
|
54 | }
|
55 | }
|