Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Unterstützung bei der Telegrammfindung
#1
Hallo Freunde,

ich habe die spezifischen Telegramme jetzt soweit ausgelagert.
Hat jemand Lust zu den anderen Autos die Datein zu bauen?

Aktuell unterscheide ich nur zwischen e46 und e39/e38/e53.
Sollten sich die Telegramme von e39/e38 und e53 unterscheiden, kann eine neue Klasse angelegt werden.

Code:
           if (Enum.TryParse(aTempstring, true, out aCarModel))
           {
               switch (aCarModel)
               {
                   case eCarModel.e38:
                   case eCarModel.e39:
                   case eCarModel.e53:
                       mCarModel = new BMWe39();
                       break;
                   case eCarModel.e46:
                       mCarModel = new BMWe46();
                       break;
               }
               mLogList.Add(new LogEventArgs(@"Created Instance of " + mCarModel, eLogLvl.eINFO2, aSenderInfo));
           }

So schaut das Interface aus:

Code:
using System.Collections.Generic;
using HelgeInterface_DataModel.Job;

namespace HelgeInterface_DataModel.Interface
{
   public interface iCarModel
   {
       List<iJob> LightShow(int tEnableTimeFactor);
       List<iJob> CollapseMirrors();
       List<iJob> ExpandMirrors();
       List<iJob> CloseCar();
       List<iJob> OpenCar();
   }
}
Und so die Datei Klasse e39:
Code:
using System;
using System.Collections.Generic;
using HelgeInterface_DataModel.Interface;
using HelgeInterface_DataModel.Job;

namespace HelgeInterface_DataModel.CarModel
{
   public class BMWe39 : iCarModel
   {
       public List<iJob> LightShow(int tEnableTimeFactor)
       {
           List<iJob> aJobList = new List<iJob>();
           List<Byte> aData = new List<byte>();
           //SL L R BLK LR NSW L R
           aData.Add(0x0C);
           aData.Add(0x00);
           aData.Add(0x00);
           aData.Add(0x04);
           aData.Add(0x00);
           aData.Add(0x00);
           aData.Add(0x45);
           aData.Add(0x60);
           aData.Add(0x40);
           aData.Add(0x00);
           aData.Add(0xE5);
           aData.Add(0xFF);
           aData.Add(0x00);

           for (int i = 1; i <= tEnableTimeFactor; i++)
           {
               if (i > 1)
                   aJobList.Add(new JobWait("Wait for Light on TimeOut", 19000)); //Wenn länger als 20s an sein soll, muss die nach Faktor+20s neu gesendet werden
               aJobList.Add(new JobSendMessage(new IBusMessage(eIbus.DIS, eIbus.LCM, aData, "Light On: SL L+R, BLK L+R NSW L+R")));
           }
           return aJobList;
       }


       public List<iJob> CollapseMirrors()
       {
           List<iJob> aJobList = new List<iJob>();

           aJobList.Add(new JobWait("CollapseMirrors", 200));
           List<Byte> aData = new List<byte>();
           aData.Add(0x0C);
           aData.Add(0x01); //Mirror left
           aData.Add(0x31);
           aData.Add(0x01);
           aJobList.Add(new JobSendMessage(new IBusMessage(eIbus.DIS, eIbus.GEN, aData, "Collapse mirror left")));
           
           aJobList.Add(new JobWait("Wait for Left Mirror to Collapse", 800));

           aData = new List<byte>();
           aData.Add(0x0C);
           aData.Add(0x02); //Mirror right
           aData.Add(0x31);
           aData.Add(0x01);
           aJobList.Add(new JobSendMessage(new IBusMessage(eIbus.DIS, eIbus.GEN, aData, "Collapse mirror right")));

           return aJobList;
       }

       public List<iJob> ExpandMirrors()
       {
           List<iJob> aJobList = new List<iJob>();

           aJobList.Add(new JobWait("ExpandMirrors", 200));
           List<Byte> aData = new List<byte>();
           aData.Add(0x0C);
           aData.Add(0x01); //Mirror left
           aData.Add(0x30);
           aData.Add(0x01);
           aJobList.Add(new JobSendMessage(new IBusMessage(eIbus.DIS, eIbus.GEN, aData, "Expand mirror left")));

           aJobList.Add(new JobWait("Wait for Left Mirror to Expand", 800));

           aData = new List<byte>();
           aData.Add(0x0C);
           aData.Add(0x02); //Mirror right
           aData.Add(0x30);
           aData.Add(0x01);
           aJobList.Add(new JobSendMessage(new IBusMessage(eIbus.DIS, eIbus.GEN, aData, "Expand mirror right")));

           return aJobList;
       }


       public List<iJob> CloseCar()
       {
           throw new NotImplementedException();
       }

       public List<iJob> OpenCar()
       {
           throw new NotImplementedException();
       }
   }
}
Jetzt brauch ich quasi die Pendants von den anderen Autos.

Vielleicht kann ja jemand unterstützen?

Gruß
Zitieren


Nachrichten in diesem Thema
Unterstützung bei der Telegrammfindung - von Derhelge - 27.08.2015, 09:52

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste