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