• 25.04.2024, 12:33
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

HowTo : Multiswitch Script selbst erstellen

Freitag, 29. Juni 2007, 01:57

Hallo zusammen,

Zu Messis Muswi - Multi Switch LED Skript Generator soll hier eine Erklärung folgen, wie das Script genau funktioniert und wie ihr selbst dran arbeitet, um kleine Korrekturen durchzuführen.

Öffnen könnt ihr jedes Script einfach mit dem Windows "Editor".

Das Basisscript.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public AquaComputer.TranslationClasses.multiswitch_Rev141 MultiswitchData;

public string StartScript(AquaComputer.TranslationClasses.multiswitch_Rev141 WriteData,
             ref AquaComputer.TranslationClasses.multiswitch_Rev141 ReadData, 
            AquaComputer.UsbHid.HidControl Usb,
            int UsbAdress)
{
    ScriptFunctions Obj = new ScriptFunctions(Usb, UsbAdress);
      MultiswitchData = WriteData;
      ReadData.ReadLock = true;
      Obj.MuswiSkript(WriteData);
      ReadData.ReadLock = false;
    return("");
}


public class ScriptFunctions
{
      private AquaComputer.UsbHid.HidControl HIDControl;
      private int HIDDeviceNumber = -1;
      private bool Success = false;

      public ScriptFunctions(AquaComputer.UsbHid.HidControl Usb, int UsbAdress)
    {
        HIDControl = Usb;
        HIDDeviceNumber = UsbAdress;
    }

      private void WriteToDevice(
            AquaComputer.TranslationClasses.multiswitch_Rev141 Data, 
            AquaComputer.TranslationClasses.multiswitch_Rev141.TransferTypeRegister TransferType)
      {
            string MultiswitchWriteString = Data.CreateStringFromStructure(TransferType);
            if (HIDControl.ControlBusy == false)
            {
                  HIDControl.HidWriteToDevice(HIDDeviceNumber, MultiswitchWriteString);
            }
      }

      public void MuswiSkript(AquaComputer.TranslationClasses.multiswitch_Rev141 Data)
    {
      int i;
        *BODY*
    }

}//end class


Sieht in jedem Script gleich aus. Der eigentliche Ablauf wird dann für den Platzhalter *BODY* eingefügt. Anhand von ein paar Beispielen möchte ich euch nun erklären, welche Befehle für die Ausgabe sorgen.


Beispiel 1
Die einfachste Funktion : LED An/1sek warten/Aus

Quellcode

1
2
3
4
5
6
7
8
9
10
11
Data.LedPwm[0] = 25;
Data.AmpPwm[0] = 25;
Data.LedPwm[1] = 25;
Data.AmpPwm[1] = 25;
WriteToDevice(Data, AquaComputer.TranslationClasses.multiswitch_Rev141.TransferTypeRegister.OUTPUT);
System.Threading.Thread.Sleep(1000);
Data.LedPwm[0] = 0;
Data.AmpPwm[0] = 0;
Data.LedPwm[1] = 0;
Data.AmpPwm[1] = 0;
WriteToDevice(Data, AquaComputer.TranslationClasses.multiswitch_Rev141.TransferTypeRegister.OUTPUT);


In diesem Script werden die Leistungs und die LED Ausgänge 1&2 eingeschaltet, und nach 1 Sekunde wieder ausgeschaltet. (Wichtig: im Script werden die Ausgänge von 0-7 nummeriert, nicht von 1-8 )

Data.AmpPwm[0] = 25;
"Data.AmpPwm" = Leistungsausgang wird angesteuert.
[0] = Ausgang 0 (entspricht nachher dem 1. Ausgang)
25; = Mit voller Leistung / Am Ende wird dieser Wert einfach wieder auf 0 gesetzt, der Ausgang wird ausgeschaltet….

Data.LedPwm[0] = 25;
"Data.LedPwm" = LEDausgang wird angesteuert.
[0] = Ausgang 0 (entspricht nachher dem 1. Ausgang)
25; = Mit voller Leistung / Am Ende wird dieser Wert einfach wieder auf 0 gesetzt, der Ausgang wird ausgeschaltet….


System.Threading.Thread.Sleep(1000);
Die Zahl in der Klammer gibt an (in Millisekunden 1000ms=1s), wie lang bis zum nächsten Schritt gewartet wird.

WriteToDevice (Data, AquaComputer.TranslationClasses.multiswitch_Rev141.TransferTypeRegister.OUTPUT);
Mit diesem Befehl werden alle Befehle ins Multiswitch geschrieben.

