Handübergabe an Equilator

    • Foxy79
      Foxy79
      Bronze
      Dabei seit: 14.06.2006 Beiträge: 1.773
      Mit dem Elephant ist es ja möglich eine Hand an den Equilator zu übergeben, welches auch ein sehr schönes Feature ist!
      Kann man den Equilator auch von "fremden" Programmen aus eine Hand übergeben?
      Wenn ja, wie kann ich den Equilator "ansprechen"?

      Ist nicht unbedingt eine Elephant Frage, aber ich denke die Entwickler schauen hier eher rein.
  • 8 Antworten
    • mrk1988
      mrk1988
      Bronze
      Dabei seit: 04.02.2007 Beiträge: 13.337
      Hallo Foxy79,

      mir ist leider keine Möglichkeit bekannt den Equilator über externe Programme anzusprechen.
    • Foxy79
      Foxy79
      Bronze
      Dabei seit: 14.06.2006 Beiträge: 1.773
      Möglich ist das ja, da der Elephant das ja macht.
      Die Frage ist nur, ob ihr die Schnittstelle "veröffentlicht"?
      Wer hat denn den Equilator programmiert? Könntest du den mal ganz lieb fragen? =)
    • mrk1988
      mrk1988
      Bronze
      Dabei seit: 04.02.2007 Beiträge: 13.337
      Für den Equilator ist ebenfalls die IT bei PokerStrategy.com zuständig.

      Natürlich kann ich mal nachfragen ;)
    • Foxy79
      Foxy79
      Bronze
      Dabei seit: 14.06.2006 Beiträge: 1.773
      Ja, das wäre nett ! :D
    • PS.Markus
      PS.Markus
      Bronze
      Dabei seit: 12.05.2009 Beiträge: 455
      Moin,

      leider wurde die Kommunikation damals per .NET Remoting (Gott allein weiss wieso...) geloest.

      Einzige Moeglichkeit das anzuprogrammieren ist ueber eine .NET Applikation und entsprechende .NET Marshal-Objekte (ev. ging's auch native).

      Falls Dich das interessiert kann ich noch ein paar Details dazu posten.

      Cheers,
      M.
    • Foxy79
      Foxy79
      Bronze
      Dabei seit: 14.06.2006 Beiträge: 1.773
      Wäre nett wenn du das machen könntest.
      Ein Beispielcode wäre natürlich ein Traum :D
    • PS.Markus
      PS.Markus
      Bronze
      Dabei seit: 12.05.2009 Beiträge: 455
      Moin,

      Du brauchst erstmal eine Proxy-Klasse. Im Legacy-Code wird diese hier verwandt (bitte keine Diskussion ueber die Sinnhaftigkeit des Codes. Das ist uns bewusst.):

      code:
      using System;
      
      namespace EquilatorNetwork
      {
           public class EquilatorInteraction : MarshalByRefObject
           {
               public delegate string RetrieveSetupDelegate(string query);
               public static RetrieveSetupDelegate RetrieveSetup = null;
      
               public EquilatorInteraction()
               {
               }
      
               public string DoSetup(string query)
               {
                   try
                   {
                       if (RetrieveSetup != null)
                       {
                           return RetrieveSetup(query);
                       }
                   }
                   catch (Exception ex)
                   {
                   }
      
                   return "ERROR";
                   }
           }
      }
      


      und so sprichst Du's an:
      code:
      EquilatorNetwork.EquilatorInteraction interaction =
         (EquilatorNetwork.EquilatorInteraction)Activator.GetObject(
            typeof(EquilatorNetwork.EquilatorInteraction), 
            "tcp://127.0.0.1:9933/EquilatorIntegration");
      
      if (interaction == null)
      {
         Console.WriteLine("Unable to get remote referance");
      }
      else
      {
         string result = interaction.DoSetup(equilatorString);
      }
      


      Beispiel equilatorString:
      code:
      5cqs8has6d|MP3@ahjc@@MP1@6sad@@


      Hier wird das Board bis zum River, sowie die HCs von MP1 und MP3 gesetzt. Falls z.B. nur der Flop bekannt ist, werden Turn und River Karten einfach ausgelassen.

      Cheers,
      M.
    • Foxy79
      Foxy79
      Bronze
      Dabei seit: 14.06.2006 Beiträge: 1.773
      Vielen Danke!! Dann werd ich erstmal ein bischen rumprobieren :D