Dmx senden mit dem easylase VB vorbild
- lasafreak
- Posts: 452
- Joined: Fri 24 Dec, 2004 12:32 pm
- Do you already have Laser-Equipment?: Lexel 88A, 100mW 473, 150mW 632, 150mW 532, 100mW 405,
DT40pro, M6008, Easylase USB, Phoenix pro, mamba black.
Diy Powermeter, Diy dac. - Location: Purmerend NL / Aurich DE
- Contact:
Dmx senden mit dem easylase VB vorbild
hallo leute,
Der titel erklärt denke ich das meiste.
Ich begreife nicht ganz wie ich in vb dmx ausgeben muss (zb kanal 1 auf wert 30 stellen /und eventuel parralel kanal 2 zb auf 12(ich hoffe ich sage das nun richtig))
Das ganze muss ja mit easylasewritedmx() und mit EasyLaseDMXSendData() schätze ich
nun nemen wir mal an ich habe nen button
wenn geklickt will ich die oben genanten werte losschicken.
Wie um alle welt muss ich das nun machen :S
mfg hendrik
Der titel erklärt denke ich das meiste.
Ich begreife nicht ganz wie ich in vb dmx ausgeben muss (zb kanal 1 auf wert 30 stellen /und eventuel parralel kanal 2 zb auf 12(ich hoffe ich sage das nun richtig))
Das ganze muss ja mit easylasewritedmx() und mit EasyLaseDMXSendData() schätze ich
nun nemen wir mal an ich habe nen button
wenn geklickt will ich die oben genanten werte losschicken.
Wie um alle welt muss ich das nun machen :S
mfg hendrik
- guido
- Posts: 6452
- Joined: Thu 20 Dec, 2001 12:00 pm
- Do you already have Laser-Equipment?: Easylase, Netlase, Laser von 1..15W.
Entwickler von Dynamics + Mamba X4 .
Lasershow Hard / Software . - Location: 32469 Petershagen
- Contact:
Hallo,
ein bisschen mehr ist es.
Zuerst mit Verbinden mit EasylaseGetCardNumber,
da muss ein Wert >0 zurückkommen.
Dann DMX senden und es sollte gehen.
ein bisschen mehr ist es.
Zuerst mit Verbinden mit EasylaseGetCardNumber,
da muss ein Wert >0 zurückkommen.
Dann DMX senden und es sollte gehen.
Gruss
Guido
www.mylaserpage.de Dynamics Lasershowsoftware Dynamics Phototour
- Gewerbliches Mitglied -
Guido
www.mylaserpage.de Dynamics Lasershowsoftware Dynamics Phototour
- Gewerbliches Mitglied -
- tschosef
- Posts: 7955
- Joined: Wed 19 Nov, 2003 10:27 am
- Do you already have Laser-Equipment?: 7 Projektoren, Tarm Two und DS 2000
7 x ShowNET in einem Gehäuse incl Switch
zwei alte Eigenbaukisten liegen noch im Keller rum. - Location: Steinberg
- Contact:
Halli hallo...
also, ich sende ja auch mit vb DMX an EasyLase... hab das alles nicht auswendig im kopf. Notfalls, wenn Bedarf besteht, dann muss ich mir mal meinen eigenen Code rein ziehen, und kann Dir dann bescheid geben.
Frage: Geht Laserausgabe schon? dann sollte es in der Tat nicht mehr sooo viel sein.
gruß
Erich
also, ich sende ja auch mit vb DMX an EasyLase... hab das alles nicht auswendig im kopf. Notfalls, wenn Bedarf besteht, dann muss ich mir mal meinen eigenen Code rein ziehen, und kann Dir dann bescheid geben.
Frage: Geht Laserausgabe schon? dann sollte es in der Tat nicht mehr sooo viel sein.
gruß
Erich
Schreibe nie etwas, was Du deinem Gegenüber nicht auch vor anderen Leuten ins Gesicht sagen würdest
Bin der Programmierer von Showeditor und HE-Laserscan
www.HE-Laserscan.de
Lasersoftware + Laserhardware
Bin der Programmierer von Showeditor und HE-Laserscan
www.HE-Laserscan.de
Lasersoftware + Laserhardware
- lasafreak
- Posts: 452
- Joined: Fri 24 Dec, 2004 12:32 pm
- Do you already have Laser-Equipment?: Lexel 88A, 100mW 473, 150mW 632, 150mW 532, 100mW 405,
DT40pro, M6008, Easylase USB, Phoenix pro, mamba black.
Diy Powermeter, Diy dac. - Location: Purmerend NL / Aurich DE
- Contact:
laserausgabe geht.
es ist ja dieses kleine vorbild das man bei den treibern dazu bekommt.
Das man die cardnummer auch mitgeben muss habe ich schon begriffen nur was für einen wert muss man mitschicken um einen kanal einen bestimten wert zu geben?
easylasewritedmx(easylasegetcardnummer, ???wert???)
müste doch irgendwie so sein ?
wäre sehr nett wenn du mal nach schauen kannst Erich
Ich bin auch bereit das ganze nach dem bauen zu veröfentlichen damit das ganze nicht noch mal gefragt wird
es ist ja dieses kleine vorbild das man bei den treibern dazu bekommt.
Das man die cardnummer auch mitgeben muss habe ich schon begriffen nur was für einen wert muss man mitschicken um einen kanal einen bestimten wert zu geben?
easylasewritedmx(easylasegetcardnummer, ???wert???)
müste doch irgendwie so sein ?
wäre sehr nett wenn du mal nach schauen kannst Erich

