Dmx senden mit dem easylase VB vorbild

Allgemeine Fragen zu Lasershow Software und Show-Programmierung.
Post Reply
User avatar
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

Post by lasafreak » Tue 07 Oct, 2008 10:58 pm

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

User avatar
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:

Post by guido » Wed 08 Oct, 2008 6:03 am

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.

User avatar
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:

Post by tschosef » Wed 08 Oct, 2008 9:11 am

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
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

User avatar
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:

Post by lasafreak » Wed 08 Oct, 2008 11:14 am

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 :)

User avatar
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:

Post by tschosef » Wed 08 Oct, 2008 12:24 pm

halli hallo.....


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))
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:

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

User avatar
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:

Post by lasafreak » Wed 08 Oct, 2008 6:53 pm

hallo,

erstmal danke für die antwort, viel weiter bin ich aber noch nicht gekommen :oops:

ich verstehe den teil des scripts nicht ganz ^^ es müste doch möglich sein per knopfdruck einfach einen wert zu einem kanal zu schieben oder muss das so kompliziert :/

was muss mann eigeltich mit dem Result machen ?

User avatar
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:

Post by tschosef » Thu 09 Oct, 2008 7:52 am

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:

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
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
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

User avatar
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:

Post by lasafreak » Thu 09 Oct, 2008 3:44 pm

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

User avatar
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:

Post by tschosef » Fri 10 Oct, 2008 6:10 am

hai hai...
Es muss
Call EasyLaseDMXOut(EasyLaseGetCardNum,250,1,1)
oder

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

User avatar
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:

Post by lasafreak » Sat 11 Oct, 2008 7:28 pm

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

User avatar
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

Post by gento » Sat 11 Oct, 2008 8:17 pm

jemand noch eine lösung für das ?


Ja : Nimm IRQ oder auch Timer genannt.

Gento
Image

User avatar
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:

Post by lasafreak » Sat 11 Oct, 2008 9:06 pm

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

User avatar
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:

Post by tschosef » Sun 12 Oct, 2008 12:18 pm

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
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

Post Reply

Return to “Software & Programmierung”

Who is online

Users browsing this forum: Bing [Bot] and 1 guest