Beispiel 2
Variable Werte an den LEDs 1-4

Quellcode

1
2
3
4
5
Data.LedPwm[0] = 6;
Data.LedPwm[1] = 12;
Data.LedPwm[2] = 18;
Data.LedPwm[3] = 25;
WriteToDevice(Data, AquaComputer.TranslationClasses.multiswitch_Rev141.TransferTypeRegister.OUTPUT);


Im MuSwi Scripteditor könnt ihr für unter "Variabel" auch Ausgabewerte von 0-100 % definieren, diese werden intern umgerechnet für das Script, da das Multiswitch nur Werte von 0-25 akzeptiert.
Dabei entspricht 0 = Aus, und 25 = 100 %, hier im Beispiel werden also die LED Ausgänge 1-4 mit jeweils 6 = 25%; 12 = 50 %; 18 = 75 % und 25 = 100% angesteuert.
ASUS RTX 4090 ROG Strix OC | Intel i9-12900k | Asus ROG Maximus Z690 Formula | G.Skill Trident Z5 RGB 5600 - 32 GB
Seasonic TX 850 | LG Electronics 43UD79-B | Samsung 980 Pro 2TB | Windows 11 Pro x64 | LianLi 343B Pulverbeschichtet | WaKü by Aquacomputer
Sonos Soundbar + Sub | Ultimaker 3 | Canon EOS 6D Mark II

Re: Das Muswi Script - Wie es funktioniert

Freitag, 29. Juni 2007, 01:57

Beispiel 3
LEDs und Ausgänge faden. Zuerst werden die Ausgänge von 0-100% hochgefadet, dann wird 1 Sekunde gewartet, danach faden die Ausgänge wieder von 100%-0.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
for(i=0; i <= 25; i++)
{
Data.LedPwm[0] = (byte)i;
Data.LedPwm[1] = (byte)i;
Data.LedPwm[2] = (byte)i;
Data.LedPwm[3] = (byte)i;
WriteToDevice(Data, AquaComputer.TranslationClasses.multiswitch_Rev141.TransferTypeRegister.OUTPUT);
System.Threading.Thread.Sleep(200);
}
System.Threading.Thread.Sleep(1000);
for(i=0; i <= 25; i++)
{
Data.LedPwm[0] = (byte)(25-i);
Data.LedPwm[1] = (byte)(25-i);
Data.LedPwm[2] = (byte)(25-i);
Data.LedPwm[3] = (byte)(25-i);
WriteToDevice(Data, AquaComputer.TranslationClasses.multiswitch_Rev141.TransferTypeRegister.OUTPUT);
System.Threading.Thread.Sleep(200);
}


for(i=0; i <= 25; i++)
Hier wird eine Schleife gestartet. Zuerst wird die Variable "i" als 0 definiert (i=0); dann wird angeben bis wann die Schleife wiederholt wird, in diesem Fall solang i kleiner als 25 ist oder 25 ist (i <= 25). Mit i++ wird definiert, dass die Schleife bei jedem durchlauf i um 1 erhöhen soll.

Wenn man z.B. von 10-20 Faden will, so gibt man hier einfach an for(i=10; i <= 20; i++), i wird als 10 definiert, und wiederholt, solang i kleiner oder gleich 20 ist&#8230;


Data.LedPwm[0] = (byte)i;
Gibt die Ausgänge an die gefadet werden sollen.

System.Threading.Thread.Sleep(200); (innerhalb der Klammer {})
Gibt an, wie lang zwischen den einzelnen Fading Schritten gewartet werden soll.
Für ein schnelles faden muss der Wert möglichst klein sein, für ein langsames Faden hoch.


Beim herunterfaden, also von 100 % auf 0 %, fällt auf dass sich der for Befehl nicht geändert hat, dies ist auch nicht nötig. Eine Umkehrfunktion erreicht man, indem man einfach an den Ausgängen aus dem (byte)i; ein (byte)(25-i);

Wenn man z.B. von 20-10 Faden will, wirds etwas komplizierter, da man hier umgekehrt denken muss ;) Um also von 20 aus 10 zu faden muss man folgendes angeben for(i=5; i <= 15; i++). Der erste Wert "5" errechnet sich aus 25(max. Wert) - 20(Anfangswert); der zweite Wert "10" errechnet sich aus 25(max. Wert) - 10 (Endwert)



Endlosschleife des Script