Ich bin auch bereit das ganze nach dem bauen zu veröfentlichen damit das ganze nicht noch mal gefragt wird

- tschosef
- Posts: 7955
- Joined: Wed 19 Nov, 2003 10:27 am
- Do you already have Laser-Equipment?: 7 Projektoren, Tarm Two und DS 2000
7 x ShowNET in einem Gehäuse incl Switch
zwei alte Eigenbaukisten liegen noch im Keller rum. - Location: Steinberg
- Contact:
halli hallo.....
also, ich machs so:
wobei:
DMXPort(0,0) ist ein String ist...
DMXChannelCount ist die zahl der aktieven DMX kanäle
Result, da kommt das ergebniss rein (typ Long Variable)
DMXPort(1,0) ist die Kartennummer (können ja mehrere sein, geht von 0 bis kartenzahl -1 !!! Wichtig!!!)
EasyLaseDMXSendData(0-512) ist ein Array (vom Typ Byte, es wird quasi nur der Zeiger drauf übergeben)
jou, das wars schon.
Die deklaration heist:
hoffe geholfen zu haben
gruß
Erich
also, ich machs so:
Code: Select all
ElseIf DMXPort(0, 0) = "EasyLase" Then
For z = 0 To DMXChannelCount - 1
EasyLaseDMXSendData(z) = DMXsoll(z + 1)
DMXIst(z + 1) = DMXsoll(z + 1)
Next
Result = EasyLaseWriteDMX(DMXPort(1, 0), EasyLaseDMXSendData(0))
DMXPort(0,0) ist ein String ist...
DMXChannelCount ist die zahl der aktieven DMX kanäle
Result, da kommt das ergebniss rein (typ Long Variable)
DMXPort(1,0) ist die Kartennummer (können ja mehrere sein, geht von 0 bis kartenzahl -1 !!! Wichtig!!!)
EasyLaseDMXSendData(0-512) ist ein Array (vom Typ Byte, es wird quasi nur der Zeiger drauf übergeben)
jou, das wars schon.
Die deklaration heist:
Code: Select all
Declare Function EasyLaseWriteDMX Lib "EasyLase.dll" (ByRef CardNumber As Long, ByRef Datapointer As Byte) As Long
hoffe geholfen zu haben
gruß
Erich
Schreibe nie etwas, was Du deinem Gegenüber nicht auch vor anderen Leuten ins Gesicht sagen würdest
Bin der Programmierer von Showeditor und HE-Laserscan
www.HE-Laserscan.de
Lasersoftware + Laserhardware
Bin der Programmierer von Showeditor und HE-Laserscan
www.HE-Laserscan.de
Lasersoftware + Laserhardware
- tschosef
- Posts: 7955
- Joined: Wed 19 Nov, 2003 10:27 am
- Do you already have Laser-Equipment?: 7 Projektoren, Tarm Two und DS 2000
7 x ShowNET in einem Gehäuse incl Switch
zwei alte Eigenbaukisten liegen noch im Keller rum. - Location: Steinberg
- Contact:
halli hallo...
also, wenn ich es richtig im kopf hab, gibts bei der EasyLase 2 varianten dmx zu senden.
entwedern einen ganzen block (alle 512 kanäle auf einmal)... das verwende ich... man schreib sich die werte alle in ein Array.. und übergibt quasi nur den Zeiger auf das Array an den Aufruf.
Result is nur die "Antwort" der Dll... je nach dem ob alles okay oder n fehler drinn war, ändert sich der wert.. ich glaub (müsste nachlesen) ne NULL sagt... OK... kein Fehler
Die andere Variante ist die, "nur bestimmte kanäle" an die EasyLase zu schicken. dazu gibts nen extra dll aufruf.
das is dann dieser Aufruf:
Den hab ich aber noch nie ausprobiert. weis nicht ob und wie der mit VB klappt.
sollte wohl so sein:
DMXBuffer is wohl wieder ein Zeiger auf ein Array mit den Wert(en) der Kanäle
Baseaddress ist wohl der erste Kanal, ab dem der/die Werte rein geschrieben werden sollen
ChannelCount ist wohl die Zahl der Werte die geschrieben werden sollen.
Also vermute ich zB folgendes.
Wert(1) = 100
Wert(2) = 200
Wert(3) = 29
Kartennummer=0
EasyLaseDMXOut(KartenNummer,Wert(1),20,2)
Würde folgendes machen
An Karte 1 (nummer null) wird der kanal 20 auf 100 gestellt, und der Kanal 21 auf 200
OK?
Wie gesagt, dies hab ich noch nie Ausprobiert!!!!!
ich schreib IMMER gleich 512 Kanäle, auch wenn sich nur einer geändert hat. GRUND HIERFÜR: Bei USB1.1 is es so, dass das Herstellen einer Übertragung eigentlich die meiste Zeit in Anspruch nimmt. ob du dann 1 byte oder 512 bytes überträgst, is beinahe egal...
Daher macht dies kaum einen Unterschied.
Im gegenteil.. es würde wohl mehr zeit kosten ständig immer wieder einzele DMX Werte zu senden
bei HE.LS mach ich es so, dass ich IMMER nach dem übertragen eines Frames die DMX Werte übertrage (sofern sich überhaupt was geänder hat)... denn dann is ja eh kurz zeit, bis der nächste frame kommt
gruß derweil
Erich
also, wenn ich es richtig im kopf hab, gibts bei der EasyLase 2 varianten dmx zu senden.
entwedern einen ganzen block (alle 512 kanäle auf einmal)... das verwende ich... man schreib sich die werte alle in ein Array.. und übergibt quasi nur den Zeiger auf das Array an den Aufruf.
Result is nur die "Antwort" der Dll... je nach dem ob alles okay oder n fehler drinn war, ändert sich der wert.. ich glaub (müsste nachlesen) ne NULL sagt... OK... kein Fehler
Die andere Variante ist die, "nur bestimmte kanäle" an die EasyLase zu schicken. dazu gibts nen extra dll aufruf.
das is dann dieser Aufruf:
Code: Select all
Declare Function EasyLaseDMXOut Lib "EasyLase.dll" (ByRef CardNumber As Long, ByRef DmxBuffer As Byte, ByVal Baseaddress As Long, ByVal ChannelCount As Long) As Boolean
sollte wohl so sein:
DMXBuffer is wohl wieder ein Zeiger auf ein Array mit den Wert(en) der Kanäle
Baseaddress ist wohl der erste Kanal, ab dem der/die Werte rein geschrieben werden sollen
ChannelCount ist wohl die Zahl der Werte die geschrieben werden sollen.
Also vermute ich zB folgendes.
Wert(1) = 100
Wert(2) = 200
Wert(3) = 29
Kartennummer=0
EasyLaseDMXOut(KartenNummer,Wert(1),20,2)
Würde folgendes machen
An Karte 1 (nummer null) wird der kanal 20 auf 100 gestellt, und der Kanal 21 auf 200
OK?
Wie gesagt, dies hab ich noch nie Ausprobiert!!!!!
ich schreib IMMER gleich 512 Kanäle, auch wenn sich nur einer geändert hat. GRUND HIERFÜR: Bei USB1.1 is es so, dass das Herstellen einer Übertragung eigentlich die meiste Zeit in Anspruch nimmt. ob du dann 1 byte oder 512 bytes überträgst, is beinahe egal...
Daher macht dies kaum einen Unterschied.
Im gegenteil.. es würde wohl mehr zeit kosten ständig immer wieder einzele DMX Werte zu senden
bei HE.LS mach ich es so, dass ich IMMER nach dem übertragen eines Frames die DMX Werte übertrage (sofern sich überhaupt was geänder hat)... denn dann is ja eh kurz zeit, bis der nächste frame kommt
gruß derweil
Erich
Schreibe nie etwas, was Du deinem Gegenüber nicht auch vor anderen Leuten ins Gesicht sagen würdest
Bin der Programmierer von Showeditor und HE-Laserscan
www.HE-Laserscan.de
Lasersoftware + Laserhardware
Bin der Programmierer von Showeditor und HE-Laserscan
www.HE-Laserscan.de
Lasersoftware + Laserhardware
- lasafreak
- Posts: 452
- Joined: Fri 24 Dec, 2004 12:32 pm
- Do you already have Laser-Equipment?: Lexel 88A, 100mW 473, 150mW 632, 150mW 532, 100mW 405,
DT40pro, M6008, Easylase USB, Phoenix pro, mamba black.
Diy Powermeter, Diy dac. - Location: Purmerend NL / Aurich DE
- Contact:
vielend dank für die super erklärung, wenn ich gleich zuhause bin werde ich mal ein wenig damit spielen.
Bei mir macht es nicht viel aus ob das übertragen schnell oder langsam ist.
Mein plan war eine RGB + spiegelkugel + beamerschirm ansteuerung für mein zimmer.
Da ich sowiso eine easylase habe und ich gerade 8 selbstbau dmx dimmer und steppersteurungen rumfliegen hatte.
ich melde mich noch ob das geklapt hat und werde dan hier den code mit erklärung veröfentlichen.
mfg hendrik
also
ich habe mal probiert und stosse nun gegen ein kleines problem beim programmieren
sobald ich das hier eingebe zwischen einem button
EasyLaseDMXOut(EasyLaseGetCardNum,250,1,1)
dann gibts nen fehler:
Compile error:
Expected: =
(ich habe glaube ich zu lange kein Vb mehr programmiert xD)
edit2:
Fehler behoben
Es muss
Call EasyLaseDMXOut(EasyLaseGetCardNum,250,1,1)
sein
danke für die hilfe
Bei mir macht es nicht viel aus ob das übertragen schnell oder langsam ist.
Mein plan war eine RGB + spiegelkugel + beamerschirm ansteuerung für mein zimmer.
Da ich sowiso eine easylase habe und ich gerade 8 selbstbau dmx dimmer und steppersteurungen rumfliegen hatte.
ich melde mich noch ob das geklapt hat und werde dan hier den code mit erklärung veröfentlichen.
mfg hendrik
also
ich habe mal probiert und stosse nun gegen ein kleines problem beim programmieren
sobald ich das hier eingebe zwischen einem button
EasyLaseDMXOut(EasyLaseGetCardNum,250,1,1)
dann gibts nen fehler:
Compile error:
Expected: =
(ich habe glaube ich zu lange kein Vb mehr programmiert xD)
edit2:
Fehler behoben
Es muss
Call EasyLaseDMXOut(EasyLaseGetCardNum,250,1,1)
sein

