tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
10
ZUGRIFFE
749
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Blue_Fox Blue_Fox ist offline Mitglied Bronze
    Registriert seit
    Aug 2011
    Beiträge
    32
    Hi

    Wie oben schon geschrieben, hab ich das Problem, dass bei meinem selbsterstellten Event, mit eigenen EventArgs der EventHandler immer null ist!!

    hier erstell ich mein Event
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
     
    public event EventHandler<SerialEventArgs> SerialreceiveEvent;
     
            protected virtual void OnSerialreceiveEvent(SerialEventArgs e)
            {
                
                EventHandler<SerialEventArgs> serialreceiveevent = SerialreceiveEvent;
                if (serialreceiveevent != null)
                {
                    serialreceiveevent(this, e);
                }
            }

    Hier ruf ich es auf
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
     
     private void SerialRead(byte[] data)
            {
                byte[] message = new byte[7];
                data.CopyTo(message, 0);
     
                OnSerialreceiveEvent(new SerialEventArgs(message));
            }

    Hier ist meine ?deklaration? (is das eine Deklaration?)

    Code :
    1
    2
    3
    4
    5
    
     
    public TCPServer()
            {
                serialcom2.SerialreceiveEvent += Serialrec_SerialrecEvent; 
            }

    und das ist mein Event

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
     
    private void Serialrec_SerialrecEvent(object objSender, SerialEventArgs e)
            {
                HWAddress[0] = e.SerialData[0];
                HWAddress[1] = e.SerialData[1];
                HWAddress[2] = e.SerialData[2];
                HWAddress[3] = e.SerialData[3];
     
                int GateLightindex = ServerGatelist.FindIndex(FindrightLight);
                for (int i = 0; i < lights.Count; i++)
                {
                    if (lights[i].getAddress() == ServerGatelist[GateLightindex].GetAddress())
                    {
                        lights[i].setRGBRed(e.SerialData[4]);
                        lights[i].setRGBGreen(e.SerialData[5]);
                        lights[i].setRGBBlue(e.SerialData[6]);
                    }
                }
     
                for (int i = 0; i < ServerGatelist.Count; i++)
                {
                    if (HWAddress == ServerGatelist[i].GetHardwareaddress())
                    {
                        udpserver.UDP_Server_Light(ServerGatelist[i].GetGroup(), ServerGatelist[i].GetAddress());
                        break;
                    }
                }
            }

    Und natuerlich noch die EventArgs

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
     
    using System;
    using System.Collections.Generic;
    using System.Text;
     
    namespace Lightcontrol
    {
        class SerialEventArgs   : EventArgs
        {
            private byte[] serdata = new byte[8];
     
            public SerialEventArgs(byte[] value)
            {
                serdata = value;
            }
            
            public byte[] SerialData
            {
                get { return serdata; }
                set { serdata = value; }
            }
        }
    }

    Ich glaub ich hab irgendwas vergessen!! nur was****

    Ich hoffe ihr koennt mir weiterhelfen

    mfg
    Bastian
     

  2. #2
    Avatar von Akeshihiro
    Akeshihiro Akeshihiro ist offline Mitglied Platin
    Registriert seit
    Aug 2008
    Ort
    Kirchlengern (NRW)
    Beiträge
    647
    Wird denn die Methode SerialRead(byte[]) überhaupt aufgerufen? Ansonsten kann ich so keinen Fehler finden, sieht eigentlich richtig aus.
     
    Man sagt, das Schwert eines Samurai sei seine Seele ...

    Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.

    Das Schmieden ist eine Kunst; Das Schreiben auch ;)

  3. #3
    Blue_Fox Blue_Fox ist offline Mitglied Bronze
    Registriert seit
    Aug 2011
    Beiträge
    32
    Hi

    ja die Methode wird aufgerufen!!

    Ich scheitere an der If-Schleife in der abgefragt wird, ob der EventHandler null ist!!

    an was koennte das noch liegen**** kann ich da irgendwie was mit den Klassen versemmelt haben?
     

  4. #4
    Avatar von Akeshihiro
    Akeshihiro Akeshihiro ist offline Mitglied Platin
    Registriert seit
    Aug 2008
    Ort
    Kirchlengern (NRW)
    Beiträge
    647
    Es gibt keine if-Schleifen, nur if-Abfragen.

    Eventuell könntest du ja diesen Code etwas ändern:
    Code csharp:
    1
    
    serialcom2.SerialreceiveEvent += new EventHandler<SerialEventArgs>(Serialrec_SerialrecEvent);
    Etwas anderes finde ich gerade auch nicht.
     
    Man sagt, das Schwert eines Samurai sei seine Seele ...

    Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.

    Das Schmieden ist eine Kunst; Das Schreiben auch ;)

  5. #5
    Blue_Fox Blue_Fox ist offline Mitglied Bronze
    Registriert seit
    Aug 2011
    Beiträge
    32
    Oh... Sorry!! Natuerlich is ne Abfrage!! Keine Ahnung was ich da gedacht hab.... *schaem*

    Leider wars des nicht...

    Koennte mir vielleicht einer erklaeren wie des mit dem Handler da ablaeuft? Ich versteh des nicht ganz.

    Kann ich da irgendwas in die falsche klasse reingeschrieben haben? Die ersten 2 Ausschnitte sind in einer und die 2. Zwei in einer andern...

    Die EventArgs sind eine eigene...
     

  6. #6
    Avatar von Akeshihiro
    Akeshihiro Akeshihiro ist offline Mitglied Platin
    Registriert seit
    Aug 2008
    Ort
    Kirchlengern (NRW)
    Beiträge
    647
    Gibt es irgendwelche Fehler, wenn du das Programm im Debug-Modus startest? Weil jetzt wird es langsam echt kurrios. Und ist die Klasseneigenschaft serialcom2 überhaupt initialisiert? Wenn nicht, müsste es eigentlich knalln.
     
    Man sagt, das Schwert eines Samurai sei seine Seele ...

    Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.

    Das Schmieden ist eine Kunst; Das Schreiben auch ;)

  7. #7
    Blue_Fox Blue_Fox ist offline Mitglied Bronze
    Registriert seit
    Aug 2011
    Beiträge
    32
    Hi

    ne da kommen keine Fehler und keine Warnungen!!

    meinst du mit der initialisierung das hier: private SERIAL2_1 serialcom2 = new SERIAL2_1();

    Wenn ja dann hab ichs!!

    Kann das sein, dass bei Windows CE die "CustomEventArgs" nicht funktionieren? Ich programmier das naemlich fuer ein Touchpanel!!
     

  8. #8
    Avatar von Akeshihiro
    Akeshihiro Akeshihiro ist offline Mitglied Platin
    Registriert seit
    Aug 2008
    Ort
    Kirchlengern (NRW)
    Beiträge
    647
    Damit kenn ich mich leider nicht aus, kann daher auch nix zu sagen. Vielleicht weiß ja noch jemand anderes was ...
     
    Man sagt, das Schwert eines Samurai sei seine Seele ...

    Mit den Beiträgen ist es wie mit Schwertern: Je besser die Rohstoffe sind und je öfter man diese bearbeitet, desto hochwertiger sind sie.

    Das Schmieden ist eine Kunst; Das Schreiben auch ;)

  9. #9
    Blue_Fox Blue_Fox ist offline Mitglied Bronze
    Registriert seit
    Aug 2011
    Beiträge
    32
    Ok

    Dann wart ich mal... Aber danke fuer deine Schnelle Hilfe!!

    Was komisch ist, das ist nicht das einzige selbsterstellte Event!! Aber das erste und einzige mit "customEventArgs"
     

  10. #10
    Blue_Fox Blue_Fox ist offline Mitglied Bronze
    Registriert seit
    Aug 2011
    Beiträge
    32
    Ok

    heute hab ich mal den Versuch gestartet ohne die customEventArgs zu arbeiten!

    Es funktioniert auch nicht******
     

  11. #11
    Blue_Fox Blue_Fox ist offline Mitglied Bronze
    Registriert seit
    Aug 2011
    Beiträge
    32
    Ich glaub ich hab den Fehler!!

    Ich will das Event im gleichen Thread ausloesen und empfangen!!

    Es ginge ja auch mit einer einfachen Methode, die in der ersten Klasse ist und von einer 2. Klasse aufgerufen wird!

    Aber da hab ich ein problem, die erste Klasse ruft auch methoden der 2. Klasse auf!!

    und wenn ich diese Klasse gegenseitig bekannt mache, bekomm ich ne initialisierungs Endlosschleife!!

    Wie kann ich das umgehen?
     

Ähnliche Themen

  1. Frage selbsterstelltes Steuerelement
    Von RamDav im Forum .NET Windows Forms
    Antworten: 3
    Letzter Beitrag: 29.09.09, 21:21
  2. Antworten: 2
    Letzter Beitrag: 07.01.07, 09:01
  3. Selbsterstelltes WinXP Home Preinstallation Kit nicht
    Von TMG im Forum Microsoft Windows
    Antworten: 2
    Letzter Beitrag: 02.03.06, 21:43
  4. Antworten: 10
    Letzter Beitrag: 06.10.04, 10:37
  5. selbsterstelltes bild in Maya einbauen
    Von galdasc im Forum Autodesk Maya (ehemals Alias)
    Antworten: 1
    Letzter Beitrag: 13.04.04, 10:09

Stichworte