Page 1 of 1

Laseroids

Posted: Mon 08 Nov, 2010 9:33 pm
by Farbe
Ich hab grade das hier gefunden:
http://www.photonlexicon.com/forums/sho ... -Laseroids
Bekommt man das auf der lumax zum laufen? Oder gibts sowas auch für die lumax?

Re: Laseroids

Posted: Mon 08 Nov, 2010 10:03 pm
by decix
Nope.

Re: Laseroids

Posted: Mon 08 Nov, 2010 10:08 pm
by Farbe
hm

Re: Laseroids

Posted: Mon 08 Nov, 2010 11:06 pm
by lucas
Du könntest dir ne DLL programmieren die die Easylase.dll nacharmt und die lumax.dll anspricht.
Sofern der Lasertennis Mann nicht schon auf dieses JMLaser.dll zeug mit Crypto-Foo umgestiegen ist.

Re: Laseroids

Posted: Tue 09 Nov, 2010 7:43 am
by tschosef
hai hai...

soweit ich weis, wollte der laseroids man mal die lumax einbinden..?? wurde mir erzählt... ob er sich bei Tobias schon gemeldet hat, weis ich nicht.

eine "umleit" DLL zu proggen is A) unerwünscht, und B) auch nicht einfacher als gleich die Lumax dll in das programm ein zu binden. der aufwand hält sich in grenzen würde ich mal sagen.

Gruß derweil
Erich

Re: Laseroids

Posted: Tue 09 Nov, 2010 6:06 pm
by Farbe
Welche sprache muss man dafür können?
wäre ja ideal jetzt endlich mal proggen zu lernen
Wenn jemand schon programiren kann und mir helfen will---> bitte pn

Re: Laseroids

Posted: Tue 09 Nov, 2010 6:54 pm
by lucas
C++

Re: Laseroids

Posted: Wed 10 Nov, 2010 11:43 am
by zoof
Gut zu sehen das es intresse gibt in Laseroids :-)

I can support the addition of lumax in the software. I just need some help with the programming effort to safe some time.

Re: Laseroids

Posted: Wed 10 Nov, 2010 12:49 pm
by tschosef
Hello,

no problem.... but the best way is:

1) you check the dll description and also the Example

here is the Description and the example
http://www.lumax.de/dll.html

Code: Select all

typedef struct
 {
  unsigned short Ch1, Ch2, Ch3, Ch4, Ch5, Ch6, Ch7, Ch8, TTL;
 } TLumax_Point;

TLumax_Point Lumax_Points[4000];

typedef int __stdcall (*tLumax_SendFrame)(int, TLumax_Point *, int, int, int, int *);
typedef int __stdcall (*tLumax_StopFrame)(int);
typedef int __stdcall (*tLumax_WaitForBuffer)(int, int, int *, int *);
typedef int __stdcall (*tLumax_GetPhysicalDevices)();
typedef int __stdcall (*tLumax_OpenDevice)(int, int);
typedef int __stdcall (*tLumax_CloseDevice)(int);

tLumax_SendFrame fLumax_SendFrame;
tLumax_StopFrame fLumax_StopFrame;
tLumax_WaitForBuffer fLumax_WaitForBuffer;
tLumax_GetPhysicalDevices fLumax_GetPhysicalDevices;
tLumax_OpenDevice fLumax_OpenDevice;
tLumax_CloseDevice fLumax_CloseDevice;

void main(void)
 {
  int i, j, PointCounter, LumaxHandle, TimeToWait, BufferChanged;
  HINSTANCE DllHandle;

  DllHandle = LoadLibrary("lumax.dll"); // open DLL
  if (DllHandle != NULL)
   { // DLL successfully opened -> get functions
    fLumax_SendFrame = (tLumax_SendFrame)GetProcAddress(DllHandle, "Lumax_SendFrame");
    fLumax_StopFrame = (tLumax_StopFrame)GetProcAddress(DllHandle, "Lumax_StopFrame");
    fLumax_WaitForBuffer = (tLumax_WaitForBuffer)GetProcAddress(DllHandle, "Lumax_WaitForBuffer");
    fLumax_GetPhysicalDevices = (tLumax_GetPhysicalDevices)GetProcAddress(DllHandle, "Lumax_GetPhysicalDevices");
    fLumax_OpenDevice = (tLumax_OpenDevice)GetProcAddress(DllHandle, "Lumax_OpenDevice");
    fLumax_CloseDevice = (tLumax_CloseDevice)GetProcAddress(DllHandle, "Lumax_CloseDevice");
    if (   (fLumax_SendFrame != NULL)
        && (fLumax_StopFrame != NULL)
        && (fLumax_WaitForBuffer != NULL)
        && (fLumax_GetPhysicalDevices != NULL)
        && (fLumax_OpenDevice != NULL)
        && (fLumax_CloseDevice != NULL))
     { // now we have all functions
      i = fLumax_GetPhysicalDevices(); // get number of connected Minilumax devices
      if (i > 0)
       { // there's at least 1 Minilumax device
        LumaxHandle = fLumax_OpenDevice(1, 0); // open the first available Minilumax card
        if (LumaxHandle != 0)
         { // card successfully opened
          // now, prepare the output buffer (draw 3 lines colored R/G/B)
          PointCounter = 0;
          for (i = 0; i < 3; i++) // loop for colors
           {
            for (j = 0; j < 100; j++) // each line consists of 100 points
             {
              Lumax_Points[PointCounter].Ch1 = j * 600;    // x position
              Lumax_Points[PointCounter].Ch2 = i * 10000;  // y position
              Lumax_Points[PointCounter].Ch3 = (i == 0) ? 65535 : 0; // red
              Lumax_Points[PointCounter].Ch4 = (i == 1) ? 65535 : 0; // green
              Lumax_Points[PointCounter].Ch5 = (i == 2) ? 65535 : 0; // blue
              PointCounter = PointCounter + 1;
             }
           }

          // before we can send the frame to the Minilumax card, we have to ask if the buffer is free
          do
           {
            // we could do something useful here, like calculation of new frame data
            // ...
            // ...
            // ...
            fLumax_WaitForBuffer(LumaxHandle, 0, &TimeToWait, &BufferChanged);
           }
          while (BufferChanged == 0); // repeat loop until the buffer is free
          fLumax_SendFrame(LumaxHandle, Lumax_Points, PointCounter, 10000, 0, 0); // send frame
          Sleep(5000); // wait 5 seconds
          fLumax_StopFrame(LumaxHandle); // stop laser output
          fLumax_CloseDevice(LumaxHandle); // close Minilumax device
         }
       }
     }
   }
 }
2) you tell me your questions, and i will help.

greez
Erich

Re: Laseroids

Posted: Mon 22 Nov, 2010 1:43 am
by Farbe
ich hab mich jetzt ein wenig damit befasst und rausgefunden das ich wohl nie Programieren lernen werde.
What about zoof already done more?

Re: Laseroids

Posted: Mon 22 Nov, 2010 6:17 am
by tschosef
das ich wohl nie Programieren lernen werde
sieht aber schlimmer aus als es ist... grins....

wobei.. ich kann eigentlich auch nicht sooo viel.... manch sachen sind auch mir ein räzel