danke für die hilfe
- tschosef
- Posts: 7955
- Joined: Wed 19 Nov, 2003 10:27 am
- Do you already have Laser-Equipment?: 7 Projektoren, Tarm Two und DS 2000
7 x ShowNET in einem Gehäuse incl Switch
zwei alte Eigenbaukisten liegen noch im Keller rum. - Location: Steinberg
- Contact:
hai hai...
Result = EasyLaseDMXOut(.....)
weil der aufruf nen wert zurück sendet. (obs geklappt hat oder nicht)
gruß
Erich
oderEs muss
Call EasyLaseDMXOut(EasyLaseGetCardNum,250,1,1)
Result = EasyLaseDMXOut(.....)
weil der aufruf nen wert zurück sendet. (obs geklappt hat oder nicht)
gruß
Erich
Schreibe nie etwas, was Du deinem Gegenüber nicht auch vor anderen Leuten ins Gesicht sagen würdest
Bin der Programmierer von Showeditor und HE-Laserscan
www.HE-Laserscan.de
Lasersoftware + Laserhardware
Bin der Programmierer von Showeditor und HE-Laserscan
www.HE-Laserscan.de
Lasersoftware + Laserhardware
- lasafreak
- Posts: 452
- Joined: Fri 24 Dec, 2004 12:32 pm
- Do you already have Laser-Equipment?: Lexel 88A, 100mW 473, 150mW 632, 150mW 532, 100mW 405,
DT40pro, M6008, Easylase USB, Phoenix pro, mamba black.
Diy Powermeter, Diy dac. - Location: Purmerend NL / Aurich DE
- Contact:
halli hallo,
hat jetzt eigentlich nicht mehr total mit dem thema zu tun
aber eine vb6 frage habsch noch:
und zwar will ich nen kanal ein und ausfaden lassen :
a= 0
do while A < 255
a = a + 1
call easylase etc etc
loop
do while a > 0
a = a - 1
call easylase etc etc
loop
würde ja in theorie gehen
problem ist das das ganze dan so schnell passiert das mans nicht wahrnimt.
nun habe ich es versucht mit dem folgenden stück code :
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
und dan in die loops jeweils nen 'Sleep 200' eingebaut
problem ist das die software dan mehr oder weniger zu erfrieren scheint.
jemand noch eine lösung für das ?
mfg hendrik
hat jetzt eigentlich nicht mehr total mit dem thema zu tun
aber eine vb6 frage habsch noch:
und zwar will ich nen kanal ein und ausfaden lassen :
a= 0
do while A < 255
a = a + 1
call easylase etc etc
loop
do while a > 0
a = a - 1
call easylase etc etc
loop
würde ja in theorie gehen
problem ist das das ganze dan so schnell passiert das mans nicht wahrnimt.
nun habe ich es versucht mit dem folgenden stück code :
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
und dan in die loops jeweils nen 'Sleep 200' eingebaut
problem ist das die software dan mehr oder weniger zu erfrieren scheint.
jemand noch eine lösung für das ?
mfg hendrik
- gento
- Posts: 3973
- Joined: Fri 17 Nov, 2000 12:00 pm
- Do you already have Laser-Equipment?: Apollo 4a + 4b , Turbotrack 2 , Minisax +++ G120DT +++ G138DT +++
Raytrack 40 ,CT 6210 , CT 6800 , K12
Pangolin , LDS Dynamics ,Phoenix Premium , LDS 2010 ,LDS 2008 , HE
Gas RGB 2W , 800 mW , ALC60
RGB >1W +++ - Location: D / NRW / Hamm
- lasafreak
- Posts: 452
- Joined: Fri 24 Dec, 2004 12:32 pm
- Do you already have Laser-Equipment?: Lexel 88A, 100mW 473, 150mW 632, 150mW 532, 100mW 405,
DT40pro, M6008, Easylase USB, Phoenix pro, mamba black.
Diy Powermeter, Diy dac. - Location: Purmerend NL / Aurich DE
- Contact:
danke gento das war mal die idee schlägt hin xD
nur wil das was ich gerade gebastelt habe nicht so ganz laufen :/
-------------------------------------------
Private Sub Command5_Click()
R = 0
G = 0
Z = 0
If Option9.Value = True Then
FadingRed.Enabled = True
Call FadingRed_Timer
End If
End Sub
Private Sub FadingRed_Timer()
If Option9.Value = True Then
R = R + 1
Call EasyLaseDMXOut(EasyLaseCardNummer, R, 1, 1)
Label7.Caption = R
If R = 255 Then
Fadingred2.Enabled = True
Call Fadingred2_Timer
End If
Else
Call Command5_Click
End If
End Sub
--------------------------
Label7 ist erst leer und springt auf 1 (also der button löpt) nur bleibt das ganze halt auf 1 anstatt weiter zu zälen. wenn ich das ganze in nem anderen document teste zält das label schön weiter.
der timer steht auf 100 und ist beim laden des forms disabled
der name des timers ist FadingRed
nur wil das was ich gerade gebastelt habe nicht so ganz laufen :/
-------------------------------------------
Private Sub Command5_Click()
R = 0
G = 0
Z = 0
If Option9.Value = True Then
FadingRed.Enabled = True
Call FadingRed_Timer
End If
End Sub
Private Sub FadingRed_Timer()
If Option9.Value = True Then
R = R + 1
Call EasyLaseDMXOut(EasyLaseCardNummer, R, 1, 1)
Label7.Caption = R
If R = 255 Then
Fadingred2.Enabled = True
Call Fadingred2_Timer
End If
Else
Call Command5_Click
End If
End Sub
--------------------------
Label7 ist erst leer und springt auf 1 (also der button löpt) nur bleibt das ganze halt auf 1 anstatt weiter zu zälen. wenn ich das ganze in nem anderen document teste zält das label schön weiter.
der timer steht auf 100 und ist beim laden des forms disabled
der name des timers ist FadingRed
- tschosef
- Posts: 7955
- Joined: Wed 19 Nov, 2003 10:27 am
- Do you already have Laser-Equipment?: 7 Projektoren, Tarm Two und DS 2000
7 x ShowNET in einem Gehäuse incl Switch
zwei alte Eigenbaukisten liegen noch im Keller rum. - Location: Steinberg
- Contact:
halli hallo....
guck dir mal den Link an:
http://www.activevb.de/tipps/vb6tipps/tipp0011.html
ich verwende diesen Timer...
hab mir auch eine "Delay" routiene geschrieben.
Delay(ms)
die macht nix anderes als... den timer abfragen, die Delayzeit dazu rechnen, dann einige Doevents (die Software arbeitet also weiter)... und dann wieder Abfragen, ob zeit erreicht worden ist... wenn nicht, läuft die routiene weiter...
geht ganz gut...
gruß
erich
guck dir mal den Link an:
http://www.activevb.de/tipps/vb6tipps/tipp0011.html
ich verwende diesen Timer...
hab mir auch eine "Delay" routiene geschrieben.
Delay(ms)
die macht nix anderes als... den timer abfragen, die Delayzeit dazu rechnen, dann einige Doevents (die Software arbeitet also weiter)... und dann wieder Abfragen, ob zeit erreicht worden ist... wenn nicht, läuft die routiene weiter...
geht ganz gut...
gruß
erich
Schreibe nie etwas, was Du deinem Gegenüber nicht auch vor anderen Leuten ins Gesicht sagen würdest
Bin der Programmierer von Showeditor und HE-Laserscan
www.HE-Laserscan.de
Lasersoftware + Laserhardware
Bin der Programmierer von Showeditor und HE-Laserscan
www.HE-Laserscan.de
Lasersoftware + Laserhardware
Who is online
Users browsing this forum: Bing [Bot] and 1 guest