Einloggen Suche | Aktive Themen
Tickdatenabruf über Events Optionen
Martin Prischmann
Geschrieben: Monday, December 10, 2012 11:33:45 AM
Gruppen: Kunde

Beiträge: 9

Hallo,

ich versuche in C# die Events für aktuelle Tickdaten abzugreifen. Mein Code verwendet den Beispielcode sieht etwa so aus:

1. Erzeugung relevante Objekte
TaiPanRealtime TPRTObjekt;
TPRTObjekt = new TaiPanRealtime();
DataBase TPRTDataBase = (DataBase)TPRTObjekt.DataBase;
DataStream TPRTDataStream = (DataStream)TPRTObjekt.DataStream;

2. Aktivieren der Ströme und - für spätere Auswertung der Ereignisse
TPRTBezahltStreamActive = true; // BezahltKurse
TPRTBriefStreamActive = true; // Briefkurse
TPRTGeldStreamActive = true; // Geldkurse
TPRTDataStream.Bezahlt += new _IDataStreamEvents_BezahltEventHandler(TPRTDataStream_Bezahlt);
TPRTDataStream.Brief += new _IDataStreamEvents_BriefEventHandler(TPRTDataStream_Brief);
TPRTDataStream.Geld += new _IDataStreamEvents_GeldEventHandler(TPRTDataStream_Geld);

Die Event-Methoden sehen wie folgt aus
private void TPRTDataStream_Bezahlt(int SymbolNr, float Kurs, float Volume, DateTime Zeit)
{
if (TPRTBezahltStreamActive)
{
Console.Write(String.Format("bz {0}: {1} {2}", SymbolNr, Kurs, Zeit));
}
}


3. Event hinzufügen
TPRTDataStream.Add(78303, 1);

Und dann warte ich in der Console und im Debugger auf die ersten Events, aber die kommen leider nicht.

Habe ich etwas übersehen?

Herzlicher Gruß

Martin
Joerg Julius
Geschrieben: Monday, December 10, 2012 11:40:47 AM
Gruppen: Insider

Beiträge: 30

Hallo Herr Prischmann,

möglicherweise haben Sie eine Einstellungen im Projekt nicht gesetzt.

Rufen Sie bitte die Eigenschaften des TaiPan-Realtime-COM-Servers auf, den Sie als Referenz hinzugefügt haben (im "Projektmappen-Explorer" auf "TaiPanRTLib", dann auf "Eigenschaften").
Hier ändern Sie die Eigenschaft "Lokale Kopie" auf "True", evtl. müssen Sie hierzu die Eigenschaft "Interop-Typen einbetten" zuvor auf "False" setzen.


Entwicklung | Lenz+Partner GmbH | vwd group

Phone: +49 231 9153-300 | Fax: +49 231 9153-399
entwicklung@lp-software.de | www.LP-software.de | www.vwd.com
Martin Prischmann
Geschrieben: Monday, December 10, 2012 11:53:07 AM
Gruppen: Kunde

Beiträge: 9

Vielen Dank für die rasche Antwort,

nach anfänglichem kleinen Fehlern - Methoden und Attribute von TPRTDataBase wurden nicht mehr gefunden - klappt es wieder wie zuvor.

Aber die Events kommen noch immer nicht anDenk

Gruß

Martin
Martin Prischmann
Geschrieben: Monday, December 10, 2012 3:21:36 PM
Gruppen: Kunde

Beiträge: 9

Gibt es vielleicht wie für viele andere Bereiche ein kleines Beispielprojekt?

Herzlicher Gruß

Martin
Joerg Julius
Geschrieben: Monday, December 10, 2012 4:22:34 PM
Gruppen: Insider

Beiträge: 30

Hallo,

anbei ein kleines Beispiel für eine Consolen-Anwendung. Es wird der Dax über den Datenstrom abonniert und im Ausgabe-Fenster ausgegeben:

