You are not logged in.
Dear visitor, welcome to Aqua Computer Forum. If this is your first visit here, please read the Help. It explains how this page works. You must be registered before you can use all the page's features. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.
|
|
Source code |
1 2 3 4 |
Dim WriteData As String multiswitch.LEDStatus = 2 ^ 0 WriteData = Data.CreateStringFromStructure(AquaComputer.TranslationClasses.multiswitch_Rev141.TransferTypeRegister.LEDOUT) UsbHid.HidWriteToDevice(UsbIndex, WriteData) |
Quoted
/// <summary>
/// Wenn die LED Ausgnäge nicht mit PWM betrieben werden, gibt jedes Bit den Status der entsprechenden LED an.
/// </summary>
public byte LEDStatus
{
get{ return m_LEDStatus; }
set{ m_LEDStatus = value; }
}
).|
|
Source code |
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 |
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.Blink(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 Blink(AquaComputer.TranslationClasses.multiswitch_Rev141 Data)
{
*BODY*
}
}//end class
|
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Data.AMPStatus = 0x00; //alle amps null Data.LEDStatus = 0x00; //alle leds null WriteToDevice(Data, AquaComputer.TranslationClasses.multiswitch_Rev141.TransferTypeRegister.OUTPUT); //zum ms senden bzw. schreiben Data.LEDStatus = 0x01; //led1 anmachen Data.AMPStatus = 0x00; //alle amps null WriteToDevice(Data, AquaComputer.TranslationClasses.multiswitch_Rev141.TransferTypeRegister.OUTPUT); //zum ms senden bzw. schreiben System.Threading.Thread.Sleep(1000); //1sek warten Data.LEDStatus = 0x01 + 0x80; //led1 und led8 anmachen Data.AMPStatus = 0x00; //alle amps null WriteToDevice(Data, AquaComputer.TranslationClasses.multiswitch_Rev141.TransferTypeRegister.OUTPUT); //zum ms senden bzw. schreiben System.Threading.Thread.Sleep(1000); //1sek warten |



Quoted from "yeli"
Ja, das ist schon richtig, was du da sagst. Der AmpStatus (im Programm) ändert sich nicht, und wird jedesmal, wenn ich was am LEDStatus verändere so wie er ist zurück in den MS geschrieben.
Quoted from "yeli"
- Programm schreib alle 1sek. diesen AmpStatus zurück
Quoted from "yeli"
- Jetzt schalte ich mit nem HardwareKey direkt am MS den Port 3 an (so sollte jetzt der Port 3 an sein)
- wenn jetzt die nächste Sekunde abgelaufen ist, schreibt mein Programm den (noch vom Programmstart
bekannten AmpStatus (zur Erinnerung: da war Port3 noch aus)) zurück in den MS.
-> Ergebnis : Der Port 3 war bestenfalls mal für eine Sekunde an!
Quoted from "yeli"
Mein Programm soll ausschließlich die LED's bedienen. Die Amp-Ports werden per Hardware-Tasten direkt am MS bedient.
Quoted from "messi"
wenn du den ledstatus veränderst wird der ampstatus nicht so wie er ist zurück ins ms geschrieben...
wenn du einmal den amp status setzt bleibt er solange im MS gesetzt, bis du ihn wieder änderst, das bedeutet also, wenn du ihn einmal an machst reicht das, danach musst du den nicht immer und immer wieder schreiben, wenn ich das von dir wenigstens richtig verstehe..
Quoted from "messi"
dann vermute ich eher, dass das auslesen des keypress kommandos fehlerhaft ist..
Quoted from "yeli"
Schön wärs! aber ich hab ja gar keine Wahl als die gesamte Multiswitch-Struktur zurückzuschreiben. Diese Variable Data aus deinem Beispiel beinhaltet immer alle Daten. Ob ich jetzt Data.Ampstatus = xxx mache, oder nicht, der AmpStatus ist da immer mit drin. Und mit ... TransferTypeRegister.OUTPUT wird er auch in den Multiswitch übertragen. DAS ist das eigentliche Problem!
Quoted from "messi"
bist du dir da sicher? bei meinem skript gen läufts ja auch eigtl richtig..

Quoted from "yeli"
Du könntest ja deinen Scriptgen mal "NO-PWM" kompatibel machen. Falls du Zeit hast. Dann würde ich das gerne mal testen.
-