Eine Endlosschleife des Scripts erreicht man indem man das komplette Script einfach in eine Klammer {} setzt, und ein while(true) davor setzt. Also während true=true wird das Script wiederholt - und das ist immer der Fall :)


So, nun liegts an euch - Viel Spass beim scripten!  ;D
ASUS RTX 4090 ROG Strix OC | Intel i9-12900k | Asus ROG Maximus Z690 Formula | G.Skill Trident Z5 RGB 5600 - 32 GB
Seasonic TX 850 | LG Electronics 43UD79-B | Samsung 980 Pro 2TB | Windows 11 Pro x64 | LianLi 343B Pulverbeschichtet | WaKü by Aquacomputer
Sonos Soundbar + Sub | Ultimaker 3 | Canon EOS 6D Mark II

Re: Das Muswi Script - Wie es funktioniert

Montag, 9. Juli 2007, 01:51

Kleines Update...

Das Relais lässt sich natürlich auch schalten über ein script...

Quellcode

1
2
Data.RelaisStatus = 1;
Data.RelaisStatus = 0;


1 = EIN
0 = AUS
ASUS RTX 4090 ROG Strix OC | Intel i9-12900k | Asus ROG Maximus Z690 Formula | G.Skill Trident Z5 RGB 5600 - 32 GB
Seasonic TX 850 | LG Electronics 43UD79-B | Samsung 980 Pro 2TB | Windows 11 Pro x64 | LianLi 343B Pulverbeschichtet | WaKü by Aquacomputer
Sonos Soundbar + Sub | Ultimaker 3 | Canon EOS 6D Mark II

Re: HowTo : Multiswitch Script selbst erstellen

Montag, 19. November 2007, 13:49

hab mein System von aquacomputer nun schon über ein jahr und es läuft traumhaft,
nur zum Multiswitch hab ich eine kleine frage,
unf zwar hab ich hier den Script generator gefunden, und wollte das mal testen, doch bekomme beim ausführen immer eine Fehlermeldung das die usb.dll fehlt und die mytranslationclasses auch.

Was mach ich falsch oder was muss ich ändern?

Danke schonmal.
Gruß
Mario
Aquaero + Multiswitch + Aquastream custom Ausgleichsbehälter custom Wärmetauscher sämtliche Kühlkörper von AC Durchfluss 39l/h bei 65Hz

Re: HowTo : Multiswitch Script selbst erstellen

Montag, 19. November 2007, 13:59

installiere mal eine aktuelle aquasuite version.

Re: HowTo : Multiswitch Script selbst erstellen

Montag, 19. November 2007, 15:13

liegt zu 90% hieran:

Zitat von »messi«


- WICHTIG: Die erstellten Skripte müssen direkt im Programmordner der Aquasuite plaziert werden bevor sie mit der Aquasuite geladen werden können.

Re: HowTo : Multiswitch Script selbst erstellen

Montag, 19. November 2007, 15:28

Aquasuite hab ich bereits nach der ersten Fehlermeldung dieser art neu aufgespielt, die version, die hier zum Download steht.

die Dateien liegen im Aquasuite ordner.

Sonst noch vorschläge?
oder anders gefragt, wo liegt denn diese usb.dll?
im system32 ordner oder is das eine datei der aquasuite selbst?
Aquaero + Multiswitch + Aquastream custom Ausgleichsbehälter custom Wärmetauscher sämtliche Kühlkörper von AC Durchfluss 39l/h bei 65Hz

Re: HowTo : Multiswitch Script selbst erstellen

Montag, 19. November 2007, 15:34

Ergänzung, Problem gelöst, es hatte tatsächlich die usb.dll gefehlt im aquasuite ordner, habs nochmal installiert in einen anderen ordner, schon gings.

PS: klasse Programm, euer Multiswitch generator,
Aquaero + Multiswitch + Aquastream custom Ausgleichsbehälter custom Wärmetauscher sämtliche Kühlkörper von AC Durchfluss 39l/h bei 65Hz

Re: HowTo : Multiswitch Script selbst erstellen

Montag, 19. November 2007, 23:18

schön dass dir mein prorgamm gefällt :D

Re: HowTo : Multiswitch Script selbst erstellen

Montag, 9. Juni 2008, 23:25

ok nochmal es geht nicht die datein sint im ordner

also was soll ich machen
neu install und noch immer nicht alles neue geflacht

also was soll ich machen

Re: HowTo : Multiswitch Script selbst erstellen

Donnerstag, 2. Oktober 2008, 01:06

Leute Messi und Benny....

Das ist ja total goil....

Das ist das was die Welt zur Rettung braucht...Danke..

Noch ne Frage hat einer hinbekommen ..wie im Ac Video,

das die KK uder Ausgänge auf Werte des Aquareo Reagieren?

Sprich die Wasser Temps gehen rauf und das Rote Licht an oder so...

Das wäre nämlich der ober Clou

kido

Junior Member

Re: HowTo : Multiswitch Script selbst erstellen

Donnerstag, 27. November 2008, 16:25

Hallo, erst mal alle hier im Forum... nach langer Bastelei bin ich nun endlich so weit um mit dem Multiswitch herum zu spielen... Habe mir auch natürlich den Script Generator herunter geladen, aber egal welche scripte ich auch hoch lade , ob selbst geschrieben, die Bsp. Scripte von Aquacomputer oder Benny, die vom Generator, es kommt immer die gleiche Meldung. Habe mal ein Screenshot von der Fehlermeldung gemacht. Habe leider noch keine grossen Erfahrungen! Weiss vielleicht jemand den Grund des Fehlers?

http://www.bilder-hochladen.net/files/7aeb-3-jpg.html


Danke schon mal im voraus

Re: HowTo : Multiswitch Script selbst erstellen

Donnerstag, 27. November 2008, 16:42

schau dir die 2te & 3te zeile an, dann weisst du es. les dir nochmal die beschreibung hier genau durch, besonders:

Zitat von »messi«


Nennenswertes
- WICHTIG: Die erstellten Skripte müssen direkt im Programmordner der Aquasuite plaziert werden bevor sie mit der Aquasuite geladen werden können.

anders gesagt: in dem ordner wo du dein skript platzierst muss auch die

Zitat

USB.dll
und die

Zitat

myTranslationClasses.dll
vorhanden sein.

messi

kido

Junior Member

Re: HowTo : Multiswitch Script selbst erstellen

Donnerstag, 27. November 2008, 22:01

Muss mich wohl für meine Blödheit entschuldigen ::) aber weiss net so recht was du meinst. Die erstellten scripte habe ich in den passenden Ordner .....aquasuit/scripte... rein kopiert
http://s2.imgimg.de/uploads/Screenshot2504965ceJPG.jpg

aber was meinst du mit den beiden Datein usb.dll und myTranslationClasses.dll wo muss ich die rein kopieren bzw wo bekomme ich die her zum kopieren?Oder kann/muss ich die Datein erst erstellen?

Verstehe nur Bahnhof, sorry!

Re: HowTo : Multiswitch Script selbst erstellen

Freitag, 28. November 2008, 09:42

ganz einfach.. in dem ordner wo dein skript liegt, muessen auch die beiden dll dateien liegen. was in deinem letzten screenshot nicht der fall ist. einfach die beiden genannten dll files in das verzeichnis kopieren wo deine skripts liegen und es sollte gehen :)

kido

Junior Member

Re: HowTo : Multiswitch Script selbst erstellen

Freitag, 28. November 2008, 09:56

Und wo her bekomme ich die beiden Datein? Oder muss ich die erst erstellen?

Re: HowTo : Multiswitch Script selbst erstellen

Freitag, 28. November 2008, 13:06

Such doch einfach mal im aquasuite Programmordner ;)

kido

Junior Member

Re: HowTo : Multiswitch Script selbst erstellen

Freitag, 28. November 2008, 13:50

Alles läuft super, Danke für die schnellen antworten!!!!


kido

Junior Member

Re: HowTo : Multiswitch Script selbst erstellen

Sonntag, 30. November 2008, 21:18

So habe nun schon das ein oder andere Programm geschrieben. Natürlich mit dem Script Generator ... ;) echt Super dieses Tool, erleichtet einen Programmier neuling wie mir enorm die Arbeit ;D.

Habe noch eine Frage betüglich der fading bzw. Dimm funktion.
Wenn ich die Dioden dimme, ensteht ein Flakern.
Denke mal das das Programm die Diode einschaltet, ausschaltet um einen Wert erhöht/senkt einschaltet usw. und dadurch dieses Flackern endsteht. Gibt es eine möglichkeit die Diode flüssig also ohne Flackern zu dimmen ?

Re: HowTo : Multiswitch Script selbst erstellen

Sonntag, 30. November 2008, 23:54

mir ist bis dato keine bekannt :'(