Code:

    class Program
    {
        static void Main(string[] args)
        {
            TaiPanRealtime  m_TP = null;
            DataStream   m_DataStream = null;

            m_TP = new TaiPanRealtime();
            m_DataStream = (DataStream)m_TP.DataStream;

            m_DataStream.Bezahlt += m_DataStream_Bezahlt;
            m_DataStream.Add(79514, 0);

            Console.ReadLine();
            m_DataStream.RemoveAll();
            m_TP.Quit();
        }

        static void m_DataStream_Bezahlt(int SymbolNr, float Kurs, float Volume, DateTime Zeit)
        {
            Debug.WriteLine("{0}", Kurs);
        }
    }



Entwicklung | Lenz+Partner GmbH | vwd group

Phone: +49 231 9153-300 | Fax: +49 231 9153-399
entwicklung@lp-software.de | www.LP-software.de | www.vwd.com
Martin Prischmann
Geschrieben: Monday, December 10, 2012 6:41:43 PM
Gruppen: Kunde

Beiträge: 9

Herzlichen Dank für das Beispiel, ich konnte es sofort zum Laufen bekommen.

In dem Zusammenhang ist mir auch mein eigenes Problem deutlicher geworden. Nachdem ich - wie von Ihnen zu Anfangs beschrieben - die DLL auf lokale Kopie setzt können die Eigenschaften der Com-Objekte nicht mehr ausgewertet werden. Ich schätze, ich muss das Projekt anders konfigurieren
- 64/32 Bit
- Version .Net
etc.

Gruß

Martin
Ciprian Fratila
Geschrieben: Sunday, February 23, 2014 10:17:55 PM
Gruppen: Kunde

Beiträge: 1

Guten Tag,

Ich versuche auch den obengenannten Code zum Laufen zu bringen, leider ohne Erfolg.
Habe mit Visual Studio 2010 unter Windows 7 ein Konsolenanwendungeingerichtet.
Wie oben erwähnt ist die Eigenschaft des Verweises Lokale Kopie auf True.

Dabei gibt es erstmal diese Warnungen:
Warnung 1 Verarbeite COM-Verweis "TaiPanRTLib" aus Pfad "D:\Program Files (x86)\Tai-Pan Realtime\TaiPanRT.exe". Mindestens ein Argument für "_IDataStreamEvents.AktuellMeldung" kann nicht vom Laufzeitmarshaller gemarshallt werden. Diese Argumente werden deshalb als Zeiger übergeben und erfordern zum Ändern möglicherweise unsicheren Code. TaiPanTestConsole
Warnung 2 Verarbeite COM-Verweis "TaiPanRTLib" aus Pfad "D:\Program Files (x86)\Tai-Pan Realtime\TaiPanRT.exe". Mindestens ein Argument für "TaiPanRTLib._IDataStreamEvents_AktuellMeldungEventHandler.Invoke" kann nicht vom Laufzeitmarshaller gemarshallt werden. Diese Argumente werden deshalb als Zeiger übergeben und erfordern zum Ändern möglicherweise unsicheren Code. TaiPanTestConsole

Dannach kann ich die Applikation starten, und es passiert nichts.
Ein Breakpoint in dem Handler wird auch nicht ausgelöst.

Gibt's noch etwas, was ich vergessen habe?

Viele Grüsse,
CF
Joerg Julius
Geschrieben: Tuesday, February 25, 2014 8:32:00 AM
Gruppen: Insider

Beiträge: 30

Guten Tag,

haben Sie die Möglichkeit Ihr Projekt zu zippen und an Entwicklung@lp-software.de zu senden?



Entwicklung | Lenz+Partner GmbH | vwd group

Phone: +49 231 9153-300 | Fax: +49 231 9153-399
entwicklung@lp-software.de | www.LP-software.de | www.vwd.com
Benutzer die diese Diskussion aktuell lesen
Guest

Powered by Yet Another Forum.net version 1.9.1.8 (NET v4.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.

Durch die Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zum Datenschutz finden Sie hier